diff options
| author | Alan Third <alan@idiocy.org> | 2021-02-24 09:52:42 +0000 |
|---|---|---|
| committer | Alan Third <alan@idiocy.org> | 2021-02-25 17:58:59 +0000 |
| commit | 056b468f74ff0aab41febaf6dbd4db23f3bebba2 (patch) | |
| tree | f79a6258f356cb67e45942289a7fd4e93a8b64b3 /src | |
| parent | 90ac40570280f4f423b55a2d9eea5a44317a66e3 (diff) | |
Fix freeze on older macOS's (bug#46687)
* src/nsterm.m ([EmacsView windowDidChangeBackingProperties:]):
([EmacsView viewWillDraw]): Only run this code when actually drawing
to an offscreen bitmap.
Diffstat (limited to 'src')
| -rw-r--r-- | src/nsterm.m | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/src/nsterm.m b/src/nsterm.m index 88317f88393..bf175bbd188 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -8411,13 +8411,16 @@ not_in_argv (NSString *arg) { NSTRACE ("EmacsView windowDidChangeBackingProperties:]"); - NSRect frame = [self frame]; + if ([self wantsUpdateLayer]) + { + NSRect frame = [self frame]; - [surface release]; - surface = nil; + [surface release]; + surface = nil; - ns_clear_frame (emacsframe); - expose_frame (emacsframe, 0, 0, NSWidth (frame), NSHeight (frame)); + ns_clear_frame (emacsframe); + expose_frame (emacsframe, 0, 0, NSWidth (frame), NSHeight (frame)); + } } #endif /* NS_DRAW_TO_BUFFER */ @@ -8480,7 +8483,7 @@ not_in_argv (NSString *arg) } -#ifdef NS_IMPL_COCOA +#ifdef NS_DRAW_TO_BUFFER /* If the frame has been garbaged but the toolkit wants to draw, for example when resizing the frame, we end up with a blank screen. Sometimes this results in an unpleasant flicker, so try to @@ -8488,7 +8491,8 @@ not_in_argv (NSString *arg) - (void)viewWillDraw { if (FRAME_GARBAGED_P (emacsframe) - && !redisplaying_p) + && !redisplaying_p + && [self wantsUpdateLayer]) { /* If there is IO going on when redisplay is run here Emacs crashes. I think it's because this code will always be run @@ -8505,10 +8509,8 @@ not_in_argv (NSString *arg) waiting_for_input = owfi; } } -#endif -#ifdef NS_DRAW_TO_BUFFER - (BOOL)wantsUpdateLayer { #if MAC_OS_X_VERSION_MIN_REQUIRED < 101400 |
