def _gtk_key(self, widget, event, *args):
# This function was adapted from pangoterm source code
keyval = event.keyval
state = event.state
# GtkIMContext will eat a Shift-Space and not tell us about shift.
# Also don't let IME eat any GDK_KEY_KP_ events
done = (False if state & SHIFT and keyval == ord(' ') else
False if Gdk.KEY_KP_Space <= keyval <= Gdk.KEY_KP_Divide else
self._im_context.filter_keypress(event))
if done:
# input method handled keypress
return True
if event.is_modifier:
# We don't need to track the state of modifier bits
return
# translate keyval to nvim key
key_name = Gdk.keyval_name(keyval)
if key_name.startswith('KP_'):
key_name = key_name[3:]
input_str = _stringify_key(KEY_TABLE.get(key_name, key_name), state)
self._bridge.input(input_str)
评论列表
文章目录