From 3303f9b979b90fe62c8330d49b15301c4ea2bf82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Gr=C3=A4=C3=9Flin?= Date: Thu, 6 Mar 2014 13:23:18 +0100 Subject: [PATCH] Set state in PlasmaCore.Dialog after Qt handled the show event Qt's xcb plugin updates _NET_WM_STATE and ignores anything we set, thus we need to ensure that our additional states are set after Qt set the state. Luckily KWindowSystem does not remove the state which is already set. Reviewed-By: Marco Martin --- src/declarativeimports/core/dialog.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/declarativeimports/core/dialog.cpp b/src/declarativeimports/core/dialog.cpp index 5f3fb9592..682d9b575 100644 --- a/src/declarativeimports/core/dialog.cpp +++ b/src/declarativeimports/core/dialog.cpp @@ -544,7 +544,6 @@ void DialogProxy::focusOutEvent(QFocusEvent *ev) void DialogProxy::showEvent(QShowEvent *event) { - KWindowSystem::setState(winId(), NET::SkipTaskbar | NET::SkipPager); DialogShadows::self()->addWindow(this, m_frameSvgItem->enabledBorders()); QQuickWindow::showEvent(event); } @@ -557,7 +556,9 @@ bool DialogProxy::event(QEvent *event) updateVisibility(false); } - return QQuickWindow::event(event); + const bool retval = QQuickWindow::event(event); + KWindowSystem::setState(winId(), NET::SkipTaskbar | NET::SkipPager); + return retval; } void DialogProxy::hideEvent(QHideEvent *event)