def emulate_key(self, widget, key=None):
try:
event = gtk.gdk.Event(gtk.gdk.KEY_PRESS)
if key:
event.keyval = int(gtk.gdk.keyval_from_name(key))
else:
event.keyval = ord(widget.get_label())
event.hardware_keycode = _keymap.get_entries_for_keyval(event.keyval)[0][0]
# add control mask if ctrl is active
if self.builder.get_object('ctrl').get_active():
event.state = gtk.gdk.CONTROL_MASK
self.builder.get_object('ctrl').set_active(False)
event.window = self.entry.window
self.entry.event(event) # Do the initial event
# Call key repeat function every 50ms
self.wait_counter = 0 # Set counter for repeat timeout
gobject.timeout_add(50, self.key_repeat, widget, event)
except Exception as e:
log.exception(e)
#log.error("HAZZY KEYBOARD ERROR: key emulation error - " + str(e))
self.window.hide()
# Unshift if left shift is active, right shift is "sticky"
if self.builder.get_object('left_shift').get_active():
self.shift(False)
评论列表
文章目录