1
0
Fork 0
forked from wry/wry

wayland: remove duplicate leave events

This commit is contained in:
Julian Orth 2024-07-02 16:47:28 +02:00
parent 84d7632341
commit 5a552a4ca2
2 changed files with 1 additions and 16 deletions

View file

@ -149,10 +149,6 @@ impl NodeSeatState {
self.kb_foci.iter().for_each(|(_, s)| f(s));
}
pub fn for_each_pointer_focus<F: FnMut(Rc<WlSeatGlobal>)>(&self, mut f: F) {
self.pointer_foci.iter().for_each(|(_, s)| f(s));
}
pub fn destroy_node(&self, node: &dyn Node) {
self.destroy_node2(node, true);
}
@ -173,11 +169,11 @@ impl NodeSeatState {
while let Some((_, seat)) = self.pointer_foci.pop() {
let mut ps = seat.pointer_stack.borrow_mut();
while let Some(last) = ps.pop() {
last.node_on_leave(&seat);
if last.node_id() == node_id {
break;
}
last.node_seat_state().leave(&seat);
last.node_on_leave(&seat);
}
seat.pointer_stack_modified.set(true);
seat.state.tree_changed();

View file

@ -1261,13 +1261,6 @@ impl WlSurface {
}
}
fn send_seat_release_events(&self) {
self.seat_state
.for_each_pointer_focus(|s| s.leave_surface(self));
self.seat_state
.for_each_kb_focus(|s| s.unfocus_surface(self));
}
pub fn set_visible(&self, visible: bool) {
if self.visible.replace(visible) == visible {
return;
@ -1287,9 +1280,6 @@ impl WlSurface {
}
}
}
if !visible {
self.send_seat_release_events();
}
self.seat_state.set_visible(self, visible);
}
@ -1318,7 +1308,6 @@ impl WlSurface {
data.focus_node.remove(&seat);
}
}
self.send_seat_release_events();
self.seat_state.destroy_node(self);
if self.visible.get() {
self.client.state.damage();