diff --git a/src/main/python/keyboard_container.py b/src/main/python/keyboard_container.py index f48d3a5..e6b07c2 100644 --- a/src/main/python/keyboard_container.py +++ b/src/main/python/keyboard_container.py @@ -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 diff --git a/src/main/python/keyboard_widget.py b/src/main/python/keyboard_widget.py index ac278c7..2bba805 100644 --- a/src/main/python/keyboard_widget.py +++ b/src/main/python/keyboard_widget.py @@ -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