From 3570a106e0570d7f064bb723d94d6744f65bf6fb Mon Sep 17 00:00:00 2001 From: deuce <> Date: Sat, 11 Sep 2004 00:09:05 +0000 Subject: [PATCH] More old mouse stuff... fix variable bug. --- src/conio/mouse.c | 1 - src/conio/win32cio.c | 45 ++++++++++++++++---------------------------- 2 files changed, 16 insertions(+), 30 deletions(-) diff --git a/src/conio/mouse.c b/src/conio/mouse.c index 4f8ad0e7f6..95871f2ea4 100644 --- a/src/conio/mouse.c +++ b/src/conio/mouse.c @@ -143,7 +143,6 @@ void add_outevent(int event, int x, int y) void ciolib_mouse_thread(void *data) { - struct timespec timeout; struct in_mouse_event *old_in_event; int timedout; int timeout_button=0; diff --git a/src/conio/win32cio.c b/src/conio/win32cio.c index e1bcb024ef..8dfa299e87 100644 --- a/src/conio/win32cio.c +++ b/src/conio/win32cio.c @@ -25,11 +25,9 @@ const struct vid_mode vid_modes[VID_MODES]={ ,{C80X50,80,50,1} }; -static struct cio_mouse_event cio_last_button_press; -static struct cio_mouse_event last_mouse_click; - static int lastch=0; static int domouse=0; +static DWORD last_state=0; static int xpos=1; static int ypos=1; @@ -84,7 +82,6 @@ unsigned char WintoDOSAttr(WORD newattr) int win32_kbhit(void) { - static DWORD last_state=0; INPUT_RECORD input; DWORD num=0; @@ -99,27 +96,27 @@ int win32_kbhit(void) if(domouse) { if(input.EventType==MOUSE_EVENT) { if(input.Event.MouseEvent.dwEventFlags==MOUSE_MOVED) { - ciomouse_gotevent(CIOLIB_MOUSE_MOVE,dwMousePosition.X+1,dwMousePosition.Y+1); + ciomouse_gotevent(CIOLIB_MOUSE_MOVE,input.Event.MouseEvent.dwMousePosition.X+1,input.Event.MouseEvent.dwMousePosition.Y+1); } if(!input.Event.MouseEvent.dwEventFlags) { switch(input.Event.MouseEvent.dwButtonState ^ last_state) { case FROM_LEFT_1ST_BUTTON_PRESSED: if(input.Event.MouseEvent.dwButtonState & FROM_LEFT_1ST_BUTTON_PRESSED) - ciomouse_gotevent(CIOLIB_BUTTON_1_PRESS,dwMousePosition.X+1,dwMousePosition.Y+1); + ciomouse_gotevent(CIOLIB_BUTTON_1_PRESS,input.Event.MouseEvent.dwMousePosition.X+1,input.Event.MouseEvent.dwMousePosition.Y+1); else - ciomouse_gotevent(CIOLIB_BUTTON_1_RELEASE,dwMousePosition.X+1,dwMousePosition.Y+1); + ciomouse_gotevent(CIOLIB_BUTTON_1_RELEASE,input.Event.MouseEvent.dwMousePosition.X+1,input.Event.MouseEvent.dwMousePosition.Y+1); break; case FROM_LEFT_2ND_BUTTON_PRESSED: if(input.Event.MouseEvent.dwButtonState & FROM_LEFT_2ND_BUTTON_PRESSED) - ciomouse_gotevent(CIOLIB_BUTTON_2_PRESS,dwMousePosition.X+1,dwMousePosition.Y+1); + ciomouse_gotevent(CIOLIB_BUTTON_2_PRESS,input.Event.MouseEvent.dwMousePosition.X+1,input.Event.MouseEvent.dwMousePosition.Y+1); else - ciomouse_gotevent(CIOLIB_BUTTON_2_RELEASE,dwMousePosition.X+1,dwMousePosition.Y+1); + ciomouse_gotevent(CIOLIB_BUTTON_2_RELEASE,input.Event.MouseEvent.dwMousePosition.X+1,input.Event.MouseEvent.dwMousePosition.Y+1); break; case RIGHTMOST_BUTTON_PRESSED: if(input.Event.MouseEvent.dwButtonState & RIGHTMOST_BUTTON_PRESSED) - ciomouse_gotevent(CIOLIB_BUTTON_3_PRESS,dwMousePosition.X+1,dwMousePosition.Y+1); + ciomouse_gotevent(CIOLIB_BUTTON_3_PRESS,input.Event.MouseEvent.dwMousePosition.X+1,input.Event.MouseEvent.dwMousePosition.Y+1); else - ciomouse_gotevent(CIOLIB_BUTTON_3_RELEASE,dwMousePosition.X+1,dwMousePosition.Y+1); + ciomouse_gotevent(CIOLIB_BUTTON_3_RELEASE,input.Event.MouseEvent.dwMousePosition.X+1,input.Event.MouseEvent.dwMousePosition.Y+1); break; } last_state=input.Event.MouseEvent.dwButtonState; @@ -149,7 +146,7 @@ int win32_getch(void) lastch>>=8; return(ch); } - if(mousepending()) + if(mouse_pending()) lastch=CIO_KEY_MOUSE; if(!ReadConsoleInput(GetStdHandle(STD_INPUT_HANDLE), &input, 1, &num) || !num || (input.EventType!=KEY_EVENT && input.EventType!=MOUSE_EVENT)) @@ -183,27 +180,27 @@ int win32_getch(void) if(domouse) { if(input.EventType==MOUSE_EVENT) { if(input.Event.MouseEvent.dwEventFlags==MOUSE_MOVED) { - ciomouse_gotevent(CIOLIB_MOUSE_MOVE,dwMousePosition.X+1,dwMousePosition.Y+1); + ciomouse_gotevent(CIOLIB_MOUSE_MOVE,input.Event.MouseEvent.dwMousePosition.X+1,input.Event.MouseEvent.dwMousePosition.Y+1); } if(!input.Event.MouseEvent.dwEventFlags) { switch(input.Event.MouseEvent.dwButtonState ^ last_state) { case FROM_LEFT_1ST_BUTTON_PRESSED: if(input.Event.MouseEvent.dwButtonState & FROM_LEFT_1ST_BUTTON_PRESSED) - ciomouse_gotevent(CIOLIB_BUTTON_1_PRESS,dwMousePosition.X+1,dwMousePosition.Y+1); + ciomouse_gotevent(CIOLIB_BUTTON_1_PRESS,input.Event.MouseEvent.dwMousePosition.X+1,input.Event.MouseEvent.dwMousePosition.Y+1); else - ciomouse_gotevent(CIOLIB_BUTTON_1_RELEASE,dwMousePosition.X+1,dwMousePosition.Y+1); + ciomouse_gotevent(CIOLIB_BUTTON_1_RELEASE,input.Event.MouseEvent.dwMousePosition.X+1,input.Event.MouseEvent.dwMousePosition.Y+1); break; case FROM_LEFT_2ND_BUTTON_PRESSED: if(input.Event.MouseEvent.dwButtonState & FROM_LEFT_2ND_BUTTON_PRESSED) - ciomouse_gotevent(CIOLIB_BUTTON_2_PRESS,dwMousePosition.X+1,dwMousePosition.Y+1); + ciomouse_gotevent(CIOLIB_BUTTON_2_PRESS,input.Event.MouseEvent.dwMousePosition.X+1,input.Event.MouseEvent.dwMousePosition.Y+1); else - ciomouse_gotevent(CIOLIB_BUTTON_2_RELEASE,dwMousePosition.X+1,dwMousePosition.Y+1); + ciomouse_gotevent(CIOLIB_BUTTON_2_RELEASE,input.Event.MouseEvent.dwMousePosition.X+1,input.Event.MouseEvent.dwMousePosition.Y+1); break; case RIGHTMOST_BUTTON_PRESSED: if(input.Event.MouseEvent.dwButtonState & RIGHTMOST_BUTTON_PRESSED) - ciomouse_gotevent(CIOLIB_BUTTON_3_PRESS,dwMousePosition.X+1,dwMousePosition.Y+1); + ciomouse_gotevent(CIOLIB_BUTTON_3_PRESS,input.Event.MouseEvent.dwMousePosition.X+1,input.Event.MouseEvent.dwMousePosition.Y+1); else - ciomouse_gotevent(CIOLIB_BUTTON_3_RELEASE,dwMousePosition.X+1,dwMousePosition.Y+1); + ciomouse_gotevent(CIOLIB_BUTTON_3_RELEASE,input.Event.MouseEvent.dwMousePosition.X+1,input.Event.MouseEvent.dwMousePosition.Y+1); break; } last_state=input.Event.MouseEvent.dwButtonState; @@ -212,8 +209,6 @@ int win32_getch(void) } } } - - return(0); } int win32_getche(void) @@ -240,17 +235,9 @@ int win32_initciolib(long inmode) if(!SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), conmode)) return(0); cio_api.mouse=1; - memset(&cio_last_button_press,0,sizeof(cio_last_button_press)); - memset(&last_mouse_click,0,sizeof(last_mouse_click)); return(1); } -int win32_getmouse(struct cio_mouse_event *mevent) -{ - memcpy(mevent,&last_mouse_click,sizeof(last_mouse_click)); - return(0); -} - int win32_hidemouse(void) { domouse=0; -- GitLab