tsm: vte: introduce own modifiers
We do not want to depend on uterm just for the modifiers so introduce new modifier-names which are in-sync with the UTERM names. Inside of kmscon we still use the UTERM names everywhere, but inside of TSM we now rely on the new names. Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
This commit is contained in:
parent
25dcee52f5
commit
a0a8be1c0a
@ -57,7 +57,6 @@
|
||||
#include "tsm_screen.h"
|
||||
#include "tsm_unicode.h"
|
||||
#include "tsm_vte.h"
|
||||
#include "uterm.h"
|
||||
|
||||
#define LOG_SUBSYSTEM "vte"
|
||||
|
||||
@ -2162,10 +2161,10 @@ bool tsm_vte_handle_keyboard(struct tsm_vte *vte, uint32_t keysym,
|
||||
* Also check whether altSendsEscape should be the default (xterm
|
||||
* disables this by default, why?) and whether we should implement the
|
||||
* fallback shifting that xterm does. */
|
||||
if (mods & UTERM_MOD1_MASK)
|
||||
if (mods & TSM_MOD1_MASK)
|
||||
vte->flags |= FLAG_PREPEND_ESCAPE;
|
||||
|
||||
if (mods & UTERM_CONTROL_MASK) {
|
||||
if (mods & TSM_CONTROL_MASK) {
|
||||
switch (keysym) {
|
||||
case XKB_KEY_2:
|
||||
case XKB_KEY_space:
|
||||
@ -2524,103 +2523,103 @@ bool tsm_vte_handle_keyboard(struct tsm_vte *vte, uint32_t keysym,
|
||||
return true;
|
||||
case XKB_KEY_F4:
|
||||
case XKB_KEY_KP_F4:
|
||||
if (mods & UTERM_SHIFT_MASK)
|
||||
if (mods & TSM_SHIFT_MASK)
|
||||
vte_write(vte, "\e[1;2S", 6);
|
||||
else
|
||||
vte_write(vte, "\eOS", 3);
|
||||
return true;
|
||||
case XKB_KEY_F5:
|
||||
if (mods & UTERM_SHIFT_MASK)
|
||||
if (mods & TSM_SHIFT_MASK)
|
||||
vte_write(vte, "\e[15;2~", 7);
|
||||
else
|
||||
vte_write(vte, "\e[15~", 5);
|
||||
return true;
|
||||
case XKB_KEY_F6:
|
||||
if (mods & UTERM_SHIFT_MASK)
|
||||
if (mods & TSM_SHIFT_MASK)
|
||||
vte_write(vte, "\e[17;2~", 7);
|
||||
else
|
||||
vte_write(vte, "\e[17~", 5);
|
||||
return true;
|
||||
case XKB_KEY_F7:
|
||||
if (mods & UTERM_SHIFT_MASK)
|
||||
if (mods & TSM_SHIFT_MASK)
|
||||
vte_write(vte, "\e[18;2~", 7);
|
||||
else
|
||||
vte_write(vte, "\e[18~", 5);
|
||||
return true;
|
||||
case XKB_KEY_F8:
|
||||
if (mods & UTERM_SHIFT_MASK)
|
||||
if (mods & TSM_SHIFT_MASK)
|
||||
vte_write(vte, "\e[19;2~", 7);
|
||||
else
|
||||
vte_write(vte, "\e[19~", 5);
|
||||
return true;
|
||||
case XKB_KEY_F9:
|
||||
if (mods & UTERM_SHIFT_MASK)
|
||||
if (mods & TSM_SHIFT_MASK)
|
||||
vte_write(vte, "\e[20;2~", 7);
|
||||
else
|
||||
vte_write(vte, "\e[20~", 5);
|
||||
return true;
|
||||
case XKB_KEY_F10:
|
||||
if (mods & UTERM_SHIFT_MASK)
|
||||
if (mods & TSM_SHIFT_MASK)
|
||||
vte_write(vte, "\e[21;2~", 7);
|
||||
else
|
||||
vte_write(vte, "\e[21~", 5);
|
||||
return true;
|
||||
case XKB_KEY_F11:
|
||||
if (mods & UTERM_SHIFT_MASK)
|
||||
if (mods & TSM_SHIFT_MASK)
|
||||
vte_write(vte, "\e[23;2~", 7);
|
||||
else
|
||||
vte_write(vte, "\e[23~", 5);
|
||||
return true;
|
||||
case XKB_KEY_F12:
|
||||
if (mods & UTERM_SHIFT_MASK)
|
||||
if (mods & TSM_SHIFT_MASK)
|
||||
vte_write(vte, "\e[24;2~", 7);
|
||||
else
|
||||
vte_write(vte, "\e[24~", 5);
|
||||
return true;
|
||||
case XKB_KEY_F13:
|
||||
if (mods & UTERM_SHIFT_MASK)
|
||||
if (mods & TSM_SHIFT_MASK)
|
||||
vte_write(vte, "\e[25;2~", 7);
|
||||
else
|
||||
vte_write(vte, "\e[25~", 5);
|
||||
return true;
|
||||
case XKB_KEY_F14:
|
||||
if (mods & UTERM_SHIFT_MASK)
|
||||
if (mods & TSM_SHIFT_MASK)
|
||||
vte_write(vte, "\e[26;2~", 7);
|
||||
else
|
||||
vte_write(vte, "\e[26~", 5);
|
||||
return true;
|
||||
case XKB_KEY_F15:
|
||||
if (mods & UTERM_SHIFT_MASK)
|
||||
if (mods & TSM_SHIFT_MASK)
|
||||
vte_write(vte, "\e[28;2~", 7);
|
||||
else
|
||||
vte_write(vte, "\e[28~", 5);
|
||||
return true;
|
||||
case XKB_KEY_F16:
|
||||
if (mods & UTERM_SHIFT_MASK)
|
||||
if (mods & TSM_SHIFT_MASK)
|
||||
vte_write(vte, "\e[29;2~", 7);
|
||||
else
|
||||
vte_write(vte, "\e[29~", 5);
|
||||
return true;
|
||||
case XKB_KEY_F17:
|
||||
if (mods & UTERM_SHIFT_MASK)
|
||||
if (mods & TSM_SHIFT_MASK)
|
||||
vte_write(vte, "\e[31;2~", 7);
|
||||
else
|
||||
vte_write(vte, "\e[31~", 5);
|
||||
return true;
|
||||
case XKB_KEY_F18:
|
||||
if (mods & UTERM_SHIFT_MASK)
|
||||
if (mods & TSM_SHIFT_MASK)
|
||||
vte_write(vte, "\e[32;2~", 7);
|
||||
else
|
||||
vte_write(vte, "\e[32~", 5);
|
||||
return true;
|
||||
case XKB_KEY_F19:
|
||||
if (mods & UTERM_SHIFT_MASK)
|
||||
if (mods & TSM_SHIFT_MASK)
|
||||
vte_write(vte, "\e[33;2~", 7);
|
||||
else
|
||||
vte_write(vte, "\e[33~", 5);
|
||||
return true;
|
||||
case XKB_KEY_F20:
|
||||
if (mods & UTERM_SHIFT_MASK)
|
||||
if (mods & TSM_SHIFT_MASK)
|
||||
vte_write(vte, "\e[34;2~", 7);
|
||||
else
|
||||
vte_write(vte, "\e[34~", 5);
|
||||
|
@ -50,6 +50,18 @@ extern tsm_vte_charset tsm_vte_dec_special_graphics;
|
||||
|
||||
struct tsm_vte;
|
||||
|
||||
/* keep in sync with uterm_input_modifier */
|
||||
enum tsm_vte_modifier {
|
||||
TSM_SHIFT_MASK = (1 << 0),
|
||||
TSM_LOCK_MASK = (1 << 1),
|
||||
TSM_CONTROL_MASK = (1 << 2),
|
||||
TSM_MOD1_MASK = (1 << 3),
|
||||
TSM_MOD2_MASK = (1 << 4),
|
||||
TSM_MOD3_MASK = (1 << 5),
|
||||
TSM_MOD4_MASK = (1 << 6),
|
||||
TSM_MOD5_MASK = (1 << 7),
|
||||
};
|
||||
|
||||
#define TSM_VTE_INVALID 0xffffffff
|
||||
|
||||
typedef void (*tsm_vte_write_cb) (struct tsm_vte *vte,
|
||||
|
@ -256,6 +256,7 @@ void uterm_video_poll(struct uterm_video *video);
|
||||
|
||||
struct uterm_input;
|
||||
|
||||
/* keep in sync with tsm_vte_modified */
|
||||
enum uterm_input_modifier {
|
||||
UTERM_SHIFT_MASK = (1 << 0),
|
||||
UTERM_LOCK_MASK = (1 << 1),
|
||||
|
Loading…
x
Reference in New Issue
Block a user