sdl2: Use correct sdl2_console for window events
SDL_PollEvent() polls events for all windows; therefore, sdl2_poll_events() will poll the events for all windows and not only for the one identified by the given sdl2_console. This should be considered in handle_windowevent(): The window affected by the event is not necessarily the one identified by the sdl2_console object given to sdl2_poll_events(), but the one identified by ev->window.windowID. Signed-off-by: Max Reitz <mreitz@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
62959ffe45
commit
1dfc5c8808
|
@ -507,8 +507,10 @@ static void handle_mousewheel(SDL_Event *ev)
|
||||||
qemu_input_event_sync();
|
qemu_input_event_sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void handle_windowevent(struct sdl2_console *scon, SDL_Event *ev)
|
static void handle_windowevent(SDL_Event *ev)
|
||||||
{
|
{
|
||||||
|
struct sdl2_console *scon = get_scon_from_window(ev->window.windowID);
|
||||||
|
|
||||||
switch (ev->window.event) {
|
switch (ev->window.event) {
|
||||||
case SDL_WINDOWEVENT_RESIZED:
|
case SDL_WINDOWEVENT_RESIZED:
|
||||||
{
|
{
|
||||||
|
@ -586,7 +588,7 @@ void sdl2_poll_events(struct sdl2_console *scon)
|
||||||
handle_mousewheel(ev);
|
handle_mousewheel(ev);
|
||||||
break;
|
break;
|
||||||
case SDL_WINDOWEVENT:
|
case SDL_WINDOWEVENT:
|
||||||
handle_windowevent(scon, ev);
|
handle_windowevent(ev);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue