diff options
| author | Manolo Gouy <Manolo> | 2011-03-25 12:02:31 +0000 |
|---|---|---|
| committer | Manolo Gouy <Manolo> | 2011-03-25 12:02:31 +0000 |
| commit | edd848aa9cb602d2b54f5ceccdcacbd7c57c876a (patch) | |
| tree | 03922fcf7af7046071a9cc75a83b06b13d5d435f /src | |
| parent | 9fa8427b78c42ae1e75cae5692cf5637acb594ff (diff) | |
Mac OS: implement the Cocoa equivalent of Carbon's kEventWindowHidden handler.
Positive effect visible with the clock demo.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3@8531 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src')
| -rw-r--r-- | src/Fl_cocoa.mm | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/src/Fl_cocoa.mm b/src/Fl_cocoa.mm index 4b33c062c..fc7cb7a22 100644 --- a/src/Fl_cocoa.mm +++ b/src/Fl_cocoa.mm @@ -1044,6 +1044,8 @@ extern "C" { - (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 @@ extern "C" { { 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 @@ extern "C" { } } } +- (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_Sys_Menu_Bar::doMenuOrItemOperation(Fl_Sys_Menu_Bar::menuOrItemOperatio void Fl_X::set_key_window() { - [(NSWindow*)xid makeKeyAndOrderFront:nil]; + [(NSWindow*)xid makeKeyWindow]; } static NSImage *imageFromText(const char *text, int *pwidth, int *pheight) |
