From f5f2afc983d8aff0f4a54bfa20364456ba44ad0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lubo=C5=A1=20Lu=C5=88=C3=A1k?= Date: Fri, 9 Nov 2007 14:48:26 +0000 Subject: [PATCH] Don't remove event masks on kwin's own widgets. svn path=/trunk/KDE/kdebase/workspace/; revision=734667 --- tabbox.cpp | 4 ++-- unmanaged.cpp | 11 +++++++---- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/tabbox.cpp b/tabbox.cpp index cd5d7f1896..221b7b886f 100644 --- a/tabbox.cpp +++ b/tabbox.cpp @@ -686,10 +686,10 @@ void TabBox::delayedShow() void TabBox::handleMouseEvent( XEvent* e ) { - XAllowEvents( display(), AsyncPointer, xTime() ); + XAllowEvents( display(), AsyncPointer, xTime()); if( !isVisible() && isDisplayed()) { // tabbox has been replaced, check effects - if( effects && static_cast(effects)->checkInputWindowEvent( e )) + if( effects && static_cast(effects)->checkInputWindowEvent( e )) return; } if( e->type != ButtonPress ) diff --git a/unmanaged.cpp b/unmanaged.cpp index dc8a80900f..f4138a7ef5 100644 --- a/unmanaged.cpp +++ b/unmanaged.cpp @@ -43,7 +43,7 @@ bool Unmanaged::track( Window w ) return false; } setWindowHandles( w, w ); // the window is also the frame - XSelectInput( display(), w, StructureNotifyMask ); + XSelectInput( display(), w, attr.your_event_mask | StructureNotifyMask ); geom = QRect( attr.x, attr.y, attr.width, attr.height ); vis = attr.visual; bit_depth = attr.depth; @@ -77,9 +77,12 @@ void Unmanaged::release() } finishCompositing(); workspace()->removeUnmanaged( this, Allowed ); - if( Extensions::shapeAvailable()) - XShapeSelectInput( display(), window(), NoEventMask ); - XSelectInput( display(), window(), NoEventMask ); + if( !QWidget::find( window())) // don't affect our own windows + { + if( Extensions::shapeAvailable()) + XShapeSelectInput( display(), window(), NoEventMask ); + XSelectInput( display(), window(), NoEventMask ); + } addWorkspaceRepaint( geometry()); disownDataPassedToDeleted(); del->unrefWindow();