summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/cocoa/qcocoaapplicationdelegate.mm
diff options
context:
space:
mode:
authorGabriel de Dietrich <gabriel.dedietrich@digia.com>2013-05-21 15:09:28 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-05-23 12:49:39 +0200
commit602bd9873786ccadcb67da3036329f3122555cf8 (patch)
tree49cee7b06178f5e3b514bdd82e34d900325a3cf5 /src/plugins/platforms/cocoa/qcocoaapplicationdelegate.mm
parentf610814b058b4639ef0d4d2592a8bcc3f81c974d (diff)
Make QWindow update its screen when moved to a different one
Also implements the Cocoa backend for that. Change-Id: I32977e12a04e1cf48b12333442482746c69ce133 Reviewed-by: Samuel Rødal <samuel.rodal@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Diffstat (limited to 'src/plugins/platforms/cocoa/qcocoaapplicationdelegate.mm')
-rw-r--r--src/plugins/platforms/cocoa/qcocoaapplicationdelegate.mm16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoaapplicationdelegate.mm b/src/plugins/platforms/cocoa/qcocoaapplicationdelegate.mm
index f676d613bc..c40ae3d81d 100644
--- a/src/plugins/platforms/cocoa/qcocoaapplicationdelegate.mm
+++ b/src/plugins/platforms/cocoa/qcocoaapplicationdelegate.mm
@@ -100,11 +100,23 @@ static void cleanupCocoaApplicationDelegate()
- (id)init
{
self = [super init];
- if (self)
+ if (self) {
inLaunch = true;
+ [[NSNotificationCenter defaultCenter]
+ addObserver:self
+ selector:@selector(updateScreens:)
+ name:NSApplicationDidChangeScreenParametersNotification
+ object:NSApp];
+ }
return self;
}
+- (void)updateScreens:(NSNotification *)notification
+{
+ if (QCocoaIntegration *ci = dynamic_cast<QCocoaIntegration *>(QGuiApplicationPrivate::platformIntegration()))
+ ci->updateScreens();
+}
+
- (void)dealloc
{
sharedCocoaApplicationDelegate = nil;
@@ -114,6 +126,8 @@ static void cleanupCocoaApplicationDelegate()
[NSApp setDelegate:reflectionDelegate];
[reflectionDelegate release];
}
+ [[NSNotificationCenter defaultCenter] removeObserver:self];
+
[super dealloc];
}