Skip to content

Commit e3a09a0

Browse files
authored
Fix keyboard capslock bug (#169)
1 parent 4426fa9 commit e3a09a0

File tree

1 file changed

+25
-6
lines changed

1 file changed

+25
-6
lines changed

modules/app_components/dialog.py

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,8 @@ def __init__(self, message, app, masked=False, on_complete=None, on_cancel=None)
9595
self._current_alphabet = LOWERCASE_ALPHABET
9696
self._keys = []
9797
self._caps = False
98+
self._sym = False
99+
self._shift = False
98100
self._layer = 0
99101
self._result = None
100102
eventbus.on(ButtonDownEvent, self._handle_buttondown, self.app)
@@ -222,16 +224,33 @@ def _handle_buttondown(self, event: ButtonDownEvent):
222224
self._layer = -1
223225
elif selected == SPECIAL_KEY_SYMBOL:
224226
self._layer = 0
225-
self._current_alphabet = SYMBOL_ALPHABET
226-
elif selected == SPECIAL_KEY_SHIFT or selected == SPECIAL_KEY_CAPS:
227+
if self._sym:
228+
self._current_alphabet = LOWERCASE_ALPHABET
229+
self._sym = False
230+
self._caps = False
231+
else:
232+
self._current_alphabet = SYMBOL_ALPHABET
233+
self._sym = True
234+
elif selected == SPECIAL_KEY_SHIFT:
235+
self._layer = 0
236+
self._shift = not self._shift
237+
if self._shift:
238+
self._current_alphabet = UPPERCASE_ALPHABET
239+
else:
240+
self._current_alphabet = LOWERCASE_ALPHABET
241+
elif selected == SPECIAL_KEY_CAPS:
227242
self._layer = 0
228-
self._current_alphabet = UPPERCASE_ALPHABET
229-
if selected == SPECIAL_KEY_CAPS:
230-
self._caps = True
243+
self._caps = not self._caps
244+
if self._caps:
245+
self._current_alphabet = UPPERCASE_ALPHABET
246+
else:
247+
self._current_alphabet = LOWERCASE_ALPHABET
231248
else:
232249
self.text += selected
250+
if self._shift:
251+
self._shift = False
252+
self._current_alphabet = LOWERCASE_ALPHABET
233253
self._layer = 0
234-
235254
if self._caps:
236255
self._current_alphabet = UPPERCASE_ALPHABET
237256
else:

0 commit comments

Comments
 (0)