diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2025-02-10 13:12:53 +0300 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2025-02-10 07:29:33 -0800 |
| commit | 6942ecc13a40867850fc26429da21603647e8026 (patch) | |
| tree | faa00e99985eb8d24acb09235d93b7fe2822b301 /src/layout/workspace.rs | |
| parent | 963ff14ed025eeb5d6785dbcd4c073251ef7a9e9 (diff) | |
| download | niri-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.rs | 18 |
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> { |
