From 692a7bb01711a64f4302a6f3fe53565093c57e6f Mon Sep 17 00:00:00 2001 From: Emmanuel Mathi-Amorim Date: Tue, 12 May 2020 11:50:09 -0400 Subject: [PATCH] WINCON: Send real mouse position with scroll event Previously PDCurses would send (X,Y) coordinates (-1,-1) when processing a scroll event. Bring the behavior inline with ncurses and send the actual mouse position. --- wincon/pdckbd.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/wincon/pdckbd.c b/wincon/pdckbd.c index d2c3ab69..bf2464f0 100644 --- a/wincon/pdckbd.c +++ b/wincon/pdckbd.c @@ -439,6 +439,9 @@ static int _process_mouse_event(void) memset(&SP->mouse_status, 0, sizeof(MOUSE_STATUS)); + SP->mouse_status.x = MEV.dwMousePosition.X; + SP->mouse_status.y = MEV.dwMousePosition.Y; + /* Handle scroll wheel */ if (MEV.dwEventFlags == 4) @@ -446,9 +449,6 @@ static int _process_mouse_event(void) SP->mouse_status.changes = (MEV.dwButtonState & 0xFF000000) ? PDC_MOUSE_WHEEL_DOWN : PDC_MOUSE_WHEEL_UP; - SP->mouse_status.x = -1; - SP->mouse_status.y = -1; - memset(&old_mouse_status, 0, sizeof(old_mouse_status)); return KEY_MOUSE; @@ -459,9 +459,6 @@ static int _process_mouse_event(void) SP->mouse_status.changes = (MEV.dwButtonState & 0xFF000000) ? PDC_MOUSE_WHEEL_RIGHT : PDC_MOUSE_WHEEL_LEFT; - SP->mouse_status.x = -1; - SP->mouse_status.y = -1; - memset(&old_mouse_status, 0, sizeof(old_mouse_status)); return KEY_MOUSE; @@ -510,9 +507,6 @@ static int _process_mouse_event(void) } } - SP->mouse_status.x = MEV.dwMousePosition.X; - SP->mouse_status.y = MEV.dwMousePosition.Y; - SP->mouse_status.changes = 0; for (i = 0; i < 3; i++)