summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/xcb
diff options
context:
space:
mode:
authorRob De Reycke <rob_dereycke@hotmail.com>2022-10-27 00:37:20 +0200
committerLiang Qi <liang.qi@qt.io>2022-10-27 08:27:42 +0200
commite39ca06dbc3051c8e82c458ccd7314a2adbff27e (patch)
treec8895852fc792d4a34a21f75f73d4157a69a7066 /src/plugins/platforms/xcb
parent9968efb3cf6124606ee412f0b9e64c98113ab668 (diff)
xcb: Fix segmentation fault on destruction of QXcbConnection
The same screen was detected twice. Fixes: QTBUG-104319 Pick-to: 6.4 6.3 Change-Id: Id1f93d68de0306604f2e6a9104962a1d3b0db366 Reviewed-by: Liang Qi <liang.qi@qt.io> Reviewed-by: Jonas Kvinge <jonas@jkvinge.net>
Diffstat (limited to 'src/plugins/platforms/xcb')
-rw-r--r--src/plugins/platforms/xcb/qxcbconnection_screens.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/plugins/platforms/xcb/qxcbconnection_screens.cpp b/src/plugins/platforms/xcb/qxcbconnection_screens.cpp
index 4c1b22e230..bfa22072ed 100644
--- a/src/plugins/platforms/xcb/qxcbconnection_screens.cpp
+++ b/src/plugins/platforms/xcb/qxcbconnection_screens.cpp
@@ -516,7 +516,8 @@ void QXcbConnection::initializeScreensFromMonitor(xcb_screen_iterator_t *it, int
old.removeAll(screen);
}
}
- m_screens << screen;
+ if (!m_screens.contains(screen))
+ m_screens << screen;
siblings << screen;
// similar logic with QXcbConnection::initializeScreensFromOutput()