From 70bc5ea0927f7098b125eac166d23d1dea7d35ea Mon Sep 17 00:00:00 2001
From: Koichiro IWAO
Date: Sun, 13 Nov 2022 02:25:51 +0900
Subject: [PATCH 1/2] vnc: Constify existing use of magic numbers
---
vnc/vnc.c | 32 ++++++++++++++++----------------
1 file changed, 16 insertions(+), 16 deletions(-)
diff --git a/vnc/vnc.c b/vnc/vnc.c
index bdf7008f..ff008ca6 100644
--- a/vnc/vnc.c
+++ b/vnc/vnc.c
@@ -551,36 +551,36 @@ lib_mod_event(struct vnc *v, int msg, long param1, long param2,
{
switch (msg)
{
- case 100:
- break; /* WM_MOUSEMOVE */
- case 101:
+ case WM_MOUSEMOVE:
+ break;
+ case WM_LBUTTONUP:
v->mod_mouse_state &= ~1;
- break; /* WM_LBUTTONUP */
- case 102:
+ break;
+ case WM_LBUTTONDOWN:
v->mod_mouse_state |= 1;
- break; /* WM_LBUTTONDOWN */
- case 103:
+ break;
+ case WM_RBUTTONUP:
v->mod_mouse_state &= ~4;
- break; /* WM_RBUTTONUP */
- case 104:
+ break;
+ case WM_RBUTTONDOWN:
v->mod_mouse_state |= 4;
- break; /* WM_RBUTTONDOWN */
- case 105:
+ break;
+ case WM_BUTTON3UP:
v->mod_mouse_state &= ~2;
break;
- case 106:
+ case WM_BUTTON3DOWN:
v->mod_mouse_state |= 2;
break;
- case 107:
+ case WM_BUTTON4UP:
v->mod_mouse_state &= ~8;
break;
- case 108:
+ case WM_BUTTON4DOWN:
v->mod_mouse_state |= 8;
break;
- case 109:
+ case WM_BUTTON5UP:
v->mod_mouse_state &= ~16;
break;
- case 110:
+ case WM_BUTTON5DOWN:
v->mod_mouse_state |= 16;
break;
}
From 2b0c903afeb7b175062306288cc15ba8947c5d04 Mon Sep 17 00:00:00 2001
From: Koichiro IWAO
Date: Sun, 13 Nov 2022 02:50:00 +0900
Subject: [PATCH 2/2] vnc: add mouse button 6, 7, 8 support
---
vnc/vnc.c | 25 ++++++++++++++++++++++++-
1 file changed, 24 insertions(+), 1 deletion(-)
diff --git a/vnc/vnc.c b/vnc/vnc.c
index ff008ca6..e6b84ace 100644
--- a/vnc/vnc.c
+++ b/vnc/vnc.c
@@ -547,7 +547,12 @@ lib_mod_event(struct vnc *v, int msg, long param1, long param2,
}
}
}
- else if (msg >= 100 && msg <= 110) /* mouse events */
+ /* mouse events
+ *
+ * VNC supports up to 8 mouse buttons because mouse buttons are
+ * represented by 7 bits bitmask
+ */
+ else if (msg >= WM_MOUSEMOVE && msg <= WM_BUTTON8DOWN) /* 100 to 116 */
{
switch (msg)
{
@@ -583,6 +588,24 @@ lib_mod_event(struct vnc *v, int msg, long param1, long param2,
case WM_BUTTON5DOWN:
v->mod_mouse_state |= 16;
break;
+ case WM_BUTTON6UP:
+ v->mod_mouse_state &= ~32;
+ break;
+ case WM_BUTTON6DOWN:
+ v->mod_mouse_state |= 32;
+ break;
+ case WM_BUTTON7UP:
+ v->mod_mouse_state &= ~64;
+ break;
+ case WM_BUTTON7DOWN:
+ v->mod_mouse_state |= 64;
+ break;
+ case WM_BUTTON8UP:
+ v->mod_mouse_state &= ~128;
+ break;
+ case WM_BUTTON8DOWN:
+ v->mod_mouse_state |= 128;
+ break;
}
init_stream(s, 8192);