From 27a1d36b1b406f2e5f7e9d42b069c7f5099e54bb Mon Sep 17 00:00:00 2001
From: deuce <>
Date: Mon, 6 Apr 2020 18:40:44 +0000
Subject: [PATCH] Allow setting callback data for mouse state change callback.

---
 src/conio/cterm.c | 4 ++--
 src/conio/cterm.h | 3 ++-
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/conio/cterm.c b/src/conio/cterm.c
index 3fffba2d2e..c739f1549a 100644
--- a/src/conio/cterm.c
+++ b/src/conio/cterm.c
@@ -1816,7 +1816,7 @@ static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int *
 									case 1007:
 									case 1015:
 										if (cterm->mouse_state_change)
-											cterm->mouse_state_change(seq->param_int[i], 1);
+											cterm->mouse_state_change(seq->param_int[i], 1, cterm->mouse_state_change_cbdata);
 										break;
 								}
 							}
@@ -1888,7 +1888,7 @@ static void do_ansi(struct cterminal *cterm, char *retbuf, size_t retsize, int *
 									case 1007:
 									case 1015:
 										if (cterm->mouse_state_change)
-											cterm->mouse_state_change(seq->param_int[i], 0);
+											cterm->mouse_state_change(seq->param_int[i], 0, cterm->mouse_state_change_cbdata);
 										break;
 								}
 							}
diff --git a/src/conio/cterm.h b/src/conio/cterm.h
index 815b14909f..8bd078d9b3 100644
--- a/src/conio/cterm.h
+++ b/src/conio/cterm.h
@@ -179,7 +179,8 @@ struct cterminal {
 	void				*apc_handler_data;
 
 	/* Mouse state change callback */
-	void (*mouse_state_change)(int parameter, int enable);
+	void (*mouse_state_change)(int parameter, int enable, void *cbdata);
+	void *mouse_state_change_cbdata;
 
 	/* conio function pointers */
 #ifdef CTERM_WITHOUT_CONIO
-- 
GitLab