diff options
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> { |
