1
0
mirror of https://github.com/Interlisp/maiko.git synced 2026-02-15 04:06:19 +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

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;