summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2015-06-11 11:18:11 +0100
committerPeter Maydell <peter.maydell@linaro.org>2015-06-11 11:18:11 +0100
commit39e16a5b708358202e8d2252e3d84863666dc9e5 (patch)
treeffb9dc83c883c80a700b24a84d51d3c00521f5a3
parent0e12e61ff9a3407d123d0dbc4d945aec98d60fdf (diff)
parent060ab76356fff6a420bc881a574c40a5dda086af (diff)
downloadqemu-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.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/ui/gtk.c b/ui/gtk.c
index 126326ac7f..df2a79e7ac 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -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 */