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.
This commit is contained in:
parent
90ac405702
commit
056b468f74
1 changed files with 11 additions and 9 deletions
20
src/nsterm.m
20
src/nsterm.m
|
@ -8411,13 +8411,16 @@ - (void)windowDidChangeBackingProperties:(NSNotification *)notification
|
|||
{
|
||||
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 @@ - (void)copyRect:(NSRect)srcRect to:(NSRect)dstRect
|
|||
}
|
||||
|
||||
|
||||
#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 @@ - (void)copyRect:(NSRect)srcRect to:(NSRect)dstRect
|
|||
- (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 @@ - (void)viewWillDraw
|
|||
waiting_for_input = owfi;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef NS_DRAW_TO_BUFFER
|
||||
- (BOOL)wantsUpdateLayer
|
||||
{
|
||||
#if MAC_OS_X_VERSION_MIN_REQUIRED < 101400
|
||||
|
|
Loading…
Add table
Reference in a new issue