summaryrefslogtreecommitdiffstats
path: root/twin/geometry.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'twin/geometry.cpp')
-rw-r--r--twin/geometry.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/twin/geometry.cpp b/twin/geometry.cpp
index 6c7f240af..1678cb80d 100644
--- a/twin/geometry.cpp
+++ b/twin/geometry.cpp
@@ -1915,12 +1915,12 @@ void Client::changeMaximize( bool vertical, bool horizontal, bool adjust )
TQRect clientArea = workspace()->clientArea( MaximizeArea, this );
// save sizes for restoring, if maximalizing
- if( !adjust && !( y() == clientArea.top() && height() == clientArea.height()))
+ if( !activeTiled && !adjust && !( y() == clientArea.top() && height() == clientArea.height()))
{
geom_restore.setTop( y());
geom_restore.setHeight( height());
}
- if( !adjust && !( x() == clientArea.left() && width() == clientArea.width()))
+ if( !activeTiled && !adjust && !( x() == clientArea.left() && width() == clientArea.width()))
{
geom_restore.setLeft( x());
geom_restore.setWidth( width());
@@ -2833,7 +2833,10 @@ TQRect Client::activeBorderMaximizeGeometry()
void Client::tileToBorder(ActiveBorder border) {
if (!isResizable()) return;
activeTiled = true;
+ if (maximizeMode() == MaximizeRestore)
+ geom_restore = geometry();
setActiveBorderMode(ActiveTilingMode);
+ setActiveBorderPos(TQCursor().pos());
setActiveBorder(border);
TQRect geo = activeBorderMaximizeGeometry();
if (geo.isValid() && !geo.isEmpty()) {