Merge pull request #43 from rfschmid/fix-wide-character-input

Fix wide character input
This commit is contained in:
pdxlocations
2025-01-21 15:14:59 -08:00
committed by GitHub
+11 -8
View File
@@ -300,7 +300,7 @@ def main_ui(stdscr):
# Get user input from entry window
entry_win.move(1, len(input_text) + 8)
char = entry_win.getch()
char = entry_win.get_wch()
# draw_debug(f"Keypress: {char}")
@@ -336,17 +336,17 @@ def main_ui(stdscr):
draw_node_list()
# Check for Esc
elif char == 27:
elif char == chr(27):
break
# Check for Ctrl + t
elif char == 20:
elif char == chr(20):
send_traceroute()
curses.curs_set(0) # Hide cursor
ui.dialog.dialog(stdscr, "Traceroute Sent", "Results will appear in messages window.\nNote: Traceroute is limited to once every 30 seconds.")
curses.curs_set(1) # Show cursor again
elif char == curses.KEY_ENTER or char == 10 or char == 13:
elif char in (chr(curses.KEY_ENTER), chr(10), chr(13)):
if globals.current_window == 2:
node_list = globals.node_list
if node_list[globals.selected_node] not in globals.channel_list:
@@ -371,7 +371,7 @@ def main_ui(stdscr):
entry_win.clear()
# entry_win.refresh()
elif char == curses.KEY_BACKSPACE or char == 127:
elif char in (curses.KEY_BACKSPACE, chr(127)):
if input_text:
input_text = input_text[:-1]
y, x = entry_win.getyx()
@@ -380,12 +380,12 @@ def main_ui(stdscr):
entry_win.move(y, x - 1)
entry_win.refresh()
elif char == 96: # ` Launch the settings interface
elif char == "`": # ` Launch the settings interface
curses.curs_set(0)
settings_menu(stdscr, globals.interface)
curses.curs_set(1)
elif char == 47:
elif char == "/":
# Display packet log
if globals.display_log is False:
globals.display_log = True
@@ -396,4 +396,7 @@ def main_ui(stdscr):
draw_messages_window()
else:
# Append typed character to input text
input_text += chr(char)
if(isinstance(char, str)):
input_text += char
else:
input_text += chr(char)