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
This commit is contained in:
Luboš Luňák 2008-06-02 14:34:05 +00:00
parent 0ecc0724a7
commit 10af64fc67

View file

@ -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();