From 3a86eeb8d70b7a3fada0dd856995c191e8059892 Mon Sep 17 00:00:00 2001 From: Ilya Zhuravlev Date: Fri, 16 Oct 2020 15:31:50 -0400 Subject: [PATCH] keyboard_container: deselect key by clicking twice --- src/main/python/keyboard_container.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/main/python/keyboard_container.py b/src/main/python/keyboard_container.py index 849c9e0..bceff3f 100644 --- a/src/main/python/keyboard_container.py +++ b/src/main/python/keyboard_container.py @@ -77,7 +77,7 @@ class KeyboardContainer(QWidget): for key in keyboard.keys: widget = ClickableLabel() - widget.clicked.connect(lambda w=widget: self.select_key(w)) + widget.clicked.connect(lambda w=widget: self.on_key_clicked(w)) if key.row is not None: self.rowcol[(key.row, key.col)].append(widget) @@ -135,10 +135,14 @@ class KeyboardContainer(QWidget): self.keyboard.set_key(self.current_layer, self.selected_row, self.selected_col, keycode) self.refresh_layer_display() - def select_key(self, widget): + def on_key_clicked(self, widget): """ Change which key is currently selected """ - self.selected_key = widget + if self.selected_key == widget: + self.selected_key = None + else: + self.selected_key = widget + for (row, col), widgets in self.rowcol.items(): if widget in widgets: self.selected_row = row