1
0
Fork 0
forked from wry/wry

tree: move common code out of ToplevelNode trait

This commit is contained in:
Julian Orth 2024-02-21 14:03:33 +01:00
parent 8430278264
commit 1d1d542839
12 changed files with 100 additions and 90 deletions

View file

@ -12,7 +12,7 @@ use {
state::State,
tree::{
Direction, FindTreeResult, FoundNode, Node, NodeId, NodeVisitor, StackedNode,
ToplevelData, ToplevelNode, WorkspaceNode,
ToplevelData, ToplevelNode, ToplevelNodeBase, WorkspaceNode,
},
utils::{clonecell::CloneCell, copyhashmap::CopyHashMap, linkedlist::LinkedNode},
wire::WlSurfaceId,
@ -357,9 +357,7 @@ impl Node for Xwindow {
}
}
impl ToplevelNode for Xwindow {
tl_node_impl!();
impl ToplevelNodeBase for Xwindow {
fn tl_data(&self) -> &ToplevelData {
&self.toplevel_data
}
@ -410,17 +408,19 @@ impl ToplevelNode for Xwindow {
.push(XWaylandEvent::Close(self.data.clone()));
}
fn tl_set_visible(&self, visible: bool) {
fn tl_set_visible_impl(&self, visible: bool) {
self.x.surface.set_visible(visible);
self.toplevel_data.set_visible(self, visible);
}
fn tl_destroy(&self) {
self.toplevel_data.destroy_node(self);
fn tl_destroy_impl(&self) {
self.display_link.borrow_mut().take();
self.x.surface.destroy_node();
}
fn tl_last_active_child(self: Rc<Self>) -> Rc<dyn ToplevelNode> {
self
}
fn tl_scanout_surface(&self) -> Option<Rc<WlSurface>> {
Some(self.x.surface.clone())
}