gtk: don't exit early in case gtk init fails

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Reviewed-by: Daniel P. Berrange <berrange@redhat.com>
This commit is contained in:
Gerd Hoffmann 2015-06-05 13:07:58 +02:00
parent 0e12e61ff9
commit 060ab76356

View File

@ -1917,12 +1917,19 @@ static void gd_set_keycode_type(GtkDisplayState *s)
#endif #endif
} }
static gboolean gtkinit;
void gtk_display_init(DisplayState *ds, bool full_screen, bool grab_on_hover) void gtk_display_init(DisplayState *ds, bool full_screen, bool grab_on_hover)
{ {
GtkDisplayState *s = g_malloc0(sizeof(*s)); GtkDisplayState *s = g_malloc0(sizeof(*s));
char *filename; char *filename;
GdkDisplay *window_display; GdkDisplay *window_display;
if (!gtkinit) {
fprintf(stderr, "gtk initialization failed\n");
exit(1);
}
s->window = gtk_window_new(GTK_WINDOW_TOPLEVEL); s->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
#if GTK_CHECK_VERSION(3, 2, 0) #if GTK_CHECK_VERSION(3, 2, 0)
s->vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 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) 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) { switch (opengl) {
case -1: /* default */ case -1: /* default */