diff options
-rw-r--r-- | src/xtoq/XtoqController.h | 13 | ||||
-rw-r--r-- | src/xtoq/XtoqController.m | 26 |
2 files changed, 39 insertions, 0 deletions
diff --git a/src/xtoq/XtoqController.h b/src/xtoq/XtoqController.h index b8c5a93..8e1fdb9 100644 --- a/src/xtoq/XtoqController.h +++ b/src/xtoq/XtoqController.h @@ -265,6 +265,19 @@ id referenceToSelf; */ - (void)updateWindowName:(xcwm_window_t *)window; + +/** + * Handler for window miniaturize events. + * @param notification Notification object for this event. + */ +- (void)windowDidMiniaturize:(NSNotification *)notification; + +/** + * Handler for window de-miniaturize events. + * @param notification Notification object for this event. + */ +- (void)windowDidDeminiaturize:(NSNotification *)notification; + @end /** diff --git a/src/xtoq/XtoqController.m b/src/xtoq/XtoqController.m index 2e9930c..8cef877 100644 --- a/src/xtoq/XtoqController.m +++ b/src/xtoq/XtoqController.m @@ -139,6 +139,16 @@ name:NSWindowDidResizeNotification object:nil]; + [nc addObserver:self + selector:@selector(windowDidMiniaturize:) + name:NSWindowDidMiniaturizeNotification + object:nil]; + + [nc addObserver:self + selector:@selector(windowDidDeminiaturize:) + name:NSWindowDidDeminiaturizeNotification + object:nil]; + xcwmDispatchQueue = dispatch_queue_create("xcwm.dispatch.queue", NULL); // Start the event loop and set the handler function @@ -591,6 +601,22 @@ free(name); } +- (void) windowDidMiniaturize:(NSNotification *)notification +{ + XtoqWindow *xtoqWin = (XtoqWindow *)[notification object]; + xcwm_window_t *window = [xtoqWin getXcwmWindow]; + + xcwm_window_iconify(window); +} + +- (void) windowDidDeminiaturize:(NSNotification *)notification +{ + XtoqWindow *xtoqWin = (XtoqWindow *)[notification object]; + xcwm_window_t *window = [xtoqWin getXcwmWindow]; + + xcwm_window_deiconify(window); +} + @end void |