aboutsummaryrefslogtreecommitdiff
path: root/src/layout/workspace.rs
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2025-02-10 13:12:53 +0300
committerIvan Molodetskikh <yalterz@gmail.com>2025-02-10 07:29:33 -0800
commit6942ecc13a40867850fc26429da21603647e8026 (patch)
treefaa00e99985eb8d24acb09235d93b7fe2822b301 /src/layout/workspace.rs
parent963ff14ed025eeb5d6785dbcd4c073251ef7a9e9 (diff)
downloadniri-6942ecc13a40867850fc26429da21603647e8026.tar.gz
niri-6942ecc13a40867850fc26429da21603647e8026.tar.bz2
niri-6942ecc13a40867850fc26429da21603647e8026.zip
Implement clicking on tab to switch
Diffstat (limited to 'src/layout/workspace.rs')
-rw-r--r--src/layout/workspace.rs18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/layout/workspace.rs b/src/layout/workspace.rs
index b5392644..25d2bb80 100644
--- a/src/layout/workspace.rs
+++ b/src/layout/workspace.rs
@@ -1475,14 +1475,18 @@ impl<W: LayoutElement> Workspace<W> {
}
pub fn window_under(&self, pos: Point<f64, Logical>) -> Option<(&W, HitType)> {
- self.tiles_with_render_positions()
- .find_map(|(tile, tile_pos, visible)| {
- if !visible {
- return None;
- }
+ // This logic is consistent with tiles_with_render_positions().
+ if self.is_floating_visible() {
+ if let Some(rv) = self
+ .floating
+ .tiles_with_render_positions()
+ .find_map(|(tile, tile_pos)| HitType::hit_tile(tile, tile_pos, pos))
+ {
+ return Some(rv);
+ }
+ }
- HitType::hit_tile(tile, tile_pos, pos)
- })
+ self.scrolling.window_under(pos)
}
pub fn resize_edges_under(&self, pos: Point<f64, Logical>) -> Option<ResizeEdge> {