This is an automated email from the git hooks/post-receive script. landry pushed a commit to branch master in repository apps/gigolo.
commit ad8107c2f6a5adc572350d5e5927390979dfd9f3 Author: Landry Breuil <lan...@xfce.org> Date: Sun Jun 19 16:24:55 2016 +0200 Properly implement GtkApplication for unique application support -i still works to spawn a new instance --- src/main.c | 45 ++++++++++++++++++++++++++++++++------------- 1 file changed, 32 insertions(+), 13 deletions(-) diff --git a/src/main.c b/src/main.c index 6d6150a..6bd1ef6 100644 --- a/src/main.c +++ b/src/main.c @@ -35,6 +35,8 @@ #include "window.h" +static int gigolo_create(GtkApplication *); + static gboolean show_version = FALSE; static gboolean list_schemes = FALSE; static gboolean new_instance = FALSE; @@ -95,21 +97,25 @@ static void print_supported_schemes(void) } } -static void activate (GApplication *app, gpointer user_data) +static int activate (GtkApplication *app, gpointer user_data) { - GtkWidget *widget; + GList *list; - widget = gtk_application_window_new (GTK_APPLICATION (app)); - gtk_widget_show (widget); + list = gtk_application_get_windows (app); + if (list) + { + gtk_window_present (GTK_WINDOW (list->data)); + } + else + return gigolo_create(app); + return 0; } gint main(gint argc, gchar** argv) { - GigoloSettings *settings; GtkApplication *gis = NULL; - gchar *accel_filename; + gint status; GOptionContext *context; - GtkWidget *window; bindtextdomain(GETTEXT_PACKAGE, LOCALEDIR); bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8"); @@ -122,8 +128,6 @@ gint main(gint argc, gchar** argv) g_option_context_parse(context, &argc, &argv, NULL); g_option_context_free(context); - gtk_init(&argc, &argv); - if (show_version) { g_print("%s %s\n\n", PACKAGE, VERSION); @@ -148,16 +152,31 @@ gint main(gint argc, gchar** argv) return ret ? EXIT_SUCCESS : EXIT_FAILURE; } + verbose("Gigolo %s (GTK+ %u.%u.%u, GLib %u.%u.%u)", + VERSION, + gtk_major_version, gtk_minor_version, gtk_micro_version, + glib_major_version, glib_minor_version, glib_micro_version); + if (! new_instance) { gis = gtk_application_new("org.xfce.gigolo", G_APPLICATION_FLAGS_NONE); g_signal_connect (gis, "activate", G_CALLBACK (activate), NULL); + status = g_application_run (G_APPLICATION (gis), argc, argv); + } + else + { + gtk_init(&argc, &argv); + status = gigolo_create(NULL); } - verbose("Gigolo %s (GTK+ %u.%u.%u, GLib %u.%u.%u)", - VERSION, - gtk_major_version, gtk_minor_version, gtk_micro_version, - glib_major_version, glib_minor_version, glib_micro_version); + return status; +} + +static int gigolo_create(GtkApplication *gis) +{ + GigoloSettings *settings; + gchar *accel_filename; + GtkWidget *window; settings = gigolo_settings_new(); -- To stop receiving notification emails like this one, please contact the administrator of this repository. _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits