From 98edfd338d1248d386fc211f27252d5fb9053dc9 Mon Sep 17 00:00:00 2001 From: Pablo Barciela Date: Wed, 25 Jul 2018 03:38:51 +0200 Subject: add the abbility to switch tabs using [ctrl+tab] and [ctrl+shift+tab] If true the gsettings key "ctrl-tab-switch-tabs" into "org.mate.pluma" Closes https://github.com/mate-desktop/pluma/issues/211 --- data/org.mate.pluma.gschema.xml.in | 5 +++++ pluma/pluma-window.c | 29 +++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/data/org.mate.pluma.gschema.xml.in b/data/org.mate.pluma.gschema.xml.in index 536211d5..3305283f 100644 --- a/data/org.mate.pluma.gschema.xml.in +++ b/data/org.mate.pluma.gschema.xml.in @@ -11,6 +11,11 @@ Editor Font A custom font that will be used for the editing area. This will only take effect if the "Use Default Font" option is turned off. + + false + Switch tabs with [ctrl] + [tab] + If true, it enables the ability to switch tabs using [ctrl + tab] and [ctrl + shift + tab]. + 'tango' Style Scheme diff --git a/pluma/pluma-window.c b/pluma/pluma-window.c index 261c09c6..6c908bfc 100644 --- a/pluma/pluma-window.c +++ b/pluma/pluma-window.c @@ -338,6 +338,35 @@ pluma_window_key_press_event (GtkWidget *widget, if (!g_settings_get_boolean (settings, "use-default-font") && (nsize > 5)) g_settings_set_string (settings, "editor-font", g_strconcat (tempfont, tempsize, NULL)); } + + if (g_settings_get_boolean (settings, "ctrl-tab-switch-tabs")) + { + GtkNotebook *notebook = GTK_NOTEBOOK (_pluma_window_get_notebook (PLUMA_WINDOW (window))); + + int pages = gtk_notebook_get_n_pages (notebook); + int 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)); + return 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); + return TRUE; + } + } + g_object_unref (settings); + g_free (font); + g_free (tempsize); } if (grand_parent_class == NULL) -- cgit v1.2.1