[Xfce4-commits] [apps/xfce4-terminal] 01/01: Better approach to showing a hidden menubar with F10
noreply at xfce.org
noreply at xfce.org
Fri Dec 23 15:05:15 CET 2016
This is an automated email from the git hooks/post-receive script.
f2404 pushed a commit to branch master
in repository apps/xfce4-terminal.
commit da32c9c2ec3b0577f0d40c65d25b11f022c2bc63
Author: Igor <f2404 at yandex.ru>
Date: Fri Dec 23 17:05:10 2016 +0300
Better approach to showing a hidden menubar with F10
---
terminal/terminal-app.c | 7 +++++-
terminal/terminal-window.c | 57 ++++++++++++++++------------------------------
2 files changed, 26 insertions(+), 38 deletions(-)
diff --git a/terminal/terminal-app.c b/terminal/terminal-app.c
index 49b5005..8fb371a 100644
--- a/terminal/terminal-app.c
+++ b/terminal/terminal-app.c
@@ -196,7 +196,9 @@ terminal_app_finalize (GObject *object)
static void
terminal_app_update_accels (TerminalApp *app)
{
- gboolean no_key;
+ gboolean no_key;
+ GdkModifierType mod;
+ guint key;
g_object_get (G_OBJECT (app->preferences),
"shortcuts-no-menukey", &no_key,
@@ -205,6 +207,9 @@ terminal_app_update_accels (TerminalApp *app)
"gtk-menu-bar-accel",
no_key ? NULL : app->initial_menu_bar_accel,
NULL);
+ gtk_accelerator_parse (app->initial_menu_bar_accel, &key, &mod);
+ gtk_accel_map_change_entry ("<Actions>/terminal-window/toggle-menubar",
+ no_key ? 0 : key, no_key ? 0 : mod, TRUE);
g_object_get (G_OBJECT (app->preferences),
"shortcuts-no-helpkey", &no_key,
diff --git a/terminal/terminal-window.c b/terminal/terminal-window.c
index f975a1b..9c1e73b 100644
--- a/terminal/terminal-window.c
+++ b/terminal/terminal-window.c
@@ -102,8 +102,6 @@ static void terminal_window_style_set (GtkWidget
GtkStyle *previous_style);
static gboolean terminal_window_scroll_event (GtkWidget *widget,
GdkEventScroll *event);
-static gboolean terminal_window_key_press_event (GtkWidget *widget,
- GdkEventKey *event);
static gboolean terminal_window_confirm_close (TerminalWindow *window);
static void terminal_window_size_push (TerminalWindow *window);
static gboolean terminal_window_size_pop (gpointer data);
@@ -241,6 +239,8 @@ static void terminal_window_switch_tab (GtkNotebook
static void terminal_window_move_tab (GtkNotebook *notebook,
gboolean move_left);
static void terminal_window_tab_info_free (TerminalWindowTabInfo *tab_info);
+static void terminal_window_toggle_menubar (GtkWidget *widget,
+ TerminalWindow *window);
static void terminal_window_menubar_deactivate (GtkWidget *widget,
TerminalWindow *window);
@@ -370,7 +370,6 @@ terminal_window_class_init (TerminalWindowClass *klass)
gtkwidget_class->delete_event = terminal_window_delete_event;
gtkwidget_class->style_set = terminal_window_style_set;
gtkwidget_class->scroll_event = terminal_window_scroll_event;
- gtkwidget_class->key_press_event = terminal_window_key_press_event;
/**
* TerminalWindow::new-window
@@ -414,6 +413,8 @@ terminal_window_init (TerminalWindow *window)
GdkVisual *visual;
GtkStyleContext *context;
+ GClosure *toggle_menubar_closure = g_cclosure_new (G_CALLBACK (terminal_window_toggle_menubar), window, NULL);
+
window->priv = G_TYPE_INSTANCE_GET_PRIVATE (window, TERMINAL_TYPE_WINDOW, TerminalWindowPrivate);
window->priv->preferences = terminal_preferences_get ();
@@ -452,6 +453,8 @@ terminal_window_init (TerminalWindow *window)
g_signal_connect_after (G_OBJECT (accel_group), "accel-activate",
G_CALLBACK (terminal_window_accel_activate), window);
+ gtk_accel_group_connect_by_path (accel_group, "<Actions>/terminal-window/toggle-menubar", toggle_menubar_closure);
+
window->priv->vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
gtk_container_add (GTK_CONTAINER (window), window->priv->vbox);
@@ -646,40 +649,6 @@ terminal_window_scroll_event (GtkWidget *widget,
static gboolean
-terminal_window_key_press_event (GtkWidget *widget,
- GdkEventKey *event)
-{
- GdkModifierType mod;
- guint key;
- gboolean no_menukey;
- gchar *menu_bar_accel;
- TerminalWindow *window = TERMINAL_WINDOW (widget);
-
- g_object_get (G_OBJECT (window->priv->preferences),
- "shortcuts-no-menukey", &no_menukey,
- NULL);
-
- if (!no_menukey && terminal_window_get_menubar_height (window) == 0)
- {
- g_object_get (G_OBJECT (gtk_settings_get_default ()),
- "gtk-menu-bar-accel", &menu_bar_accel,
- NULL);
- gtk_accelerator_parse (menu_bar_accel, &key, &mod);
- g_free (menu_bar_accel);
- if (event->keyval == key && (event->state & gtk_accelerator_get_default_mod_mask ()) == mod)
- {
- terminal_window_size_push (window);
- gtk_widget_show (window->priv->menubar);
- terminal_window_size_pop (window);
- }
- }
-
- return (*GTK_WIDGET_CLASS (terminal_window_parent_class)->key_press_event) (widget, event);
-}
-
-
-
-static gboolean
terminal_window_confirm_close (TerminalWindow *window)
{
GtkWidget *dialog;
@@ -2265,6 +2234,20 @@ terminal_window_tab_info_free (TerminalWindowTabInfo *tab_info)
static void
+terminal_window_toggle_menubar (GtkWidget *widget,
+ TerminalWindow *window)
+{
+ terminal_return_if_fail (TERMINAL_IS_WINDOW (window));
+
+ terminal_window_size_push (window);
+ if (terminal_window_get_menubar_height (window) == 0)
+ gtk_widget_show (window->priv->menubar);
+ terminal_window_size_pop (window);
+}
+
+
+
+static void
terminal_window_menubar_deactivate (GtkWidget *widget,
TerminalWindow *window)
{
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the Xfce4-commits
mailing list