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();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
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;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue