Store hit type in PointContents

This commit is contained in:
Ivan Molodetskikh
2025-02-10 13:11:50 +03:00
parent 96a3ded2ec
commit 963ff14ed0
2 changed files with 6 additions and 4 deletions
+2 -2
View File
@@ -2451,7 +2451,7 @@ impl State {
if let Some(pos) = self.niri.tablet_cursor_location {
let under = self.niri.contents_under(pos);
if let Some(window) = under.window {
if let Some((window, _)) = under.window {
self.niri.layout.activate_window(&window);
// FIXME: granular.
@@ -2823,7 +2823,7 @@ impl State {
let under = self.niri.contents_under(touch_location);
if !handle.is_grabbed() {
if let Some(window) = under.window {
if let Some((window, _)) = under.window {
self.niri.layout.activate_window(&window);
// Check if we need to start an interactive move.
+4 -2
View File
@@ -455,7 +455,7 @@ pub struct PointContents {
// border around the window.
pub surface: Option<(WlSurface, Point<f64, Logical>)>,
// If surface belongs to a window, this is that window.
pub window: Option<Window>,
pub window: Option<(Window, HitType)>,
// If surface belongs to a layer surface, this is that layer surface.
pub layer: Option<LayerSurface>,
}
@@ -2720,7 +2720,7 @@ impl Niri {
} else {
None
};
(surface_and_pos, (Some(window.clone()), None))
(surface_and_pos, (Some((window.clone(), hit)), None))
})
};
@@ -5060,6 +5060,8 @@ impl Niri {
if let Some(window) = &new_focus.window {
if current_focus.window.as_ref() != Some(window) {
let (window, _) = window;
if !self.layout.should_trigger_focus_follows_mouse_on(window) {
return;
}