summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2016-07-26 09:10:58 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2016-07-26 11:48:51 +0000
commitd57bfa21ce7cf656c5ac55ab3b729ecaeb874bd3 (patch)
treeb143f48fe9cc433ac6ec0fd9e2042f3fe8e1ecc1
parent7095db363331e6434d64405ba1a8573de2e01230 (diff)
QDialog::adjustPosition(): Check screen number
The screen number has been observed to be -1 in setups with multiple virtual desktops. Amends change eb50193136c7c73be864e3232d01e98ddc24e539. Task-number: QTBUG-52735 Change-Id: If01acf74fdd701a9211df732c0defdfd522ba72d Reviewed-by: hjk <hjk@qt.io>
-rw-r--r--src/widgets/dialogs/qdialog.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/widgets/dialogs/qdialog.cpp b/src/widgets/dialogs/qdialog.cpp
index 45d2279ed5..889b5ef9f5 100644
--- a/src/widgets/dialogs/qdialog.cpp
+++ b/src/widgets/dialogs/qdialog.cpp
@@ -863,8 +863,10 @@ void QDialog::adjustPosition(QWidget* w)
// QTBUG-52735: Manually set the correct target screen since scaling in a
// subsequent call to QWindow::resize() may otherwise use the wrong factor
// if the screen changed notification is still in an event queue.
- if (QWindow *window = windowHandle())
- window->setScreen(QGuiApplication::screens().at(scrn));
+ if (scrn >= 0) {
+ if (QWindow *window = windowHandle())
+ window->setScreen(QGuiApplication::screens().at(scrn));
+ }
move(p);
}