1
0
Fork 0
forked from wry/wry

seat: add focus history

This commit is contained in:
Julian Orth 2025-07-18 20:09:34 +02:00
parent 9941263a82
commit d12234b38b
21 changed files with 546 additions and 22 deletions

View file

@ -28,14 +28,16 @@ pub struct DisplayNode {
impl DisplayNode {
pub fn new(id: NodeId) -> Self {
Self {
let slf = Self {
id,
extents: Default::default(),
outputs: Default::default(),
stacked: Default::default(),
stacked_above_layers: Default::default(),
seat_state: Default::default(),
}
};
slf.seat_state.disable_focus_history();
slf
}
pub fn clear(&self) {

View file

@ -324,6 +324,10 @@ impl Node for WorkspaceNode {
fn node_do_focus(self: Rc<Self>, seat: &Rc<WlSeatGlobal>, direction: Direction) {
if let Some(fs) = self.fullscreen.get() {
fs.node_do_focus(seat, direction);
} else if self.stacked.is_not_empty()
&& let Some(last) = seat.get_last_focus_on_workspace(&self)
{
seat.focus_node(last);
} else if let Some(container) = self.container.get() {
container.node_do_focus(seat, direction);
} else if let Some(float) = self