aboutsummaryrefslogtreecommitdiff
path: root/src/layout/floating.rs
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2024-12-26 09:27:59 +0300
committerIvan Molodetskikh <yalterz@gmail.com>2024-12-30 20:12:37 +0300
commit7e852124a5c198cd2e7ada53b3e1626eeb87dbf7 (patch)
tree3dfe62c5c8b84d2317da1d461c13a5d9139df78e /src/layout/floating.rs
parentf66a49bc42f9352ac77a926617dd8a9cdaef0b9b (diff)
downloadniri-7e852124a5c198cd2e7ada53b3e1626eeb87dbf7.tar.gz
niri-7e852124a5c198cd2e7ada53b3e1626eeb87dbf7.tar.bz2
niri-7e852124a5c198cd2e7ada53b3e1626eeb87dbf7.zip
floating: Fix window position constraining with non-zero working area loc
Diffstat (limited to 'src/layout/floating.rs')
-rw-r--r--src/layout/floating.rs2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/layout/floating.rs b/src/layout/floating.rs
index 547c9222..dac4ed12 100644
--- a/src/layout/floating.rs
+++ b/src/layout/floating.rs
@@ -139,6 +139,7 @@ impl Data {
let max_off_screen_hor = f64::max(0., self.size.w - min_on_screen_hor);
let max_off_screen_ver = f64::max(0., self.size.h - min_on_screen_ver);
+ logical_pos -= self.working_area.loc;
logical_pos.x = f64::max(logical_pos.x, -max_off_screen_hor);
logical_pos.y = f64::max(logical_pos.y, -max_off_screen_ver);
logical_pos.x = f64::min(
@@ -149,6 +150,7 @@ impl Data {
logical_pos.y,
self.working_area.size.h - self.size.h + max_off_screen_ver,
);
+ logical_pos += self.working_area.loc;
self.logical_pos = logical_pos;
}