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