[Xfce4-commits] <midori:master> Interpret Ctrl(+Shift)+Tab as tab switching
Christian Dywan
noreply at xfce.org
Wed Apr 27 00:16:02 CEST 2011
Updating branch refs/heads/master
to 366ca3f7da8b9b355ba595559521ff7d5d0273f3 (commit)
from f0647ee95ae464b66800ced4bcaf870d254eb14e (commit)
commit 366ca3f7da8b9b355ba595559521ff7d5d0273f3
Author: Christian Dywan <christian at twotoasts.de>
Date: Tue Apr 26 23:05:53 2011 +0200
Interpret Ctrl(+Shift)+Tab as tab switching
It's not advertised as a shortcut but provided for
users on laptops lacking PageUp and PageDown, or
using multiple browsers.
Fixes: https://bugs.launchpad.net/bugs/766421
midori/midori-browser.c | 26 ++++++++++++++++++++++----
1 files changed, 22 insertions(+), 4 deletions(-)
diff --git a/midori/midori-browser.c b/midori/midori-browser.c
index 6aa3b3d..345dda6 100644
--- a/midori/midori-browser.c
+++ b/midori/midori-browser.c
@@ -1680,9 +1680,26 @@ midori_browser_key_press_event (GtkWidget* widget,
GdkEventKey* event)
{
GtkWindow* window = GTK_WINDOW (widget);
+ MidoriBrowser* browser = MIDORI_BROWSER (widget);
GtkWidgetClass* widget_class;
guint clean_state;
+ /* Interpret Ctrl(+Shift)+Tab as tab switching for compatibility */
+ if (midori_browser_get_nth_tab (browser, 1) != NULL
+ && event->keyval == GDK_Tab
+ && (event->state & GDK_CONTROL_MASK))
+ {
+ gtk_action_activate (_action_by_name (browser, "TabNext"));
+ return TRUE;
+ }
+ else if (event->keyval == GDK_ISO_Left_Tab
+ && (event->state & GDK_CONTROL_MASK)
+ && (event->state & GDK_SHIFT_MASK))
+ {
+ gtk_action_activate (_action_by_name (browser, "TabPrevious"));
+ return TRUE;
+ }
+
if (gtk_window_get_focus (GTK_WINDOW (widget)) == NULL)
gtk_widget_grab_focus (midori_browser_get_current_tab (MIDORI_BROWSER (widget)));
@@ -5740,6 +5757,7 @@ midori_browser_init (MidoriBrowser* browser)
GtkUIManager* ui_manager;
GtkAccelGroup* accel_group;
guint i;
+ GClosure* accel_closure;
GError* error;
GtkAction* action;
#if !HAVE_HILDON
@@ -5797,16 +5815,16 @@ midori_browser_init (MidoriBrowser* browser)
gtk_ui_manager_insert_action_group (ui_manager, browser->action_group, 0);
g_object_set_data (G_OBJECT (accel_group), "midori-browser", browser);
+ accel_closure = g_cclosure_new (G_CALLBACK (
+ midori_browser_accel_switch_tab_activate_cb), browser, NULL);
for (i = 0; i < 10; i++)
{
gchar* accel_path = g_strdup_printf ("<Manual>/Browser/SwitchTab%d", i);
- GClosure* closure = g_cclosure_new (
- G_CALLBACK (midori_browser_accel_switch_tab_activate_cb),
- browser, NULL);
gtk_accel_map_add_entry (accel_path, GDK_0 + i, GDK_MOD1_MASK);
- gtk_accel_group_connect_by_path (accel_group, accel_path, closure);
+ gtk_accel_group_connect_by_path (accel_group, accel_path, accel_closure);
g_free (accel_path);
}
+ g_closure_unref (accel_closure);
error = NULL;
if (!gtk_ui_manager_add_ui_from_string (ui_manager, ui_markup, -1, &error))
More information about the Xfce4-commits
mailing list