From d22ab8c1df33cb477847036755c7cace3d746741 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Deuc=D0=B5?= <shurd@sasktel.net> Date: Mon, 28 Oct 2024 12:55:32 -0400 Subject: [PATCH] Make ALT-O mouse control toggle work in RIP mode --- src/syncterm/CHANGES | 7 ++++++- src/syncterm/ripper.c | 3 ++- src/syncterm/term.c | 19 ------------------- src/syncterm/term.h | 19 +++++++++++++++++++ 4 files changed, 27 insertions(+), 21 deletions(-) diff --git a/src/syncterm/CHANGES b/src/syncterm/CHANGES index 24e81726d9..faf742d7a0 100644 --- a/src/syncterm/CHANGES +++ b/src/syncterm/CHANGES @@ -1,3 +1,9 @@ +Version 1.2rc5 +-------------- +Fix RIP parsing when passed fragmented ANSI sequences +Fix cursor when RIP changes font height +Fix Alt-O in RIP mode + Version 1.2rc4 -------------- Fix pointy scaling to work even when interpolating both directions @@ -9,7 +15,6 @@ Fix telnets (broken when sftp support was added) Update ANSI and win32 console support Fix bug with window resizing calculations New icons thanks to zuMi! -Fix RIP parsing when passed fragmented ANSI sequences Version 1.2rc3 -------------- diff --git a/src/syncterm/ripper.c b/src/syncterm/ripper.c index 28a3f88500..19a9ac0079 100644 --- a/src/syncterm/ripper.c +++ b/src/syncterm/ripper.c @@ -16241,6 +16241,7 @@ rip_getch(void) } return ch; } + struct mouse_state *ms = cterm->mouse_state_change_cbdata; gotoxy(wherex(), wherey()); ch = getch(); @@ -16251,7 +16252,7 @@ rip_getch(void) } shadow_palette(); - if (ch == CIO_KEY_MOUSE) { + if (ch == CIO_KEY_MOUSE && (!(ms->flags & MS_FLAGS_DISABLED))) { ch = -1; getmouse(&mevent); mevent.startx_res = unmap_rip_x(mevent.startx_res); diff --git a/src/syncterm/term.c b/src/syncterm/term.c index 67b39b995f..d5ab686fff 100644 --- a/src/syncterm/term.c +++ b/src/syncterm/term.c @@ -102,25 +102,6 @@ get_cterm_size(int *cols, int *rows, int ns) } } -enum mouse_modes { - MM_OFF, - MM_RIP = 1, - MM_X10 = 9, - MM_NORMAL_TRACKING = 1000, - MM_HIGHLIGHT_TRACKING = 1001, - MM_BUTTON_EVENT_TRACKING = 1002, - MM_ANY_EVENT_TRACKING = 1003 -}; - -struct mouse_state { - uint32_t flags; - -#define MS_FLAGS_SGR (1 << 0) -#define MS_FLAGS_DISABLED (1 << 1) -#define MS_SGR_SET (1006) - enum mouse_modes mode; -}; - void setup_mouse_events(struct mouse_state *ms) { diff --git a/src/syncterm/term.h b/src/syncterm/term.h index 3074867cc8..42736162bc 100644 --- a/src/syncterm/term.h +++ b/src/syncterm/term.h @@ -18,6 +18,25 @@ struct terminal { int nostatus; }; +enum mouse_modes { + MM_OFF, + MM_RIP = 1, + MM_X10 = 9, + MM_NORMAL_TRACKING = 1000, + MM_HIGHLIGHT_TRACKING = 1001, + MM_BUTTON_EVENT_TRACKING = 1002, + MM_ANY_EVENT_TRACKING = 1003 +}; + +struct mouse_state { + uint32_t flags; + +#define MS_FLAGS_SGR (1 << 0) +#define MS_FLAGS_DISABLED (1 << 1) +#define MS_SGR_SET (1006) + enum mouse_modes mode; +}; + #define XMODEM_128B (1 << 10) /* Use 128 byte block size (ick!) */ extern struct terminal term; -- GitLab