Commit f29b3431 authored by Samuel Thibault's avatar Samuel Thibault Committed by Gerd Hoffmann
Browse files

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: default avatarSamuel Thibault <samuel.thibault@ens-lyon.org>
Message-id: 20161221003806.22412-3-samuel.thibault@ens-lyon.org
Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
parent b3cb21b9
Loading
Loading
Loading
Loading
+8 −23
Original line number Diff line number Diff line
@@ -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
    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;
#if defined(CONFIG_SDL)
#if SDL_COMPILEDVERSION < SDL_VERSIONNUM(2, 0, 0)
    }
#endif
#endif

    if (brlapi__enterTtyMode(baum->brlapi, tty, NULL) == -1) {
        brlapi_perror("baum: brlapi__enterTtyMode");
+25 −0
Original line number Diff line number Diff line
@@ -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);
}