MacOS: another way to make sure windowDidResize does not access Fl_Window after [FLWindow close] message was sent
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@12082 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
parent
49a2e4206e
commit
214b3c32b5
@ -656,6 +656,13 @@ void Fl_Cocoa_Screen_Driver::remove_timeout(Fl_Timeout_Handler cb, void* data)
|
||||
@end
|
||||
|
||||
@implementation FLWindow
|
||||
- (void)close
|
||||
{
|
||||
[super close];
|
||||
// when a fullscreen window is closed, windowDidResize may be sent after the close message was sent
|
||||
// and before the FLWindow receives the final dealloc message
|
||||
w = NULL;
|
||||
}
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
|
||||
- (NSPoint)convertBaseToScreen:(NSPoint)aPoint
|
||||
{
|
||||
@ -1317,9 +1324,9 @@ static FLWindowDelegate *flwindowdelegate_instance = nil;
|
||||
- (void)windowDidResize:(NSNotification *)notif
|
||||
{
|
||||
FLWindow *nsw = (FLWindow*)[notif object];
|
||||
if (![nsw isVisible]) return;
|
||||
fl_lock_function();
|
||||
Fl_Window *window = [nsw getFl_Window];
|
||||
if (!window) return;
|
||||
fl_lock_function();
|
||||
NSRect r; NSPoint pt2;
|
||||
r = [[nsw contentView] frame];
|
||||
pt2 = [nsw convertBaseToScreen:NSMakePoint(0, r.size.height)];
|
||||
|
Loading…
x
Reference in New Issue
Block a user