Skip to content

Commit e7814d0

Browse files
Do not emit repeated key_down and key_up events (#94)
1 parent 557cb3f commit e7814d0

File tree

3 files changed

+9
-3
lines changed

3 files changed

+9
-3
lines changed

rendercanvas/glfw.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -625,7 +625,9 @@ def _on_key(self, window, key, scancode, action, mods):
625625
"key": keyname,
626626
"modifiers": tuple(self._key_modifiers),
627627
}
628-
self.submit_event(ev)
628+
629+
if not action == glfw.REPEAT:
630+
self.submit_event(ev)
629631

630632
def _on_char(self, window, char):
631633
# Undocumented char event to make imgui work, see https://github.com/pygfx/wgpu-py/issues/530

rendercanvas/qt.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -478,7 +478,9 @@ def _key_event(self, event_type, event):
478478
"key": KEY_MAP.get(event.key(), event.text()),
479479
"modifiers": modifiers,
480480
}
481-
self.submit_event(ev)
481+
482+
if not event.isAutoRepeat():
483+
self.submit_event(ev)
482484

483485
def _char_input_event(self, char_str):
484486
ev = {

rendercanvas/wx.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -422,7 +422,9 @@ def _key_event(self, event_type: str, event: wx.KeyEvent, char_str: Optional[str
422422
"key": KEY_MAP.get(event.GetKeyCode(), char_str),
423423
"modifiers": modifiers,
424424
}
425-
self.submit_event(ev)
425+
426+
if not event.IsAutoRepeat():
427+
self.submit_event(ev)
426428

427429
def _char_input_event(self, char_str: Optional[str]):
428430
if char_str is None:

0 commit comments

Comments
 (0)