emmental/ui/keyboard.py

38 lines
1.1 KiB
Python

# Copyright 2021 (c) Anna Schumaker.
from gi.repository import Gtk, Gdk
import audio
Event = Gtk.EventControllerKey()
Event.set_propagation_phase(Gtk.PropagationPhase.CAPTURE)
Shortcuts = dict()
def initialize():
Shortcuts.clear()
Shortcuts.update({
"Return" : audio.Player.next,
"BackSpace" : audio.Player.previous,
"space" : audio.Player.playpause,
"plus" : audio.Player.Autopause.increment,
"KP_Add" : audio.Player.Autopause.increment,
"minus" : audio.Player.Autopause.decrement,
"KP_Subtract" : audio.Player.Autopause.decrement,
})
initialize()
def on_key_released(controller, keyval, keycode, state):
window = Event.get_widget()
name = Gdk.keyval_name(keyval)
if name == "Escape":
window.set_focus(None)
elif not isinstance(window.get_focus(), Gtk.Text):
if func := Shortcuts.get(name):
func()
return True
#else:
# print(name)
return False
Event.connect("key-released", on_key_released)