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