Method: Textbringer::Window#read_event

Defined in:
lib/textbringer/window.rb

#read_eventObject



298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
# File 'lib/textbringer/window.rb', line 298

def read_event
  key = get_char
  if key.is_a?(Integer)
    if HAVE_GET_KEY_MODIFIERS
      if Curses::ALT_0 <= key && key <= Curses::ALT_9
        @key_buffer.push((key - ALT_NUMBER_BASE).chr)
        return "\e"
      elsif Curses::ALT_A <= key && key <= Curses::ALT_Z
        @key_buffer.push((key - ALT_ALPHA_BASE).chr)
        return "\e"
      end
    end
    KEY_NAMES[key] || key
  else
    key&.encode(Encoding::UTF_8)
  end
end