From c455418207877b4f7f84e86bbdfbd4c667ae8221 Mon Sep 17 00:00:00 2001 From: Pablo Barciela Date: Wed, 1 Aug 2018 00:35:55 +0200 Subject: add the ability to switch tabs using [ctrl+tab] and [ctrl+shift+tab] If true the gsettings key "ctrl-tab-switch-tabs" into "org.mate.caja.preferences" Closes https://github.com/mate-desktop/caja/issues/768 --- src/caja-navigation-window.c | 46 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) (limited to 'src') diff --git a/src/caja-navigation-window.c b/src/caja-navigation-window.c index a21e1595..57d5e425 100644 --- a/src/caja-navigation-window.c +++ b/src/caja-navigation-window.c @@ -520,6 +520,52 @@ caja_navigation_window_key_press_event (GtkWidget *widget, window = CAJA_NAVIGATION_WINDOW (widget); + if (event->state & GDK_CONTROL_MASK) + { + GSettings *settings = g_settings_new ("org.mate.caja.preferences"); + gboolean handled = FALSE; + + if (g_settings_get_boolean (settings, "ctrl-tab-switch-tabs")) + { + CajaWindow *cajawin; + CajaWindowSlot *slot; + CajaNavigationWindowPane *pane; + CajaNotebook *cajanotebook; + GtkNotebook *notebook; + int pages; + int page_num; + + cajawin = CAJA_WINDOW (window); + slot = caja_window_get_active_slot (cajawin); + pane = CAJA_NAVIGATION_WINDOW_PANE (slot->pane); + cajanotebook = CAJA_NOTEBOOK (pane->notebook); + notebook = GTK_NOTEBOOK (cajanotebook); + pages = gtk_notebook_get_n_pages (notebook); + page_num = gtk_notebook_get_current_page (notebook); + + if (event->keyval == GDK_KEY_ISO_Left_Tab) + { + if (page_num != 0) + gtk_notebook_prev_page (notebook); + else + gtk_notebook_set_current_page (notebook, (pages - 1)); + handled = TRUE; + } + if (event->keyval == GDK_KEY_Tab) + { + if (page_num != (pages -1)) + gtk_notebook_next_page (notebook); + else + gtk_notebook_set_current_page (notebook, 0); + handled = TRUE; + } + } + g_object_unref (settings); + + if (handled) + return TRUE; + } + for (i = 0; i < G_N_ELEMENTS (extra_navigation_window_keybindings); i++) { if (extra_navigation_window_keybindings[i].keyval == event->keyval) -- cgit v1.2.1