summaryrefslogtreecommitdiffstats
path: root/twin/workspace.cpp
diff options
context:
space:
mode:
authorrbell <riley.bell@vfemail.net>2025-04-14 09:28:48 -0700
committerMichele Calgaro <michele.calgaro@yahoo.it>2025-05-13 17:15:15 +0900
commit37605209af6150bda9a68f311b3535edf39ff122 (patch)
tree32ad53b9b1d2f5b2312794598a01534c0f49a9a2 /twin/workspace.cpp
parent607bb2598d8b02f2c62d5a327ee13e543713f512 (diff)
downloadtdebase-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.cpp26
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);
}