diff --git a/src/ifs/wl_seat/event_handling.rs b/src/ifs/wl_seat/event_handling.rs index d818c37c..883db383 100644 --- a/src/ifs/wl_seat/event_handling.rs +++ b/src/ifs/wl_seat/event_handling.rs @@ -100,7 +100,7 @@ impl NodeSeatState { fn release_kb_focus2(&self, focus_last: bool) { self.release_kb_grab(); while let Some((_, seat)) = self.kb_foci.pop() { - seat.keyboard_node.set(seat.state.root.clone()); + seat.kb_owner.set_kb_node(&seat, seat.state.root.clone()); // log::info!("keyboard_node = root"); if focus_last { seat.output @@ -149,9 +149,6 @@ impl NodeSeatState { pub fn set_visible(&self, node: &dyn Node, visible: bool) { if !visible { - if !self.kb_foci.is_empty() { - node.node_active_changed(false); - } self.destroy_node2(node, false); } } diff --git a/src/ifs/wl_surface.rs b/src/ifs/wl_surface.rs index b8f34d71..4ba7620e 100644 --- a/src/ifs/wl_surface.rs +++ b/src/ifs/wl_surface.rs @@ -995,9 +995,6 @@ impl WlSurface { for seat in remove { data.focus_node.remove(&seat); } - if self.seat_state.is_active() { - tl.tl_surface_active_changed(false); - } } self.send_seat_release_events(); self.seat_state.destroy_node(self);