[gtk+/wip/ebassi/application-quit] application: Add a default <Primary>Q accelerator



commit 54cc84ff43ca8369b8496dc953d5158a8ac7439a
Author: Emmanuele Bassi <ebassi gnome org>
Date:   Fri Oct 2 17:35:57 2015 +0100

    application: Add a default <Primary>Q accelerator
    
    We want all GTK applications to quit in a common way, to avoid
    inconsistencies.

 gtk/gtkapplication.c |   17 +++++++++++++++++
 1 files changed, 17 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtkapplication.c b/gtk/gtkapplication.c
index 0edfe92..4c2d0dc 100644
--- a/gtk/gtkapplication.c
+++ b/gtk/gtkapplication.c
@@ -590,6 +590,11 @@ gtk_application_load_resources (GtkApplication *application)
   }
 }
 
+static void
+gtk_application_quit_cb (GApplication *g_application)
+{
+  g_application_quit (g_application);
+}
 
 static void
 gtk_application_startup (GApplication *g_application)
@@ -607,6 +612,18 @@ gtk_application_startup (GApplication *g_application)
   gtk_application_impl_startup (application->priv->impl, application->priv->register_session);
 
   gtk_application_load_resources (application);
+
+  {
+    static const char *quit_accels[2] = { "<Primary>q", NULL };
+
+    GAction *quit_action = g_simple_action_new ("quit", NULL);
+    g_signal_connect_swapped (quit_action, "activate", G_CALLBACK (gtk_application_quit_cb), application);
+
+    g_action_map_add_action (G_ACTION_MAP (application), quit_action);
+    g_object_unref (quit_action);
+
+    gtk_application_set_accels_for_action (application, "app.quit", quit_accels);
+  }
 }
 
 static void


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]