This commit is contained in:
Kovid Goyal 2019-04-19 14:09:48 +05:30
commit 6f5ff05c56
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
3 changed files with 22 additions and 0 deletions

View File

@ -95,6 +95,9 @@ To update |kitty|, :doc:`follow the instructions <binary>`.
- Update to using the Unicode 12 standard
- Unicode input kitten: Allow using the arrow keys in code mode to go to next
and previous unicode symbol.
- macOS: Fix specifying initial window size in cells not working correctly on
Retina screens (:iss:`1444`)

View File

@ -15,6 +15,8 @@ In :guilabel:`Code` mode, you enter a unicode character by typing in the hex cod
character and pressing enter, for example, type in ``2716`` and press enter to get
✖. You can also choose a character from the list of recently used characters by
typing a leading period and then the two character index and pressing Enter.
The up and down arrow keys can be used to choose the previous and next unicode
symbol respectively.
In :guilabel:`Name` mode you instead type words from the character name and use the arrow
keys/tab to select the character from the displayed matches. You can also type

View File

@ -391,6 +391,23 @@ class UnicodeInput(Handler):
self.refresh()
def on_key(self, key_event):
if self.mode is HEX and key_event.type is not RELEASE and not key_event.mods:
try:
val = int(self.line_edit.current_input, 16)
except Exception:
return
if key_event.key is TAB:
self.line_edit.current_input = hex(val + 0x10)[2:]
self.refresh()
return
if key_event.key is UP:
self.line_edit.current_input = hex(val + 1)[2:]
self.refresh()
return
if key_event.key is DOWN:
self.line_edit.current_input = hex(val - 1)[2:]
self.refresh()
return
if self.mode is NAME and key_event.type is not RELEASE and not key_event.mods:
if key_event.key is TAB:
if key_event.mods == SHIFT: