1
0
Fork 0
forked from wry/wry

autocommit 2022-04-20 16:11:37 CEST

This commit is contained in:
Julian Orth 2022-04-20 16:11:37 +02:00
parent fa1ec0b36c
commit ab3c2e44f4
19 changed files with 409 additions and 210 deletions

View file

@ -1,12 +1,30 @@
use {
crate::{
ifs::{wl_seat::SeatId, wl_surface::WlSurface},
tree::{Node, WorkspaceNode},
tree::{Node, SizedNode, WorkspaceNode},
utils::{numcell::NumCell, smallmap::SmallMap},
},
std::{cell::Cell, rc::Rc},
};
pub trait SizedToplevelNode: SizedNode {
fn data(&self) -> &ToplevelData;
fn accepts_keyboard_focus(&self) -> bool;
fn default_surface(&self) -> Option<Rc<WlSurface>>;
fn set_active(&self, active: bool);
fn activate(&self);
fn set_fullscreen(self: &Rc<Self>, fullscreen: bool);
fn fullscreen(&self) -> bool;
fn as_node(&self) -> &dyn Node {
self
}
fn into_node(self: Rc<Self>) -> Rc<dyn Node> {
self
}
}
tree_id!(ToplevelNodeId);
pub trait ToplevelNode {
fn data(&self) -> &ToplevelData;
@ -16,6 +34,46 @@ pub trait ToplevelNode {
fn default_surface(&self) -> Option<Rc<WlSurface>>;
fn set_active(&self, active: bool);
fn activate(&self);
fn set_fullscreen(self: Rc<Self>, fullscreen: bool);
fn fullscreen(&self) -> bool;
}
impl<T: SizedToplevelNode> ToplevelNode for T {
fn data(&self) -> &ToplevelData {
<Self as SizedToplevelNode>::data(self)
}
fn as_node(&self) -> &dyn Node {
<Self as SizedToplevelNode>::as_node(self)
}
fn into_node(self: Rc<Self>) -> Rc<dyn Node> {
<Self as SizedToplevelNode>::into_node(self)
}
fn accepts_keyboard_focus(&self) -> bool {
<Self as SizedToplevelNode>::accepts_keyboard_focus(self)
}
fn default_surface(&self) -> Option<Rc<WlSurface>> {
<Self as SizedToplevelNode>::default_surface(self)
}
fn set_active(&self, active: bool) {
<Self as SizedToplevelNode>::set_active(self, active)
}
fn activate(&self) {
<Self as SizedToplevelNode>::activate(self)
}
fn set_fullscreen(self: Rc<Self>, fullscreen: bool) {
<Self as SizedToplevelNode>::set_fullscreen(&self, fullscreen)
}
fn fullscreen(&self) -> bool {
<Self as SizedToplevelNode>::fullscreen(self)
}
}
#[derive(Default)]