unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#48406: 28.0.50; Emacs stuck in infinite loop in wait_reading_process_output when opening in fullscreen (NS)
@ 2021-05-13 20:39 Illia Ostapyshyn
  2021-05-13 21:15 ` Alan Third
  2021-05-14  6:22 ` Eli Zaretskii
  0 siblings, 2 replies; 22+ messages in thread
From: Illia Ostapyshyn @ 2021-05-13 20:39 UTC (permalink / raw)
  To: 48406

[-- Attachment #1: Type: text/plain, Size: 1289 bytes --]

When starting with

    (push '(fullscreen . fullboth) default-frame-alist)

in early-init.el, apparently Emacs get stuck in an infinite loop after calling [EmacsView waitFullScreenTransition]. Please see the attached backtrace. I also tried moving that command around: in init.el, in emacs-startup-hook, all yield the same result. 

Toggling fullscreen after successful startup (by not trying to start in fullscreen) works ok. Also creating new frames with '(fullscreen . fullboth) in default-frame-alist works well.

Looks like this bug was introduced by bbc48b263485c26c6823eabdbbd7e9af62178e34

In GNU Emacs 28.0.50 (build 7, x86_64-apple-darwin20.4.0, NS appkit-2022.44 Version 11.3.1 (Build 20E241))
 of 2021-05-13 built on mbp2018.local
Repository revision: ff8bf8c8dfff2e4fc0fae50e3fcfcf3022bd0bb8
Repository branch: master
Windowing system distributor 'Apple', version 10.3.2022
System Description:  macOS 11.3.1

Configured using:
 'configure --with-json --with-native-compilation --with-xwidgets
 CPPFLAGS=-I/usr/local/opt/llvm/include
 LDFLAGS=-L/usr/local/opt/llvm/lib'

Configured features:
ACL DBUS GIF GLIB GMP GNUTLS JPEG JSON LCMS2 LIBXML2 MODULES
NATIVE_COMP NOTIFY KQUEUE NS PDUMPER PNG RSVG THREADS TIFF
TOOLKIT_SCROLL_BARS XIM XWIDGETS ZLIB

[-- Attachment #2: backtrace.txt --]
[-- Type: text/plain, Size: 5670 bytes --]

(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGIO
  * frame #0: 0x00007fff203e5946 libsystem_kernel.dylib`__pthread_kill + 10
    frame #1: 0x00007fff20414615 libsystem_pthread.dylib`pthread_kill + 263
    frame #2: 0x00007fff202f8be5 libsystem_c.dylib`raise + 26
    frame #3: 0x00000001001f8bee emacs`ns_select(nfds=0, readfds=0x00007ffeefbfe6c0, writefds=0x00007ffeefbfe610, exceptfds=0x0000000000000000, timeout=0x00007ffeefbfe7e0, sigmask=0x0000000000000000) at nsterm.m:4700:7 [opt]
    frame #4: 0x00000001001bbd87 emacs`wait_reading_process_output(time_limit=<unavailable>, nsecs=<unavailable>, read_kbd=<unavailable>, do_display=true, wait_for_cell=0x0000000000000000, wait_proc=<unavailable>, just_wait_proc=0) at process.c:5568:18 [opt]
    frame #5: 0x00000001002024b0 emacs`-[EmacsView waitFullScreenTransition](self=0x000000014e1665d0, _cmd=<unavailable>) at nsterm.m:7977:7 [opt]
    frame #6: 0x000000010020265a emacs`-[EmacsView toggleFullScreen:](self=0x000000014e1665d0, _cmd=<unavailable>, sender=0x000000014e1665d0) at nsterm.m:8065:11 [opt]
    frame #7: 0x0000000100202c6e emacs`-[EmacsView handleFS](self=0x000000014e1665d0, _cmd=<unavailable>) at nsterm.m:8193:11 [opt]
    frame #8: 0x00000001001f6fed emacs`ns_make_frame_visible(f=0x0000000146c77430) at nsterm.m:1651:11 [opt]
    frame #9: 0x00000001000132ff emacs`Fmake_frame_visible(frame=<unavailable>) at frame.c:2697:5 [opt]
    frame #10: 0x000000014820a5d5 faces-b9447c93-edafd36b.eln`F782d6372656174652d6672616d652d776974682d6661636573_x_create_frame_with_faces_0 + 805
    frame #11: 0x000000010016295d emacs`funcall_subr(subr=0x000000014727c398, numargs=1, args=<unavailable>) at eval.c:3111:19 [opt]
    frame #12: 0x0000000100161f3f emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:3036:11 [opt]
    frame #13: 0x00000001001a8209 emacs`exec_byte_code(bytestr=<unavailable>, vector=0x000000014727c35d, maxdepth=<unavailable>, args_template=<unavailable>, nargs=<unavailable>, args=<unavailable>) at bytecode.c:632:12 [opt]
    frame #14: 0x0000000100162b31 emacs`funcall_lambda [inlined] fetch_and_exec_byte_code(fun=<unavailable>, syms_left=<unavailable>, nargs=<unavailable>, args=<unavailable>) at eval.c:3160:10 [opt] [artificial]
    frame #15: 0x0000000100161ecf emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:0:4 [opt]
    frame #16: 0x0000000100161f3f emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:3036:11 [opt]
    frame #17: 0x00000001001a8209 emacs`exec_byte_code(bytestr=<unavailable>, vector=0x000000014727bb05, maxdepth=<unavailable>, args_template=<unavailable>, nargs=<unavailable>, args=<unavailable>) at bytecode.c:632:12 [opt]
    frame #18: 0x0000000100162b31 emacs`funcall_lambda [inlined] fetch_and_exec_byte_code(fun=<unavailable>, syms_left=<unavailable>, nargs=<unavailable>, args=<unavailable>) at eval.c:3160:10 [opt] [artificial]
    frame #19: 0x0000000100161ecf emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:0:4 [opt]
    frame #20: 0x0000000148251c39 frame-b40fc590-39d0621d.eln`F6d616b652d6672616d65_make_frame_0 + 1529
    frame #21: 0x000000010016295d emacs`funcall_subr(subr=0x000000014732fc90, numargs=1, args=<unavailable>) at eval.c:3111:19 [opt]
    frame #22: 0x0000000100161f3f emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:3036:11 [opt]
    frame #23: 0x000000014824f04e frame-b40fc590-39d0621d.eln`F6672616d652d696e697469616c697a65_frame_initialize_0 + 542
    frame #24: 0x00000001001628fb emacs`funcall_subr(subr=0x000000014775a460, numargs=0, args=<unavailable>) at eval.c:3109:19 [opt]
    frame #25: 0x0000000100161f3f emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:3036:11 [opt]
    frame #26: 0x00000001484692b6 startup-bbc6ea72-dc110ad4.eln`F636f6d6d616e642d6c696e65_command_line_0 + 8198
    frame #27: 0x00000001001628fb emacs`funcall_subr(subr=0x00000001475c29e0, numargs=0, args=<unavailable>) at eval.c:3109:19 [opt]
    frame #28: 0x0000000100161f3f emacs`Ffuncall(nargs=<unavailable>, args=<unavailable>) at eval.c:3036:11 [opt]
    frame #29: 0x00000001484654f6 startup-bbc6ea72-dc110ad4.eln`F6e6f726d616c2d746f702d6c6576656c_normal_top_level_0 + 4166
    frame #30: 0x000000010015d695 emacs`eval_sub(form=<unavailable>) at eval.c:2508:15 [opt]
    frame #31: 0x00000001001614aa emacs`Feval(form=0x0000000147831b13, lexical=<unavailable>) at eval.c:2340:28 [opt]
    frame #32: 0x00000001000e8f95 emacs`top_level_2 at keyboard.c:1103:10 [opt] [artificial]
    frame #33: 0x000000010015ff4f emacs`internal_condition_case(bfun=(emacs`top_level_2 at keyboard.c:1102), handlers=0x0000000000000090, hfun=(emacs`cmd_error at keyboard.c:922)) at eval.c:1475:25 [opt]
    frame #34: 0x00000001000e8d2d emacs`top_level_1(ignore=0x0000000000000000) at keyboard.c:1111:5 [opt]
    frame #35: 0x000000010015f4ee emacs`internal_catch(tag=0x000000000000dd10, func=(emacs`top_level_1 at keyboard.c:1108), arg=0x0000000000000000) at eval.c:1198:25 [opt]
    frame #36: 0x0000000100236826 emacs`recursive_edit_1.cold.1 at keyboard.c:1072:2 [opt]
    frame #37: 0x00000001000d7995 emacs`recursive_edit_1 [inlined] command_loop at keyboard.c:1070:5 [opt]
    frame #38: 0x00000001000d7990 emacs`recursive_edit_1 at keyboard.c:720 [opt]
    frame #39: 0x00000001000d7b2b emacs`Frecursive_edit at keyboard.c:789:3 [opt]
    frame #40: 0x00000001000d6b72 emacs`main(argc=<unavailable>, argv=0x00007ffeefbff938) at emacs.c:2297:3 [opt]
    frame #41: 0x00007fff2042ff3d libdyld.dylib`start + 1
    frame #42: 0x00007fff2042ff3d libdyld.dylib`start + 1

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

* bug#48406: 28.0.50; Emacs stuck in infinite loop in wait_reading_process_output when opening in fullscreen (NS)
  2021-05-13 20:39 bug#48406: 28.0.50; Emacs stuck in infinite loop in wait_reading_process_output when opening in fullscreen (NS) Illia Ostapyshyn
@ 2021-05-13 21:15 ` Alan Third
  2021-05-14  6:07   ` Andrii Kolomoiets
  2021-05-14  6:22 ` Eli Zaretskii
  1 sibling, 1 reply; 22+ messages in thread
From: Alan Third @ 2021-05-13 21:15 UTC (permalink / raw)
  To: Illia Ostapyshyn; +Cc: 48406, Andrii Kolomoiets

On Thu, May 13, 2021 at 10:39:55PM +0200, Illia Ostapyshyn wrote:
> When starting with
> 
>     (push '(fullscreen . fullboth) default-frame-alist)
> 
> in early-init.el, apparently Emacs get stuck in an infinite loop
> after calling [EmacsView waitFullScreenTransition]. Please see the
> attached backtrace. I also tried moving that command around: in
> init.el, in emacs-startup-hook, all yield the same result.
> 
> Toggling fullscreen after successful startup (by not trying to start
> in fullscreen) works ok. Also creating new frames with '(fullscreen
> . fullboth) in default-frame-alist works well.
> 
> Looks like this bug was introduced by bbc48b263485c26c6823eabdbbd7e9af62178e34

Hmm, I don't know what's going on. I guess it's waiting on the
fullscreen transition before Emacs has started up fully and that's
causing a problem?

Andrii, any ideas?
-- 
Alan Third





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

* bug#48406: 28.0.50; Emacs stuck in infinite loop in wait_reading_process_output when opening in fullscreen (NS)
  2021-05-13 21:15 ` Alan Third
@ 2021-05-14  6:07   ` Andrii Kolomoiets
  2021-05-14  9:13     ` Illia Ostapyshyn
  0 siblings, 1 reply; 22+ messages in thread
From: Andrii Kolomoiets @ 2021-05-14  6:07 UTC (permalink / raw)
  To: Alan Third; +Cc: Illia Ostapyshyn, 48406

Alan Third <alan@idiocy.org> writes:

> On Thu, May 13, 2021 at 10:39:55PM +0200, Illia Ostapyshyn wrote:
>> When starting with
>> 
>>     (push '(fullscreen . fullboth) default-frame-alist)
>> 
>> in early-init.el, apparently Emacs get stuck in an infinite loop
>> after calling [EmacsView waitFullScreenTransition]. Please see the
>> attached backtrace. I also tried moving that command around: in
>> init.el, in emacs-startup-hook, all yield the same result.
>> 
>> Toggling fullscreen after successful startup (by not trying to start
>> in fullscreen) works ok. Also creating new frames with '(fullscreen
>> . fullboth) in default-frame-alist works well.
>> 
>> Looks like this bug was introduced by bbc48b263485c26c6823eabdbbd7e9af62178e34
>
> Hmm, I don't know what's going on. I guess it's waiting on the
> fullscreen transition before Emacs has started up fully and that's
> causing a problem?
>
> Andrii, any ideas?

I can't reproduce this.  Modifying the early-init.el file or executing
Emacs like this works fine for me:

emacs -Q --execute "(push '(fullscreen . fullboth) default-frame-alist)"

But my OS and Emacs configuration is different:
System Description:  macOS 11.2.3
Configured using: 'configure --with-ns --with-rsvg'

Illia, please check if this small fix will help:

diff --git a/src/nsterm.m b/src/nsterm.m
index bb20886ab1..ef517098bf 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -1640,8 +1640,6 @@ -(void)remove
          fullscreen also.  So skip handleFS as this will print an error.  */
       if ([view fsIsNative] && [view isFullscreen])
         {
-          // maybe it is not necessary to wait
-          [view waitFullScreenTransition];
           return;
         }





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

* bug#48406: 28.0.50; Emacs stuck in infinite loop in wait_reading_process_output when opening in fullscreen (NS)
  2021-05-13 20:39 bug#48406: 28.0.50; Emacs stuck in infinite loop in wait_reading_process_output when opening in fullscreen (NS) Illia Ostapyshyn
  2021-05-13 21:15 ` Alan Third
@ 2021-05-14  6:22 ` Eli Zaretskii
  2021-05-14  9:22   ` Illia Ostapyshyn
  1 sibling, 1 reply; 22+ messages in thread
From: Eli Zaretskii @ 2021-05-14  6:22 UTC (permalink / raw)
  To: Illia Ostapyshyn; +Cc: 48406

> From: Illia Ostapyshyn <ilya.ostapyshyn@gmail.com>
> Date: Thu, 13 May 2021 22:39:55 +0200
> 
> When starting with
> 
>     (push '(fullscreen . fullboth) default-frame-alist)
> 
> in early-init.el, apparently Emacs get stuck in an infinite loop after calling [EmacsView waitFullScreenTransition]. Please see the attached backtrace. I also tried moving that command around: in init.el, in emacs-startup-hook, all yield the same result. 

Why did you put that in early-init.el? why not in .emacs or init.el?





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

* bug#48406: 28.0.50; Emacs stuck in infinite loop in wait_reading_process_output when opening in fullscreen (NS)
  2021-05-14  6:07   ` Andrii Kolomoiets
@ 2021-05-14  9:13     ` Illia Ostapyshyn
  2021-05-14 19:32       ` Andrii Kolomoiets
  0 siblings, 1 reply; 22+ messages in thread
From: Illia Ostapyshyn @ 2021-05-14  9:13 UTC (permalink / raw)
  To: Andrii Kolomoiets; +Cc: 48406, Alan Third

Executing like this doesn't work for me:

    emacs -Q --execute "(push '(fullscreen . fullboth) default-frame-alist)"

I've tried recompiling emacs with you configure flags, same result. Could it be the OS version? I doubt it, I recall having this issue long time ago, but I bore with it instead of reporting.

The patch didn't fix the issue, but there are two more instances of waitFullScreenTransition in nsterm.m. I narrowed it down to this one:

diff --git a/src/nsterm.m b/src/nsterm.m
index bb20886ab1..bf18ae48fa 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -8061,8 +8061,6 @@ - (void)toggleFullScreen: (id)sender
         {
 #endif
           [[self window] toggleFullScreen:sender];
-          // wait for fullscreen animation complete (bug#28496)
-          [self waitFullScreenTransition];
 #if MAC_OS_X_VERSION_MIN_REQUIRED < 1070
         }
 #endif

> I can't reproduce this.  Modifying the early-init.el file or executing
> Emacs like this works fine for me:
> 
> emacs -Q --execute "(push '(fullscreen . fullboth) default-frame-alist)"
> 
> But my OS and Emacs configuration is different:
> System Description:  macOS 11.2.3
> Configured using: 'configure --with-ns --with-rsvg'
> 
> Illia, please check if this small fix will help:
> 
> diff --git a/src/nsterm.m b/src/nsterm.m
> index bb20886ab1..ef517098bf 100644
> --- a/src/nsterm.m
> +++ b/src/nsterm.m
> @@ -1640,8 +1640,6 @@ -(void)remove
>          fullscreen also.  So skip handleFS as this will print an error.  */
>       if ([view fsIsNative] && [view isFullscreen])
>         {
> -          // maybe it is not necessary to wait
> -          [view waitFullScreenTransition];
>           return;
>         }






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

* bug#48406: 28.0.50; Emacs stuck in infinite loop in wait_reading_process_output when opening in fullscreen (NS)
  2021-05-14  6:22 ` Eli Zaretskii
@ 2021-05-14  9:22   ` Illia Ostapyshyn
  2021-05-14 10:55     ` Eli Zaretskii
  0 siblings, 1 reply; 22+ messages in thread
From: Illia Ostapyshyn @ 2021-05-14  9:22 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 48406

> On May 14, 2021, at 08:22, Eli Zaretskii <eliz@gnu.org> wrote:
> 
>> From: Illia Ostapyshyn <ilya.ostapyshyn@gmail.com>
>> Date: Thu, 13 May 2021 22:39:55 +0200
>> 
>> When starting with
>> 
>>    (push '(fullscreen . fullboth) default-frame-alist)
>> 
>> in early-init.el, apparently Emacs get stuck in an infinite loop after calling [EmacsView waitFullScreenTransition]. Please see the attached backtrace. I also tried moving that command around: in init.el, in emacs-startup-hook, all yield the same result. 
> 
> Why did you put that in early-init.el? why not in .emacs or init.el?

I figured that way I wouldn't see an unconfigured frame for a fraction of a second when starting Emacs and it worked for me on other systems. Are there any caveats to it?

Like I mentioned, with this line in init.el Emacs exhibits the same behavior.

emacs -Q --execute "(push '(fullscreen . fullboth) default-frame-alist)"
doesn't work as well.




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

* bug#48406: 28.0.50; Emacs stuck in infinite loop in wait_reading_process_output when opening in fullscreen (NS)
  2021-05-14  9:22   ` Illia Ostapyshyn
@ 2021-05-14 10:55     ` Eli Zaretskii
  2021-05-14 11:09       ` Illia Ostapyshyn
  0 siblings, 1 reply; 22+ messages in thread
From: Eli Zaretskii @ 2021-05-14 10:55 UTC (permalink / raw)
  To: Illia Ostapyshyn; +Cc: 48406

> From: Illia Ostapyshyn <ilya.ostapyshyn@gmail.com>
> Date: Fri, 14 May 2021 11:22:30 +0200
> Cc: 48406@debbugs.gnu.org
> 
> > On May 14, 2021, at 08:22, Eli Zaretskii <eliz@gnu.org> wrote:
> > 
> >> From: Illia Ostapyshyn <ilya.ostapyshyn@gmail.com>
> >> Date: Thu, 13 May 2021 22:39:55 +0200
> >> 
> >> When starting with
> >> 
> >>    (push '(fullscreen . fullboth) default-frame-alist)
> >> 
> >> in early-init.el, apparently Emacs get stuck in an infinite loop after calling [EmacsView waitFullScreenTransition]. Please see the attached backtrace. I also tried moving that command around: in init.el, in emacs-startup-hook, all yield the same result. 
> > 
> > Why did you put that in early-init.el? why not in .emacs or init.el?
> 
> I figured that way I wouldn't see an unconfigured frame for a fraction of a second when starting Emacs and it worked for me on other systems. Are there any caveats to it?

Yes, the caveat is that you do this too early.  I'm not sure I want to
tweak Emacs to support these settings in early-init.el just to avoid
the momentary display of the original frame.  As documented,
early-init.el is for stuff that _must_ be there, or else it won't
work at all.

> Like I mentioned, with this line in init.el Emacs exhibits the same behavior.
> 
> emacs -Q --execute "(push '(fullscreen . fullboth) default-frame-alist)"
> doesn't work as well.

"Doesn't work" in what sense?  What did you expect to happen and what
did indeed happen?

And the above line is definitely not for init.el, it's a command for
invoking Emacs from the shell prompt.  So I'm not sure I understand
what exactly did you try with that command.





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

* bug#48406: 28.0.50; Emacs stuck in infinite loop in wait_reading_process_output when opening in fullscreen (NS)
  2021-05-14 10:55     ` Eli Zaretskii
@ 2021-05-14 11:09       ` Illia Ostapyshyn
  2021-05-14 11:13         ` Eli Zaretskii
  0 siblings, 1 reply; 22+ messages in thread
From: Illia Ostapyshyn @ 2021-05-14 11:09 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 48406

> On May 14, 2021, at 12:55, Eli Zaretskii <eliz@gnu.org> wrote:
> 
>> Like I mentioned, with this line in init.el Emacs exhibits the same behavior.
>> 
>> emacs -Q --execute "(push '(fullscreen . fullboth) default-frame-alist)"
>> doesn't work as well.
> 
> "Doesn't work" in what sense?  What did you expect to happen and what
> did indeed happen?
> 
> And the above line is definitely not for init.el, it's a command for
> invoking Emacs from the shell prompt.  So I'm not sure I understand
> what exactly did you try with that command.

Did not work in the sense of resolving the original issue of this bug
report:

Invoking (push '(fullscreen . fullboth) default-frame-alist) during
Emacs startup causes it to hang, no matter where it is, early-init.el,
init.el or passed through --execute. Same goes for
(toggle-frame-fullscreen) and everything else that makes Emacs switch
to fullscreen mode.






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

* bug#48406: 28.0.50; Emacs stuck in infinite loop in wait_reading_process_output when opening in fullscreen (NS)
  2021-05-14 11:09       ` Illia Ostapyshyn
@ 2021-05-14 11:13         ` Eli Zaretskii
  0 siblings, 0 replies; 22+ messages in thread
From: Eli Zaretskii @ 2021-05-14 11:13 UTC (permalink / raw)
  To: Illia Ostapyshyn; +Cc: 48406

> From: Illia Ostapyshyn <ilya.ostapyshyn@gmail.com>
> Date: Fri, 14 May 2021 13:09:47 +0200
> Cc: 48406@debbugs.gnu.org
> 
> > On May 14, 2021, at 12:55, Eli Zaretskii <eliz@gnu.org> wrote:
> > 
> >> Like I mentioned, with this line in init.el Emacs exhibits the same behavior.
> >> 
> >> emacs -Q --execute "(push '(fullscreen . fullboth) default-frame-alist)"
> >> doesn't work as well.
> > 
> > "Doesn't work" in what sense?  What did you expect to happen and what
> > did indeed happen?
> > 
> > And the above line is definitely not for init.el, it's a command for
> > invoking Emacs from the shell prompt.  So I'm not sure I understand
> > what exactly did you try with that command.
> 
> Did not work in the sense of resolving the original issue of this bug
> report:
> 
> Invoking (push '(fullscreen . fullboth) default-frame-alist) during
> Emacs startup causes it to hang, no matter where it is, early-init.el,
> init.el or passed through --execute. Same goes for
> (toggle-frame-fullscreen) and everything else that makes Emacs switch
> to fullscreen mode.

If this fails in init.el, then we should fix that.  But I don't
promise the fix will make it work in early-init.el.





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

* bug#48406: 28.0.50; Emacs stuck in infinite loop in wait_reading_process_output when opening in fullscreen (NS)
  2021-05-14  9:13     ` Illia Ostapyshyn
@ 2021-05-14 19:32       ` Andrii Kolomoiets
  2021-05-14 20:34         ` Alan Third
                           ` (2 more replies)
  0 siblings, 3 replies; 22+ messages in thread
From: Andrii Kolomoiets @ 2021-05-14 19:32 UTC (permalink / raw)
  To: Illia Ostapyshyn; +Cc: 48406, Alan Third

Illia Ostapyshyn <ilya.ostapyshyn@gmail.com> writes:

> Executing like this doesn't work for me:
>
>     emacs -Q --execute "(push '(fullscreen . fullboth) default-frame-alist)"
>
> I've tried recompiling emacs with you configure flags, same
> result. Could it be the OS version? I doubt it, I recall having this
> issue long time ago, but I bore with it instead of reporting.

Well, I'm on macOS 11.3.1 now, recompiled Emacs with `make bootstrap`
still works fine.

> The patch didn't fix the issue, but there are two more instances of
> waitFullScreenTransition in nsterm.m. I narrowed it down to this one:
>
> @@ -8061,8 +8061,6 @@ - (void)toggleFullScreen: (id)sender
>          {
>  #endif
>            [[self window] toggleFullScreen:sender];
> -          // wait for fullscreen animation complete (bug#28496)
> -          [self waitFullScreenTransition];

This one is needed to avoid `(sleep-for 0.5)` in `frame.el`.

Maybe we need more users affected by this bug to find out the conditions for
reproducing this error.

Can you please enable NSTRACE by uncomenting this line in the
`src/nsterm.h` file:

/* #define NSTRACE_ENABLED 1          */

Hope trace messages will give us some more information on what is going
on.


-- 
Andrii





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

* bug#48406: 28.0.50; Emacs stuck in infinite loop in wait_reading_process_output when opening in fullscreen (NS)
  2021-05-14 19:32       ` Andrii Kolomoiets
@ 2021-05-14 20:34         ` Alan Third
  2021-05-15 19:44           ` Andrii Kolomoiets
  2021-05-14 22:53         ` Filipp Gunbin
  2021-05-15  8:34         ` Illia Ostapyshyn
  2 siblings, 1 reply; 22+ messages in thread
From: Alan Third @ 2021-05-14 20:34 UTC (permalink / raw)
  To: Andrii Kolomoiets; +Cc: Illia Ostapyshyn, 48406

On Fri, May 14, 2021 at 10:32:56PM +0300, Andrii Kolomoiets wrote:
> Illia Ostapyshyn <ilya.ostapyshyn@gmail.com> writes:
> 
> > Executing like this doesn't work for me:
> >
> >     emacs -Q --execute "(push '(fullscreen . fullboth) default-frame-alist)"
> >
> > I've tried recompiling emacs with you configure flags, same
> > result. Could it be the OS version? I doubt it, I recall having this
> > issue long time ago, but I bore with it instead of reporting.
> 
> Well, I'm on macOS 11.3.1 now, recompiled Emacs with `make bootstrap`
> still works fine.

Now I've dug out my Mac I can confirm I see this hang as well.

The problem is that we never reach the NS run loop and therefore
windowDidEnterFullScreen is never called.

It appears ns_select returns in this code:

  if (hold_event_q.nr > 0)
    {
      /* We already have events pending.  */
      raise (SIGIO);
      errno = EINTR;
      return -1;
    }

hmmmm.......

This fixes it for me, but whether it's a good idea or not I don't know:

modified   src/nsterm.m
@@ -7876,6 +7876,7 @@ - (void)windowDidEnterFullScreen:(NSNotification *)notification
   NSTRACE ("[EmacsView windowDidEnterFullScreen:]");
   [self windowDidEnterFullScreen];
   in_fullscreen_transition = NO;
+  ns_send_appdefined (-1);
 }
 
 - (void)windowDidEnterFullScreen /* provided for direct calls */
@@ -7935,6 +7936,7 @@ - (void)windowDidExitFullScreen:(NSNotification *)notification
   NSTRACE ("[EmacsView windowDidExitFullScreen:]");
   [self windowDidExitFullScreen];
   in_fullscreen_transition = NO;
+  ns_send_appdefined (-1);
 }
 
 - (void)windowDidExitFullScreen /* provided for direct calls */
@@ -7974,7 +7976,7 @@ - (void)waitFullScreenTransition
   while ([self inFullScreenTransition])
     {
       NSTRACE ("wait for fullscreen");
-      wait_reading_process_output (0, 300000000, 0, 1, Qnil, NULL, 0);
+      [NSApp run];
     }
 #endif
 }

-- 
Alan Third





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

* bug#48406: 28.0.50; Emacs stuck in infinite loop in wait_reading_process_output when opening in fullscreen (NS)
  2021-05-14 19:32       ` Andrii Kolomoiets
  2021-05-14 20:34         ` Alan Third
@ 2021-05-14 22:53         ` Filipp Gunbin
  2021-05-15  8:34         ` Illia Ostapyshyn
  2 siblings, 0 replies; 22+ messages in thread
From: Filipp Gunbin @ 2021-05-14 22:53 UTC (permalink / raw)
  To: Andrii Kolomoiets; +Cc: Illia Ostapyshyn, Alan Third, 48406

On 14/05/2021 22:32 +0300, Andrii Kolomoiets wrote:

> Maybe we need more users affected by this bug to find out the conditions for
> reproducing this error.

I've reported a similar bug#41055 a year ago (and can reproduce now).

Filipp





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

* bug#48406: 28.0.50; Emacs stuck in infinite loop in wait_reading_process_output when opening in fullscreen (NS)
  2021-05-14 19:32       ` Andrii Kolomoiets
  2021-05-14 20:34         ` Alan Third
  2021-05-14 22:53         ` Filipp Gunbin
@ 2021-05-15  8:34         ` Illia Ostapyshyn
  2 siblings, 0 replies; 22+ messages in thread
From: Illia Ostapyshyn @ 2021-05-15  8:34 UTC (permalink / raw)
  To: Alan Third; +Cc: 48406, fgunbin, Andrii Kolomoiets

[-- Attachment #1: Type: text/plain, Size: 648 bytes --]

> Now I've dug out my Mac I can confirm I see this hang as well.
> 
> The problem is that we never reach the NS run loop and therefore
> windowDidEnterFullScreen is never called.
> 
> It appears ns_select returns in this code:
> 
>   if (hold_event_q.nr > 0)
>     {
>       /* We already have events pending.  */
>       raise (SIGIO);
>       errno = EINTR;
>       return -1;
>     }
> 
> hmmmm.......
> 
> This fixes it for me, but whether it's a good idea or not I don't know:

I can confirm that the patch has worked for me as well.

As Andrii suggested, I'm attaching the output produced by nstrace (without the patch)

[-- Attachment #2: nstrace.txt --]
[-- Type: text/plain, Size: 81145 bytes --]

nsterm.m  :  624: [    0]  ns_init_locale
nsterm.m  : 5380: [    1]  ns_term_init
nsterm.m  : 5665: [    2]  | [EmacsApp init]
nsterm.m  : 5317: [    3]  | ns_create_terminal
nsterm.m  : 5462: [    4]  +--- Colors
nsterm.m  : 5511: [    5]  +--- Versions
nsterm.m  : 5530: [    6]  +--- Menu init
nsterm.m  : 5596: [    7]  +--- Input/output types
nsterm.m  : 5615: [    8]  +--- Call NSApp run
nsterm.m  : 5683: [    9]  | [EmacsApp run]
nsterm.m  : 5889: [   10]  | | [EmacsApp applicationDidFinishLaunching:]
nsterm.m  : 5626: [   11]  +--- ns_term_init done
nsterm.m  : 2407: [   12]  ns_lisp_to_color
nsterm.m  : 2303: [   13]  | ns_get_color(Black, **)
nsterm.m  : 2407: [   14]  ns_lisp_to_color
nsterm.m  : 2303: [   15]  | ns_get_color(White, **)
nsterm.m  : 2135: [   16]  ns_set_z_group
nsterm.m  : 2096: [   17]  ns_set_no_focus_on_map
nsterm.m  : 2115: [   18]  ns_set_no_accept_focus
nsfns.m   :  633: [   19]  ns_set_tool_bar_lines
nsmenu.m  :  964: [   20]  | update_frame_tool_bar
nsfns.m   :  539: [   21]  ns_set_title
nsterm.m  : 7476: [   22]  [EmacsView initFrameFromEmacs:]
nsterm.m  : 7477: [   23]  +--- cols:80 lines:36
nsmenu.m  : 1093: [   24]  | [EmacsToolbar initForView: withIdentifier:]
nsmenu.m  : 1222: [   25]  | [EmacsToolbar setVisible:0]
nsmenu.m  : 1204: [   26]  | [EmacsToolbar toolbarDefaultItemIdentifiers:]
nsterm.m  : 9114: [   27]  | [EmacsWindow setAppearance]
nsterm.m  : 9157: [   28]  | [EmacsWindow setFrameTopLeftPoint:(X:0 Y:900)]
nsterm.m  : 7651: [   29]  | | [EmacsView windowDidMove:]
nsterm.m  : 7601: [   30]  +--- new frame: (X:0 Y:364)/(W:580 H:536)
nsfns.m   :  791: [   31]  ns_set_icon_type
nsfns.m   :  724: [   32]  | ns_implicitly_set_icon_type
nsterm.m  : 8733: [   33]  | | [EmacsView setMiniwindowImage:0]
nsterm.m  : 2506: [   34]  ns_set_frame_alpha
nsterm.m  : 1891: [   35]  ns_set_window_size
nsterm.m  : 1896: [   36]  +--- current: (X:0 Y:364)/(W:580 H:536)
nsterm.m  : 1897: [   37]  +--- Width:595 Height:508
nsterm.m  : 1898: [   38]  +--- Font 7 x 14
nsterm.m  : 8005: [   39]  | [EmacsView isFullscreen] ->> 0
nsterm.m  : 9138: [   40]  | [EmacsWindow setFrame:(X:0 Y:364)/(W:595 H:536) display:0]
nsterm.m  : 7304: [   41]  | | [EmacsView viewDidResize]
nsterm.m  : 7339: [   42]  | | +--- New size: (W:580 H:508)
nsterm.m  : 7340: [   43]  | | +--- Original size: (W:595 H:508)
nsterm.m  : 7304: [   44]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [   45]  | | +--- No change
nsterm.m  : 7304: [   46]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [   47]  | | +--- No change
nsterm.m  : 7304: [   48]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [   49]  | | +--- No change
nsterm.m  : 7304: [   50]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [   51]  | | +--- No change
nsterm.m  : 7304: [   52]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [   53]  | | +--- No change
nsterm.m  : 7304: [   54]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [   55]  | | +--- No change
nsterm.m  : 7304: [   56]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [   57]  | | +--- No change
nsterm.m  : 7422: [   58]  | | [EmacsView setFrame:(X:0 Y:0)/(W:595 H:508)]
nsterm.m  : 7304: [   59]  | | | [EmacsView viewDidResize]
nsterm.m  : 7339: [   60]  | | | +--- New size: (W:595 H:508)
nsterm.m  : 7340: [   61]  | | | +--- Original size: (W:595 H:508)
nsterm.m  : 7304: [   62]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [   63]  | | +--- No change
nsterm.m  : 7244: [   64]  | | [EmacsView windowDidResize:]
nsterm.m  : 7264: [   65]  | | +--- frame: (X:0 Y:364)/(W:595 H:536)
nsterm.m  : 7304: [   66]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [   67]  | | +--- No change
nsterm.m  : 7304: [   68]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [   69]  | | +--- No change
nsterm.m  : 7304: [   70]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [   71]  | | +--- No change
nsterm.m  : 2407: [   72]  ns_lisp_to_color
nsterm.m  : 2303: [   73]  | ns_get_color(White, **)
nsterm.m  : 2407: [   74]  ns_lisp_to_color
nsterm.m  : 2303: [   75]  | ns_get_color(White, **)
nsterm.m  : 2407: [   76]  ns_lisp_to_color
nsterm.m  : 2303: [   77]  | ns_get_color(black, **)
nsterm.m  : 1627: [   78]  ns_make_frame_visible
nsterm.m  : 8786: [   79]  | [EmacsWindow makeKeyAndOrderFront:]
nsterm.m  : 8950: [   80]  | | [EmacsWindow constrainFrameRect:(X:0 Y:364)/(W:595 H:536) toScreen:]
nsterm.m  : 8962: [   81]  | | +--- Screens have separate spaces
nsterm.m  : 8964: [   82]  | | +->> (X:0 Y:339)/(W:595 H:536)
nsterm.m  : 9138: [   83]  | | [EmacsWindow setFrame:(X:0 Y:339)/(W:595 H:536) display:1]
nsterm.m  : 7651: [   84]  | | | [EmacsView windowDidMove:]
nsterm.m  : 6341: [   85]  | | [EmacsView acceptsFirstResponder]
nsterm.m  : 8005: [   86]  | [EmacsView isFullscreen] ->> 0
nsterm.m  : 8005: [   87]  [EmacsView isFullscreen] ->> 0
nsterm.m  : 1891: [   88]  ns_set_window_size
nsterm.m  : 1896: [   89]  +--- current: (X:0 Y:339)/(W:595 H:536)
nsterm.m  : 1897: [   90]  +--- Width:595 Height:580
nsterm.m  : 1898: [   91]  +--- Font 7 x 16
nsterm.m  : 8005: [   92]  | [EmacsView isFullscreen] ->> 0
nsterm.m  : 9138: [   93]  | [EmacsWindow setFrame:(X:0 Y:267)/(W:595 H:608) display:0]
nsterm.m  : 8950: [   94]  | | [EmacsWindow constrainFrameRect:(X:0 Y:267)/(W:595 H:608) toScreen:]
nsterm.m  : 8962: [   95]  | | +--- Screens have separate spaces
nsterm.m  : 8964: [   96]  | | +->> (X:0 Y:267)/(W:595 H:608)
nsterm.m  : 7304: [   97]  | | [EmacsView viewDidResize]
nsterm.m  : 7339: [   98]  | | +--- New size: (W:595 H:508)
nsterm.m  : 7340: [   99]  | | +--- Original size: (W:595 H:580)
nsterm.m  : 7304: [  100]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  101]  | | +--- No change
nsterm.m  : 7422: [  102]  | | [EmacsView setFrame:(X:0 Y:0)/(W:595 H:580)]
nsterm.m  : 7304: [  103]  | | | [EmacsView viewDidResize]
nsterm.m  : 7339: [  104]  | | | +--- New size: (W:595 H:580)
nsterm.m  : 7340: [  105]  | | | +--- Original size: (W:595 H:580)
nsterm.m  : 7304: [  106]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  107]  | | +--- No change
nsterm.m  : 7244: [  108]  | | [EmacsView windowDidResize:]
nsterm.m  : 7264: [  109]  | | +--- frame: (X:0 Y:267)/(W:595 H:608)
nsterm.m  : 3017: [  110]  | | ns_clear_under_internal_border
nsfns.m   :  524: [  111]  | | ns_implicitly_set_name
nsfns.m   :  465: [  112]  | | | ns_set_represented_filename
nsfns.m   :  422: [  113]  | | | ns_set_name
nsterm.m  : 7304: [  114]  | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  115]  | | | | +--- No change
nsmenu.m  :  120: [  116]  | | ns_update_menubar
nsimage.m :   62: [  117]  | | ns_can_use_native_image_api
nsimage.m :   62: [  118]  | | ns_can_use_native_image_api
nsimage.m :   62: [  119]  | | ns_can_use_native_image_api
nsimage.m :  118: [  120]  | | ns_image_for_XPM
nsimage.m :   62: [  121]  | | ns_can_use_native_image_api
nsimage.m :   62: [  122]  | | ns_can_use_native_image_api
nsimage.m :   62: [  123]  | | ns_can_use_native_image_api
nsimage.m :  118: [  124]  | | ns_image_for_XPM
nsimage.m :   62: [  125]  | | ns_can_use_native_image_api
nsimage.m :   62: [  126]  | | ns_can_use_native_image_api
nsimage.m :   62: [  127]  | | ns_can_use_native_image_api
nsimage.m :  118: [  128]  | | ns_image_for_XPM
nsimage.m :   62: [  129]  | | ns_can_use_native_image_api
nsimage.m :   62: [  130]  | | ns_can_use_native_image_api
nsimage.m :   62: [  131]  | | ns_can_use_native_image_api
nsimage.m :  118: [  132]  | | ns_image_for_XPM
nsimage.m :   62: [  133]  | | ns_can_use_native_image_api
nsimage.m :   62: [  134]  | | ns_can_use_native_image_api
nsimage.m :   62: [  135]  | | ns_can_use_native_image_api
nsimage.m :  118: [  136]  | | ns_image_for_XPM
nsimage.m :   62: [  137]  | | ns_can_use_native_image_api
nsimage.m :   62: [  138]  | | ns_can_use_native_image_api
nsimage.m :   62: [  139]  | | ns_can_use_native_image_api
nsimage.m :  118: [  140]  | | ns_image_for_XPM
nsimage.m :   62: [  141]  | | ns_can_use_native_image_api
nsimage.m :   62: [  142]  | | ns_can_use_native_image_api
nsimage.m :   62: [  143]  | | ns_can_use_native_image_api
nsimage.m :  118: [  144]  | | ns_image_for_XPM
nsimage.m :   62: [  145]  | | ns_can_use_native_image_api
nsimage.m :   62: [  146]  | | ns_can_use_native_image_api
nsimage.m :   62: [  147]  | | ns_can_use_native_image_api
nsimage.m :  118: [  148]  | | ns_image_for_XPM
nsimage.m :   62: [  149]  | | ns_can_use_native_image_api
nsimage.m :   62: [  150]  | | ns_can_use_native_image_api
nsimage.m :   62: [  151]  | | ns_can_use_native_image_api
nsimage.m :  118: [  152]  | | ns_image_for_XPM
nsimage.m :   62: [  153]  | | ns_can_use_native_image_api
nsimage.m :   62: [  154]  | | ns_can_use_native_image_api
nsimage.m :   62: [  155]  | | ns_can_use_native_image_api
nsimage.m :  118: [  156]  | | ns_image_for_XPM
nsterm.m  : 5049: [  157]  | | ns_condemn_scroll_bars
nsterm.m  : 4892: [  158]  | | ns_set_vertical_scroll_bar
nsterm.m  : 9222: [  159]  | | | [EmacsScroller initFrame: window:]
nsterm.m  : 9376: [  160]  | | | [EmacsScroller setPosition:portion:whole:]
nsterm.m  : 5068: [  161]  | | ns_redeem_scroll_bar
nsterm.m  : 9314: [  162]  | | | [EmacsScroller reprieve]
nsterm.m  : 4892: [  163]  | | ns_set_vertical_scroll_bar
nsterm.m  : 5068: [  164]  | | ns_redeem_scroll_bar
nsterm.m  : 5097: [  165]  | | ns_judge_scroll_bars
nsterm.m  : 9322: [  166]  | | | [EmacsScroller judge]
nsterm.m  : 5049: [  167]  | | ns_condemn_scroll_bars
nsterm.m  : 9306: [  168]  | | | [EmacsScroller condemn]
nsmenu.m  :  964: [  169]  | | update_frame_tool_bar
nsmenu.m  : 1119: [  170]  | | | [EmacsToolbar clearActive]
nsimage.m :   62: [  171]  | | | ns_can_use_native_image_api
nsimage.m :   62: [  172]  | | | ns_can_use_native_image_api
nsimage.m :  118: [  173]  | | | ns_image_for_XPM
nsmenu.m  : 1151: [  174]  | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  175]  | | | ns_can_use_native_image_api
nsimage.m :   62: [  176]  | | | ns_can_use_native_image_api
nsimage.m :  118: [  177]  | | | ns_image_for_XPM
nsmenu.m  : 1151: [  178]  | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  179]  | | | ns_can_use_native_image_api
nsimage.m :   62: [  180]  | | | ns_can_use_native_image_api
nsimage.m :  118: [  181]  | | | ns_image_for_XPM
nsmenu.m  : 1151: [  182]  | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  183]  | | | ns_can_use_native_image_api
nsimage.m :   62: [  184]  | | | ns_can_use_native_image_api
nsimage.m :  118: [  185]  | | | ns_image_for_XPM
nsmenu.m  : 1151: [  186]  | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  187]  | | | ns_can_use_native_image_api
nsimage.m :   62: [  188]  | | | ns_can_use_native_image_api
nsimage.m :  118: [  189]  | | | ns_image_for_XPM
nsmenu.m  : 1151: [  190]  | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  191]  | | | ns_can_use_native_image_api
nsimage.m :   62: [  192]  | | | ns_can_use_native_image_api
nsimage.m :  118: [  193]  | | | ns_image_for_XPM
nsmenu.m  : 1151: [  194]  | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  195]  | | | ns_can_use_native_image_api
nsimage.m :   62: [  196]  | | | ns_can_use_native_image_api
nsimage.m :  118: [  197]  | | | ns_image_for_XPM
nsmenu.m  : 1151: [  198]  | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  199]  | | | ns_can_use_native_image_api
nsimage.m :   62: [  200]  | | | ns_can_use_native_image_api
nsimage.m :  118: [  201]  | | | ns_image_for_XPM
nsmenu.m  : 1151: [  202]  | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  203]  | | | ns_can_use_native_image_api
nsimage.m :   62: [  204]  | | | ns_can_use_native_image_api
nsimage.m :  118: [  205]  | | | ns_image_for_XPM
nsmenu.m  : 1151: [  206]  | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  207]  | | | ns_can_use_native_image_api
nsimage.m :   62: [  208]  | | | ns_can_use_native_image_api
nsimage.m :  118: [  209]  | | | ns_image_for_XPM
nsmenu.m  : 1151: [  210]  | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsmenu.m  : 1222: [  211]  | | | [EmacsToolbar setVisible:1]
nsterm.m  : 7304: [  212]  | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  213]  | | | | +--- No change
nsterm.m  : 9149: [  214]  | | | | [EmacsWindow setFrame:(X:0 Y:215)/(W:595 H:660) display:1 performAnimation:1]
nsterm.m  : 8950: [  215]  | | | | | [EmacsWindow constrainFrameRect:(X:0 Y:215)/(W:595 H:660) toScreen:]
nsterm.m  : 8962: [  216]  | | | | | +--- Screens have separate spaces
nsterm.m  : 8964: [  217]  | | | | | +->> (X:0 Y:215)/(W:595 H:660)
nsterm.m  : 9138: [  218]  | | | | | [EmacsWindow setFrame:(X:0 Y:266)/(W:595 H:609) display:1]
nsterm.m  : 7304: [  219]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  220]  | | | | | | +--- No change
nsterm.m  : 7304: [  221]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  222]  | | | | | | +--- No change
nsterm.m  : 7304: [  223]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  224]  | | | | | | +--- No change
nsterm.m  : 7304: [  225]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  226]  | | | | | | +--- No change
nsterm.m  : 7304: [  227]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  228]  | | | | | | +--- No change
nsterm.m  : 7422: [  229]  | | | | | | [EmacsView setFrame:(X:0 Y:0)/(W:595 H:581)]
nsterm.m  : 7304: [  230]  | | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7339: [  231]  | | | | | | | +--- New size: (W:595 H:581)
nsterm.m  : 7340: [  232]  | | | | | | | +--- Original size: (W:595 H:580)
nsterm.m  : 9275: [  233]  | | | | | | [EmacsScroller setFrame:]
nsterm.m  : 7304: [  234]  | | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  235]  | | | | | | | +--- No change
nsterm.m  : 7304: [  236]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  237]  | | | | | | +--- No change
nsterm.m  : 7244: [  238]  | | | | | | [EmacsView windowDidResize:]
nsterm.m  : 7252: [  239]  | | | | | | +--- Ignored (in animation)
nsterm.m  : 9138: [  240]  | | | | | [EmacsWindow setFrame:(X:0 Y:261)/(W:595 H:614) display:1]
nsterm.m  : 7304: [  241]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  242]  | | | | | | +--- No change
nsterm.m  : 7304: [  243]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  244]  | | | | | | +--- No change
nsterm.m  : 7304: [  245]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  246]  | | | | | | +--- No change
nsterm.m  : 7304: [  247]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  248]  | | | | | | +--- No change
nsterm.m  : 7422: [  249]  | | | | | | [EmacsView setFrame:(X:0 Y:0)/(W:595 H:586)]
nsterm.m  : 7304: [  250]  | | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7339: [  251]  | | | | | | | +--- New size: (W:595 H:586)
nsterm.m  : 7340: [  252]  | | | | | | | +--- Original size: (W:595 H:580)
nsterm.m  : 9275: [  253]  | | | | | | [EmacsScroller setFrame:]
nsterm.m  : 7304: [  254]  | | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  255]  | | | | | | | +--- No change
nsterm.m  : 7304: [  256]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  257]  | | | | | | +--- No change
nsterm.m  : 7244: [  258]  | | | | | | [EmacsView windowDidResize:]
nsterm.m  : 7252: [  259]  | | | | | | +--- Ignored (in animation)
nsterm.m  : 9138: [  260]  | | | | | [EmacsWindow setFrame:(X:0 Y:251)/(W:595 H:624) display:1]
nsterm.m  : 7304: [  261]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  262]  | | | | | | +--- No change
nsterm.m  : 7304: [  263]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  264]  | | | | | | +--- No change
nsterm.m  : 7304: [  265]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  266]  | | | | | | +--- No change
nsterm.m  : 7304: [  267]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  268]  | | | | | | +--- No change
nsterm.m  : 7422: [  269]  | | | | | | [EmacsView setFrame:(X:0 Y:0)/(W:595 H:596)]
nsterm.m  : 7304: [  270]  | | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7339: [  271]  | | | | | | | +--- New size: (W:595 H:596)
nsterm.m  : 7340: [  272]  | | | | | | | +--- Original size: (W:595 H:580)
nsterm.m  : 9275: [  273]  | | | | | | [EmacsScroller setFrame:]
nsterm.m  : 7304: [  274]  | | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  275]  | | | | | | | +--- No change
nsterm.m  : 7304: [  276]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  277]  | | | | | | +--- No change
nsterm.m  : 7244: [  278]  | | | | | | [EmacsView windowDidResize:]
nsterm.m  : 7252: [  279]  | | | | | | +--- Ignored (in animation)
nsterm.m  : 9138: [  280]  | | | | | [EmacsWindow setFrame:(X:0 Y:237)/(W:595 H:638) display:1]
nsterm.m  : 7304: [  281]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  282]  | | | | | | +--- No change
nsterm.m  : 7304: [  283]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  284]  | | | | | | +--- No change
nsterm.m  : 7304: [  285]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  286]  | | | | | | +--- No change
nsterm.m  : 7304: [  287]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  288]  | | | | | | +--- No change
nsterm.m  : 7304: [  289]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  290]  | | | | | | +--- No change
nsterm.m  : 7304: [  291]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  292]  | | | | | | +--- No change
nsterm.m  : 7304: [  293]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  294]  | | | | | | +--- No change
nsterm.m  : 7304: [  295]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  296]  | | | | | | +--- No change
nsterm.m  : 7304: [  297]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  298]  | | | | | | +--- No change
nsterm.m  : 7304: [  299]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  300]  | | | | | | +--- No change
nsterm.m  : 7304: [  301]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  302]  | | | | | | +--- No change
nsterm.m  : 7304: [  303]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  304]  | | | | | | +--- No change
nsterm.m  : 7422: [  305]  | | | | | | [EmacsView setFrame:(X:0 Y:0)/(W:595 H:608)]
nsterm.m  : 7304: [  306]  | | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7339: [  307]  | | | | | | | +--- New size: (W:595 H:608)
nsterm.m  : 7340: [  308]  | | | | | | | +--- Original size: (W:595 H:580)
nsterm.m  : 9275: [  309]  | | | | | | [EmacsScroller setFrame:]
nsterm.m  : 7304: [  310]  | | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  311]  | | | | | | | +--- No change
nsterm.m  : 7304: [  312]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  313]  | | | | | | +--- No change
nsterm.m  : 7244: [  314]  | | | | | | [EmacsView windowDidResize:]
nsterm.m  : 7252: [  315]  | | | | | | +--- Ignored (in animation)
nsterm.m  : 9138: [  316]  | | | | | [EmacsWindow setFrame:(X:0 Y:225)/(W:595 H:650) display:1]
nsterm.m  : 7304: [  317]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  318]  | | | | | | +--- No change
nsterm.m  : 7304: [  319]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  320]  | | | | | | +--- No change
nsterm.m  : 7304: [  321]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  322]  | | | | | | +--- No change
nsterm.m  : 7304: [  323]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  324]  | | | | | | +--- No change
nsterm.m  : 7304: [  325]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  326]  | | | | | | +--- No change
nsterm.m  : 7304: [  327]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  328]  | | | | | | +--- No change
nsterm.m  : 7304: [  329]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  330]  | | | | | | +--- No change
nsterm.m  : 7304: [  331]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  332]  | | | | | | +--- No change
nsterm.m  : 7304: [  333]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  334]  | | | | | | +--- No change
nsterm.m  : 7304: [  335]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  336]  | | | | | | +--- No change
nsterm.m  : 7304: [  337]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  338]  | | | | | | +--- No change
nsterm.m  : 7304: [  339]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  340]  | | | | | | +--- No change
nsterm.m  : 7244: [  341]  | | | | | | [EmacsView windowDidResize:]
nsterm.m  : 7252: [  342]  | | | | | | +--- Ignored (in animation)
nsterm.m  : 9138: [  343]  | | | | | [EmacsWindow setFrame:(X:0 Y:217)/(W:595 H:658) display:1]
nsterm.m  : 7304: [  344]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  345]  | | | | | | +--- No change
nsterm.m  : 7304: [  346]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  347]  | | | | | | +--- No change
nsterm.m  : 7304: [  348]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  349]  | | | | | | +--- No change
nsterm.m  : 7304: [  350]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  351]  | | | | | | +--- No change
nsterm.m  : 7304: [  352]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  353]  | | | | | | +--- No change
nsterm.m  : 7304: [  354]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  355]  | | | | | | +--- No change
nsterm.m  : 7304: [  356]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  357]  | | | | | | +--- No change
nsterm.m  : 7304: [  358]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  359]  | | | | | | +--- No change
nsterm.m  : 7304: [  360]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  361]  | | | | | | +--- No change
nsterm.m  : 7304: [  362]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  363]  | | | | | | +--- No change
nsterm.m  : 7304: [  364]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  365]  | | | | | | +--- No change
nsterm.m  : 7304: [  366]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  367]  | | | | | | +--- No change
nsterm.m  : 7244: [  368]  | | | | | | [EmacsView windowDidResize:]
nsterm.m  : 7252: [  369]  | | | | | | +--- Ignored (in animation)
nsterm.m  : 9138: [  370]  | | | | | [EmacsWindow setFrame:(X:0 Y:215)/(W:595 H:660) display:1]
nsterm.m  : 7304: [  371]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  372]  | | | | | | +--- No change
nsterm.m  : 7304: [  373]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  374]  | | | | | | +--- No change
nsterm.m  : 7304: [  375]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  376]  | | | | | | +--- No change
nsterm.m  : 7304: [  377]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  378]  | | | | | | +--- No change
nsterm.m  : 7304: [  379]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  380]  | | | | | | +--- No change
nsterm.m  : 7304: [  381]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  382]  | | | | | | +--- No change
nsterm.m  : 7304: [  383]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  384]  | | | | | | +--- No change
nsterm.m  : 7304: [  385]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  386]  | | | | | | +--- No change
nsterm.m  : 7304: [  387]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  388]  | | | | | | +--- No change
nsterm.m  : 7304: [  389]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  390]  | | | | | | +--- No change
nsterm.m  : 7304: [  391]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  392]  | | | | | | +--- No change
nsterm.m  : 7304: [  393]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  394]  | | | | | | +--- No change
nsterm.m  : 7244: [  395]  | | | | | | [EmacsView windowDidResize:]
nsterm.m  : 7252: [  396]  | | | | | | +--- Ignored (in animation)
nsterm.m  : 7282: [  397]  | | | | | [EmacsView viewDidEndLiveResize]
nsterm.m  : 7304: [  398]  | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  399]  | | | | +--- No change
nsterm.m  : 7304: [  400]  | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  401]  | | | | +--- No change
nsterm.m  : 7304: [  402]  | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  403]  | | | | +--- No change
nsterm.m  : 7304: [  404]  | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  405]  | | | | +--- No change
nsterm.m  : 7304: [  406]  | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  407]  | | | | +--- No change
nsmenu.m  : 1139: [  408]  | | | [EmacsToolbar changed]
nsmenu.m  : 1204: [  409]  | | | [EmacsToolbar toolbarDefaultItemIdentifiers:]
nsmenu.m  : 1204: [  410]  | | | [EmacsToolbar toolbarDefaultItemIdentifiers:]
nsmenu.m  : 1204: [  411]  | | | [EmacsToolbar toolbarDefaultItemIdentifiers:]
nsterm.m  : 7304: [  412]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  413]  | | | +--- No change
nsmenu.m  : 1196: [  414]  | | | [EmacsToolbar toolbar: ...]
nsmenu.m  : 1196: [  415]  | | | [EmacsToolbar toolbar: ...]
nsmenu.m  : 1196: [  416]  | | | [EmacsToolbar toolbar: ...]
nsmenu.m  : 1196: [  417]  | | | [EmacsToolbar toolbar: ...]
nsmenu.m  : 1196: [  418]  | | | [EmacsToolbar toolbar: ...]
nsmenu.m  : 1196: [  419]  | | | [EmacsToolbar toolbar: ...]
nsmenu.m  : 1196: [  420]  | | | [EmacsToolbar toolbar: ...]
nsmenu.m  : 1196: [  421]  | | | [EmacsToolbar toolbar: ...]
nsmenu.m  : 1196: [  422]  | | | [EmacsToolbar toolbar: ...]
nsmenu.m  : 1196: [  423]  | | | [EmacsToolbar toolbar: ...]
nsterm.m  : 7304: [  424]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  425]  | | | +--- No change
nsterm.m  : 7304: [  426]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  427]  | | | +--- No change
nsterm.m  : 7304: [  428]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  429]  | | | +--- No change
nsterm.m  : 7304: [  430]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  431]  | | | +--- No change
nsterm.m  : 7304: [  432]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  433]  | | | +--- No change
nsterm.m  : 7304: [  434]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  435]  | | | +--- No change
nsterm.m  : 7304: [  436]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  437]  | | | +--- No change
nsterm.m  : 7304: [  438]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  439]  | | | +--- No change
nsterm.m  : 7304: [  440]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  441]  | | | +--- No change
nsterm.m  : 7304: [  442]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  443]  | | | +--- No change
nsterm.m  : 7304: [  444]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  445]  | | | +--- No change
nsterm.m  : 7304: [  446]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  447]  | | | +--- No change
nsterm.m  : 7304: [  448]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  449]  | | | +--- No change
nsterm.m  : 7304: [  450]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  451]  | | | +--- No change
nsterm.m  : 7304: [  452]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  453]  | | | +--- No change
nsterm.m  : 7304: [  454]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  455]  | | | +--- No change
nsterm.m  : 4892: [  456]  | | ns_set_vertical_scroll_bar
nsterm.m  : 9275: [  457]  | | | [EmacsScroller setFrame:]
nsterm.m  : 7304: [  458]  | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  459]  | | | | +--- No change
nsterm.m  : 9376: [  460]  | | | [EmacsScroller setPosition:portion:whole:]
nsterm.m  : 5068: [  461]  | | ns_redeem_scroll_bar
nsterm.m  : 9314: [  462]  | | | [EmacsScroller reprieve]
nsterm.m  : 4892: [  463]  | | ns_set_vertical_scroll_bar
nsterm.m  : 5068: [  464]  | | ns_redeem_scroll_bar
nsterm.m  : 5097: [  465]  | | ns_judge_scroll_bars
nsterm.m  : 9322: [  466]  | | | [EmacsScroller judge]
nsterm.m  : 3017: [  467]  | | ns_clear_under_internal_border
nsmenu.m  :  120: [  468]  | | ns_update_menubar
nsterm.m  : 5049: [  469]  | | ns_condemn_scroll_bars
nsterm.m  : 9306: [  470]  | | | [EmacsScroller condemn]
nsmenu.m  :  964: [  471]  | | update_frame_tool_bar
nsmenu.m  : 1119: [  472]  | | | [EmacsToolbar clearActive]
nsimage.m :   62: [  473]  | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  474]  | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  475]  | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  476]  | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  477]  | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  478]  | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  479]  | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  480]  | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  481]  | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  482]  | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  483]  | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  484]  | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  485]  | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  486]  | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  487]  | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  488]  | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  489]  | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  490]  | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  491]  | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  492]  | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsmenu.m  : 1139: [  493]  | | | [EmacsToolbar changed]
nsterm.m  : 4892: [  494]  | | ns_set_vertical_scroll_bar
nsterm.m  : 9275: [  495]  | | | [EmacsScroller setFrame:]
nsterm.m  : 7304: [  496]  | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  497]  | | | | +--- No change
nsterm.m  : 9376: [  498]  | | | [EmacsScroller setPosition:portion:whole:]
nsterm.m  : 5068: [  499]  | | ns_redeem_scroll_bar
nsterm.m  : 9314: [  500]  | | | [EmacsScroller reprieve]
nsterm.m  : 4892: [  501]  | | ns_set_vertical_scroll_bar
nsterm.m  : 5068: [  502]  | | ns_redeem_scroll_bar
nsterm.m  : 5097: [  503]  | | ns_judge_scroll_bars
nsterm.m  : 9322: [  504]  | | | [EmacsScroller judge]
nsterm.m  : 3017: [  505]  | | ns_clear_under_internal_border
nsterm.m  : 3334: [  506]  | | ns_draw_window_cursor
nsterm.m  : 3334: [  507]  | | ns_draw_window_cursor
nsterm.m  : 8505: [  508]  | | [EmacsView updateLayer]
nsterm.m  : 7304: [  509]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  510]  | | +--- No change
nsterm.m  : 7304: [  511]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  512]  | | +--- No change
nsterm.m  : 7304: [  513]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  514]  | | +--- No change
nsterm.m  : 7304: [  515]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  516]  | | +--- No change
nsterm.m  : 7304: [  517]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  518]  | | +--- No change
nsterm.m  : 7304: [  519]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  520]  | | +--- No change
nsterm.m  : 7304: [  521]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  522]  | | +--- No change
nsterm.m  : 7304: [  523]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  524]  | | +--- No change
nsterm.m  : 7304: [  525]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  526]  | | +--- No change
nsterm.m  : 7304: [  527]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  528]  | | +--- No change
nsterm.m  : 7304: [  529]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  530]  | | +--- No change
nsterm.m  : 7304: [  531]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  532]  | | +--- No change
nsterm.m  : 7304: [  533]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  534]  | | +--- No change
nsterm.m  : 7304: [  535]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  536]  | | +--- No change
nsterm.m  : 7304: [  537]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  538]  | | +--- No change
nsterm.m  : 7304: [  539]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  540]  | | +--- No change
nsterm.m  : 7304: [  541]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  542]  | | +--- No change
nsterm.m  : 7304: [  543]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  544]  | | +--- No change
nsterm.m  : 7304: [  545]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  546]  | | +--- No change
nsterm.m  : 7304: [  547]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  548]  | | +--- No change
nsterm.m  : 7304: [  549]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  550]  | | +--- No change
nsterm.m  : 3017: [  551]  ns_clear_under_internal_border
nsterm.m  : 3334: [  552]  ns_draw_window_cursor
nsterm.m  : 3334: [  553]  ns_draw_window_cursor
nsterm.m  : 3334: [  554]  ns_draw_window_cursor
nsterm.m  : 3334: [  555]  ns_draw_window_cursor
nsterm.m  : 3334: [  556]  ns_draw_window_cursor
nsterm.m  : 3334: [  557]  ns_draw_window_cursor
nsterm.m  : 3334: [  558]  ns_draw_window_cursor
nsterm.m  : 3334: [  559]  ns_draw_window_cursor
nsterm.m  : 3334: [  560]  ns_draw_window_cursor
nsterm.m  : 3334: [  561]  ns_draw_window_cursor
nsterm.m  : 3334: [  562]  ns_draw_window_cursor
nsterm.m  : 3334: [  563]  ns_draw_window_cursor
nsterm.m  : 2407: [  564]  ns_lisp_to_color
nsterm.m  : 2303: [  565]  | ns_get_color(#ffffff, **)
nsterm.m  : 2407: [  566]  ns_lisp_to_color
nsterm.m  : 2303: [  567]  | ns_get_color(#ffffff, **)
nsterm.m  : 2407: [  568]  ns_lisp_to_color
nsterm.m  : 2303: [  569]  | ns_get_color(#ffffff, **)
nsterm.m  : 2407: [  570]  ns_lisp_to_color
nsterm.m  : 2303: [  571]  | ns_get_color(#000000, **)
nsterm.m  : 2407: [  572]  ns_lisp_to_color
nsterm.m  : 2303: [  573]  | ns_get_color(#000000, **)
nsterm.m  : 3017: [  574]  ns_clear_under_internal_border
nsterm.m  : 3334: [  575]  ns_draw_window_cursor
nsterm.m  : 3334: [  576]  ns_draw_window_cursor
nsterm.m  : 3334: [  577]  ns_draw_window_cursor
nsterm.m  : 3334: [  578]  ns_draw_window_cursor
nsimage.m :   62: [  579]  ns_can_use_native_image_api
nsterm.m  : 3334: [  580]  ns_draw_window_cursor
nsfns.m   :  633: [  581]  ns_set_tool_bar_lines
nsmenu.m  :  940: [  582]  | free_frame_tool_bar
nsmenu.m  : 1222: [  583]  | | [EmacsToolbar setVisible:0]
nsterm.m  : 9149: [  584]  | | | [EmacsWindow setFrame:(X:0 Y:267)/(W:595 H:608) display:1 performAnimation:1]
nsterm.m  : 8950: [  585]  | | | | [EmacsWindow constrainFrameRect:(X:0 Y:267)/(W:595 H:608) toScreen:]
nsterm.m  : 8962: [  586]  | | | | +--- Screens have separate spaces
nsterm.m  : 8964: [  587]  | | | | +->> (X:0 Y:267)/(W:595 H:608)
nsterm.m  : 9138: [  588]  | | | | [EmacsWindow setFrame:(X:0 Y:215)/(W:595 H:660) display:1]
nsterm.m  : 8505: [  589]  | | | | [EmacsView updateLayer]
nsterm.m  : 9138: [  590]  | | | | [EmacsWindow setFrame:(X:0 Y:220)/(W:595 H:655) display:1]
nsterm.m  : 7422: [  591]  | | | | | [EmacsView setFrame:(X:0 Y:0)/(W:595 H:603)]
nsterm.m  : 7304: [  592]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7339: [  593]  | | | | | | +--- New size: (W:595 H:603)
nsterm.m  : 7340: [  594]  | | | | | | +--- Original size: (W:595 H:608)
nsterm.m  : 9275: [  595]  | | | | | [EmacsScroller setFrame:]
nsterm.m  : 7304: [  596]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  597]  | | | | | | +--- No change
nsterm.m  : 7304: [  598]  | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  599]  | | | | | +--- No change
nsterm.m  : 7304: [  600]  | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  601]  | | | | | +--- No change
nsterm.m  : 7304: [  602]  | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  603]  | | | | | +--- No change
nsterm.m  : 7304: [  604]  | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  605]  | | | | | +--- No change
nsterm.m  : 7304: [  606]  | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  607]  | | | | | +--- No change
nsterm.m  : 7304: [  608]  | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  609]  | | | | | +--- No change
nsterm.m  : 7304: [  610]  | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  611]  | | | | | +--- No change
nsterm.m  : 7304: [  612]  | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  613]  | | | | | +--- No change
nsterm.m  : 7304: [  614]  | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  615]  | | | | | +--- No change
nsterm.m  : 7304: [  616]  | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  617]  | | | | | +--- No change
nsterm.m  : 7304: [  618]  | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  619]  | | | | | +--- No change
nsterm.m  : 7304: [  620]  | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  621]  | | | | | +--- No change
nsterm.m  : 7304: [  622]  | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  623]  | | | | | +--- No change
nsterm.m  : 7422: [  624]  | | | | | [EmacsView setFrame:(X:0 Y:0)/(W:595 H:608)]
nsterm.m  : 7304: [  625]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7339: [  626]  | | | | | | +--- New size: (W:595 H:608)
nsterm.m  : 7340: [  627]  | | | | | | +--- Original size: (W:595 H:608)
nsterm.m  : 9275: [  628]  | | | | | [EmacsScroller setFrame:]
nsterm.m  : 7304: [  629]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  630]  | | | | | | +--- No change
nsterm.m  : 7304: [  631]  | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  632]  | | | | | +--- No change
nsterm.m  : 7244: [  633]  | | | | | [EmacsView windowDidResize:]
nsterm.m  : 7252: [  634]  | | | | | +--- Ignored (in animation)
nsterm.m  : 3017: [  635]  | | | | ns_clear_under_internal_border
nsimage.m :   62: [  636]  | | | | ns_can_use_native_image_api
nsimage.m :   62: [  637]  | | | | ns_can_use_native_image_api
nsimage.m :  118: [  638]  | | | | ns_image_for_XPM
nsimage.m :   62: [  639]  | | | | ns_can_use_native_image_api
nsimage.m :   62: [  640]  | | | | ns_can_use_native_image_api
nsimage.m :  118: [  641]  | | | | ns_image_for_XPM
nsimage.m :   62: [  642]  | | | | ns_can_use_native_image_api
nsimage.m :   62: [  643]  | | | | ns_can_use_native_image_api
nsimage.m :  118: [  644]  | | | | ns_image_for_XPM
nsimage.m :   62: [  645]  | | | | ns_can_use_native_image_api
nsimage.m :   62: [  646]  | | | | ns_can_use_native_image_api
nsimage.m :  118: [  647]  | | | | ns_image_for_XPM
nsimage.m :   62: [  648]  | | | | ns_can_use_native_image_api
nsimage.m :   62: [  649]  | | | | ns_can_use_native_image_api
nsimage.m :  118: [  650]  | | | | ns_image_for_XPM
nsimage.m :   62: [  651]  | | | | ns_can_use_native_image_api
nsimage.m :   62: [  652]  | | | | ns_can_use_native_image_api
nsimage.m :  118: [  653]  | | | | ns_image_for_XPM
nsimage.m :   62: [  654]  | | | | ns_can_use_native_image_api
nsimage.m :   62: [  655]  | | | | ns_can_use_native_image_api
nsimage.m :  118: [  656]  | | | | ns_image_for_XPM
nsimage.m :   62: [  657]  | | | | ns_can_use_native_image_api
nsimage.m :   62: [  658]  | | | | ns_can_use_native_image_api
nsimage.m :  118: [  659]  | | | | ns_image_for_XPM
nsimage.m :   62: [  660]  | | | | ns_can_use_native_image_api
nsimage.m :   62: [  661]  | | | | ns_can_use_native_image_api
nsimage.m :  118: [  662]  | | | | ns_image_for_XPM
nsimage.m :   62: [  663]  | | | | ns_can_use_native_image_api
nsimage.m :   62: [  664]  | | | | ns_can_use_native_image_api
nsimage.m :  118: [  665]  | | | | ns_image_for_XPM
nsterm.m  : 5049: [  666]  | | | | ns_condemn_scroll_bars
nsterm.m  : 9306: [  667]  | | | | | [EmacsScroller condemn]
nsterm.m  : 4892: [  668]  | | | | ns_set_vertical_scroll_bar
nsterm.m  : 9275: [  669]  | | | | | [EmacsScroller setFrame:]
nsterm.m  : 7304: [  670]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  671]  | | | | | | +--- No change
nsterm.m  : 9376: [  672]  | | | | | [EmacsScroller setPosition:portion:whole:]
nsterm.m  : 5068: [  673]  | | | | ns_redeem_scroll_bar
nsterm.m  : 9314: [  674]  | | | | | [EmacsScroller reprieve]
nsterm.m  : 4892: [  675]  | | | | ns_set_vertical_scroll_bar
nsterm.m  : 5068: [  676]  | | | | ns_redeem_scroll_bar
nsterm.m  : 5097: [  677]  | | | | ns_judge_scroll_bars
nsterm.m  : 9322: [  678]  | | | | | [EmacsScroller judge]
nsterm.m  : 5049: [  679]  | | | | ns_condemn_scroll_bars
nsterm.m  : 9306: [  680]  | | | | | [EmacsScroller condemn]
nsmenu.m  :  964: [  681]  | | | | update_frame_tool_bar
nsmenu.m  : 1119: [  682]  | | | | | [EmacsToolbar clearActive]
nsimage.m :   62: [  683]  | | | | | ns_can_use_native_image_api
nsimage.m :   62: [  684]  | | | | | ns_can_use_native_image_api
nsimage.m :  118: [  685]  | | | | | ns_image_for_XPM
nsmenu.m  : 1151: [  686]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  687]  | | | | | ns_can_use_native_image_api
nsimage.m :   62: [  688]  | | | | | ns_can_use_native_image_api
nsimage.m :  118: [  689]  | | | | | ns_image_for_XPM
nsmenu.m  : 1151: [  690]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  691]  | | | | | ns_can_use_native_image_api
nsimage.m :   62: [  692]  | | | | | ns_can_use_native_image_api
nsimage.m :  118: [  693]  | | | | | ns_image_for_XPM
nsmenu.m  : 1151: [  694]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  695]  | | | | | ns_can_use_native_image_api
nsimage.m :   62: [  696]  | | | | | ns_can_use_native_image_api
nsimage.m :  118: [  697]  | | | | | ns_image_for_XPM
nsmenu.m  : 1151: [  698]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  699]  | | | | | ns_can_use_native_image_api
nsimage.m :   62: [  700]  | | | | | ns_can_use_native_image_api
nsimage.m :  118: [  701]  | | | | | ns_image_for_XPM
nsmenu.m  : 1151: [  702]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  703]  | | | | | ns_can_use_native_image_api
nsimage.m :   62: [  704]  | | | | | ns_can_use_native_image_api
nsimage.m :  118: [  705]  | | | | | ns_image_for_XPM
nsmenu.m  : 1151: [  706]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  707]  | | | | | ns_can_use_native_image_api
nsimage.m :   62: [  708]  | | | | | ns_can_use_native_image_api
nsimage.m :  118: [  709]  | | | | | ns_image_for_XPM
nsmenu.m  : 1151: [  710]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  711]  | | | | | ns_can_use_native_image_api
nsimage.m :   62: [  712]  | | | | | ns_can_use_native_image_api
nsimage.m :  118: [  713]  | | | | | ns_image_for_XPM
nsmenu.m  : 1151: [  714]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  715]  | | | | | ns_can_use_native_image_api
nsimage.m :   62: [  716]  | | | | | ns_can_use_native_image_api
nsimage.m :  118: [  717]  | | | | | ns_image_for_XPM
nsmenu.m  : 1151: [  718]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  719]  | | | | | ns_can_use_native_image_api
nsimage.m :   62: [  720]  | | | | | ns_can_use_native_image_api
nsimage.m :  118: [  721]  | | | | | ns_image_for_XPM
nsmenu.m  : 1151: [  722]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsmenu.m  : 1222: [  723]  | | | | | [EmacsToolbar setVisible:1]
nsterm.m  : 7304: [  724]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  725]  | | | | | | +--- No change
nsterm.m  : 7304: [  726]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  727]  | | | | | | +--- No change
nsterm.m  : 7304: [  728]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  729]  | | | | | | +--- No change
nsterm.m  : 7304: [  730]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  731]  | | | | | | +--- No change
nsterm.m  : 7304: [  732]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  733]  | | | | | | +--- No change
nsterm.m  : 7304: [  734]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  735]  | | | | | | +--- No change
nsterm.m  : 7304: [  736]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  737]  | | | | | | +--- No change
nsterm.m  : 7304: [  738]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  739]  | | | | | | +--- No change
nsterm.m  : 7304: [  740]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  741]  | | | | | | +--- No change
nsterm.m  : 7304: [  742]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  743]  | | | | | | +--- No change
nsterm.m  : 7304: [  744]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  745]  | | | | | | +--- No change
nsterm.m  : 7304: [  746]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  747]  | | | | | | +--- No change
nsmenu.m  : 1139: [  748]  | | | | | [EmacsToolbar changed]
nsmenu.m  : 1204: [  749]  | | | | | [EmacsToolbar toolbarDefaultItemIdentifiers:]
nsmenu.m  : 1204: [  750]  | | | | | [EmacsToolbar toolbarDefaultItemIdentifiers:]
nsmenu.m  : 1204: [  751]  | | | | | [EmacsToolbar toolbarDefaultItemIdentifiers:]
nsmenu.m  : 1196: [  752]  | | | | | [EmacsToolbar toolbar: ...]
nsmenu.m  : 1196: [  753]  | | | | | [EmacsToolbar toolbar: ...]
nsmenu.m  : 1196: [  754]  | | | | | [EmacsToolbar toolbar: ...]
nsmenu.m  : 1196: [  755]  | | | | | [EmacsToolbar toolbar: ...]
nsmenu.m  : 1196: [  756]  | | | | | [EmacsToolbar toolbar: ...]
nsmenu.m  : 1196: [  757]  | | | | | [EmacsToolbar toolbar: ...]
nsmenu.m  : 1196: [  758]  | | | | | [EmacsToolbar toolbar: ...]
nsmenu.m  : 1196: [  759]  | | | | | [EmacsToolbar toolbar: ...]
nsmenu.m  : 1196: [  760]  | | | | | [EmacsToolbar toolbar: ...]
nsmenu.m  : 1196: [  761]  | | | | | [EmacsToolbar toolbar: ...]
nsterm.m  : 4892: [  762]  | | | | ns_set_vertical_scroll_bar
nsterm.m  : 9376: [  763]  | | | | | [EmacsScroller setPosition:portion:whole:]
nsterm.m  : 5068: [  764]  | | | | ns_redeem_scroll_bar
nsterm.m  : 9314: [  765]  | | | | | [EmacsScroller reprieve]
nsterm.m  : 4892: [  766]  | | | | ns_set_vertical_scroll_bar
nsterm.m  : 5068: [  767]  | | | | ns_redeem_scroll_bar
nsterm.m  : 5097: [  768]  | | | | ns_judge_scroll_bars
nsterm.m  : 9322: [  769]  | | | | | [EmacsScroller judge]
nsterm.m  : 3017: [  770]  | | | | ns_clear_under_internal_border
nsterm.m  : 5049: [  771]  | | | | ns_condemn_scroll_bars
nsterm.m  : 9306: [  772]  | | | | | [EmacsScroller condemn]
nsmenu.m  :  964: [  773]  | | | | update_frame_tool_bar
nsmenu.m  : 1119: [  774]  | | | | | [EmacsToolbar clearActive]
nsimage.m :   62: [  775]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  776]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  777]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  778]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  779]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  780]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  781]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  782]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  783]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  784]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  785]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  786]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  787]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  788]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  789]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  790]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  791]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  792]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  793]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  794]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsmenu.m  : 1222: [  795]  | | | | | [EmacsToolbar setVisible:1]
nsterm.m  : 7304: [  796]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  797]  | | | | | | +--- No change
nsterm.m  : 7304: [  798]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  799]  | | | | | | +--- No change
nsterm.m  : 7304: [  800]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  801]  | | | | | | +--- No change
nsmenu.m  : 1139: [  802]  | | | | | [EmacsToolbar changed]
nsterm.m  : 4892: [  803]  | | | | ns_set_vertical_scroll_bar
nsterm.m  : 9376: [  804]  | | | | | [EmacsScroller setPosition:portion:whole:]
nsterm.m  : 5068: [  805]  | | | | ns_redeem_scroll_bar
nsterm.m  : 9314: [  806]  | | | | | [EmacsScroller reprieve]
nsterm.m  : 4892: [  807]  | | | | ns_set_vertical_scroll_bar
nsterm.m  : 5068: [  808]  | | | | ns_redeem_scroll_bar
nsterm.m  : 5097: [  809]  | | | | ns_judge_scroll_bars
nsterm.m  : 9322: [  810]  | | | | | [EmacsScroller judge]
nsterm.m  : 3017: [  811]  | | | | ns_clear_under_internal_border
nsterm.m  : 3334: [  812]  | | | | ns_draw_window_cursor
nsterm.m  : 3334: [  813]  | | | | ns_draw_window_cursor
nsterm.m  : 8505: [  814]  | | | | [EmacsView updateLayer]
nsterm.m  : 9138: [  815]  | | | | [EmacsWindow setFrame:(X:0 Y:242)/(W:595 H:633) display:1]
nsterm.m  : 7422: [  816]  | | | | | [EmacsView setFrame:(X:0 Y:0)/(W:595 H:586)]
nsterm.m  : 7304: [  817]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7339: [  818]  | | | | | | +--- New size: (W:595 H:586)
nsterm.m  : 7340: [  819]  | | | | | | +--- Original size: (W:595 H:608)
nsterm.m  : 9275: [  820]  | | | | | [EmacsScroller setFrame:]
nsterm.m  : 7304: [  821]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  822]  | | | | | | +--- No change
nsterm.m  : 7304: [  823]  | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  824]  | | | | | +--- No change
nsterm.m  : 7304: [  825]  | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  826]  | | | | | +--- No change
nsterm.m  : 7304: [  827]  | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  828]  | | | | | +--- No change
nsterm.m  : 7304: [  829]  | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  830]  | | | | | +--- No change
nsterm.m  : 7304: [  831]  | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  832]  | | | | | +--- No change
nsterm.m  : 7304: [  833]  | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  834]  | | | | | +--- No change
nsterm.m  : 7304: [  835]  | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  836]  | | | | | +--- No change
nsterm.m  : 7304: [  837]  | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  838]  | | | | | +--- No change
nsterm.m  : 7304: [  839]  | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  840]  | | | | | +--- No change
nsterm.m  : 7304: [  841]  | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  842]  | | | | | +--- No change
nsterm.m  : 7304: [  843]  | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  844]  | | | | | +--- No change
nsterm.m  : 7304: [  845]  | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  846]  | | | | | +--- No change
nsterm.m  : 7304: [  847]  | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  848]  | | | | | +--- No change
nsterm.m  : 7422: [  849]  | | | | | [EmacsView setFrame:(X:0 Y:0)/(W:595 H:605)]
nsterm.m  : 7304: [  850]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7339: [  851]  | | | | | | +--- New size: (W:595 H:605)
nsterm.m  : 7340: [  852]  | | | | | | +--- Original size: (W:595 H:608)
nsterm.m  : 9275: [  853]  | | | | | [EmacsScroller setFrame:]
nsterm.m  : 7304: [  854]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  855]  | | | | | | +--- No change
nsterm.m  : 7304: [  856]  | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  857]  | | | | | +--- No change
nsterm.m  : 7244: [  858]  | | | | | [EmacsView windowDidResize:]
nsterm.m  : 7264: [  859]  | | | | | +--- frame: (X:0 Y:242)/(W:595 H:633)
nsterm.m  : 3017: [  860]  | | | | ns_clear_under_internal_border
nsterm.m  : 5049: [  861]  | | | | ns_condemn_scroll_bars
nsterm.m  : 9306: [  862]  | | | | | [EmacsScroller condemn]
nsmenu.m  :  964: [  863]  | | | | update_frame_tool_bar
nsmenu.m  : 1119: [  864]  | | | | | [EmacsToolbar clearActive]
nsimage.m :   62: [  865]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  866]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  867]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  868]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  869]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  870]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  871]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  872]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  873]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  874]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  875]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  876]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  877]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  878]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  879]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  880]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  881]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  882]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  883]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  884]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsmenu.m  : 1222: [  885]  | | | | | [EmacsToolbar setVisible:1]
nsterm.m  : 7304: [  886]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  887]  | | | | | | +--- No change
nsmenu.m  : 1139: [  888]  | | | | | [EmacsToolbar changed]
nsterm.m  : 4892: [  889]  | | | | ns_set_vertical_scroll_bar
nsterm.m  : 9376: [  890]  | | | | | [EmacsScroller setPosition:portion:whole:]
nsterm.m  : 5068: [  891]  | | | | ns_redeem_scroll_bar
nsterm.m  : 9314: [  892]  | | | | | [EmacsScroller reprieve]
nsterm.m  : 4892: [  893]  | | | | ns_set_vertical_scroll_bar
nsterm.m  : 5068: [  894]  | | | | ns_redeem_scroll_bar
nsterm.m  : 5097: [  895]  | | | | ns_judge_scroll_bars
nsterm.m  : 9322: [  896]  | | | | | [EmacsScroller judge]
nsterm.m  : 3017: [  897]  | | | | ns_clear_under_internal_border
nsterm.m  : 3334: [  898]  | | | | ns_draw_window_cursor
nsterm.m  : 3334: [  899]  | | | | ns_draw_window_cursor
nsterm.m  : 8505: [  900]  | | | | [EmacsView updateLayer]
nsterm.m  : 9138: [  901]  | | | | [EmacsWindow setFrame:(X:0 Y:264)/(W:595 H:611) display:1]
nsterm.m  : 7422: [  902]  | | | | | [EmacsView setFrame:(X:0 Y:0)/(W:595 H:583)]
nsterm.m  : 7304: [  903]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7339: [  904]  | | | | | | +--- New size: (W:595 H:583)
nsterm.m  : 7340: [  905]  | | | | | | +--- Original size: (W:595 H:605)
nsterm.m  : 9275: [  906]  | | | | | [EmacsScroller setFrame:]
nsterm.m  : 7304: [  907]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  908]  | | | | | | +--- No change
nsterm.m  : 7304: [  909]  | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  910]  | | | | | +--- No change
nsterm.m  : 7304: [  911]  | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  912]  | | | | | +--- No change
nsterm.m  : 7304: [  913]  | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  914]  | | | | | +--- No change
nsterm.m  : 7304: [  915]  | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  916]  | | | | | +--- No change
nsterm.m  : 7304: [  917]  | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  918]  | | | | | +--- No change
nsterm.m  : 7244: [  919]  | | | | | [EmacsView windowDidResize:]
nsterm.m  : 7264: [  920]  | | | | | +--- frame: (X:0 Y:264)/(W:595 H:611)
nsterm.m  : 3017: [  921]  | | | | ns_clear_under_internal_border
nsterm.m  : 5049: [  922]  | | | | ns_condemn_scroll_bars
nsterm.m  : 9306: [  923]  | | | | | [EmacsScroller condemn]
nsmenu.m  :  964: [  924]  | | | | update_frame_tool_bar
nsmenu.m  : 1119: [  925]  | | | | | [EmacsToolbar clearActive]
nsimage.m :   62: [  926]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  927]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  928]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  929]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  930]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  931]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  932]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  933]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  934]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  935]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  936]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  937]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  938]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  939]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  940]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  941]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  942]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  943]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  944]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  945]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsmenu.m  : 1222: [  946]  | | | | | [EmacsToolbar setVisible:1]
nsterm.m  : 7304: [  947]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  948]  | | | | | | +--- No change
nsmenu.m  : 1139: [  949]  | | | | | [EmacsToolbar changed]
nsterm.m  : 4892: [  950]  | | | | ns_set_vertical_scroll_bar
nsterm.m  : 9376: [  951]  | | | | | [EmacsScroller setPosition:portion:whole:]
nsterm.m  : 5068: [  952]  | | | | ns_redeem_scroll_bar
nsterm.m  : 9314: [  953]  | | | | | [EmacsScroller reprieve]
nsterm.m  : 4892: [  954]  | | | | ns_set_vertical_scroll_bar
nsterm.m  : 5068: [  955]  | | | | ns_redeem_scroll_bar
nsterm.m  : 5097: [  956]  | | | | ns_judge_scroll_bars
nsterm.m  : 9322: [  957]  | | | | | [EmacsScroller judge]
nsterm.m  : 3017: [  958]  | | | | ns_clear_under_internal_border
nsterm.m  : 3334: [  959]  | | | | ns_draw_window_cursor
nsterm.m  : 3334: [  960]  | | | | ns_draw_window_cursor
nsterm.m  : 8505: [  961]  | | | | [EmacsView updateLayer]
nsterm.m  : 9138: [  962]  | | | | [EmacsWindow setFrame:(X:0 Y:267)/(W:595 H:608) display:1]
nsterm.m  : 7422: [  963]  | | | | | [EmacsView setFrame:(X:0 Y:0)/(W:595 H:580)]
nsterm.m  : 7304: [  964]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7339: [  965]  | | | | | | +--- New size: (W:595 H:580)
nsterm.m  : 7340: [  966]  | | | | | | +--- Original size: (W:595 H:583)
nsterm.m  : 9275: [  967]  | | | | | [EmacsScroller setFrame:]
nsterm.m  : 7304: [  968]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  969]  | | | | | | +--- No change
nsterm.m  : 7304: [  970]  | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  971]  | | | | | +--- No change
nsterm.m  : 7304: [  972]  | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  973]  | | | | | +--- No change
nsterm.m  : 7304: [  974]  | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  975]  | | | | | +--- No change
nsterm.m  : 7304: [  976]  | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  977]  | | | | | +--- No change
nsterm.m  : 7304: [  978]  | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [  979]  | | | | | +--- No change
nsterm.m  : 7244: [  980]  | | | | | [EmacsView windowDidResize:]
nsterm.m  : 7264: [  981]  | | | | | +--- frame: (X:0 Y:267)/(W:595 H:608)
nsterm.m  : 7282: [  982]  | | | | [EmacsView viewDidEndLiveResize]
nsterm.m  : 3017: [  983]  | | | | ns_clear_under_internal_border
nsterm.m  : 5049: [  984]  | | | | ns_condemn_scroll_bars
nsterm.m  : 9306: [  985]  | | | | | [EmacsScroller condemn]
nsmenu.m  :  964: [  986]  | | | | update_frame_tool_bar
nsmenu.m  : 1119: [  987]  | | | | | [EmacsToolbar clearActive]
nsimage.m :   62: [  988]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  989]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  990]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  991]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  992]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  993]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  994]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  995]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  996]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  997]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [  998]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [  999]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [ 1000]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [ 1001]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [ 1002]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [ 1003]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [ 1004]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [ 1005]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsimage.m :   62: [ 1006]  | | | | | ns_can_use_native_image_api
nsmenu.m  : 1151: [ 1007]  | | | | | [EmacsToolbar addDisplayItemWithImage: ...]
nsmenu.m  : 1222: [ 1008]  | | | | | [EmacsToolbar setVisible:1]
nsterm.m  : 7304: [ 1009]  | | | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1010]  | | | | | | +--- No change
nsmenu.m  : 1139: [ 1011]  | | | | | [EmacsToolbar changed]
nsterm.m  : 4892: [ 1012]  | | | | ns_set_vertical_scroll_bar
nsterm.m  : 9376: [ 1013]  | | | | | [EmacsScroller setPosition:portion:whole:]
nsterm.m  : 5068: [ 1014]  | | | | ns_redeem_scroll_bar
nsterm.m  : 9314: [ 1015]  | | | | | [EmacsScroller reprieve]
nsterm.m  : 4892: [ 1016]  | | | | ns_set_vertical_scroll_bar
nsterm.m  : 5068: [ 1017]  | | | | ns_redeem_scroll_bar
nsterm.m  : 5097: [ 1018]  | | | | ns_judge_scroll_bars
nsterm.m  : 9322: [ 1019]  | | | | | [EmacsScroller judge]
nsterm.m  : 3017: [ 1020]  | | | | ns_clear_under_internal_border
nsterm.m  : 3334: [ 1021]  | | | | ns_draw_window_cursor
nsterm.m  : 3334: [ 1022]  | | | | ns_draw_window_cursor
nsterm.m  : 8505: [ 1023]  | | | | [EmacsView updateLayer]
nsterm.m  : 7304: [ 1024]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1025]  | | | +--- No change
nsterm.m  : 1891: [ 1026]  | ns_set_window_size
nsterm.m  : 1896: [ 1027]  | +--- current: (X:0 Y:267)/(W:595 H:608)
nsterm.m  : 1897: [ 1028]  | +--- Width:595 Height:580
nsterm.m  : 1898: [ 1029]  | +--- Font 7 x 16
nsterm.m  : 8005: [ 1030]  | | [EmacsView isFullscreen] ->> 0
nsterm.m  : 9138: [ 1031]  | | [EmacsWindow setFrame:(X:0 Y:267)/(W:595 H:608) display:0]
nsterm.m  : 8950: [ 1032]  | | | [EmacsWindow constrainFrameRect:(X:0 Y:267)/(W:595 H:608) toScreen:]
nsterm.m  : 8962: [ 1033]  | | | +--- Screens have separate spaces
nsterm.m  : 8964: [ 1034]  | | | +->> (X:0 Y:267)/(W:595 H:608)
nsterm.m  : 1891: [ 1035]  ns_set_window_size
nsterm.m  : 1896: [ 1036]  +--- current: (X:0 Y:267)/(W:595 H:608)
nsterm.m  : 1897: [ 1037]  +--- Width:580 Height:580
nsterm.m  : 1898: [ 1038]  +--- Font 7 x 16
nsterm.m  : 8005: [ 1039]  | [EmacsView isFullscreen] ->> 0
nsterm.m  : 9138: [ 1040]  | [EmacsWindow setFrame:(X:0 Y:267)/(W:580 H:608) display:0]
nsterm.m  : 8950: [ 1041]  | | [EmacsWindow constrainFrameRect:(X:0 Y:267)/(W:580 H:608) toScreen:]
nsterm.m  : 8962: [ 1042]  | | +--- Screens have separate spaces
nsterm.m  : 8964: [ 1043]  | | +->> (X:0 Y:267)/(W:580 H:608)
nsterm.m  : 7422: [ 1044]  | | [EmacsView setFrame:(X:0 Y:0)/(W:580 H:580)]
nsterm.m  : 7304: [ 1045]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1046]  | | | +--- No change
nsterm.m  : 9275: [ 1047]  | | [EmacsScroller setFrame:]
nsterm.m  : 7304: [ 1048]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1049]  | | | +--- No change
nsterm.m  : 7304: [ 1050]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1051]  | | +--- No change
nsterm.m  : 7304: [ 1052]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1053]  | | +--- No change
nsterm.m  : 7304: [ 1054]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1055]  | | +--- No change
nsterm.m  : 7304: [ 1056]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1057]  | | +--- No change
nsterm.m  : 7304: [ 1058]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1059]  | | +--- No change
nsterm.m  : 7304: [ 1060]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1061]  | | +--- No change
nsterm.m  : 7304: [ 1062]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1063]  | | +--- No change
nsterm.m  : 7304: [ 1064]  | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1065]  | | +--- No change
nsterm.m  : 7244: [ 1066]  | | [EmacsView windowDidResize:]
nsterm.m  : 7264: [ 1067]  | | +--- frame: (X:0 Y:267)/(W:580 H:608)
nsterm.m  : 3017: [ 1068]  | | ns_clear_under_internal_border
nsterm.m  : 5049: [ 1069]  | | ns_condemn_scroll_bars
nsterm.m  : 9306: [ 1070]  | | | [EmacsScroller condemn]
nsterm.m  : 5097: [ 1071]  | | ns_judge_scroll_bars
nsterm.m  : 9322: [ 1072]  | | | [EmacsScroller judge]
nsterm.m  : 3017: [ 1073]  | | ns_clear_under_internal_border
nsterm.m  : 3334: [ 1074]  | | ns_draw_window_cursor
nsterm.m  : 3334: [ 1075]  | | ns_draw_window_cursor
nsterm.m  : 8505: [ 1076]  | | [EmacsView updateLayer]
nsterm.m  : 9291: [ 1077]  | | [EmacsScroller dealloc]
nsterm.m  : 2211: [ 1078]  ns_fullscreen_hook
nsterm.m  : 8179: [ 1079]  | [EmacsView handleFS]
nsterm.m  : 8192: [ 1080]  | +--- FULLSCREEN_BOTH
nsterm.m  : 8054: [ 1081]  | | [EmacsView toggleFullScreen:]
nsterm.m  : 7864: [ 1082]  | | | [EmacsView windowWillEnterFullScreen:]
nsterm.m  : 7870: [ 1083]  | | | | [EmacsView windowWillEnterFullScreen]
nsterm.m  : 7422: [ 1084]  | | | [EmacsView setFrame:(X:0 Y:0)/(W:580 H:608)]
nsterm.m  : 7304: [ 1085]  | | | | [EmacsView viewDidResize]
nsterm.m  : 7339: [ 1086]  | | | | +--- New size: (W:580 H:608)
nsterm.m  : 7340: [ 1087]  | | | | +--- Original size: (W:580 H:580)
nsterm.m  : 7304: [ 1088]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1089]  | | | +--- No change
nsterm.m  : 7304: [ 1090]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1091]  | | | +--- No change
nsterm.m  : 7304: [ 1092]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1093]  | | | +--- No change
nsterm.m  : 7304: [ 1094]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1095]  | | | +--- No change
nsterm.m  : 7304: [ 1096]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1097]  | | | +--- No change
nsterm.m  : 7304: [ 1098]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1099]  | | | +--- No change
nsterm.m  : 7304: [ 1100]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1101]  | | | +--- No change
nsterm.m  : 7304: [ 1102]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1103]  | | | +--- No change
nsterm.m  : 7304: [ 1104]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1105]  | | | +--- No change
nsterm.m  : 7304: [ 1106]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1107]  | | | +--- No change
nsterm.m  : 7304: [ 1108]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1109]  | | | +--- No change
nsterm.m  : 7304: [ 1110]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1111]  | | | +--- No change
nsterm.m  : 7304: [ 1112]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1113]  | | | +--- No change
nsterm.m  : 7304: [ 1114]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1115]  | | | +--- No change
nsterm.m  : 7304: [ 1116]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1117]  | | | +--- No change
nsterm.m  : 7304: [ 1118]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1119]  | | | +--- No change
nsterm.m  : 7304: [ 1120]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1121]  | | | +--- No change
nsterm.m  : 7304: [ 1122]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1123]  | | | +--- No change
nsterm.m  : 7304: [ 1124]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1125]  | | | +--- No change
nsterm.m  : 7304: [ 1126]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1127]  | | | +--- No change
nsterm.m  : 7304: [ 1128]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1129]  | | | +--- No change
nsterm.m  : 7304: [ 1130]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1131]  | | | +--- No change
nsterm.m  : 7304: [ 1132]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1133]  | | | +--- No change
nsterm.m  : 7304: [ 1134]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1135]  | | | +--- No change
nsterm.m  : 7304: [ 1136]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1137]  | | | +--- No change
nsterm.m  : 7304: [ 1138]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1139]  | | | +--- No change
nsterm.m  : 7304: [ 1140]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1141]  | | | +--- No change
nsterm.m  : 7304: [ 1142]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1143]  | | | +--- No change
nsterm.m  : 7304: [ 1144]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1145]  | | | +--- No change
nsterm.m  : 7304: [ 1146]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1147]  | | | +--- No change
nsterm.m  : 7304: [ 1148]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1149]  | | | +--- No change
nsterm.m  : 7304: [ 1150]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1151]  | | | +--- No change
nsterm.m  : 7304: [ 1152]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1153]  | | | +--- No change
nsterm.m  : 7304: [ 1154]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1155]  | | | +--- No change
nsterm.m  : 7304: [ 1156]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1157]  | | | +--- No change
nsterm.m  : 7304: [ 1158]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1159]  | | | +--- No change
nsterm.m  : 7304: [ 1160]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1161]  | | | +--- No change
nsterm.m  : 7304: [ 1162]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1163]  | | | +--- No change
nsterm.m  : 7304: [ 1164]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1165]  | | | +--- No change
nsterm.m  : 7304: [ 1166]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1167]  | | | +--- No change
nsterm.m  : 7304: [ 1168]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1169]  | | | +--- No change
nsterm.m  : 7304: [ 1170]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1171]  | | | +--- No change
nsterm.m  : 7304: [ 1172]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1173]  | | | +--- No change
nsterm.m  : 7304: [ 1174]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1175]  | | | +--- No change
nsterm.m  : 7304: [ 1176]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1177]  | | | +--- No change
nsterm.m  : 7304: [ 1178]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1179]  | | | +--- No change
nsterm.m  : 7304: [ 1180]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1181]  | | | +--- No change
nsterm.m  : 7304: [ 1182]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1183]  | | | +--- No change
nsterm.m  : 7304: [ 1184]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1185]  | | | +--- No change
nsterm.m  : 7304: [ 1186]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1187]  | | | +--- No change
nsterm.m  : 7304: [ 1188]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1189]  | | | +--- No change
nsterm.m  : 7304: [ 1190]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1191]  | | | +--- No change
nsterm.m  : 7304: [ 1192]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1193]  | | | +--- No change
nsterm.m  : 7304: [ 1194]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1195]  | | | +--- No change
nsterm.m  : 7304: [ 1196]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1197]  | | | +--- No change
nsterm.m  : 7304: [ 1198]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1199]  | | | +--- No change
nsterm.m  : 7304: [ 1200]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1201]  | | | +--- No change
nsterm.m  : 7304: [ 1202]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1203]  | | | +--- No change
nsterm.m  : 7304: [ 1204]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1205]  | | | +--- No change
nsterm.m  : 7304: [ 1206]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1207]  | | | +--- No change
nsterm.m  : 7142: [ 1208]  | | | [EmacsView windowWillResize:toSize: (W:1440 H:900)]
nsterm.m  : 7143: [ 1209]  | | | +--- [sender frame]: (X:0 Y:267)/(W:580 H:608)
nsterm.m  : 7144: [ 1210]  | | | +--- fs_state: FULLSCREEN_NONE
nsterm.m  : 8005: [ 1211]  | | | | [EmacsView isFullscreen] ->> 1
nsterm.m  : 7304: [ 1212]  | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1213]  | | | | +--- No change
nsterm.m  : 7304: [ 1214]  | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1215]  | | | | +--- No change
nsterm.m  : 7211: [ 1216]  | | | +--- cols: 202  rows: 56
nsterm.m  : 7236: [ 1217]  | | | +->> (W:1434 H:900)
nsterm.m  : 9138: [ 1218]  | | | [EmacsWindow setFrame:(X:3 Y:0)/(W:1434 H:900) display:1]
nsterm.m  : 7422: [ 1219]  | | | | [EmacsView setFrame:(X:0 Y:0)/(W:1434 H:900)]
nsterm.m  : 7304: [ 1220]  | | | | | [EmacsView viewDidResize]
nsterm.m  : 7339: [ 1221]  | | | | | +--- New size: (W:1434 H:900)
nsterm.m  : 7340: [ 1222]  | | | | | +--- Original size: (W:580 H:580)
nsterm.m  : 7304: [ 1223]  | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1224]  | | | | +--- No change
nsterm.m  : 7304: [ 1225]  | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1226]  | | | | +--- No change
nsterm.m  : 7304: [ 1227]  | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1228]  | | | | +--- No change
nsterm.m  : 7304: [ 1229]  | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1230]  | | | | +--- No change
nsterm.m  : 7304: [ 1231]  | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1232]  | | | | +--- No change
nsterm.m  : 7304: [ 1233]  | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1234]  | | | | +--- No change
nsterm.m  : 7304: [ 1235]  | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1236]  | | | | +--- No change
nsterm.m  : 7304: [ 1237]  | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1238]  | | | | +--- No change
nsterm.m  : 7244: [ 1239]  | | | | [EmacsView windowDidResize:]
nsterm.m  : 7264: [ 1240]  | | | | +--- frame: (X:3 Y:0)/(W:1434 H:900)
nsterm.m  : 7304: [ 1241]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1242]  | | | +--- No change
nsterm.m  : 7304: [ 1243]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1244]  | | | +--- No change
nsterm.m  : 7304: [ 1245]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1246]  | | | +--- No change
nsterm.m  : 7304: [ 1247]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1248]  | | | +--- No change
nsterm.m  : 7304: [ 1249]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1250]  | | | +--- No change
nsterm.m  : 7142: [ 1251]  | | | [EmacsView windowWillResize:toSize: (W:1440 H:900)]
nsterm.m  : 7143: [ 1252]  | | | +--- [sender frame]: (X:3 Y:0)/(W:1434 H:900)
nsterm.m  : 7144: [ 1253]  | | | +--- fs_state: FULLSCREEN_NONE
nsterm.m  : 8005: [ 1254]  | | | | [EmacsView isFullscreen] ->> 1
nsterm.m  : 7211: [ 1255]  | | | +--- cols: 202  rows: 56
nsterm.m  : 7236: [ 1256]  | | | +->> (W:1434 H:900)
nsterm.m  : 9138: [ 1257]  | | | [EmacsWindow setFrame:(X:3 Y:0)/(W:1434 H:900) display:1]
nsterm.m  : 7282: [ 1258]  | | | [EmacsView viewDidEndLiveResize]
nsterm.m  : 7304: [ 1259]  | | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1260]  | | | | +--- No change
nsterm.m  : 7304: [ 1261]  | | | [EmacsView viewDidResize]
nsterm.m  : 7335: [ 1262]  | | | +--- No change
nsterm.m  : 3017: [ 1263]  | | | ns_clear_under_internal_border
nsterm.m  : 5049: [ 1264]  | | | ns_condemn_scroll_bars
nsterm.m  : 5097: [ 1265]  | | | ns_judge_scroll_bars
nsterm.m  : 3017: [ 1266]  | | | ns_clear_under_internal_border
nsterm.m  : 3334: [ 1267]  | | | ns_draw_window_cursor
nsterm.m  : 3334: [ 1268]  | | | ns_draw_window_cursor
nsterm.m  : 8505: [ 1269]  | | | [EmacsView updateLayer]
nsterm.m  : 7976: [ 1270]  | | | wait for fullscreen
nsterm.m  : 3017: [ 1271]  | | | | ns_clear_under_internal_border
nsterm.m  : 3334: [ 1272]  | | | | ns_draw_window_cursor
nsterm.m  : 3334: [ 1273]  | | | | ns_draw_window_cursor
nsterm.m  : 7976: [ 1274]  | | | wait for fullscreen
nsterm.m  : 7976: [ 1275]  | | | wait for fullscreen
nsterm.m  : 6081: [ 1276]  | | | | [EmacsApp applicationWillBecomeActive:]
nsterm.m  : 7361: [ 1277]  | | | | [EmacsView windowDidBecomeKey]
nsterm.m  : 1588: [ 1278]  | | | | | ns_frame_rehighlight
nsterm.m  : 3334: [ 1279]  | | | | | | ns_draw_window_cursor
nsterm.m  : 3334: [ 1280]  | | | | | | ns_draw_window_cursor
nsterm.m  : 2506: [ 1281]  | | | | | | ns_set_frame_alpha
nsterm.m  : 6087: [ 1282]  | | | | [EmacsApp applicationDidBecomeActive:]
nsterm.m  : 1066: [ 1283]  | | | | | ns_update_auto_hide_menu_bar
nsterm.m  : 1035: [ 1284]  | | | | | ns_constrain_all_frames
nsterm.m  : 8005: [ 1285]  | | | | | | [EmacsView isFullscreen] ->> 1
nsterm.m  : 7976: [ 1286]  | | | wait for fullscreen
nsterm.m  : 7976: [ 1287]  | | | wait for fullscreen
nsterm.m  : 7976: [ 1288]  | | | wait for fullscreen
nsterm.m  : 7976: [ 1289]  | | | wait for fullscreen
nsterm.m  : 7976: [ 1290]  | | | wait for fullscreen
nsterm.m  : 7976: [ 1291]  | | | wait for fullscreen
nsterm.m  : 7976: [ 1292]  | | | wait for fullscreen
nsterm.m  : 7976: [ 1293]  | | | wait for fullscreen
nsterm.m  : 7976: [ 1294]  | | | wait for fullscreen
nsterm.m  : 7976: [ 1295]  | | | wait for fullscreen
nsterm.m  : 7976: [ 1296]  | | | wait for fullscreen
nsterm.m  : 7976: [ 1297]  | | | wait for fullscreen
nsterm.m  : 7976: [ 1298]  | | | wait for fullscreen
nsterm.m  : 7976: [ 1299]  | | | wait for fullscreen
nsterm.m  : 7976: [ 1300]  | | | wait for fullscreen
nsterm.m  : 7976: [ 1301]  | | | wait for fullscreen
nsterm.m  : 7976: [ 1302]  | | | wait for fullscreen
nsterm.m  : 7976: [ 1303]  | | | wait for fullscreen
nsterm.m  : 7976: [ 1304]  | | | wait for fullscreen
nsterm.m  : 7976: [ 1305]  | | | wait for fullscreen
nsterm.m  : 7976: [ 1306]  | | | wait for fullscreen
nsterm.m  : 7976: [ 1307]  | | | wait for fullscreen
nsterm.m  : 7976: [ 1308]  | | | wait for fullscreen
nsterm.m  : 7976: [ 1309]  | | | wait for fullscreen
nsterm.m  : 7976: [ 1310]  | | | wait for fullscreen
nsterm.m  : 7976: [ 1311]  | | | wait for fullscreen
nsterm.m  : 7976: [ 1312]  | | | wait for fullscreen
nsterm.m  : 7976: [ 1313]  | | | wait for fullscreen
nsterm.m  : 7976: [ 1314]  | | | wait for fullscreen
nsterm.m  : 7976: [ 1315]  | | | wait for fullscreen
nsterm.m  : 7976: [ 1316]  | | | wait for fullscreen
nsterm.m  : 3334: [ 1317]  | | | | ns_draw_window_cursor
nsterm.m  : 3334: [ 1318]  | | | | ns_draw_window_cursor
nsterm.m  : 7976: [ 1319]  | | | wait for fullscreen
nsterm.m  : 7976: [ 1320]  | | | wait for fullscreen
nsterm.m  : 7976: [ 1321]  | | | wait for fullscreen
nsterm.m  : 7976: [ 1322]  | | | wait for fullscreen
nsterm.m  : 7976: [ 1323]  | | | wait for fullscreen
nsterm.m  : 7976: [ 1324]  | | | wait for fullscreen
nsterm.m  : 7976: [ 1325]  | | | wait for fullscreen

[-- Attachment #3: Type: text/plain, Size: 2 bytes --]




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

* bug#48406: 28.0.50; Emacs stuck in infinite loop in wait_reading_process_output when opening in fullscreen (NS)
  2021-05-14 20:34         ` Alan Third
@ 2021-05-15 19:44           ` Andrii Kolomoiets
  2021-05-15 22:47             ` Alan Third
  0 siblings, 1 reply; 22+ messages in thread
From: Andrii Kolomoiets @ 2021-05-15 19:44 UTC (permalink / raw)
  To: Alan Third; +Cc: Illia Ostapyshyn, 48406

Alan Third <alan@idiocy.org> writes:

> Now I've dug out my Mac I can confirm I see this hang as well.
>
> The problem is that we never reach the NS run loop and therefore
> windowDidEnterFullScreen is never called.
>
> This fixes it for me, but whether it's a good idea or not I don't know:
>
> -      wait_reading_process_output (0, 300000000, 0, 1, Qnil, NULL, 0);
> +      [NSApp run];

I really like this change.  Using `wait_reading_process_output` to wait
for NS event was a bad idea.

Though I don't understand why my setup isn't affected by this bug.

Alan, please install your patch.

Thanks!





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

* bug#48406: 28.0.50; Emacs stuck in infinite loop in wait_reading_process_output when opening in fullscreen (NS)
  2021-05-15 19:44           ` Andrii Kolomoiets
@ 2021-05-15 22:47             ` Alan Third
  2021-05-16 20:09               ` Andrii Kolomoiets
  0 siblings, 1 reply; 22+ messages in thread
From: Alan Third @ 2021-05-15 22:47 UTC (permalink / raw)
  To: Andrii Kolomoiets; +Cc: Illia Ostapyshyn, 48406

On Sat, May 15, 2021 at 10:44:28PM +0300, Andrii Kolomoiets wrote:
> Alan Third <alan@idiocy.org> writes:
> 
> > Now I've dug out my Mac I can confirm I see this hang as well.
> >
> > The problem is that we never reach the NS run loop and therefore
> > windowDidEnterFullScreen is never called.
> >
> > This fixes it for me, but whether it's a good idea or not I don't know:
> >
> > -      wait_reading_process_output (0, 300000000, 0, 1, Qnil, NULL, 0);
> > +      [NSApp run];
> 
> I really like this change.  Using `wait_reading_process_output` to wait
> for NS event was a bad idea.
> 
> Though I don't understand why my setup isn't affected by this bug.

I can only guess that for some reason your setup doesn't have these
pending inputs that block ns_select. But even so I don't really
understand what's going on as I thought if there were pending inputs
then ns_read_socket would be called and clear them...

> Alan, please install your patch.

You know, I'm probably being stupid, but I can't for the life of me
remember why we need to wait for the fullscreen transition to
complete. I *thought* it was because we had a crash if we didn't, but
if I remove the wait it all works just fine...

It could be that it's pure chance I'm not seeing any problems, or that
some other fix has fixed the crash, or that the older drawing scheme
used before 10.14 has a problem and the new one doesn't... Or
something else. Do you have any idea?

I *do* remember that there was a pause required for the non-native
fullscreen due to a crash, and I don't think that will have changed,
except that I don't think I've heard from anyone still using 10.6 for
a couple of years now.
-- 
Alan Third





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

* bug#48406: 28.0.50; Emacs stuck in infinite loop in wait_reading_process_output when opening in fullscreen (NS)
  2021-05-15 22:47             ` Alan Third
@ 2021-05-16 20:09               ` Andrii Kolomoiets
  2021-05-26 20:26                 ` Alan Third
  2021-06-05 13:45                 ` Alan Third
  0 siblings, 2 replies; 22+ messages in thread
From: Andrii Kolomoiets @ 2021-05-16 20:09 UTC (permalink / raw)
  To: Alan Third; +Cc: Illia Ostapyshyn, 48406

Alan Third <alan@idiocy.org> writes:

> You know, I'm probably being stupid, but I can't for the life of me
> remember why we need to wait for the fullscreen transition to
> complete. I *thought* it was because we had a crash if we didn't, but
> if I remove the wait it all works just fine...

Same here.  The code snippets provided in Bug#28496 and Bug#36672 are
works fine.

> It could be that it's pure chance I'm not seeing any problems, or that
> some other fix has fixed the crash,

Yes, the NS port certainly made a good progress, thank you :)

> or that the older drawing scheme used before 10.14 has a problem and
> the new one doesn't... Or something else. Do you have any idea?

This is the only example that comes to my mind for now:

(progn
  (toggle-frame-fullscreen)
  (toggle-frame-fullscreen))

Though code like this is not widely used (hope so), it's still some kind
of unexpected behavior.

> I *do* remember that there was a pause required for the non-native
> fullscreen due to a crash, and I don't think that will have changed,
> except that I don't think I've heard from anyone still using 10.6 for
> a couple of years now.

Well, we can pause for the non-native fullscreen users.


-- 
Andrii





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

* bug#48406: 28.0.50; Emacs stuck in infinite loop in wait_reading_process_output when opening in fullscreen (NS)
  2021-05-16 20:09               ` Andrii Kolomoiets
@ 2021-05-26 20:26                 ` Alan Third
  2021-05-26 20:28                   ` Alan Third
  2021-06-05 13:45                 ` Alan Third
  1 sibling, 1 reply; 22+ messages in thread
From: Alan Third @ 2021-05-26 20:26 UTC (permalink / raw)
  To: Andrii Kolomoiets; +Cc: Illia Ostapyshyn, 48406

On Sun, May 16, 2021 at 11:09:39PM +0300, Andrii Kolomoiets wrote:
> Alan Third <alan@idiocy.org> writes:
> 
> > You know, I'm probably being stupid, but I can't for the life of me
> > remember why we need to wait for the fullscreen transition to
> > complete. I *thought* it was because we had a crash if we didn't, but
> > if I remove the wait it all works just fine...
> 
> Same here.  The code snippets provided in Bug#28496 and Bug#36672 are
> works fine.

I'm really inclined to try removing it and seeing if anyone complains.
I don't think they will.

> > or that the older drawing scheme used before 10.14 has a problem and
> > the new one doesn't... Or something else. Do you have any idea?
> 
> This is the only example that comes to my mind for now:
> 
> (progn
>   (toggle-frame-fullscreen)
>   (toggle-frame-fullscreen))
> 
> Though code like this is not widely used (hope so), it's still some kind
> of unexpected behavior.

Hah, I was expecting it to crash, but it's very well behaved! :)

I guess we could check whether we're already in a fullscreen
transition, and if so schedule another call to happen later on... I'm
not sure if it's really necessary though.

> > I *do* remember that there was a pause required for the non-native
> > fullscreen due to a crash, and I don't think that will have changed,
> > except that I don't think I've heard from anyone still using 10.6 for
> > a couple of years now.
> 
> Well, we can pause for the non-native fullscreen users.

Good news, as far as I can see the pause is no longer required! It's
in ns_fullscreen_hook, so if you remove that and all the other pauses
too, we can try pushing it up to master. (See bug#28443.)
-- 
Alan Third





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

* bug#48406: 28.0.50; Emacs stuck in infinite loop in wait_reading_process_output when opening in fullscreen (NS)
  2021-05-26 20:26                 ` Alan Third
@ 2021-05-26 20:28                   ` Alan Third
  0 siblings, 0 replies; 22+ messages in thread
From: Alan Third @ 2021-05-26 20:28 UTC (permalink / raw)
  To: Andrii Kolomoiets, Illia Ostapyshyn, 48406

On Wed, May 26, 2021 at 09:26:39PM +0100, Alan Third wrote:
> 
> > > I *do* remember that there was a pause required for the non-native
> > > fullscreen due to a crash, and I don't think that will have changed,
> > > except that I don't think I've heard from anyone still using 10.6 for
> > > a couple of years now.
> > 
> > Well, we can pause for the non-native fullscreen users.
> 
> Good news, as far as I can see the pause is no longer required! It's
> in ns_fullscreen_hook, so if you remove that and all the other pauses
> too, we can try pushing it up to master. (See bug#28443.)

Actually, no, it's still needed for now, but it doesn't have any
effect on the rest, so please, if you want to remove all the pauses
(except the non-native one) we can try it out.
-- 
Alan Third





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

* bug#48406: 28.0.50; Emacs stuck in infinite loop in wait_reading_process_output when opening in fullscreen (NS)
  2021-05-16 20:09               ` Andrii Kolomoiets
  2021-05-26 20:26                 ` Alan Third
@ 2021-06-05 13:45                 ` Alan Third
  2021-06-05 16:21                   ` Illia Ostapyshyn
  1 sibling, 1 reply; 22+ messages in thread
From: Alan Third @ 2021-06-05 13:45 UTC (permalink / raw)
  To: Andrii Kolomoiets; +Cc: Illia Ostapyshyn, 48406

[-- Attachment #1: Type: text/plain, Size: 146 bytes --]

Patch attached.

I think this is probably pretty safe, but I'll leave it a couple of
days in case someone finds a problem with it.
-- 
Alan Third

[-- Attachment #2: 0001-Remove-pause-on-fullscreening-in-NS-bug-48406.patch --]
[-- Type: text/plain, Size: 3529 bytes --]

From 237ad27c3164483cc3c0a9c870db2653456f076c Mon Sep 17 00:00:00 2001
From: Alan Third <alan@idiocy.org>
Date: Sat, 5 Jun 2021 14:38:17 +0100
Subject: [PATCH] Remove pause on fullscreening in NS (bug#48406)

* src/nsterm.m (ns_make_frame_visible):
(ns_set_parent_frame):
([EmacsView toggleFullScreen:]): Remove calls to removed methods..
([EmacsView inFullScreenTransition]):
([EmacsView waitFullScreenTransition]): Remove methods.
* src/nsterm.h (EmacsView): Remove defintions of removed methods, and
the in_fullscreen_transition variable.
---
 src/nsterm.h |  3 ---
 src/nsterm.m | 32 ++------------------------------
 2 files changed, 2 insertions(+), 33 deletions(-)

diff --git a/src/nsterm.h b/src/nsterm.h
index 0596f3f3c1..e7ea907569 100644
--- a/src/nsterm.h
+++ b/src/nsterm.h
@@ -443,7 +443,6 @@ #define NS_DRAW_TO_BUFFER 1
    int maximized_width, maximized_height;
    NSWindow *nonfs_window;
    BOOL fs_is_native;
-   BOOL in_fullscreen_transition;
 #ifdef NS_DRAW_TO_BUFFER
    EmacsSurface *surface;
 #endif
@@ -475,8 +474,6 @@ #define NS_DRAW_TO_BUFFER 1
 - (void) toggleFullScreen: (id) sender;
 - (BOOL) fsIsNative;
 - (BOOL) isFullscreen;
-- (BOOL) inFullScreenTransition;
-- (void) waitFullScreenTransition;
 #if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
 - (void) updateCollectionBehavior;
 #endif
diff --git a/src/nsterm.m b/src/nsterm.m
index f6168243a4..1503f5e2fb 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -1640,8 +1640,6 @@ -(void)remove
          fullscreen also.  So skip handleFS as this will print an error.  */
       if ([view fsIsNative] && [view isFullscreen])
         {
-          // maybe it is not necessary to wait
-          [view waitFullScreenTransition];
           return;
         }
 
@@ -2057,11 +2055,7 @@ so some key presses (TAB) are swallowed by the system.  */
 #if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
           // child frame must not be in fullscreen
           if ([view fsIsNative] && [view isFullscreen])
-            {
-              // in case child is going fullscreen
-              [view waitFullScreenTransition];
-              [view toggleFullScreen:child];
-            }
+            [view toggleFullScreen:child];
           NSTRACE ("child setCollectionBehavior:NSWindowCollectionBehaviorFullScreenAuxiliary");
           [child setCollectionBehavior:NSWindowCollectionBehaviorFullScreenAuxiliary];
 #endif
@@ -7963,22 +7957,6 @@ - (void)windowDidExitFullScreen /* provided for direct calls */
     [[self window] performZoom:self];
 }
 
-- (BOOL)inFullScreenTransition
-{
-  return in_fullscreen_transition;
-}
-
-- (void)waitFullScreenTransition
-{
-#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
-  while ([self inFullScreenTransition])
-    {
-      NSTRACE ("wait for fullscreen");
-      wait_reading_process_output (0, 300000000, 0, 1, Qnil, NULL, 0);
-    }
-#endif
-}
-
 - (BOOL)fsIsNative
 {
   return fs_is_native;
@@ -8058,14 +8036,8 @@ - (void)toggleFullScreen: (id)sender
 #if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
 #if MAC_OS_X_VERSION_MIN_REQUIRED < 1070
       if ([[self window] respondsToSelector: @selector(toggleFullScreen:)])
-        {
-#endif
-          [[self window] toggleFullScreen:sender];
-          // wait for fullscreen animation complete (bug#28496)
-          [self waitFullScreenTransition];
-#if MAC_OS_X_VERSION_MIN_REQUIRED < 1070
-        }
 #endif
+        [[self window] toggleFullScreen:sender];
 #endif
       return;
     }
-- 
2.29.2


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

* bug#48406: 28.0.50; Emacs stuck in infinite loop in wait_reading_process_output when opening in fullscreen (NS)
  2021-06-05 13:45                 ` Alan Third
@ 2021-06-05 16:21                   ` Illia Ostapyshyn
  2021-06-05 16:33                     ` Alan Third
  0 siblings, 1 reply; 22+ messages in thread
From: Illia Ostapyshyn @ 2021-06-05 16:21 UTC (permalink / raw)
  To: Alan Third; +Cc: 48406, Andrii Kolomoiets

[-- Attachment #1: Type: text/plain, Size: 701 bytes --]

> On Jun 5, 2021, at 15:45, Alan Third <alan@idiocy.org> wrote:
> 
> Patch attached.
> 
> I think this is probably pretty safe, but I'll leave it a couple of
> days in case someone finds a problem with it.
> -- 
> Alan Third
> <0001-Remove-pause-on-fullscreening-in-NS-bug-48406.patch>

Hello Alan,

thank you for working on this. I am going to apply this patch and report any
possible issues with it. I commented out that problematic pause for fullscreen
transition myself just after starting this thread and didn’t encounter any
issues so far.

By the way, there seems to be a compilation issue as not all references to
in_fullscreen_transition were removed (see attachment).


[-- Attachment #2: 0001-remove-in_fullscreen_transition-references.patch --]
[-- Type: application/octet-stream, Size: 1905 bytes --]

From 2706fd2eeea6590e3860a62d44dd3dd107341319 Mon Sep 17 00:00:00 2001
From: Illia Ostapyshyn <ilya.ostapyshyn@gmail.com>
Date: Sat, 5 Jun 2021 18:06:41 +0200
Subject: [PATCH] remove in_fullscreen_transition references

---
 src/nsterm.m | 5 -----
 1 file changed, 5 deletions(-)

diff --git a/src/nsterm.m b/src/nsterm.m
index 1503f5e2fb..838c14d5ab 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -7483,7 +7483,6 @@ - (instancetype) initFrameFromEmacs: (struct frame *)f
 #endif
     fs_is_native = ns_use_native_fullscreen;
 #endif
-  in_fullscreen_transition = NO;
 
   maximized_width = maximized_height = -1;
   nonfs_window = nil;
@@ -7856,7 +7855,6 @@ - (NSApplicationPresentationOptions)window:(NSWindow *)window
 - (void)windowWillEnterFullScreen:(NSNotification *)notification
 {
   NSTRACE ("[EmacsView windowWillEnterFullScreen:]");
-  in_fullscreen_transition = YES;
   [self windowWillEnterFullScreen];
 }
 - (void)windowWillEnterFullScreen /* provided for direct calls */
@@ -7869,7 +7867,6 @@ - (void)windowDidEnterFullScreen:(NSNotification *)notification
 {
   NSTRACE ("[EmacsView windowDidEnterFullScreen:]");
   [self windowDidEnterFullScreen];
-  in_fullscreen_transition = NO;
 }
 
 - (void)windowDidEnterFullScreen /* provided for direct calls */
@@ -7908,7 +7905,6 @@ - (void)windowDidEnterFullScreen /* provided for direct calls */
 - (void)windowWillExitFullScreen:(NSNotification *)notification
 {
   NSTRACE ("[EmacsView windowWillExitFullScreen:]");
-  in_fullscreen_transition = YES;
   [self windowWillExitFullScreen];
 }
 
@@ -7928,7 +7924,6 @@ - (void)windowDidExitFullScreen:(NSNotification *)notification
 {
   NSTRACE ("[EmacsView windowDidExitFullScreen:]");
   [self windowDidExitFullScreen];
-  in_fullscreen_transition = NO;
 }
 
 - (void)windowDidExitFullScreen /* provided for direct calls */
-- 
2.31.1


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

* bug#48406: 28.0.50; Emacs stuck in infinite loop in wait_reading_process_output when opening in fullscreen (NS)
  2021-06-05 16:21                   ` Illia Ostapyshyn
@ 2021-06-05 16:33                     ` Alan Third
  2021-06-09 21:01                       ` Alan Third
  0 siblings, 1 reply; 22+ messages in thread
From: Alan Third @ 2021-06-05 16:33 UTC (permalink / raw)
  To: Illia Ostapyshyn; +Cc: 48406, Andrii Kolomoiets

[-- Attachment #1: Type: text/plain, Size: 277 bytes --]

On Sat, Jun 05, 2021 at 06:21:59PM +0200, Illia Ostapyshyn wrote:
> 
> By the way, there seems to be a compilation issue as not all references to
> in_fullscreen_transition were removed (see attachment).

Oops, my mistake. Please use the attached patch instead.
-- 
Alan Third

[-- Attachment #2: v2-0001-Remove-pause-on-fullscreening-in-NS-bug-48406.patch --]
[-- Type: text/plain, Size: 5183 bytes --]

From 1425b3c3ecc440e62506e800b270b9896c86e537 Mon Sep 17 00:00:00 2001
From: Alan Third <alan@idiocy.org>
Date: Sat, 5 Jun 2021 14:38:17 +0100
Subject: [PATCH v2] Remove pause on fullscreening in NS (bug#48406)

* src/nsterm.m (ns_make_frame_visible):
(ns_set_parent_frame):
([EmacsView windowWillEnterFullScreen:]):
([EmacsView windowDidEnterFullScreen:]):
([EmacsView windowWillExitFullScreen:]):
([EmacsView initFrameFromEmacs:]): Remove references to
in_fullscreen_transition.
([EmacsView toggleFullScreen:]): Remove calls to removed methods.
([EmacsView inFullScreenTransition]):
([EmacsView waitFullScreenTransition]): Remove Methods.
* src/nsterm.h (EmacsView): Remove defintions of removed methods, and
the in_fullscreen_transition variable.
---
 src/nsterm.h |  3 ---
 src/nsterm.m | 37 ++-----------------------------------
 2 files changed, 2 insertions(+), 38 deletions(-)

diff --git a/src/nsterm.h b/src/nsterm.h
index 0596f3f3c1..e7ea907569 100644
--- a/src/nsterm.h
+++ b/src/nsterm.h
@@ -443,7 +443,6 @@ #define NS_DRAW_TO_BUFFER 1
    int maximized_width, maximized_height;
    NSWindow *nonfs_window;
    BOOL fs_is_native;
-   BOOL in_fullscreen_transition;
 #ifdef NS_DRAW_TO_BUFFER
    EmacsSurface *surface;
 #endif
@@ -475,8 +474,6 @@ #define NS_DRAW_TO_BUFFER 1
 - (void) toggleFullScreen: (id) sender;
 - (BOOL) fsIsNative;
 - (BOOL) isFullscreen;
-- (BOOL) inFullScreenTransition;
-- (void) waitFullScreenTransition;
 #if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
 - (void) updateCollectionBehavior;
 #endif
diff --git a/src/nsterm.m b/src/nsterm.m
index f6168243a4..838c14d5ab 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -1640,8 +1640,6 @@ -(void)remove
          fullscreen also.  So skip handleFS as this will print an error.  */
       if ([view fsIsNative] && [view isFullscreen])
         {
-          // maybe it is not necessary to wait
-          [view waitFullScreenTransition];
           return;
         }
 
@@ -2057,11 +2055,7 @@ so some key presses (TAB) are swallowed by the system.  */
 #if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
           // child frame must not be in fullscreen
           if ([view fsIsNative] && [view isFullscreen])
-            {
-              // in case child is going fullscreen
-              [view waitFullScreenTransition];
-              [view toggleFullScreen:child];
-            }
+            [view toggleFullScreen:child];
           NSTRACE ("child setCollectionBehavior:NSWindowCollectionBehaviorFullScreenAuxiliary");
           [child setCollectionBehavior:NSWindowCollectionBehaviorFullScreenAuxiliary];
 #endif
@@ -7489,7 +7483,6 @@ - (instancetype) initFrameFromEmacs: (struct frame *)f
 #endif
     fs_is_native = ns_use_native_fullscreen;
 #endif
-  in_fullscreen_transition = NO;
 
   maximized_width = maximized_height = -1;
   nonfs_window = nil;
@@ -7862,7 +7855,6 @@ - (NSApplicationPresentationOptions)window:(NSWindow *)window
 - (void)windowWillEnterFullScreen:(NSNotification *)notification
 {
   NSTRACE ("[EmacsView windowWillEnterFullScreen:]");
-  in_fullscreen_transition = YES;
   [self windowWillEnterFullScreen];
 }
 - (void)windowWillEnterFullScreen /* provided for direct calls */
@@ -7875,7 +7867,6 @@ - (void)windowDidEnterFullScreen:(NSNotification *)notification
 {
   NSTRACE ("[EmacsView windowDidEnterFullScreen:]");
   [self windowDidEnterFullScreen];
-  in_fullscreen_transition = NO;
 }
 
 - (void)windowDidEnterFullScreen /* provided for direct calls */
@@ -7914,7 +7905,6 @@ - (void)windowDidEnterFullScreen /* provided for direct calls */
 - (void)windowWillExitFullScreen:(NSNotification *)notification
 {
   NSTRACE ("[EmacsView windowWillExitFullScreen:]");
-  in_fullscreen_transition = YES;
   [self windowWillExitFullScreen];
 }
 
@@ -7934,7 +7924,6 @@ - (void)windowDidExitFullScreen:(NSNotification *)notification
 {
   NSTRACE ("[EmacsView windowDidExitFullScreen:]");
   [self windowDidExitFullScreen];
-  in_fullscreen_transition = NO;
 }
 
 - (void)windowDidExitFullScreen /* provided for direct calls */
@@ -7963,22 +7952,6 @@ - (void)windowDidExitFullScreen /* provided for direct calls */
     [[self window] performZoom:self];
 }
 
-- (BOOL)inFullScreenTransition
-{
-  return in_fullscreen_transition;
-}
-
-- (void)waitFullScreenTransition
-{
-#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
-  while ([self inFullScreenTransition])
-    {
-      NSTRACE ("wait for fullscreen");
-      wait_reading_process_output (0, 300000000, 0, 1, Qnil, NULL, 0);
-    }
-#endif
-}
-
 - (BOOL)fsIsNative
 {
   return fs_is_native;
@@ -8058,14 +8031,8 @@ - (void)toggleFullScreen: (id)sender
 #if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
 #if MAC_OS_X_VERSION_MIN_REQUIRED < 1070
       if ([[self window] respondsToSelector: @selector(toggleFullScreen:)])
-        {
-#endif
-          [[self window] toggleFullScreen:sender];
-          // wait for fullscreen animation complete (bug#28496)
-          [self waitFullScreenTransition];
-#if MAC_OS_X_VERSION_MIN_REQUIRED < 1070
-        }
 #endif
+        [[self window] toggleFullScreen:sender];
 #endif
       return;
     }
-- 
2.29.2


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

* bug#48406: 28.0.50; Emacs stuck in infinite loop in wait_reading_process_output when opening in fullscreen (NS)
  2021-06-05 16:33                     ` Alan Third
@ 2021-06-09 21:01                       ` Alan Third
  0 siblings, 0 replies; 22+ messages in thread
From: Alan Third @ 2021-06-09 21:01 UTC (permalink / raw)
  To: Illia Ostapyshyn, Andrii Kolomoiets, 48406-done

On Sat, Jun 05, 2021 at 05:33:49PM +0100, Alan Third wrote:
> On Sat, Jun 05, 2021 at 06:21:59PM +0200, Illia Ostapyshyn wrote:
> > 
> > By the way, there seems to be a compilation issue as not all references to
> > in_fullscreen_transition were removed (see attachment).
> 
> Oops, my mistake. Please use the attached patch instead.

Since I've not heard anything back from anyone I've pushed this to
master. If there still are any problems, please reply and we can
reopen the bug report.
-- 
Alan Third





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

end of thread, other threads:[~2021-06-09 21:01 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-05-13 20:39 bug#48406: 28.0.50; Emacs stuck in infinite loop in wait_reading_process_output when opening in fullscreen (NS) Illia Ostapyshyn
2021-05-13 21:15 ` Alan Third
2021-05-14  6:07   ` Andrii Kolomoiets
2021-05-14  9:13     ` Illia Ostapyshyn
2021-05-14 19:32       ` Andrii Kolomoiets
2021-05-14 20:34         ` Alan Third
2021-05-15 19:44           ` Andrii Kolomoiets
2021-05-15 22:47             ` Alan Third
2021-05-16 20:09               ` Andrii Kolomoiets
2021-05-26 20:26                 ` Alan Third
2021-05-26 20:28                   ` Alan Third
2021-06-05 13:45                 ` Alan Third
2021-06-05 16:21                   ` Illia Ostapyshyn
2021-06-05 16:33                     ` Alan Third
2021-06-09 21:01                       ` Alan Third
2021-05-14 22:53         ` Filipp Gunbin
2021-05-15  8:34         ` Illia Ostapyshyn
2021-05-14  6:22 ` Eli Zaretskii
2021-05-14  9:22   ` Illia Ostapyshyn
2021-05-14 10:55     ` Eli Zaretskii
2021-05-14 11:09       ` Illia Ostapyshyn
2021-05-14 11:13         ` 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).