1
0
mirror of https://github.com/Interlisp/maiko.git synced 2026-01-17 00:22:59 +00:00

Ignore mouse motion events when the window does not have keyboard focus (#509)

This commit is contained in:
Nick Briggs 2024-08-21 20:59:37 -07:00 committed by GitHub
parent 3ef7d2d68e
commit 5c9b5ef4ec
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -46,7 +46,7 @@ static Uint32 sdl_foreground;
static Uint32 sdl_background;
static int sdl_bytesperpixel;
static SDL_PixelFormat *sdl_pixelformat;
static int sdl_window_focusp = 0;
extern void kb_trans(u_short keycode, u_short upflg);
extern int error(const char *s);
@ -625,6 +625,14 @@ void process_SDLevents() {
sdl_windowheight = event.window.data2;
sdl_update_viewport(sdl_windowwidth, sdl_windowheight);
break;
case SDL_WINDOWEVENT_FOCUS_GAINED:
sdl_window_focusp = 1;
break;
case SDL_WINDOWEVENT_FOCUS_LOST:
sdl_window_focusp = 0;
break;
default:
break;
}
break;
#else
@ -634,6 +642,12 @@ void process_SDLevents() {
sdl_windowheight = event.window.data2;
sdl_update_viewport(sdl_windowwidth, sdl_windowheight);
break;
case SDL_EVENT_WINDOW_FOCUS_GAINED:
sdl_window_focusp = 1;
break;
case SDL_EVENT_WINDOW_FOCUS_LOST:
sdl_window_focusp = 0;
break;
#endif
#if SDL_MAJOR_VERSION == 2
case SDL_KEYDOWN:
@ -673,6 +687,7 @@ void process_SDLevents() {
int ix, iy;
float x, y;
#endif
if (!sdl_window_focusp) break;
SDL_GetMouseState(&x, &y);
x /= sdl_pixelscale;
y /= sdl_pixelscale;