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>
This commit is contained in:
parent
b3cb21b9b5
commit
f29b3431f6
@ -27,12 +27,10 @@
|
|||||||
#include "sysemu/char.h"
|
#include "sysemu/char.h"
|
||||||
#include "qemu/timer.h"
|
#include "qemu/timer.h"
|
||||||
#include "hw/usb.h"
|
#include "hw/usb.h"
|
||||||
|
#include "ui/console.h"
|
||||||
#include <brlapi.h>
|
#include <brlapi.h>
|
||||||
#include <brlapi_constants.h>
|
#include <brlapi_constants.h>
|
||||||
#include <brlapi_keycodes.h>
|
#include <brlapi_keycodes.h>
|
||||||
#ifdef CONFIG_SDL
|
|
||||||
#include <SDL_syswm.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
#define DPRINTF(fmt, ...) \
|
#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 */
|
/* The guest OS has started discussing with us, finish initializing BrlAPI */
|
||||||
static int baum_deferred_init(BaumDriverState *baum)
|
static int baum_deferred_init(BaumDriverState *baum)
|
||||||
{
|
{
|
||||||
#if defined(CONFIG_SDL)
|
int tty = BRLAPI_TTY_DEFAULT;
|
||||||
#if SDL_COMPILEDVERSION < SDL_VERSIONNUM(2, 0, 0)
|
QemuConsole *con;
|
||||||
SDL_SysWMinfo info;
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
int tty;
|
|
||||||
|
|
||||||
if (baum->deferred_init) {
|
if (baum->deferred_init) {
|
||||||
return 1;
|
return 1;
|
||||||
@ -243,21 +237,12 @@ static int baum_deferred_init(BaumDriverState *baum)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(CONFIG_SDL)
|
con = qemu_console_lookup_by_index(0);
|
||||||
#if SDL_COMPILEDVERSION < SDL_VERSIONNUM(2, 0, 0)
|
if (con && qemu_console_is_graphic(con)) {
|
||||||
memset(&info, 0, sizeof(info));
|
tty = qemu_console_get_window_id(con);
|
||||||
SDL_VERSION(&info.version);
|
if (tty == -1)
|
||||||
if (SDL_GetWMInfo(&info)) {
|
|
||||||
tty = info.info.x11.wmwindow;
|
|
||||||
} else {
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
tty = BRLAPI_TTY_DEFAULT;
|
tty = BRLAPI_TTY_DEFAULT;
|
||||||
#if defined(CONFIG_SDL)
|
|
||||||
#if SDL_COMPILEDVERSION < SDL_VERSIONNUM(2, 0, 0)
|
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (brlapi__enterTtyMode(baum->brlapi, tty, NULL) == -1) {
|
if (brlapi__enterTtyMode(baum->brlapi, tty, NULL) == -1) {
|
||||||
brlapi_perror("baum: brlapi__enterTtyMode");
|
brlapi_perror("baum: brlapi__enterTtyMode");
|
||||||
|
25
ui/sdl.c
25
ui/sdl.c
@ -947,6 +947,7 @@ void sdl_display_init(DisplayState *ds, int full_screen, int no_frame)
|
|||||||
int flags;
|
int flags;
|
||||||
uint8_t data = 0;
|
uint8_t data = 0;
|
||||||
const SDL_VideoInfo *vi;
|
const SDL_VideoInfo *vi;
|
||||||
|
SDL_SysWMinfo info;
|
||||||
char *filename;
|
char *filename;
|
||||||
|
|
||||||
#if defined(__APPLE__)
|
#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_hidden = SDL_CreateCursor(&data, &data, 8, 1, 0, 0);
|
||||||
sdl_cursor_normal = SDL_GetCursor();
|
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);
|
atexit(sdl_cleanup);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user