From: Alan Third Date: Sun, 2 May 2021 10:25:40 +0000 (+0100) Subject: Fix crash when resizing GNUstep builds X-Git-Tag: emacs-28.0.90~2646 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=609d814fdf1e7ab76ec45017bc04087ae41d9bc8;p=emacs.git Fix crash when resizing GNUstep builds The toolkit can send far too many resize notifications, so be more careful when we take action after receiving one. * src/nsfns.m (ns_set_tool_bar_lines): Remove unneeded NSTRACE. * src/nsterm.m ([EmacsView viewDidResize:]): Don't report resizes to Emacs when the same change has already been reported and delayed. --- diff --git a/src/nsfns.m b/src/nsfns.m index 3f05128d363..1f281f75fd4 100644 --- a/src/nsfns.m +++ b/src/nsfns.m @@ -668,11 +668,7 @@ ns_set_tool_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval) } } - { - NSTRACE_MSG ("inhibit:%d", inhibit); - - adjust_frame_size (f, -1, -1, 2, false, Qtool_bar_lines); - } + adjust_frame_size (f, -1, -1, 2, false, Qtool_bar_lines); } static void diff --git a/src/nsterm.m b/src/nsterm.m index f2d03967f90..6e7ab1266ba 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -7308,16 +7308,19 @@ not_in_argv (NSString *arg) oldw = FRAME_PIXEL_WIDTH (emacsframe); oldh = FRAME_PIXEL_HEIGHT (emacsframe); - NSTRACE_SIZE ("New size", NSMakeSize (neww, newh)); - NSTRACE_SIZE ("Original size", NSMakeSize (oldw, oldh)); - /* Don't want to do anything when the view size hasn't changed. */ - if (oldh == newh && oldw == neww) + if ((oldh == newh && oldw == neww) + || (emacsframe->new_size_p + && newh == emacsframe->new_height + && neww == emacsframe->new_width)) { NSTRACE_MSG ("No change"); return; } + NSTRACE_SIZE ("New size", NSMakeSize (neww, newh)); + NSTRACE_SIZE ("Original size", NSMakeSize (oldw, oldh)); + #ifdef NS_DRAW_TO_BUFFER if ([self wantsUpdateLayer]) {