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:
parent
0ecc0724a7
commit
10af64fc67
1 changed files with 3 additions and 3 deletions
|
@ -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();
|
||||
|
|
Loading…
Reference in a new issue