diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2015-06-11 11:18:11 +0100 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2015-06-11 11:18:11 +0100 |
commit | 39e16a5b708358202e8d2252e3d84863666dc9e5 (patch) | |
tree | ffb9dc83c883c80a700b24a84d51d3c00521f5a3 | |
parent | 0e12e61ff9a3407d123d0dbc4d945aec98d60fdf (diff) | |
parent | 060ab76356fff6a420bc881a574c40a5dda086af (diff) | |
download | qemu-39e16a5b708358202e8d2252e3d84863666dc9e5.zip |
Merge remote-tracking branch 'remotes/kraxel/tags/pull-gtk-20150611-1' into staging
gtk: don't exit early in case gtk init fails
# gpg: Signature made Thu Jun 11 10:38:29 2015 BST using RSA key ID D3E87138
# gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>"
# gpg: aka "Gerd Hoffmann <gerd@kraxel.org>"
# gpg: aka "Gerd Hoffmann (private) <kraxel@gmail.com>"
* remotes/kraxel/tags/pull-gtk-20150611-1:
gtk: don't exit early in case gtk init fails
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
-rw-r--r-- | ui/gtk.c | 13 |
1 files changed, 12 insertions, 1 deletions
@@ -1917,12 +1917,19 @@ static void gd_set_keycode_type(GtkDisplayState *s) #endif } +static gboolean gtkinit; + void gtk_display_init(DisplayState *ds, bool full_screen, bool grab_on_hover) { GtkDisplayState *s = g_malloc0(sizeof(*s)); char *filename; GdkDisplay *window_display; + if (!gtkinit) { + fprintf(stderr, "gtk initialization failed\n"); + exit(1); + } + s->window = gtk_window_new(GTK_WINDOW_TOPLEVEL); #if GTK_CHECK_VERSION(3, 2, 0) s->vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0); @@ -2003,7 +2010,11 @@ void gtk_display_init(DisplayState *ds, bool full_screen, bool grab_on_hover) void early_gtk_display_init(int opengl) { - gtk_init(NULL, NULL); + gtkinit = gtk_init_check(NULL, NULL); + if (!gtkinit) { + /* don't exit yet, that'll break -help */ + return; + } switch (opengl) { case -1: /* default */ |