wayland: remove duplicate leave events
This commit is contained in:
parent
84d7632341
commit
5a552a4ca2
2 changed files with 1 additions and 16 deletions
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue