home · contact · privacy
More TUI client refactoring.
[plomrogue2] / rogue_chat_curses.py
index f798047136b271c0be140f299da0645b33ece7e0..60c46b270b30dac481408f23bc46181f79288732 100755 (executable)
@@ -498,7 +498,6 @@ class RogueChatTUI(TUI):
         self.game = Game()
         self.game.tui = self
         self.parser = Parser(self.game)
-        self.do_refresh = True
         self.login_name = None
         self.map_mode = 'terrain + things'
         self.password = 'foo'
@@ -558,7 +557,6 @@ class RogueChatTUI(TUI):
         self.offset = YX(0,0)
         self.explorer = YX(0, 0)
         self.input_ = ''
-        self.store_widechar = False
         self.input_prompt = '> '
         self.action_descriptions = {
             'move': 'move',
@@ -1186,21 +1184,7 @@ class RogueChatTUI(TUI):
             self.do_refresh = False
         for msg in self.socket.get_message():
             handle_input(msg)
-        try:
-            key = self.stdscr.getkey()
-            self.do_refresh = True
-        except curses.error:
-            return
-        keycode = None
-        if len(key) == 1:
-            keycode = ord(key)
-            # workaround for <https://stackoverflow.com/a/56390915>
-            if self.store_widechar:
-                self.store_widechar = False
-                key = bytes([195, keycode]).decode()
-            if keycode == 195:
-                self.store_widechar = True
-                return
+        key, keycode = self.get_key_and_keycode()
         self.show_help = False
         self.draw_face = False
         if key == 'KEY_RESIZE':