From 9aa1e771742cfb091834c485de8f75249579d690 Mon Sep 17 00:00:00 2001 From: AlicVB Date: Wed, 11 Sep 2019 23:03:10 +0200 Subject: [PATCH] projectorganizer : add shortcut to focus sidebar project tab --- projectorganizer/src/prjorg-menu.c | 7 +++++++ projectorganizer/src/prjorg-sidebar.c | 8 +++++++- projectorganizer/src/prjorg-sidebar.h | 1 + 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/projectorganizer/src/prjorg-menu.c b/projectorganizer/src/prjorg-menu.c index fe773cff6..5f4d91846 100644 --- a/projectorganizer/src/prjorg-menu.c +++ b/projectorganizer/src/prjorg-menu.c @@ -42,6 +42,7 @@ enum KB_FIND_IN_PROJECT, KB_FIND_FILE, KB_FIND_TAG, + KB_FOCUS_TAB, KB_COUNT }; @@ -225,6 +226,9 @@ static gboolean kb_callback(guint key_id) case KB_FIND_TAG: on_find_tag(NULL, NULL); return TRUE; + case KB_FOCUS_TAB: + prjorg_sidebar_focus(); + return TRUE; } return FALSE; } @@ -380,6 +384,9 @@ void prjorg_menu_init(void) gtk_widget_show(s_sep_item); gtk_container_add(GTK_CONTAINER(geany->main_widgets->project_menu), s_sep_item); + keybindings_set_item(key_group, KB_FOCUS_TAB, NULL, + 0, 0, "focus_tab", _("Focus project tab"), NULL); + image = gtk_image_new_from_stock(GTK_STOCK_FIND, GTK_ICON_SIZE_MENU); gtk_widget_show(image); s_fif_item = gtk_image_menu_item_new_with_mnemonic(_("Find in Project Files...")); diff --git a/projectorganizer/src/prjorg-sidebar.c b/projectorganizer/src/prjorg-sidebar.c index 2659fe00e..538ca8ebb 100644 --- a/projectorganizer/src/prjorg-sidebar.c +++ b/projectorganizer/src/prjorg-sidebar.c @@ -63,6 +63,7 @@ static GtkWidget *s_file_view_vbox = NULL; static GtkWidget *s_file_view = NULL; static GtkTreeStore *s_file_store = NULL; static gboolean s_follow_editor = TRUE; +static gint sidebar_page_number = 0; static struct { @@ -1724,7 +1725,7 @@ void prjorg_sidebar_init(void) gtk_box_pack_start(GTK_BOX(s_file_view_vbox), scrollwin, TRUE, TRUE, 0); gtk_widget_show_all(s_file_view_vbox); - gtk_notebook_append_page(GTK_NOTEBOOK(geany->main_widgets->sidebar_notebook), + sidebar_page_number = gtk_notebook_append_page(GTK_NOTEBOOK(geany->main_widgets->sidebar_notebook), s_file_view_vbox, gtk_label_new(_("Project"))); } @@ -1734,6 +1735,11 @@ void prjorg_sidebar_activate(gboolean activate) gtk_widget_set_sensitive(s_file_view_vbox, activate); } +void prjorg_sidebar_focus(void) +{ + gtk_notebook_set_current_page(GTK_NOTEBOOK(geany->main_widgets->sidebar_notebook), sidebar_page_number); +} + void prjorg_sidebar_cleanup(void) { diff --git a/projectorganizer/src/prjorg-sidebar.h b/projectorganizer/src/prjorg-sidebar.h index 5c1423428..e41a25586 100644 --- a/projectorganizer/src/prjorg-sidebar.h +++ b/projectorganizer/src/prjorg-sidebar.h @@ -23,6 +23,7 @@ void prjorg_sidebar_init(void); void prjorg_sidebar_cleanup(void); void prjorg_sidebar_activate(gboolean activate); +void prjorg_sidebar_focus(void); void prjorg_sidebar_find_file_in_active(void); void prjorg_sidebar_find_tag_in_active(void);