Author: manolo
Date: 2011-03-25 05:02:31 -0700 (Fri, 25 Mar 2011)
New Revision: 8531
Log:
Mac OS: implement the Cocoa equivalent of Carbon's kEventWindowHidden handler.
Positive effect visible with the clock demo.

Modified:
   branches/branch-1.3/src/Fl_cocoa.mm

Modified: branches/branch-1.3/src/Fl_cocoa.mm
===================================================================
--- branches/branch-1.3/src/Fl_cocoa.mm 2011-03-24 12:58:32 UTC (rev 8530)
+++ branches/branch-1.3/src/Fl_cocoa.mm 2011-03-25 12:02:31 UTC (rev 8531)
@@ -1044,6 +1044,8 @@
 - 
(NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication*)sender;
 - (void)applicationDidBecomeActive:(NSNotification *)notify;
 - (void)applicationWillResignActive:(NSNotification *)notify;
+- (void)applicationWillHide:(NSNotification *)notify;
+- (void)applicationWillUnhide:(NSNotification *)notify;
 - (id)windowWillReturnFieldEditor:(NSWindow *)sender toObject:(id)client;
 @end
 @implementation FLDelegate
@@ -1087,7 +1089,7 @@
 {
   FLWindow *nsw = (FLWindow*)[notif object];
   Fl_Window *window = [nsw getFl_Window];
-  Fl::handle( FL_FOCUS, window);
+  if ([nsw level] != NSMainMenuWindowLevel) Fl::handle( FL_FOCUS, window);
 }
 - (void)windowDidBecomeMain:(NSNotification *)notif
 {
@@ -1227,6 +1229,26 @@
     }
   }
 }
+- (void)applicationWillHide:(NSNotification *)notify
+{
+  Fl_X *x;
+  for (x = Fl_X::first;x;x = x->next) {
+    Fl_Window *window = x->w;
+    if ( !window->parent() ) Fl::handle( FL_HIDE, window);
+    }
+}
+- (void)applicationWillUnhide:(NSNotification *)notify
+{
+  Fl_X *x;
+  for (x = Fl_X::first;x;x = x->next) {
+    FLWindow *cw = (FLWindow*)x->xid;
+    Fl_Window *window = x->w;
+    if ( !window->parent() ) {
+      if ([cw level] != NSMainMenuWindowLevel) Fl::handle( FL_FOCUS, window);
+      Fl::handle( FL_SHOW, window);
+      }
+  }
+}
 - (id)windowWillReturnFieldEditor:(NSWindow *)sender toObject:(id)client
 {
   NSRect rect={{0,0},{20,20}};
@@ -3115,7 +3137,7 @@
 
 void Fl_X::set_key_window()
 {
-  [(NSWindow*)xid makeKeyAndOrderFront:nil];
+  [(NSWindow*)xid makeKeyWindow];
 }
 
 static NSImage *imageFromText(const char *text, int *pwidth, int *pheight)

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

Reply via email to