Match hover focus to pointer surface hit testing

This commit is contained in:
Samuel Onoja committed 2026-09-29 13:59:38 +01:00
1 parent 9b78aabf0a
commit c73d11b2c9
2 files changed
+18 -3

No files matched your search

+3
View File
@@ -624,6 +624,9 @@ impl Ferese {
{
return;
}
if self.layer_under(position).is_some() {
return;
}
let Some(window) = self.window_under_visual(position) else {
return;
+15 -3
View File
@@ -862,11 +862,23 @@ impl Ferese {
let visual = self.presented_window_rect(*id)?;
let caption_height = if overview_active { 34.0 } else { 0.0 };
(position.x >= visual.x
let inside_visual = position.x >= visual.x
&& position.y >= visual.y
&& position.x < visual.x + visual.width
&& position.y < visual.y + visual.height + caption_height)
.then_some(window.clone())
&& position.y < visual.y + visual.height + caption_height;
if !inside_visual {
return None;
}
if !overview_active {
let (source_x, source_y) =
self.inverse_presented_window_point(*id, position.x, position.y)?;
let source_point =
Point::from((source_x, source_y)) + window.geometry().loc.to_f64();
window.surface_under(source_point, WindowSurfaceType::ALL)?;
}
Some(window.clone())
};
if overview_active {