From 4ac1e42768a130b92514617393f7dd5814f10193 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lubo=C5=A1=20Lu=C5=88=C3=A1k?= Date: Mon, 2 May 2005 12:49:06 +0000 Subject: [PATCH] BUG:97490 svn path=/trunk/kdebase/kwin/; revision=409179 --- bridge.cpp | 14 ++++++++++++-- useractions.cpp | 12 ++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/bridge.cpp b/bridge.cpp index f93705d7c6..8520dc703d 100644 --- a/bridge.cpp +++ b/bridge.cpp @@ -49,8 +49,18 @@ BRIDGE_HELPER( void, maximize, MaximizeMode m, m, ) BRIDGE_HELPER( void, minimize,,, ) BRIDGE_HELPER( void, showContextHelp,,, ) BRIDGE_HELPER( void, setDesktop, int desktop, desktop, ) -BRIDGE_HELPER( void, setKeepAbove, bool set, set, ) -BRIDGE_HELPER( void, setKeepBelow, bool set, set, ) + +void Bridge::setKeepAbove( bool set ) + { + if( c->keepAbove() != set ) + c->workspace()->performWindowOperation( c, KeepAboveOp ); + } + +void Bridge::setKeepBelow( bool set ) + { + if( c->keepBelow() != set ) + c->workspace()->performWindowOperation( c, KeepBelowOp ); + } NET::WindowType Bridge::windowType( unsigned long supported_types ) const { diff --git a/useractions.cpp b/useractions.cpp index 9474d88e87..0bc3390ffe 100644 --- a/useractions.cpp +++ b/useractions.cpp @@ -396,11 +396,23 @@ void Workspace::performWindowOperation( Client* c, Options::WindowOperation op ) c->setUserNoBorder( !c->isUserNoBorder()); break; case Options::KeepAboveOp: + { + StackingUpdatesBlocker blocker( this ); + bool was = c->keepAbove(); c->setKeepAbove( !c->keepAbove() ); + if( was && !c->keepAbove()) + raiseClient( c ); break; + } case Options::KeepBelowOp: + { c->setKeepBelow( !c->keepBelow() ); + StackingUpdatesBlocker blocker( this ); + bool was = c->keepBelow(); + if( was && !c->keepBelow()) + lowerClient( c ); break; + } case Options::WindowRulesOp: editWindowRules( c ); break;