From 50b7fc54097a9f9f91e5caaff683de3f8031dc80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lubo=C5=A1=20Lu=C5=88=C3=A1k?= Date: Wed, 29 Nov 2006 13:25:38 +0000 Subject: [PATCH] + // grab X during the release to make removing of properties, setting to withdrawn state + // and repareting to root an atomic operation (http://lists.kde.org/?l=kde-devel&m=116448102901184&w=2) svn path=/trunk/KDE/kdebase/workspace/; revision=609071 --- client.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/client.cpp b/client.cpp index 611c900cb4..34f4cb55a4 100644 --- a/client.cpp +++ b/client.cpp @@ -182,6 +182,9 @@ void Client::releaseWindow( bool on_shutdown ) leaveMoveResize(); finishWindowRules(); ++postpone_geometry_updates; + // grab X during the release to make removing of properties, setting to withdrawn state + // and repareting to root an atomic operation (http://lists.kde.org/?l=kde-devel&m=116448102901184&w=2) + grabXServer(); setMappingState( WithdrawnState ); setModal( false ); // otherwise its mainwindow wouldn't get focus hidden = true; // so that it's not considered visible anymore (can't use hideClient(), it would set flags) @@ -223,6 +226,7 @@ void Client::releaseWindow( bool on_shutdown ) frame = None; --postpone_geometry_updates; // don't use GeometryUpdatesBlocker, it would now set the geometry deleteClient( this, Allowed ); + ungrabXServer(); } // like releaseWindow(), but this one is called when the window has been already destroyed