diff options
author | Max Reitz <mreitz@redhat.com> | 2014-12-12 10:52:51 +0100 |
---|---|---|
committer | Gerd Hoffmann <kraxel@redhat.com> | 2014-12-17 12:44:01 +0100 |
commit | 1dfc5c8808e8b523c8ef70859921ab5ecd09cd67 (patch) | |
tree | 407a11193cf2f9ec4ac51cb3654aa1d5585120c3 /ui | |
parent | 62959ffe45bdd7bb069e529686a8c152518812fc (diff) |
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>
Diffstat (limited to 'ui')
-rw-r--r-- | ui/sdl2.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -507,8 +507,10 @@ static void handle_mousewheel(SDL_Event *ev) 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) { case SDL_WINDOWEVENT_RESIZED: { @@ -586,7 +588,7 @@ void sdl2_poll_events(struct sdl2_console *scon) handle_mousewheel(ev); break; case SDL_WINDOWEVENT: - handle_windowevent(scon, ev); + handle_windowevent(ev); break; default: break; |