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:
parent
3ef7d2d68e
commit
5c9b5ef4ec
17
src/sdl.c
17
src/sdl.c
@ -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;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user