summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/cocoa
diff options
context:
space:
mode:
authorGabriel de Dietrich <gabriel.dedietrich@digia.com>2013-06-04 13:54:07 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-06-12 10:09:16 +0200
commitbfab741cb7ed24d2decfab4cffdcdbf14f6317ca (patch)
tree0c1be4ef6ec4b6174312268c16c242a9992f1bec /src/plugins/platforms/cocoa
parentb8c007ede01360594ec5399532f2229e82715cc3 (diff)
Cocoa: Make sure internal minimized state is up to date
Refactors some code from previous changes addressing the same issue for maximized and fullscreen states. Change-Id: I8a27274a90e6610b424ea7af3269369a1d724c48 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Diffstat (limited to 'src/plugins/platforms/cocoa')
-rw-r--r--src/plugins/platforms/cocoa/qnsview.h1
-rw-r--r--src/plugins/platforms/cocoa/qnsview.mm30
2 files changed, 17 insertions, 14 deletions
diff --git a/src/plugins/platforms/cocoa/qnsview.h b/src/plugins/platforms/cocoa/qnsview.h
index d28e38886b..92215b9e67 100644
--- a/src/plugins/platforms/cocoa/qnsview.h
+++ b/src/plugins/platforms/cocoa/qnsview.h
@@ -81,6 +81,7 @@ QT_END_NAMESPACE
- (void)invalidateWindowShadowIfNeeded;
- (void)drawRect:(NSRect)dirtyRect;
- (void)updateGeometry;
+- (void)notifyWindowStateChanged:(Qt::WindowState)newState;
- (void)windowNotification : (NSNotification *) windowNotification;
- (void)notifyWindowWillZoom:(BOOL)willZoom;
- (void)viewDidHide;
diff --git a/src/plugins/platforms/cocoa/qnsview.mm b/src/plugins/platforms/cocoa/qnsview.mm
index ec53fc6a7e..ab3f495a60 100644
--- a/src/plugins/platforms/cocoa/qnsview.mm
+++ b/src/plugins/platforms/cocoa/qnsview.mm
@@ -251,6 +251,15 @@ static QTouchDevice *touchDevice = 0;
}
}
+- (void)notifyWindowStateChanged:(Qt::WindowState)newState
+{
+ QWindowSystemInterface::handleWindowStateChanged(m_window, newState);
+ // We want to read the window state back from the window,
+ // but the event we just sent may be asynchronous.
+ QWindowSystemInterface::flushWindowSystemEvents();
+ m_platformWindow->setSynchedWindowStateFromWindow();
+}
+
- (void)windowNotification : (NSNotification *) windowNotification
{
//qDebug() << "windowNotification" << QCFString::toQString([windowNotification name]);
@@ -269,10 +278,11 @@ static QTouchDevice *touchDevice = 0;
if (!m_platformWindow->windowIsPopupType())
QWindowSystemInterface::handleWindowActivated(0);
}
- } else if (notificationName == NSWindowDidMiniaturizeNotification) {
- QWindowSystemInterface::handleWindowStateChanged(m_window, Qt::WindowMinimized);
- } else if (notificationName == NSWindowDidDeminiaturizeNotification) {
- QWindowSystemInterface::handleWindowStateChanged(m_window, Qt::WindowNoState);
+ } else if (notificationName == NSWindowDidMiniaturizeNotification
+ || notificationName == NSWindowDidDeminiaturizeNotification) {
+ Qt::WindowState newState = notificationName == NSWindowDidMiniaturizeNotification ?
+ Qt::WindowMinimized : Qt::WindowNoState;
+ [self notifyWindowStateChanged:newState];
} else if ([notificationName isEqualToString: @"NSWindowDidOrderOffScreenNotification"]) {
m_platformWindow->obscureWindow();
} else if ([notificationName isEqualToString: @"NSWindowDidOrderOnScreenAndFinishAnimatingNotification"]) {
@@ -294,11 +304,7 @@ static QTouchDevice *touchDevice = 0;
|| notificationName == NSWindowDidExitFullScreenNotification) {
Qt::WindowState newState = notificationName == NSWindowDidEnterFullScreenNotification ?
Qt::WindowFullScreen : Qt::WindowNoState;
- QWindowSystemInterface::handleWindowStateChanged(m_window, newState);
- // We want to read the window state back from the window,
- // but the event we just sent may be asynchronous.
- QWindowSystemInterface::flushWindowSystemEvents();
- m_platformWindow->setSynchedWindowStateFromWindow();
+ [self notifyWindowStateChanged:newState];
}
}
#endif
@@ -309,11 +315,7 @@ static QTouchDevice *touchDevice = 0;
- (void)notifyWindowWillZoom:(BOOL)willZoom
{
Qt::WindowState newState = willZoom ? Qt::WindowMaximized : Qt::WindowNoState;
- QWindowSystemInterface::handleWindowStateChanged(m_window, newState);
- // We want to read the window state back from the window,
- // but the event we just sent may be asynchronous.
- QWindowSystemInterface::flushWindowSystemEvents();
- m_platformWindow->setSynchedWindowStateFromWindow();
+ [self notifyWindowStateChanged:newState];
}
- (void)viewDidHide