From: Keir Fraser Date: Fri, 2 May 2008 12:47:46 +0000 (+0100) Subject: ioemu: pump SDL events on resize X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~14215^2~82 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=b9e99fa85ded716ae54376b3c5f6f78e1a353f03;p=xen.git ioemu: pump SDL events on resize When sdl_resize resizes the SDL window, some window manager send back a ConfigureNotify event, which triggers a SDL_VIDEORESIZE event. That event, however, is seen only much later, on the next VGA refresh round. If the guest quickly switches to another resolution in between, the SDL_VIDEORESIZE event makes us erroneously rescale that new resolution into the old one. This patch makes us pump that window manager event, so that no SDL_VIDEORESIZE event is generated. Signed-off-by: Samuel Thibault --- diff --git a/tools/ioemu/sdl.c b/tools/ioemu/sdl.c index 536e9f480f..c70c3cb7ad 100644 --- a/tools/ioemu/sdl.c +++ b/tools/ioemu/sdl.c @@ -235,6 +235,9 @@ static void sdl_resize(DisplayState *ds, int w, int h, int linesize) again: screen = SDL_SetVideoMode(w, h, 0, flags); + /* Process any WM-generated resize event */ + SDL_PumpEvents(); + if (!screen) { fprintf(stderr, "Could not open SDL display: %s\n", SDL_GetError()); if (opengl_enabled) {