keyboard_widget: auto-select next key after changing the mapping

main
Ilya Zhuravlev 2020-12-18 22:55:48 -05:00
parent 45a55cb0f6
commit cbfcbf72ad
2 changed files with 14 additions and 0 deletions

View File

@ -111,6 +111,8 @@ class KeyboardContainer(QWidget):
else:
self.set_key_matrix(keycode)
self.container.select_next()
def set_key_encoder(self, keycode):
l, i, d = self.current_layer, self.container.active_key.desc.encoder_idx,\
self.container.active_key.desc.encoder_dir

View File

@ -224,6 +224,18 @@ class KeyboardWidget(QWidget):
self.clicked.emit()
self.update()
def select_next(self):
""" Selects next key based on their order in the keymap """
# TODO: this almost certainly needs changes after multilayout support lands
keys_looped = self.keys + [self.keys[0]]
for x, key in enumerate(keys_looped):
if key == self.active_key:
self.active_key = keys_looped[x + 1]
self.active_mask = False
self.clicked.emit()
return
def deselect(self):
if self.active_key is not None:
self.active_key = None