From 10af64fc67daee1c4920f7c0e94e87eb624c0b2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lubo=C5=A1=20Lu=C5=88=C3=A1k?= <l.lunak@kde.org> Date: Mon, 2 Jun 2008 14:34:05 +0000 Subject: [PATCH] Compute workarea diffs right when setting geometry, not delayed. Fixes e.g. 'Move Window to Next Screen' shortcut. BUG: 163051 svn path=/trunk/KDE/kdebase/workspace/; revision=815700 --- geometry.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/geometry.cpp b/geometry.cpp index 15c2220027..f56d96c1c2 100644 --- a/geometry.cpp +++ b/geometry.cpp @@ -1702,6 +1702,7 @@ void Client::setGeometry( int x, int y, int w, int h, ForceGeometry_t force ) if( force == NormalGeometrySet && geom == g && pending_geometry_update == PendingGeometryNone ) return; geom = g; + updateWorkareaDiffs(); if( block_geometry_updates != 0 ) { if( pending_geometry_update == PendingGeometryForced ) @@ -1729,7 +1730,6 @@ void Client::setGeometry( int x, int y, int w, int h, ForceGeometry_t force ) else XMoveWindow( display(), frameId(), x, y ); // SELI TODO won't this be too expensive? - updateWorkareaDiffs(); sendSyntheticConfigureNotify(); updateWindowRules(); checkMaximizeGeometry(); @@ -1780,6 +1780,7 @@ void Client::plainResize( int w, int h, ForceGeometry_t force ) if( force == NormalGeometrySet && geom.size() == s ) return; geom.setSize( s ); + updateWorkareaDiffs(); if( block_geometry_updates != 0 ) { if( pending_geometry_update == PendingGeometryForced ) @@ -1801,7 +1802,6 @@ void Client::plainResize( int w, int h, ForceGeometry_t force ) XMoveResizeWindow( display(), window(), 0, 0, cs.width(), cs.height()); } updateShape(); - updateWorkareaDiffs(); sendSyntheticConfigureNotify(); updateWindowRules(); checkMaximizeGeometry(); @@ -1832,6 +1832,7 @@ void Client::move( int x, int y, ForceGeometry_t force ) if( force == NormalGeometrySet && geom.topLeft() == p ) return; geom.moveTopLeft( p ); + updateWorkareaDiffs(); if( block_geometry_updates != 0 ) { if( pending_geometry_update == PendingGeometryForced ) @@ -1843,7 +1844,6 @@ void Client::move( int x, int y, ForceGeometry_t force ) return; } XMoveWindow( display(), frameId(), x, y ); - updateWorkareaDiffs(); sendSyntheticConfigureNotify(); updateWindowRules(); checkMaximizeGeometry();