diff options
| author | Manolo Gouy <Manolo> | 2011-10-27 19:41:54 +0000 |
|---|---|---|
| committer | Manolo Gouy <Manolo> | 2011-10-27 19:41:54 +0000 |
| commit | 8ff32e11d61b3ff161b0ebd8b354ffd5f665c2b0 (patch) | |
| tree | 446e59d845e48652b2e453a55f23cec2f9306ce4 /src | |
| parent | 353f59a0ce663d3018e6d0d6edac08bb0783f5af (diff) | |
Mac OS: fixed the setting of the key window after a window is closed.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@9154 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src')
| -rw-r--r-- | src/Fl_cocoa.mm | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/Fl_cocoa.mm b/src/Fl_cocoa.mm index 07dbaa6b3..c989b8848 100644 --- a/src/Fl_cocoa.mm +++ b/src/Fl_cocoa.mm @@ -1020,16 +1020,15 @@ void fl_open_callback(void (*cb)(const char *)) { - (void)windowWillClose:(NSNotification *)notif { fl_lock_function(); - Fl_Window *w = Fl::first_window(); - if (w) { - NSWindow *cw = (NSWindow*)Fl_X::i(w)->xid; - if ( ![cw isMiniaturized] && ([cw styleMask] & NSTitledWindowMask) ) { - if (![cw isKeyWindow]) { // always make Fl::first_window() the key widow - [cw makeKeyAndOrderFront:nil]; - } - if (![cw isMainWindow]) { // always make Fl::first_window() the main widow - [cw makeMainWindow]; + if ([[notif object] isKeyWindow]) { + // If the closing window is the key window, + // find a bordered top-level window to become the new key window + Fl_Window *w = Fl::first_window(); + while (w && (w->parent() || !w->border() || !w->visible())) { + w = Fl::next_window(w); } + if (w) { + [(FLWindow*)Fl_X::i(w)->xid makeKeyAndOrderFront:nil]; } } fl_unlock_function(); |
