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:36 +0900 |
| commit | 1f0b2eb41dd607447b2f20d93d7f600ace2bd3ff (patch) | |
| tree | ed96f7c08555068da788af4ab8c3a8db1c2a65d8 /twin/workspace.cpp | |
| parent | 0fdf9a3e90e70116f4d1e33056b6b28c40860d85 (diff) | |
| download | tdebase-1f0b2eb41dd607447b2f20d93d7f600ace2bd3ff.tar.gz tdebase-1f0b2eb41dd607447b2f20d93d7f600ace2bd3ff.zip | |
twin: Use screen geometry when active borders are in tiling mode
Signed-off-by: rbell <riley.bell@vfemail.net>
(cherry picked from commit 37605209af6150bda9a68f311b3535edf39ff122)
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 23661e6a0..7c1a79e16 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); } |
