summaryrefslogtreecommitdiffstats
path: root/src/widgets
diff options
context:
space:
mode:
authorKati Kankaanpaa <kati.kankaanpaa@theqtcompany.com>2015-05-13 10:28:42 -0700
committerKati Kankaanpaa <kati.kankaanpaa@theqtcompany.com>2015-05-13 20:51:03 +0000
commit86601fc5758b223bc74687b19e3ec020b1d61d3a (patch)
tree6e3aae2f61071febbac2417ecf776ef0047f7da7 /src/widgets
parent6ef5ca2e2f34e821375cc730c293f1a87179ccd0 (diff)
Fix division by zero crash when restoring screen settings
The restoredScreenNumber was used before it's existence was checked, which caused 'division by zero' if the screen has been removed after storing the screen number. The check if restoredScreenNumber exists was moved to happen before restoredScreenNumber is used for the first time. Change-Id: Iada0e8c5cbb6d8ca88df171dbee045be249f50cd Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Diffstat (limited to 'src/widgets')
-rw-r--r--src/widgets/kernel/qwidget.cpp5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp
index c7b141e700..910468b53a 100644
--- a/src/widgets/kernel/qwidget.cpp
+++ b/src/widgets/kernel/qwidget.cpp
@@ -7315,6 +7315,8 @@ bool QWidget::restoreGeometry(const QByteArray &geometry)
stream >> restoredScreenWidth;
const QDesktopWidget * const desktop = QApplication::desktop();
+ if (restoredScreenNumber >= desktop->numScreens())
+ restoredScreenNumber = desktop->primaryScreen();
const qreal screenWidthF = qreal(desktop->screenGeometry(restoredScreenNumber).width());
// Sanity check bailing out when large variations of screen sizes occur due to
// high DPI scaling or different levels of DPI awareness.
@@ -7342,9 +7344,6 @@ bool QWidget::restoreGeometry(const QByteArray &geometry)
.expandedTo(d_func()->adjustedSize()));
}
- if (restoredScreenNumber >= desktop->numScreens())
- restoredScreenNumber = desktop->primaryScreen();
-
const QRect availableGeometry = desktop->availableGeometry(restoredScreenNumber);
// Modify the restored geometry if we are about to restore to coordinates