QWindow: Re-create platform window only if screen actually changes.
authorFriedemann Kleint <Friedemann.Kleint@nokia.com>
Fri, 21 Oct 2011 13:45:25 +0000 (15:45 +0200)
committerQt by Nokia <qt-info@nokia.com>
Sat, 22 Oct 2011 18:50:37 +0000 (20:50 +0200)
Change-Id: I3b7dd8b1307aa3cc9357dca861ea407644c5a2e9
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
src/gui/kernel/qwindow.cpp

index 80666b8..c2a698e 100644 (file)
@@ -645,12 +645,16 @@ QScreen *QWindow::screen() const
 void QWindow::setScreen(QScreen *newScreen)
 {
     Q_D(QWindow);
-    bool wasCreated = d->platformWindow != 0;
-    if (wasCreated)
-        destroy();
-    d->screen = newScreen ? newScreen : QGuiApplication::primaryScreen();
-    if (wasCreated)
-        create();
+    if (!newScreen)
+        newScreen = QGuiApplication::primaryScreen();
+    if (newScreen != screen()) {
+        const bool wasCreated = d->platformWindow != 0;
+        if (wasCreated)
+            destroy();
+        d->screen = newScreen;
+        if (wasCreated)
+            create();
+    }
 }
 
 /*!