diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2024-12-29 10:39:21 +0300 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2024-12-30 20:12:37 +0300 |
| commit | 3c2e1554c6f1fe0d7d96094aa93f72f4ced613e5 (patch) | |
| tree | 9b3c883f1f3256e49250bb5c26716ebcf1a38bba /src/layout/floating.rs | |
| parent | 744955ba69176a0e2937f18958908274583223d4 (diff) | |
| download | niri-3c2e1554c6f1fe0d7d96094aa93f72f4ced613e5.tar.gz niri-3c2e1554c6f1fe0d7d96094aa93f72f4ced613e5.tar.bz2 niri-3c2e1554c6f1fe0d7d96094aa93f72f4ced613e5.zip | |
Add default-floating-position window rule
Diffstat (limited to 'src/layout/floating.rs')
| -rw-r--r-- | src/layout/floating.rs | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/layout/floating.rs b/src/layout/floating.rs index af208615..d40d1b17 100644 --- a/src/layout/floating.rs +++ b/src/layout/floating.rs @@ -415,12 +415,14 @@ impl<W: LayoutElement> FloatingSpace<W> { } } - let pos = tile - .floating_pos - .map(|pos| self.scale_by_working_area(pos)) - .unwrap_or_else(|| { - center_preferring_top_left_in_area(self.working_area, tile.tile_size()) - }); + let pos = tile.floating_pos.map(|pos| self.scale_by_working_area(pos)); + let pos = pos.or_else(|| { + tile.default_floating_logical_pos() + .map(|pos| pos + self.working_area.loc) + }); + let pos = pos.unwrap_or_else(|| { + center_preferring_top_left_in_area(self.working_area, tile.tile_size()) + }); let data = Data::new(self.working_area, &tile, pos); self.data.insert(idx, data); |
