diff options
| author | Alan Third | 2021-05-02 11:25:40 +0100 |
|---|---|---|
| committer | Alan Third | 2021-05-02 11:52:45 +0100 |
| commit | 609d814fdf1e7ab76ec45017bc04087ae41d9bc8 (patch) | |
| tree | 1dddce3f4edd9ddebb42f6ff92c00eab7d18623e /src | |
| parent | d0d95d161495585c73f881941beda77352517d34 (diff) | |
| download | emacs-609d814fdf1e7ab76ec45017bc04087ae41d9bc8.tar.gz emacs-609d814fdf1e7ab76ec45017bc04087ae41d9bc8.zip | |
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.
Diffstat (limited to 'src')
| -rw-r--r-- | src/nsfns.m | 6 | ||||
| -rw-r--r-- | src/nsterm.m | 11 |
2 files changed, 8 insertions, 9 deletions
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) | |||
| 668 | } | 668 | } |
| 669 | } | 669 | } |
| 670 | 670 | ||
| 671 | { | 671 | adjust_frame_size (f, -1, -1, 2, false, Qtool_bar_lines); |
| 672 | NSTRACE_MSG ("inhibit:%d", inhibit); | ||
| 673 | |||
| 674 | adjust_frame_size (f, -1, -1, 2, false, Qtool_bar_lines); | ||
| 675 | } | ||
| 676 | } | 672 | } |
| 677 | 673 | ||
| 678 | static void | 674 | 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) | |||
| 7308 | oldw = FRAME_PIXEL_WIDTH (emacsframe); | 7308 | oldw = FRAME_PIXEL_WIDTH (emacsframe); |
| 7309 | oldh = FRAME_PIXEL_HEIGHT (emacsframe); | 7309 | oldh = FRAME_PIXEL_HEIGHT (emacsframe); |
| 7310 | 7310 | ||
| 7311 | NSTRACE_SIZE ("New size", NSMakeSize (neww, newh)); | ||
| 7312 | NSTRACE_SIZE ("Original size", NSMakeSize (oldw, oldh)); | ||
| 7313 | |||
| 7314 | /* Don't want to do anything when the view size hasn't changed. */ | 7311 | /* Don't want to do anything when the view size hasn't changed. */ |
| 7315 | if (oldh == newh && oldw == neww) | 7312 | if ((oldh == newh && oldw == neww) |
| 7313 | || (emacsframe->new_size_p | ||
| 7314 | && newh == emacsframe->new_height | ||
| 7315 | && neww == emacsframe->new_width)) | ||
| 7316 | { | 7316 | { |
| 7317 | NSTRACE_MSG ("No change"); | 7317 | NSTRACE_MSG ("No change"); |
| 7318 | return; | 7318 | return; |
| 7319 | } | 7319 | } |
| 7320 | 7320 | ||
| 7321 | NSTRACE_SIZE ("New size", NSMakeSize (neww, newh)); | ||
| 7322 | NSTRACE_SIZE ("Original size", NSMakeSize (oldw, oldh)); | ||
| 7323 | |||
| 7321 | #ifdef NS_DRAW_TO_BUFFER | 7324 | #ifdef NS_DRAW_TO_BUFFER |
| 7322 | if ([self wantsUpdateLayer]) | 7325 | if ([self wantsUpdateLayer]) |
| 7323 | { | 7326 | { |