From 55fd080796661b3b15629c4830e1e4a49afbaa60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mario=20H=C3=BCttel?= Date: Thu, 14 Mar 2019 19:02:17 +0100 Subject: [PATCH] Fix Issue #11 * Set NON_UNIQUE Flag of GApplication. When opening a second program instance, Glib will not try to open a second window inside the first instance, which was the feature, that caused problems --- main.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/main.c b/main.c index 316ce8d..304396e 100644 --- a/main.c +++ b/main.c @@ -64,18 +64,12 @@ const static GActionEntry app_actions[] = { static void gapp_activate(GApplication *app, gpointer user_data) { GtkWindow *main_window; - static int activated = 0; struct application_data * const appdata = (struct application_data *)user_data; - if (!activated) { - activated = 1; - main_window = create_main_window(); - appdata->main_window = main_window; - gtk_application_add_window(GTK_APPLICATION(app), main_window); - gtk_widget_show(GTK_WIDGET(main_window)); - } else { - fprintf(stderr, "Only one instance of the GUI can be started at the same time, for now.\nThis will probably be fixed in later releases."); - } + main_window = create_main_window(); + appdata->main_window = main_window; + gtk_application_add_window(GTK_APPLICATION(app), main_window); + gtk_widget_show(GTK_WIDGET(main_window)); } static int start_gui(int argc, char **argv) @@ -88,7 +82,7 @@ static int start_gui(int argc, char **argv) GMenu *m_quit; GMenu *m_about; - gapp = gtk_application_new("de.shimatta.gds-render", G_APPLICATION_FLAGS_NONE); + gapp = gtk_application_new("de.shimatta.gds-render", G_APPLICATION_NON_UNIQUE); g_application_register(G_APPLICATION(gapp), NULL, NULL); g_signal_connect(gapp, "activate", G_CALLBACK(gapp_activate), &appdata);