summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorManolo Gouy <Manolo>2011-03-25 12:02:31 +0000
committerManolo Gouy <Manolo>2011-03-25 12:02:31 +0000
commitedd848aa9cb602d2b54f5ceccdcacbd7c57c876a (patch)
tree03922fcf7af7046071a9cc75a83b06b13d5d435f /src
parent9fa8427b78c42ae1e75cae5692cf5637acb594ff (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.mm26
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)