unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#66141: 29.1; Window size properties not set immediately for window in new frame
@ 2023-09-21 16:16 Mattias Nyrell
  2023-09-21 16:39 ` Eli Zaretskii
  0 siblings, 1 reply; 8+ messages in thread
From: Mattias Nyrell @ 2023-09-21 16:16 UTC (permalink / raw)
  To: 66141



Starting from emacs -Q, enter the following in *scratch*:

(let ((f (make-frame '((fullscreen . maximized)))))
   (select-frame-set-input-focus f)
   (message "window-body-width=%s" (window-body-width))
   (sleep-for 1)
   (message "window-body-width=%s" (window-body-width)) )

Execute with C-x C-e

Result:
- A new frame is created.
- The message "window-body-width=80" is printed
- The message "window-body-width=190" is printed (exact value depending
on screen size of course)

Expected result:
The first printed message should be the same as the second printed message.







In GNU Emacs 29.1 (build 2, x86_64-w64-mingw32) of 2023-07-31 built on
  AVALON
Windowing system distributor 'Microsoft Corp.', version 10.0.22621
System Description: Microsoft Windows 10 Enterprise (v10.0.2009.22621.2134)

Configured using:
  'configure --with-modules --without-dbus --with-native-compilation=aot
  --without-compress-install --with-tree-sitter CFLAGS=-O2'

Configured features:
ACL GIF GMP GNUTLS HARFBUZZ JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP
NOTIFY W32NOTIFY PDUMPER PNG RSVG SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XPM ZLIB

(NATIVE_COMP present but libgccjit not available)

Important settings:
   value of $LANG: SVE
   locale-coding-system: cp1252

Major mode: Lisp Interaction

Minor modes in effect:
   tooltip-mode: t
   global-eldoc-mode: t
   eldoc-mode: t
   show-paren-mode: t
   electric-indent-mode: t
   mouse-wheel-mode: t
   tool-bar-mode: t
   menu-bar-mode: t
   file-name-shadow-mode: t
   global-font-lock-mode: t
   font-lock-mode: t
   blink-cursor-mode: t
   line-number-mode: t
   indent-tabs-mode: t
   transient-mark-mode: t
   auto-composition-mode: t
   auto-encryption-mode: t
   auto-compression-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message mailcap yank-media puny dired
dired-loaddefs rfc822 mml mml-sec password-cache epa derived epg rfc6068
epg-config gnus-util mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
mm-util mail-prsvr mail-utils cl-extra shortdoc text-property-search
help-fns radix-tree help-mode time-date subr-x cl-loaddefs cl-lib rmc
iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook
vc-hooks lisp-float-type elisp-mode mwheel dos-w32 ls-lisp disp-table
term/w32-win w32-win w32-vars term/common-win tool-bar dnd fontset image
regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu
timer select scroll-bar mouse jit-lock font-lock syntax font-core
term/tty-colors frame minibuffer nadvice seq simple cl-generic
indonesian philippine cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese
composite emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs
theme-loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads w32notify w32 lcms2 multi-tty
make-network-process native-compile emacs)

Memory information:
((conses 16 60177 5492)
  (symbols 48 5492 0)
  (strings 32 17131 1407)
  (string-bytes 1 468887)
  (vectors 16 11742)
  (vector-slots 8 276217 11742)
  (floats 8 81 21)
  (intervals 56 303 0)
  (buffers 984 12))






^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#66141: 29.1; Window size properties not set immediately for window in new frame
  2023-09-21 16:16 bug#66141: 29.1; Window size properties not set immediately for window in new frame Mattias Nyrell
@ 2023-09-21 16:39 ` Eli Zaretskii
       [not found]   ` <dd7c9d58-3adf-7669-a071-5db6f619e268@nyrell.se>
  0 siblings, 1 reply; 8+ messages in thread
From: Eli Zaretskii @ 2023-09-21 16:39 UTC (permalink / raw)
  To: Mattias Nyrell; +Cc: 66141

> Date: Thu, 21 Sep 2023 18:16:01 +0200
> From: Mattias Nyrell <mattias@nyrell.se>
> 
> Starting from emacs -Q, enter the following in *scratch*:
> 
> (let ((f (make-frame '((fullscreen . maximized)))))
>    (select-frame-set-input-focus f)
>    (message "window-body-width=%s" (window-body-width))
>    (sleep-for 1)
>    (message "window-body-width=%s" (window-body-width)) )
> 
> Execute with C-x C-e
> 
> Result:
> - A new frame is created.
> - The message "window-body-width=80" is printed
> - The message "window-body-width=190" is printed (exact value depending
> on screen size of course)
> 
> Expected result:
> The first printed message should be the same as the second printed message.

Isn't it because the actual resizing of the frame is done by the
window-system, and we can only ask it to do so?

IOW, I think your expectation is incorrect, as it assumes that frame
move/resize operations are executed immediately.





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#66141: 29.1; Window size properties not set immediately for window in new frame
       [not found]   ` <dd7c9d58-3adf-7669-a071-5db6f619e268@nyrell.se>
@ 2023-09-21 18:51     ` Eli Zaretskii
  2023-09-21 19:04       ` Mattias Nyrell
  0 siblings, 1 reply; 8+ messages in thread
From: Eli Zaretskii @ 2023-09-21 18:51 UTC (permalink / raw)
  To: Mattias Nyrell; +Cc: 66141

[Please use Reply All to reply, to keep the bug tracer CC'ed.]

> Date: Thu, 21 Sep 2023 20:48:19 +0200
> From: Mattias Nyrell <mattias@nyrell.se>
> 
> 
> 
> On 2023-09-21 18:39, Eli Zaretskii wrote:
> >> Date: Thu, 21 Sep 2023 18:16:01 +0200
> >> From: Mattias Nyrell <mattias@nyrell.se>
> >>
> >> Starting from emacs -Q, enter the following in *scratch*:
> >>
> >> (let ((f (make-frame '((fullscreen . maximized)))))
> >>     (select-frame-set-input-focus f)
> >>     (message "window-body-width=%s" (window-body-width))
> >>     (sleep-for 1)
> >>     (message "window-body-width=%s" (window-body-width)) )
> >>
> >> Execute with C-x C-e
> >>
> >> Result:
> >> - A new frame is created.
> >> - The message "window-body-width=80" is printed
> >> - The message "window-body-width=190" is printed (exact value depending
> >> on screen size of course)
> >>
> >> Expected result:
> >> The first printed message should be the same as the second printed message.
> > Isn't it because the actual resizing of the frame is done by the
> > window-system, and we can only ask it to do so?
> >
> > IOW, I think your expectation is incorrect, as it assumes that frame
> > move/resize operations are executed immediately.
> I have no idea, but your explanation sounds very reasonable and it is 
> probably right!
> 
> Is there a way to get notified when the resize operation has finished? 
> Or is sleeping for a short while a reasonable solution?

Yes, calling sleep-for is one way.  I would also suggest to try

  (sit-for 0)

If that works, it is faster.





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#66141: 29.1; Window size properties not set immediately for window in new frame
  2023-09-21 18:51     ` Eli Zaretskii
@ 2023-09-21 19:04       ` Mattias Nyrell
  2023-09-22  6:47         ` Mattias Nyrell
  0 siblings, 1 reply; 8+ messages in thread
From: Mattias Nyrell @ 2023-09-21 19:04 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 66141



On 2023-09-21 20:51, Eli Zaretskii wrote:
> [Please use Reply All to reply, to keep the bug tracer CC'ed.]
>
>> Date: Thu, 21 Sep 2023 20:48:19 +0200
>> From: Mattias Nyrell <mattias@nyrell.se>
>>
>>
>>
>> On 2023-09-21 18:39, Eli Zaretskii wrote:
>>>> Date: Thu, 21 Sep 2023 18:16:01 +0200
>>>> From: Mattias Nyrell <mattias@nyrell.se>
>>>>
>>>> Starting from emacs -Q, enter the following in *scratch*:
>>>>
>>>> (let ((f (make-frame '((fullscreen . maximized)))))
>>>>      (select-frame-set-input-focus f)
>>>>      (message "window-body-width=%s" (window-body-width))
>>>>      (sleep-for 1)
>>>>      (message "window-body-width=%s" (window-body-width)) )
>>>>
>>>> Execute with C-x C-e
>>>>
>>>> Result:
>>>> - A new frame is created.
>>>> - The message "window-body-width=80" is printed
>>>> - The message "window-body-width=190" is printed (exact value depending
>>>> on screen size of course)
>>>>
>>>> Expected result:
>>>> The first printed message should be the same as the second printed message.
>>> Isn't it because the actual resizing of the frame is done by the
>>> window-system, and we can only ask it to do so?
>>>
>>> IOW, I think your expectation is incorrect, as it assumes that frame
>>> move/resize operations are executed immediately.
>> I have no idea, but your explanation sounds very reasonable and it is
>> probably right!
>>
>> Is there a way to get notified when the resize operation has finished?
>> Or is sleeping for a short while a reasonable solution?
> Yes, calling sleep-for is one way.  I would also suggest to try
>
>    (sit-for 0)
>
> If that works, it is faster.
Ok, thank you!

/Mattias





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#66141: 29.1; Window size properties not set immediately for window in new frame
  2023-09-21 19:04       ` Mattias Nyrell
@ 2023-09-22  6:47         ` Mattias Nyrell
  2023-09-22  6:58           ` Eli Zaretskii
  0 siblings, 1 reply; 8+ messages in thread
From: Mattias Nyrell @ 2023-09-22  6:47 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 66141


On 2023-09-21 21:04, Mattias Nyrell wrote:
>
>
> On 2023-09-21 20:51, Eli Zaretskii wrote:
>> [Please use Reply All to reply, to keep the bug tracer CC'ed.]
>>
>>> Date: Thu, 21 Sep 2023 20:48:19 +0200
>>> From: Mattias Nyrell <mattias@nyrell.se>
>>>
>>>
>>>
>>> On 2023-09-21 18:39, Eli Zaretskii wrote:
>>>>> Date: Thu, 21 Sep 2023 18:16:01 +0200
>>>>> From: Mattias Nyrell <mattias@nyrell.se>
>>>>>
>>>>> Starting from emacs -Q, enter the following in *scratch*:
>>>>>
>>>>> (let ((f (make-frame '((fullscreen . maximized)))))
>>>>>      (select-frame-set-input-focus f)
>>>>>      (message "window-body-width=%s" (window-body-width))
>>>>>      (sleep-for 1)
>>>>>      (message "window-body-width=%s" (window-body-width)) )
>>>>>
>>>>> Execute with C-x C-e
>>>>>
>>>>> Result:
>>>>> - A new frame is created.
>>>>> - The message "window-body-width=80" is printed
>>>>> - The message "window-body-width=190" is printed (exact value 
>>>>> depending
>>>>> on screen size of course)
>>>>>
>>>>> Expected result:
>>>>> The first printed message should be the same as the second printed 
>>>>> message.
>>>> Isn't it because the actual resizing of the frame is done by the
>>>> window-system, and we can only ask it to do so?
>>>>
>>>> IOW, I think your expectation is incorrect, as it assumes that frame
>>>> move/resize operations are executed immediately.
>>> I have no idea, but your explanation sounds very reasonable and it is
>>> probably right!
>>>
>>> Is there a way to get notified when the resize operation has finished?
>>> Or is sleeping for a short while a reasonable solution?
>> Yes, calling sleep-for is one way.  I would also suggest to try
>>
>>    (sit-for 0)
>>
>> If that works, it is faster.
> Ok, thank you!
>
> /Mattias

I tried (sit-for 0) and even (sit-for 5), but none of those worked.

(sleep-for 0.1) or (sleep-for 0) worked for me.

/Mattias






^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#66141: 29.1; Window size properties not set immediately for window in new frame
  2023-09-22  6:47         ` Mattias Nyrell
@ 2023-09-22  6:58           ` Eli Zaretskii
  2023-09-22  7:23             ` Mattias Nyrell
  0 siblings, 1 reply; 8+ messages in thread
From: Eli Zaretskii @ 2023-09-22  6:58 UTC (permalink / raw)
  To: Mattias Nyrell; +Cc: 66141

> Date: Fri, 22 Sep 2023 08:47:02 +0200
> From: Mattias Nyrell <mattias@nyrell.se>
> Cc: 66141@debbugs.gnu.org
> 
> >> Yes, calling sleep-for is one way.  I would also suggest to try
> >>
> >>    (sit-for 0)
> >>
> >> If that works, it is faster.
> > Ok, thank you!
> >
> > /Mattias
> 
> I tried (sit-for 0) and even (sit-for 5), but none of those worked.
> 
> (sleep-for 0.1) or (sleep-for 0) worked for me.

I guess this means that some input event from the window-system
interrupts sit-for too early, so sleep-for is really required.

I think we can now close this bug report, right?





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#66141: 29.1; Window size properties not set immediately for window in new frame
  2023-09-22  6:58           ` Eli Zaretskii
@ 2023-09-22  7:23             ` Mattias Nyrell
  2023-09-22 11:07               ` Eli Zaretskii
  0 siblings, 1 reply; 8+ messages in thread
From: Mattias Nyrell @ 2023-09-22  7:23 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 66141


On 2023-09-22 08:58, Eli Zaretskii wrote:
>> Date: Fri, 22 Sep 2023 08:47:02 +0200
>> From: Mattias Nyrell <mattias@nyrell.se>
>> Cc: 66141@debbugs.gnu.org
>>
>>>> Yes, calling sleep-for is one way.  I would also suggest to try
>>>>
>>>>     (sit-for 0)
>>>>
>>>> If that works, it is faster.
>>> Ok, thank you!
>>>
>>> /Mattias
>> I tried (sit-for 0) and even (sit-for 5), but none of those worked.
>>
>> (sleep-for 0.1) or (sleep-for 0) worked for me.
> I guess this means that some input event from the window-system
> interrupts sit-for too early, so sleep-for is really required.
>
> I think we can now close this bug report, right?

Yes, thank you!






^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#66141: 29.1; Window size properties not set immediately for window in new frame
  2023-09-22  7:23             ` Mattias Nyrell
@ 2023-09-22 11:07               ` Eli Zaretskii
  0 siblings, 0 replies; 8+ messages in thread
From: Eli Zaretskii @ 2023-09-22 11:07 UTC (permalink / raw)
  To: Mattias Nyrell; +Cc: 66141-done

> Date: Fri, 22 Sep 2023 09:23:56 +0200
> Cc: 66141@debbugs.gnu.org
> From: Mattias Nyrell <mattias@nyrell.se>
> 
> > I think we can now close this bug report, right?
> 
> Yes, thank you!

Done.





^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2023-09-22 11:07 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-09-21 16:16 bug#66141: 29.1; Window size properties not set immediately for window in new frame Mattias Nyrell
2023-09-21 16:39 ` Eli Zaretskii
     [not found]   ` <dd7c9d58-3adf-7669-a071-5db6f619e268@nyrell.se>
2023-09-21 18:51     ` Eli Zaretskii
2023-09-21 19:04       ` Mattias Nyrell
2023-09-22  6:47         ` Mattias Nyrell
2023-09-22  6:58           ` Eli Zaretskii
2023-09-22  7:23             ` Mattias Nyrell
2023-09-22 11:07               ` Eli Zaretskii

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).