fix: Prevent system hang on double Caps Lock press
This commit is contained in:
parent
fdf015cbcf
commit
21679f215a
1 changed files with 25 additions and 19 deletions
|
|
@ -1774,11 +1774,15 @@ impl State {
|
||||||
&& handle.modified_sym() == Keysym::Caps_Lock
|
&& handle.modified_sym() == Keysym::Caps_Lock
|
||||||
&& (modifiers.serialized.locked & 2) != 0
|
&& (modifiers.serialized.locked & 2) != 0
|
||||||
{
|
{
|
||||||
|
let seat = seat.clone();
|
||||||
|
let key_code = event.key_code();
|
||||||
|
self.common.event_loop_handle.insert_idle(move |state| {
|
||||||
|
if let Some(keyboard) = seat.get_keyboard() {
|
||||||
let serial = SERIAL_COUNTER.next_serial();
|
let serial = SERIAL_COUNTER.next_serial();
|
||||||
let time = self.common.clock.now().as_millis();
|
let time = state.common.clock.now().as_millis();
|
||||||
keyboard.input(
|
keyboard.input(
|
||||||
self,
|
state,
|
||||||
event.key_code(),
|
key_code,
|
||||||
KeyState::Pressed,
|
KeyState::Pressed,
|
||||||
serial,
|
serial,
|
||||||
time,
|
time,
|
||||||
|
|
@ -1786,14 +1790,16 @@ impl State {
|
||||||
);
|
);
|
||||||
let serial = SERIAL_COUNTER.next_serial();
|
let serial = SERIAL_COUNTER.next_serial();
|
||||||
keyboard.input(
|
keyboard.input(
|
||||||
self,
|
state,
|
||||||
event.key_code(),
|
key_code,
|
||||||
KeyState::Released,
|
KeyState::Released,
|
||||||
serial,
|
serial,
|
||||||
time,
|
time,
|
||||||
|_, _, _| FilterResult::<()>::Forward,
|
|_, _, _| FilterResult::<()>::Forward,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
} else if event.state() == KeyState::Pressed
|
} else if event.state() == KeyState::Pressed
|
||||||
&& self
|
&& self
|
||||||
.common
|
.common
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue