(&mut self, node: &Node)
| 89 | } |
| 90 | |
| 91 | fn remove_node(&mut self, node: &Node) { |
| 92 | let id = node.id(); |
| 93 | if self.removed_nodes.contains(&id) { |
| 94 | return; |
| 95 | } |
| 96 | self.removed_nodes.insert(id); |
| 97 | |
| 98 | let role = node.role(); |
| 99 | let is_root = node.is_root(); |
| 100 | let wrapper = NodeWrapper(node); |
| 101 | if is_root && role == Role::Window { |
| 102 | self.adapter.window_destroyed(node.id()); |
| 103 | } |
| 104 | self.adapter |
| 105 | .emit_object_event(node.id(), ObjectEvent::StateChanged(State::Defunct, true)); |
| 106 | self.adapter.emit_cache_removed(node.id()); |
| 107 | self.adapter |
| 108 | .unregister_interfaces(node.id(), wrapper.interfaces()); |
| 109 | if let Some(true) = node.is_selected() { |
| 110 | self.enqueue_selection_changed_if_needed(node); |
| 111 | } |
| 112 | } |
| 113 | |
| 114 | fn remove_subtree(&mut self, node: &Node) { |
| 115 | for child in node.filtered_children(&filter) { |
no test coverage detected