[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 05/11] console: move window ID code from baum to sdl
From: |
Gerd Hoffmann |
Subject: |
[Qemu-devel] [PULL 05/11] console: move window ID code from baum to sdl |
Date: |
Wed, 4 Jan 2017 12:21:17 +0100 |
From: Samuel Thibault <address@hidden>
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 <address@hidden>
Message-id: address@hidden
Signed-off-by: Gerd Hoffmann <address@hidden>
---
backends/baum.c | 31 ++++++++-----------------------
ui/sdl.c | 25 +++++++++++++++++++++++++
2 files changed, 33 insertions(+), 23 deletions(-)
diff --git a/backends/baum.c b/backends/baum.c
index b92369d..b045ef4 100644
--- a/backends/baum.c
+++ b/backends/baum.c
@@ -27,12 +27,10 @@
#include "sysemu/char.h"
#include "qemu/timer.h"
#include "hw/usb.h"
+#include "ui/console.h"
#include <brlapi.h>
#include <brlapi_constants.h>
#include <brlapi_keycodes.h>
-#ifdef CONFIG_SDL
-#include <SDL_syswm.h>
-#endif
#if 0
#define DPRINTF(fmt, ...) \
@@ -227,12 +225,8 @@ static const uint8_t nabcc_translation[2][256] = {
/* The guest OS has started discussing with us, finish initializing BrlAPI */
static int baum_deferred_init(BaumDriverState *baum)
{
-#if defined(CONFIG_SDL)
-#if SDL_COMPILEDVERSION < SDL_VERSIONNUM(2, 0, 0)
- SDL_SysWMinfo info;
-#endif
-#endif
- int tty;
+ int tty = BRLAPI_TTY_DEFAULT;
+ QemuConsole *con;
if (baum->deferred_init) {
return 1;
@@ -243,21 +237,12 @@ static int baum_deferred_init(BaumDriverState *baum)
return 0;
}
-#if defined(CONFIG_SDL)
-#if SDL_COMPILEDVERSION < SDL_VERSIONNUM(2, 0, 0)
- memset(&info, 0, sizeof(info));
- SDL_VERSION(&info.version);
- if (SDL_GetWMInfo(&info)) {
- tty = info.info.x11.wmwindow;
- } else {
-#endif
-#endif
- tty = BRLAPI_TTY_DEFAULT;
-#if defined(CONFIG_SDL)
-#if SDL_COMPILEDVERSION < SDL_VERSIONNUM(2, 0, 0)
+ con = qemu_console_lookup_by_index(0);
+ if (con && qemu_console_is_graphic(con)) {
+ tty = qemu_console_get_window_id(con);
+ if (tty == -1)
+ tty = BRLAPI_TTY_DEFAULT;
}
-#endif
-#endif
if (brlapi__enterTtyMode(baum->brlapi, tty, NULL) == -1) {
brlapi_perror("baum: brlapi__enterTtyMode");
diff --git a/ui/sdl.c b/ui/sdl.c
index d8cf5bc..19e8a84 100644
--- a/ui/sdl.c
+++ b/ui/sdl.c
@@ -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);
}
--
1.8.3.1
- [Qemu-devel] [PULL 00/11] ui patch queue, Gerd Hoffmann, 2017/01/04
- [Qemu-devel] [PULL 01/11] ui/gtk: fix crash at startup when no console is available, Gerd Hoffmann, 2017/01/04
- [Qemu-devel] [PULL 04/11] console: add API to get underlying gui window ID, Gerd Hoffmann, 2017/01/04
- [Qemu-devel] [PULL 03/11] ps2: Fix lost scancodes by recent changes, Gerd Hoffmann, 2017/01/04
- [Qemu-devel] [PULL 07/11] egl-helpers: Change file licensing to LGPLv2, Gerd Hoffmann, 2017/01/04
- [Qemu-devel] [PULL 10/11] ui/vnc: Fix problem with sending too many bytes as server name, Gerd Hoffmann, 2017/01/04
- [Qemu-devel] [PULL 02/11] ui: use evdev keymap when running under wayland, Gerd Hoffmann, 2017/01/04
- [Qemu-devel] [PULL 08/11] gtk: avoid oob array access, Gerd Hoffmann, 2017/01/04
- [Qemu-devel] [PULL 06/11] sdl2: set window ID, Gerd Hoffmann, 2017/01/04
- [Qemu-devel] [PULL 05/11] console: move window ID code from baum to sdl,
Gerd Hoffmann <=
- [Qemu-devel] [PULL 09/11] ui: drop unused MOUSE_EVENT_WHEEL{UP, DN} defines, Gerd Hoffmann, 2017/01/04
- [Qemu-devel] [PULL 11/11] curses: Fix compiler warnings (Mingw-w64 redefinition of macro KEY_EVENT), Gerd Hoffmann, 2017/01/04