Skip to content

Commit

Permalink
Improved interaction with non-FLTK windows.
Browse files Browse the repository at this point in the history
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@7946 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
  • Loading branch information
Manolo Gouy authored and Manolo Gouy committed Dec 3, 2010
1 parent 286e523 commit 0861422
Showing 1 changed file with 18 additions and 9 deletions.
27 changes: 18 additions & 9 deletions src/Fl_cocoa.mm
Expand Up @@ -672,15 +672,6 @@ static double do_queued_events( double time = 0.0 )
}

fl_unlock_function();

// necessary so that after closing a non-FLTK window (e.g., Fl_Native_File_Chooser)
// the front window turns key again
NSWindow *nsk = [NSApp keyWindow];
NSWindow *nsm = [NSApp mainWindow];
if ([nsm isMemberOfClass:[FLWindow class]] && (nsk == nil || ( ! [nsk isMemberOfClass:[FLWindow class]] &&
! [nsk isVisible] ) ) ) {
[nsm makeKeyAndOrderFront:nil];
}
NSEvent *event = [NSApp nextEventMatchingMask:NSAnyEventMask
untilDate:[NSDate dateWithTimeIntervalSinceNow:time]
inMode:NSDefaultRunLoopMode dequeue:YES];
Expand Down Expand Up @@ -1142,6 +1133,7 @@ - (void)windowDidBecomeMain:(NSNotification *)notif;
- (void)windowDidDeminiaturize:(NSNotification *)notif;
- (void)windowDidMiniaturize:(NSNotification *)notif;
- (void)windowWillClose:(NSNotification *)notif;
- (void)anywindowwillclosenotif:(NSNotification *)notif;
- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication*)sender;
- (void)applicationDidBecomeActive:(NSNotification *)notify;
- (void)applicationWillResignActive:(NSNotification *)notify;
Expand Down Expand Up @@ -1218,6 +1210,18 @@ - (void)windowWillClose:(NSNotification *)notif
}
}
}
- (void)anywindowwillclosenotif:(NSNotification *)notif
{
// necessary so that after closing a non-FLTK window (e.g., Fl_Native_File_Chooser)
// the front window turns key again
NSWindow *closing = (NSWindow*)[notif object];
if ([closing isMemberOfClass:[FLWindow class]]) return;
NSWindow *nsk = [NSApp keyWindow];
NSWindow *nsm = [NSApp mainWindow];
if ([nsm isMemberOfClass:[FLWindow class]] && nsk == nil) {
[nsm makeKeyAndOrderFront:nil];
}
}
- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication*)sender
{
fl_lock_function();
Expand Down Expand Up @@ -1423,6 +1427,11 @@ void fl_open_display() {
};
EventHandlerUPP textHandler = NewEventHandlerUPP( carbonTextHandler );
InstallEventHandler(GetEventDispatcherTarget(), textHandler, 1, textEvents, NULL, 0L);

[[NSNotificationCenter defaultCenter] addObserver:mydelegate
selector:@selector(anywindowwillclosenotif:)
name:NSWindowWillCloseNotification
object:nil];
}
}

Expand Down

0 comments on commit 0861422

Please sign in to comment.