diff options
author | rbell <riley.bell@vfemail.net> | 2025-04-14 09:28:48 -0700 |
---|---|---|
committer | Michele Calgaro <michele.calgaro@yahoo.it> | 2025-05-13 17:15:15 +0900 |
commit | 37605209af6150bda9a68f311b3535edf39ff122 (patch) | |
tree | 32ad53b9b1d2f5b2312794598a01534c0f49a9a2 /twin/workspace.cpp | |
parent | 607bb2598d8b02f2c62d5a327ee13e543713f512 (diff) | |
download | tdebase-37605209af6150bda9a68f311b3535edf39ff122.tar.gz tdebase-37605209af6150bda9a68f311b3535edf39ff122.zip |
twin: Use screen geometry when active borders are in tiling mode
Signed-off-by: rbell <riley.bell@vfemail.net>
Diffstat (limited to 'twin/workspace.cpp')
-rw-r--r-- | twin/workspace.cpp | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/twin/workspace.cpp b/twin/workspace.cpp index 9b1b45ce3..8e41be550 100644 --- a/twin/workspace.cpp +++ b/twin/workspace.cpp @@ -2542,15 +2542,21 @@ void Workspace::checkActiveBorder(const TQPoint &pos, Time now) int distance_reset = activation_distance + 10; // Leave active maximizing mode when window moved away - if (active_current_border != ActiveNone && - (pos.x() > activeLeft + distance_reset) && - (pos.x() < activeRight - distance_reset) && - (pos.y() > activeTop + distance_reset) && - (pos.y() < activeBottom - distance_reset)) - { - if (movingClient && - (options->activeBorders() == Options::ActiveTileMaximize || - options->activeBorders() == Options::ActiveTileOnly)) + if (movingClient && + (options->activeBorders() == Options::ActiveTileMaximize || + options->activeBorders() == Options::ActiveTileOnly)) + { + TQRect r = TQApplication::desktop()->screenGeometry(pos); + activeTop = r.top(); + activeBottom = r.bottom(); + activeLeft = r.left(); + activeRight = r.right(); + + if (active_current_border != ActiveNone && + (pos.x() > activeLeft + distance_reset) && + (pos.x() < activeRight - distance_reset) && + (pos.y() > activeTop + distance_reset) && + (pos.y() < activeBottom - distance_reset)) { movingClient->cancelActiveBorderMaximizing(); return; @@ -2661,6 +2667,7 @@ void Workspace::checkActiveBorder(const TQPoint &pos, Time now) { if (!movingClient->isResizable()) return; movingClient->setActiveBorderMode(ActiveMaximizeMode); + movingClient->setActiveBorderPos(pos); movingClient->setActiveBorder(ActiveNone); movingClient->setActiveBorderMaximizing(true); } @@ -2671,6 +2678,7 @@ void Workspace::checkActiveBorder(const TQPoint &pos, Time now) { if (!movingClient->isResizable()) return; movingClient->setActiveBorderMode(ActiveTilingMode); + movingClient->setActiveBorderPos(pos); movingClient->setActiveBorder(border); movingClient->setActiveBorderMaximizing(true); } |