1
0
Fork 0
forked from wry/wry

all: implement screen locking

This commit is contained in:
Julian Orth 2022-05-19 23:39:11 +02:00
parent 9db389835d
commit d42add4d18
24 changed files with 618 additions and 6 deletions

View file

@ -134,6 +134,7 @@ impl NodeSeatState {
last.node_seat_state().leave(&seat);
last.node_on_leave(&seat);
}
seat.pointer_stack_modified.set(true);
seat.state.tree_changed();
}
self.release_kb_focus2(focus_last);
@ -273,7 +274,7 @@ impl WlSeatGlobal {
let new_mods;
{
let mut kb_state = self.kb_state.borrow_mut();
if state == wl_keyboard::PRESSED {
if !self.state.lock.locked.get() && state == wl_keyboard::PRESSED {
let old_mods = kb_state.mods();
let keysyms = kb_state.unmodified_keysyms(key);
for &sym in keysyms {

View file

@ -201,7 +201,8 @@ impl PointerOwner for DefaultPointerOwner {
break;
}
}
if (stack.len(), found_tree.len()) == (divergence, divergence) {
let psm = seat.pointer_stack_modified.replace(false);
if !psm && (stack.len(), found_tree.len()) == (divergence, divergence) {
if let Some(node) = found_tree.last() {
node.node.clone().node_on_pointer_motion(
seat,