else:
self.no_actions()
- def on_enter_loaded_running(self):
+ def on_enter_loaded_running(self, modifiers):
self.parent.parent.ids['KeyList'].append(self.key_sym)
debug_print("running actions for {}".format(self.key_sym))
start_time = time.time()
def on_keyboard_down(self, keyboard, keycode, text, modifiers):
key = self.find_by_key_code(keycode)
- if len(modifiers) == 0 and key is not None:
- threading.Thread(name="MSKeyAction", target=key.run).start()
+ if self.allowed_modifiers(modifiers) and key is not None:
+ modifiers.sort()
+ threading.Thread(name="MSKeyAction", target=key.run,
+ args=['-'.join(modifiers)]).start()
elif 'ctrl' in modifiers and (keycode[0] == 113 or keycode[0] == '99'):
self.stop_all_running()
for thread in threading.enumerate():
sys.exit()
return True
+ # Helpers
+ def allowed_modifiers(self, modifiers):
+ allowed = []
+ return len([a for a in modifiers if a not in allowed]) == 0
+
def find_by_key_code(self, key_code):
if "Key_" + str(key_code[0]) in self.ids:
return self.ids["Key_" + str(key_code[0])]