diff options
author | rbell <riley.bell@vfemail.net> | 2025-05-21 15:15:22 -0700 |
---|---|---|
committer | rbell <riley.bell@vfemail.net> | 2025-05-22 09:21:54 -0700 |
commit | d91c954dc24d35dcc221200c858cfd6aa4186782 (patch) | |
tree | 77678e2c49df8c5cde21e756f392f7c51de89bed | |
parent | 09652da14d51d19d767cbd9f8a94f1cc786bc239 (diff) | |
download | tdebase-d91c954dc24d35dcc221200c858cfd6aa4186782.tar.gz tdebase-d91c954dc24d35dcc221200c858cfd6aa4186782.zip |
TWin: Fix tiling from window menu and geom_restore. Resolves issue #624
Signed-off-by: rbell <riley.bell@vfemail.net>
-rw-r--r-- | twin/geometry.cpp | 7 |
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()) { |