Author: manolo
Date: 2011-10-27 12:48:19 -0700 (Thu, 27 Oct 2011)
New Revision: 9155
Log:
Mac OS: fixed the setting of the key window after a window is closed.

Modified:
   branches/branch-3.0/src/fltk3/cocoa.mm

Modified: branches/branch-3.0/src/fltk3/cocoa.mm
===================================================================
--- branches/branch-3.0/src/fltk3/cocoa.mm      2011-10-27 19:41:54 UTC (rev 
9154)
+++ branches/branch-3.0/src/fltk3/cocoa.mm      2011-10-27 19:48:19 UTC (rev 
9155)
@@ -1021,17 +1021,16 @@
 - (void)windowWillClose:(NSNotification *)notif
 {
   fl_lock_function();
-  fltk3::Window *w = fltk3::first_window();
-  if (w) {
-    NSWindow *cw = (NSWindow*)Fl_X::i(w)->xid;
-    if ( ![cw isMiniaturized] && ([cw styleMask] & NSTitledWindowMask) ) {
-      if (![cw isKeyWindow]) { // always make fltk3::first_window() the key 
widow
-       [cw makeKeyAndOrderFront:nil];
-      }
-      if (![cw isMainWindow]) {        // always make fltk3::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
+    fltk3::Window *w = fltk3::first_window();
+    while (w && (w->parent() || !w->border() || !w->visible())) {
+      w = fltk3::next_window(w);
     }
+    if (w) {
+      [(FLWindow*)Fl_X::i(w)->xid makeKeyAndOrderFront:nil];
+    }
   }
   fl_unlock_function();
 }

_______________________________________________
fltk-commit mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk-commit

Reply via email to