summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrbell <riley.bell@vfemail.net>2025-05-21 15:15:22 -0700
committerMichele Calgaro <michele.calgaro@yahoo.it>2025-05-23 10:32:41 +0900
commit97a133a52950fa7ddaeede73c79c9039377fedcd (patch)
tree898464c7197effd31b074b2f5b06a2edb4cd5aee
parent786c710ec8ee3fa711b50991078ad4cbc99e9f8e (diff)
downloadtdebase-97a133a52950fa7ddaeede73c79c9039377fedcd.tar.gz
tdebase-97a133a52950fa7ddaeede73c79c9039377fedcd.zip
TWin: Fix tiling from window menu and geom_restore. Resolves issue #624
Signed-off-by: rbell <riley.bell@vfemail.net> (cherry picked from commit d91c954dc24d35dcc221200c858cfd6aa4186782)
-rw-r--r--twin/geometry.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/twin/geometry.cpp b/twin/geometry.cpp
index e62d5da7d..0c0f4f97b 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()) {