42 lines
2.0 KiB
Diff
42 lines
2.0 KiB
Diff
|
diff -rupN qtbase-opensource-src-5.5.0/src/gui/kernel/qplatformintegration.cpp qtbase-opensource-src-5.5.0-new/src/gui/kernel/qplatformintegration.cpp
|
||
|
--- qtbase-opensource-src-5.5.0/src/gui/kernel/qplatformintegration.cpp 2015-06-29 22:04:53.000000000 +0200
|
||
|
+++ qtbase-opensource-src-5.5.0-new/src/gui/kernel/qplatformintegration.cpp 2015-07-12 10:24:17.195000304 +0200
|
||
|
@@ -456,6 +456,14 @@ void QPlatformIntegration::screenAdded(Q
|
||
|
} else {
|
||
|
QGuiApplicationPrivate::screen_list.append(screen);
|
||
|
}
|
||
|
+
|
||
|
+ // All screens might have been removed before a new one is added, so
|
||
|
+ // iterate over the toplevel windows and set their screen to the current
|
||
|
+ // primary screen if the window has no screen set
|
||
|
+ foreach (QWindow *window, QGuiApplication::topLevelWindows()) {
|
||
|
+ if (window->screen() == 0)
|
||
|
+ window->setScreen(QGuiApplicationPrivate::screen_list.at(0));
|
||
|
+ }
|
||
|
emit qGuiApp->screenAdded(screen);
|
||
|
}
|
||
|
|
||
|
diff -rupN qtbase-opensource-src-5.5.0/src/gui/kernel/qwindow.cpp qtbase-opensource-src-5.5.0-new/src/gui/kernel/qwindow.cpp
|
||
|
--- qtbase-opensource-src-5.5.0/src/gui/kernel/qwindow.cpp 2015-06-29 22:04:52.000000000 +0200
|
||
|
+++ qtbase-opensource-src-5.5.0-new/src/gui/kernel/qwindow.cpp 2015-07-12 11:51:18.832889497 +0200
|
||
|
@@ -372,15 +372,14 @@ void QWindowPrivate::setTopLevelScreen(Q
|
||
|
return;
|
||
|
}
|
||
|
if (newScreen != topLevelScreen) {
|
||
|
- const bool shouldRecreate = recreate && windowRecreationRequired(newScreen);
|
||
|
- const bool shouldShow = visibilityOnDestroy && !topLevelScreen;
|
||
|
+ const bool shouldRecreate = recreate/* && windowRecreationRequired(newScreen)*/;
|
||
|
if (shouldRecreate && platformWindow)
|
||
|
q->destroy();
|
||
|
connectToScreen(newScreen);
|
||
|
- if (shouldShow)
|
||
|
- q->setVisible(true);
|
||
|
- else if (newScreen && shouldRecreate)
|
||
|
+ if (newScreen && shouldRecreate) {
|
||
|
create(true);
|
||
|
+ q->setVisible(visibilityOnDestroy);
|
||
|
+ }
|
||
|
emitScreenChangedRecursion(newScreen);
|
||
|
}
|
||
|
}
|