From 2a9853a35481dd27d4aad63523c01c00b636d024 Mon Sep 17 00:00:00 2001 From: Christian Persch Date: Mon, 10 Jul 2006 19:28:01 +0000 Subject: Fix for empty menubar accel setting. Don't activate insensitive actions, 2006-07-10 Christian Persch * src/ephy-window.c: (settings_change_notify), (ephy_window_key_press_event): Fix for empty menubar accel setting. Don't activate insensitive actions, bug #347022. --- ChangeLog | 8 ++++++++ src/ephy-window.c | 32 +++++++++++++++++++++++++------- 2 files changed, 33 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1247476e4..9ab978303 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2006-07-10 Christian Persch + + * src/ephy-window.c: (settings_change_notify), + (ephy_window_key_press_event): + + Fix for empty menubar accel setting. + Don't activate insensitive actions, bug #347022. + 2006-07-10 Christian Persch * lib/widgets/ephy-location-entry.c: (entry_key_press_cb), diff --git a/src/ephy-window.c b/src/ephy-window.c index 14ecf0f8e..332c5dcfb 100644 --- a/src/ephy-window.c +++ b/src/ephy-window.c @@ -511,10 +511,23 @@ settings_change_notify (GtkSettings *settings, NULL); g_return_if_fail (menubar_accel_accel != NULL); - - gtk_accelerator_parse (menubar_accel_accel, - &priv->menubar_accel_keyval, - &priv->menubar_accel_modifier); + + if (menubar_accel_accel != NULL && menubar_accel_accel[0] != '\0') + { + gtk_accelerator_parse (menubar_accel_accel, + &priv->menubar_accel_keyval, + &priv->menubar_accel_modifier); + if (priv->menubar_accel_keyval == 0) + { + g_warning ("Failed to parse menu bar accelerator '%s'\n", + menubar_accel_accel); + } + } + else + { + priv->menubar_accel_keyval = 0; + priv->menubar_accel_modifier = 0; + } priv->key_theme_is_emacs = key_theme_name && @@ -819,8 +832,12 @@ ephy_window_key_press_event (GtkWidget *widget, ephy_toolbar_get_action_group (priv->toolbar) : priv->action_group, extra_keybindings[i].action); - gtk_action_activate (action); - return TRUE; + if (gtk_action_is_sensitive (action)) + { + gtk_action_activate (action); + return TRUE; + } + break; } } @@ -831,7 +848,8 @@ ephy_window_key_press_event (GtkWidget *widget, } /* Show and activate the menubar, if it isn't visible */ - if (event->keyval == priv->menubar_accel_keyval && + if (priv->menubar_accel_keyval != 0 && + event->keyval == priv->menubar_accel_keyval && modifier == priv->menubar_accel_modifier) { menubar = gtk_ui_manager_get_widget (window->priv->manager, "/menubar"); -- cgit v1.2.3