xcb: move QXcbXSettings initialization to QXcbVirtualDesktop constructor

This prevents e.g. gtk3 platformtheme from hanging.

Change-Id: I68593ad54fa5530366d590309c10621e5a48bd22
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
(cherry picked from commit 297cdf16d06023ad626d798e3529a3cd98af0050)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Ilya Fedin 2024-05-24 16:43:08 +04:00 committed by Qt Cherry-pick Bot
parent 14ea2a3662
commit 3e5034794d

View File

@ -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<QXcbVirtualDesktop *>(this);
self->m_xSettings = new QXcbXSettings(self);
}
return m_xSettings;
}