Skip to content

Commit b5e19cb

Browse files
authored
Support repeating key presses (#184)
1 parent 09901e7 commit b5e19cb

3 files changed

Lines changed: 18 additions & 10 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010

1111
## Fixes
1212

13+
- Handle key repeatitions properly.
14+
1315
# 0.2.2 - 2024-03-10
1416

1517
## Fixes

‎src/window/keyboard.rs‎

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,8 @@ use sctk::{
88

99
use super::Window;
1010

11-
impl KeyboardHandler for Window {
12-
fn press_key(
13-
&mut self,
14-
_conn: &Connection,
15-
_qh: &QueueHandle<Self>,
16-
_keyboard: &WlKeyboard,
17-
_serial: u32,
18-
event: sctk::seat::keyboard::KeyEvent,
19-
) {
11+
impl Window {
12+
pub fn handle_keypress(&mut self, event: sctk::seat::keyboard::KeyEvent) {
2013
use sctk::seat::keyboard::Keysym;
2114
type M = Modifiers;
2215
match (event.keysym, self.key_modifiers) {
@@ -55,6 +48,19 @@ impl KeyboardHandler for Window {
5548
),
5649
}
5750
}
51+
}
52+
53+
impl KeyboardHandler for Window {
54+
fn press_key(
55+
&mut self,
56+
_conn: &Connection,
57+
_qh: &QueueHandle<Self>,
58+
_keyboard: &WlKeyboard,
59+
_serial: u32,
60+
event: sctk::seat::keyboard::KeyEvent,
61+
) {
62+
self.handle_keypress(event)
63+
}
5864

5965
fn update_modifiers(
6066
&mut self,

‎src/window/seat.rs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ impl SeatHandler for Window {
2424
&seat,
2525
None,
2626
self.loop_handle.clone(),
27-
Box::new(|_state, _wl_kbd, _event| {}),
27+
Box::new(|state, _wl_kbd, event| state.handle_keypress(event)),
2828
) {
2929
Ok(k) => k,
3030
Err(err) => {

0 commit comments

Comments
 (0)