diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2016-12-21 01:38:05 +0100 |
---|---|---|
committer | Gerd Hoffmann <kraxel@redhat.com> | 2017-01-10 08:14:20 +0100 |
commit | f29b3431f6294168e5f8fc63edb91c15c6a08e41 (patch) | |
tree | 2d271f99511c902f501608b3eb1cc70be5fa08f5 /ui/sdl.c | |
parent | b3cb21b9b5ece1756a4796e2f2e3d275bf110002 (diff) |
console: move window ID code from baum to sdl
This moves the SDL bits for window ID from the baum driver to SDL, as
well as fixing the build for non-X11.
Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Message-id: 20161221003806.22412-3-samuel.thibault@ens-lyon.org
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'ui/sdl.c')
-rw-r--r-- | ui/sdl.c | 25 |
1 files changed, 25 insertions, 0 deletions
@@ -947,6 +947,7 @@ void sdl_display_init(DisplayState *ds, int full_screen, int no_frame) int flags; uint8_t data = 0; const SDL_VideoInfo *vi; + SDL_SysWMinfo info; char *filename; #if defined(__APPLE__) @@ -1023,5 +1024,29 @@ void sdl_display_init(DisplayState *ds, int full_screen, int no_frame) sdl_cursor_hidden = SDL_CreateCursor(&data, &data, 8, 1, 0, 0); sdl_cursor_normal = SDL_GetCursor(); + memset(&info, 0, sizeof(info)); + SDL_VERSION(&info.version); + if (SDL_GetWMInfo(&info)) { + int i; + for (i = 0; ; i++) { + /* All consoles share the same window */ + QemuConsole *con = qemu_console_lookup_by_index(i); + if (con) { +#if defined(SDL_VIDEO_DRIVER_X11) + qemu_console_set_window_id(con, info.info.x11.wmwindow); +#elif defined(SDL_VIDEO_DRIVER_NANOX) || \ + defined(SDL_VIDEO_DRIVER_WINDIB) || defined(SDL_VIDEO_DRIVER_DDRAW) || \ + defined(SDL_VIDEO_DRIVER_GAPI) || \ + defined(SDL_VIDEO_DRIVER_RISCOS) + qemu_console_set_window_id(con, (int) (uintptr_t) info.window); +#else + qemu_console_set_window_id(con, info.data); +#endif + } else { + break; + } + } + } + atexit(sdl_cleanup); } |