[devhelp] Open gear-menu with F10



commit f04561483c29628a80dd3e988000ede466a057d5
Author: Thomas Bechtold <thomasbechtold jpberlin de>
Date:   Thu Feb 14 12:10:17 2013 +0100

    Open gear-menu with F10

 src/dh-app.c    |    1 +
 src/dh-window.c |   17 +++++++++++++++++
 2 files changed, 18 insertions(+), 0 deletions(-)
---
diff --git a/src/dh-app.c b/src/dh-app.c
index b175995..590a92a 100644
--- a/src/dh-app.c
+++ b/src/dh-app.c
@@ -283,6 +283,7 @@ setup_accelerators (DhApp *self)
         gtk_application_add_accelerator (GTK_APPLICATION (self), "<Primary>p",     "win.print",        NULL);
         gtk_application_add_accelerator (GTK_APPLICATION (self), "<Primary>t",     "win.new-tab",      NULL);
         gtk_application_add_accelerator (GTK_APPLICATION (self), "<Primary>w",     "win.close",        NULL);
+        gtk_application_add_accelerator (GTK_APPLICATION (self), "F10",            "win.gear-menu",    NULL);
 }
 
 /******************************************************************************/
diff --git a/src/dh-window.c b/src/dh-window.c
index a0d4de7..e5cb836 100644
--- a/src/dh-window.c
+++ b/src/dh-window.c
@@ -434,6 +434,19 @@ go_forward_cb (GSimpleAction *action,
 }
 
 static void
+gear_menu_cb (GSimpleAction *action,
+              GVariant      *parameter,
+              gpointer       user_data)
+{
+        GVariant *state;
+
+        state = g_action_get_state (G_ACTION (action));
+        g_action_change_state (G_ACTION (action),
+                               g_variant_new_boolean (!g_variant_get_boolean (state)));
+        g_variant_unref (state);
+}
+
+static void
 window_open_link_cb (DhWindow *window,
                      const char *location,
                      DhOpenLinkFlags flags)
@@ -464,6 +477,8 @@ static GActionEntry win_entries[] = {
         /* go */
         { "go-back",          go_back_cb,          NULL, "false", NULL },
         { "go-forward",       go_forward_cb,       NULL, "false", NULL },
+        /* gear menu */
+        { "gear-menu",        gear_menu_cb,        NULL, "false", NULL },
 };
 
 static void
@@ -678,6 +693,8 @@ window_populate (DhWindow *window)
                                                 "emblem-system-symbolic",
                                                 "",
                                                 FALSE);
+        gtk_actionable_set_action_name (GTK_ACTIONABLE (menu_button), "win.gear-menu");
+
         menu = gtk_builder_get_object (priv->builder, "window-menu");
         gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (menu_button), G_MENU_MODEL (menu));
 


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