summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManolo Gouy <Manolo>2011-10-27 19:41:54 +0000
committerManolo Gouy <Manolo>2011-10-27 19:41:54 +0000
commit8ff32e11d61b3ff161b0ebd8b354ffd5f665c2b0 (patch)
tree446e59d845e48652b2e453a55f23cec2f9306ce4
parent353f59a0ce663d3018e6d0d6edac08bb0783f5af (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
-rw-r--r--src/Fl_cocoa.mm17
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();