Attempt to get the X1 and X2 button state on X11 by using the current event state instead of direct X11 query.

This commit is contained in:
Sam Lantinga 2022-05-19 00:35:22 -07:00
parent 57130b75a9
commit c7dff3a22e
1 changed files with 2 additions and 0 deletions

View File

@ -406,6 +406,8 @@ X11_GetGlobalMouseState(int *x, int *y)
buttons |= (mask & Button1Mask) ? SDL_BUTTON_LMASK : 0; buttons |= (mask & Button1Mask) ? SDL_BUTTON_LMASK : 0;
buttons |= (mask & Button2Mask) ? SDL_BUTTON_MMASK : 0; buttons |= (mask & Button2Mask) ? SDL_BUTTON_MMASK : 0;
buttons |= (mask & Button3Mask) ? SDL_BUTTON_RMASK : 0; buttons |= (mask & Button3Mask) ? SDL_BUTTON_RMASK : 0;
/* Use the SDL state for the extended buttons - it's better than nothing */
buttons |= (SDL_GetMouseState(NULL, NULL) & (SDL_BUTTON_X1MASK|SDL_BUTTON_X2MASK));
/* SDL_DisplayData->x,y point to screen origin, and adding them to mouse coordinates relative to root window doesn't do the right thing /* SDL_DisplayData->x,y point to screen origin, and adding them to mouse coordinates relative to root window doesn't do the right thing
* (observed on dual monitor setup with primary display being the rightmost one - mouse was offset to the right). * (observed on dual monitor setup with primary display being the rightmost one - mouse was offset to the right).
* *