Commit 002b2902 authored by Gerd Hoffmann's avatar Gerd Hoffmann
Browse files

ui: switch gtk display to qapi parser



Drop the gtk option parser from parse_display(), so parse_display_qapi()
will handle it instead.

With this change the parser will accept gl=core and gl=es too, gtk
must catch the unsupported gles variant now.

Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
Message-id: 20180507095539.19584-4-kraxel@redhat.com
parent 2c9498c3
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -2478,7 +2478,11 @@ static void early_gtk_display_init(DisplayOptions *opts)
    }

    assert(opts->type == DISPLAY_TYPE_GTK);
    if (opts->has_gl && opts->gl) {
    if (opts->has_gl && opts->gl != DISPLAYGL_MODE_OFF) {
        if (opts->gl == DISPLAYGL_MODE_ES) {
            error_report("gtk: opengl es not supported");
            return;
        }
#if defined(CONFIG_OPENGL)
#if defined(CONFIG_GTK_GL) && defined(GDK_WINDOWING_WAYLAND)
        if (GDK_IS_WAYLAND_DISPLAY(gdk_display_get_default())) {
+0 −32
Original line number Diff line number Diff line
@@ -2185,38 +2185,6 @@ static void parse_display(const char *p)
            error_report("VNC requires a display argument vnc=<display>");
            exit(1);
        }
    } else if (strstart(p, "gtk", &opts)) {
        dpy.type = DISPLAY_TYPE_GTK;
        while (*opts) {
            const char *nextopt;

            if (strstart(opts, ",grab_on_hover=", &nextopt)) {
                opts = nextopt;
                dpy.u.gtk.has_grab_on_hover = true;
                if (strstart(opts, "on", &nextopt)) {
                    dpy.u.gtk.grab_on_hover = true;
                } else if (strstart(opts, "off", &nextopt)) {
                    dpy.u.gtk.grab_on_hover = false;
                } else {
                    goto invalid_gtk_args;
                }
            } else if (strstart(opts, ",gl=", &nextopt)) {
                opts = nextopt;
                dpy.has_gl = true;
                if (strstart(opts, "on", &nextopt)) {
                    dpy.gl = DISPLAYGL_MODE_ON;
                } else if (strstart(opts, "off", &nextopt)) {
                    dpy.gl = DISPLAYGL_MODE_OFF;
                } else {
                    goto invalid_gtk_args;
                }
            } else {
            invalid_gtk_args:
                error_report("invalid GTK option string");
                exit(1);
            }
            opts = nextopt;
        }
    } else {
        parse_display_qapi(p);
    }