History

terminal: add terminal_set_mouse_input function

This function is used to enable/disable mouse input for win32 and unix.

nanahi committed 2 years ago

Commit c2ed2e71 parent abc0b0e6 files · +19 −6Browse files

Unified · Split

6 files
  1. osdep/terminal-unix.c +6 −0
  2. osdep/terminal-win.c +4 −0
  3. osdep/terminal.h +3 −0
  4. video/out/vo_kitty.c +2 −2
  5. video/out/vo_sixel.c +2 −2
  6. video/out/vo_tct.c +2 −2
osdep/terminal-unix.c+6−0
@@ -588,6 +588,12 @@ void terminal_get_size2(int *rows, int *cols, int *px_width, int *px_height) · 587 unmodified lines
588588 *px_height = ws.ws_ypixel;
589589 }
590590
591+void terminal_set_mouse_input(bool enable)
592+{
593+ printf(enable ? TERM_ESC_ENABLE_MOUSE : TERM_ESC_DISABLE_MOUSE);
594+ fflush(stdout);
595+}
596+
591597 void terminal_init(void)
592598 {
593599 assert(!getch2_enabled);
osdep/terminal-win.c+4−0
@@ -556,6 +556,10 @@ bool terminal_try_attach(void) · 555 unmodified lines
556556 return true;
557557 }
558558
559+void terminal_set_mouse_input(bool enable)
560+{
561+}
562+
559563 void terminal_init(void)
560564 {
561565 CONSOLE_SCREEN_BUFFER_INFO cinfo;
osdep/terminal.h+3−0
@@ -58,6 +58,9 @@ void terminal_get_size(int *w, int *h); · 57 unmodified lines
5858 /* Get terminal-size in columns/rows and width/height in pixels. */
5959 void terminal_get_size2(int *rows, int *cols, int *px_width, int *px_height);
6060
61+/* Enable/Disable mouse input. */
62+void terminal_set_mouse_input(bool enable);
63+
6164 // Windows only.
6265 int mp_console_vfprintf(void *wstream, const char *format, va_list args);
6366 int mp_console_write(void *wstream, bstr str);
video/out/vo_kitty.c+2−2
@@ -362,7 +362,7 @@ static int preinit(struct vo *vo) · 361 unmodified lines
362362 #endif
363363
364364 write_str(TERM_ESC_HIDE_CURSOR);
365− write_str(TERM_ESC_ENABLE_MOUSE);
365+ terminal_set_mouse_input(true);
366366 if (p->opts.alt_screen)
367367 write_str(TERM_ESC_ALT_SCREEN);
368368
@@ -390,7 +390,7 @@ static void uninit(struct vo *vo) · 21 unmodified lines
390390 #endif
391391
392392 write_str(TERM_ESC_RESTORE_CURSOR);
393− write_str(TERM_ESC_DISABLE_MOUSE);
393+ terminal_set_mouse_input(false);
394394
395395 if (p->opts.alt_screen) {
396396 write_str(TERM_ESC_NORMAL_SCREEN);
video/out/vo_sixel.c+2−2
@@ -520,7 +520,7 @@ static int preinit(struct vo *vo) · 519 unmodified lines
520520 sixel_strwrite(TERM_ESC_ALT_SCREEN);
521521
522522 sixel_strwrite(TERM_ESC_HIDE_CURSOR);
523− sixel_strwrite(TERM_ESC_ENABLE_MOUSE);
523+ terminal_set_mouse_input(true);
524524
525525 /* don't use private color registers for each frame. */
526526 sixel_strwrite(TERM_ESC_USE_GLOBAL_COLOR_REG);
@@ -560,7 +560,7 @@ static void uninit(struct vo *vo) · 33 unmodified lines
560560 struct priv *priv = vo->priv;
561561
562562 sixel_strwrite(TERM_ESC_RESTORE_CURSOR);
563− sixel_strwrite(TERM_ESC_DISABLE_MOUSE);
563+ terminal_set_mouse_input(false);
564564
565565 if (priv->opts.alt_screen)
566566 sixel_strwrite(TERM_ESC_NORMAL_SCREEN);
video/out/vo_tct.c+2−2
@@ -299,7 +299,7 @@ static void flip_page(struct vo *vo) · 298 unmodified lines
299299 static void uninit(struct vo *vo)
300300 {
301301 WRITE_STR(TERM_ESC_RESTORE_CURSOR);
302− WRITE_STR(TERM_ESC_DISABLE_MOUSE);
302+ terminal_set_mouse_input(false);
303303 WRITE_STR(TERM_ESC_NORMAL_SCREEN);
304304 struct priv *p = vo->priv;
305305 talloc_free(p->frame);
@@ -329,7 +329,7 @@ static int preinit(struct vo *vo) · 23 unmodified lines
329329 }
330330
331331 WRITE_STR(TERM_ESC_HIDE_CURSOR);
332− WRITE_STR(TERM_ESC_ENABLE_MOUSE);
332+ terminal_set_mouse_input(true);
333333 WRITE_STR(TERM_ESC_ALT_SCREEN);
334334
335335 return 0;

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t