From bb43159a79cabcb2542b0073797f35dad3843e50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lubo=C5=A1=20Lu=C5=88=C3=A1k?= Date: Mon, 3 Mar 2003 13:08:36 +0000 Subject: [PATCH] Fix for #52206. svn path=/trunk/kdebase/kwin/; revision=211015 --- workspace.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/workspace.cpp b/workspace.cpp index 15c1678bc1..d25830fb77 100644 --- a/workspace.cpp +++ b/workspace.cpp @@ -672,7 +672,12 @@ bool Workspace::workspaceEvent( XEvent * e ) checkStartOnDesktop( e->xmaprequest.window ); c = findClient( e->xmaprequest.window ); if ( !c ) { - if ( e->xmaprequest.parent == root ) { //###TODO store previously destroyed client ids +// don't check for the parent being the root window, this breaks when some app unmaps +// a window, changes something and immediately maps it back, without giving KWin +// a chance to reparent it back to root +// since KWin can get MapRequest only for root window children and +// children of WindowWrapper (=clients), the check is AFAIK useless anyway +// if ( e->xmaprequest.parent == root ) { //###TODO store previously destroyed client ids if ( addSystemTrayWin( e->xmaprequest.window ) ) return TRUE; c = clientFactory( e->xmaprequest.window ); @@ -681,7 +686,6 @@ bool Workspace::workspaceEvent( XEvent * e ) XReparentWindow( qt_xdisplay(), c->winId(), root, 0, 0 ); } addClient( c ); - } } if ( c ) { bool b = c->windowEvent( e );