From 3e5034794d3e32edc8b796afd5d8cfb5b2da4869 Mon Sep 17 00:00:00 2001 From: Ilya Fedin Date: Fri, 24 May 2024 16:43:08 +0400 Subject: [PATCH] xcb: move QXcbXSettings initialization to QXcbVirtualDesktop constructor This prevents e.g. gtk3 platformtheme from hanging. Change-Id: I68593ad54fa5530366d590309c10621e5a48bd22 Reviewed-by: Axel Spoerl (cherry picked from commit 297cdf16d06023ad626d798e3529a3cd98af0050) Reviewed-by: Qt Cherry-pick Bot --- src/plugins/platforms/xcb/qxcbscreen.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/plugins/platforms/xcb/qxcbscreen.cpp b/src/plugins/platforms/xcb/qxcbscreen.cpp index 06f4b66edb2..0ce337726e7 100644 --- a/src/plugins/platforms/xcb/qxcbscreen.cpp +++ b/src/plugins/platforms/xcb/qxcbscreen.cpp @@ -23,6 +23,7 @@ QXcbVirtualDesktop::QXcbVirtualDesktop(QXcbConnection *connection, xcb_screen_t : QXcbObject(connection) , m_screen(screen) , m_number(number) + , m_xSettings(new QXcbXSettings(this)) { const QByteArray cmAtomName = "_NET_WM_CM_S" + QByteArray::number(m_number); m_net_wm_cm_atom = connection->internAtom(cmAtomName.constData()); @@ -129,10 +130,6 @@ void QXcbVirtualDesktop::setPrimaryScreen(QPlatformScreen *s) QXcbXSettings *QXcbVirtualDesktop::xSettings() const { - if (!m_xSettings) { - QXcbVirtualDesktop *self = const_cast(this); - self->m_xSettings = new QXcbXSettings(self); - } return m_xSettings; }