summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrbell <riley.bell@vfemail.net>2025-05-21 15:15:22 -0700
committerrbell <riley.bell@vfemail.net>2025-05-22 09:21:54 -0700
commitd91c954dc24d35dcc221200c858cfd6aa4186782 (patch)
tree77678e2c49df8c5cde21e756f392f7c51de89bed
parent09652da14d51d19d767cbd9f8a94f1cc786bc239 (diff)
downloadtdebase-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.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()) {