38 lines
1.1 KiB
Python
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)
|