diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2012-03-01 13:19:24 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-03-02 14:45:23 +0100 |
commit | 62a654cc902197cc99326879076ba53b6509dc67 (patch) | |
tree | 232a0e0fdebf2b5c956f80e432e8870c4d545fdc /src/plugins/platforms/windows | |
parent | 53229ec8f79c4895e0476d1f3fb950f0427ba427 (diff) |
Fix QApplication autotest crash when running on multiple screens
Screens need to be destroyed in reverse order to ensure the primary
screen stays valid when other screens are destroyed.
Task-number: QTBUG-24300
Change-Id: I9d9d710aa67ec045baa8bf292833ffe7d9eea935
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
Diffstat (limited to 'src/plugins/platforms/windows')
-rw-r--r-- | src/plugins/platforms/windows/qwindowsscreen.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/plugins/platforms/windows/qwindowsscreen.h b/src/plugins/platforms/windows/qwindowsscreen.h index 436cc2c0d9..77a327a62a 100644 --- a/src/plugins/platforms/windows/qwindowsscreen.h +++ b/src/plugins/platforms/windows/qwindowsscreen.h @@ -115,7 +115,11 @@ public: QWindowsScreenManager(); - inline void clearScreens() { qDeleteAll(m_screens); m_screens.clear(); } + inline void clearScreens() { + // Delete screens in reverse order to avoid crash in case of multiple screens + while (!m_screens.isEmpty()) + delete m_screens.takeLast(); + } void handleScreenChanges(); bool handleDisplayChange(WPARAM wParam, LPARAM lParam); |