seat: drop xkb_state before reverting pointer to default
This commit is contained in:
parent
2a1d6a8ba8
commit
7729704e42
1 changed files with 7 additions and 1 deletions
|
|
@ -811,9 +811,10 @@ impl WlSeatGlobal {
|
|||
}
|
||||
let scs = &*self.shortcuts.borrow();
|
||||
let keysyms = xkb_state.unmodified_keysyms(key);
|
||||
let mut revert_pointer_to_default = false;
|
||||
for &sym in keysyms {
|
||||
if sym == SYM_Escape.0 && mods == 0 {
|
||||
self.pointer_owner.revert_to_default(self);
|
||||
revert_pointer_to_default = true;
|
||||
}
|
||||
if !self.state.lock.locked.get() {
|
||||
if let Some(key_mods) = scs.get(&sym) {
|
||||
|
|
@ -829,6 +830,11 @@ impl WlSeatGlobal {
|
|||
}
|
||||
}
|
||||
}
|
||||
if revert_pointer_to_default {
|
||||
drop(xkb_state);
|
||||
self.pointer_owner.revert_to_default(self);
|
||||
xkb_state = xkb_state_rc.borrow_mut();
|
||||
}
|
||||
new_mods = xkb_state.update(key, xkb_dir);
|
||||
}
|
||||
self.state.for_each_seat_tester(|t| {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue