Branch: refs/heads/master Author: Enrico Tröger enrico.troeger@uvena.de Committer: Enrico Tröger enrico.troeger@uvena.de Date: Sun, 09 Sep 2012 14:05:58 Commit: 8171af611fefe24561fee70cfe5785afd649c595 https://github.com/geany/geany/commit/8171af611fefe24561fee70cfe5785afd649c5...
Log Message: ----------- Don't set the focus to the editor widget when clicking a symbol while holding Control
When clicking a symbol in the Symbols sidebar and holding the Control modifier key, don't set the focus to the editor widget so further navigation in the Symbols sidebar with keys is possible.
Modified Paths: -------------- src/sidebar.c
Modified: src/sidebar.c 17 files changed, 11 insertions(+), 6 deletions(-) =================================================================== @@ -877,11 +877,12 @@ static gboolean openfiles_go_to_selection(GtkTreeSelection *selection, guint key }
-static gboolean taglist_go_to_selection(GtkTreeSelection *selection, guint keyval) +static gboolean taglist_go_to_selection(GtkTreeSelection *selection, guint keyval, guint state) { GtkTreeIter iter; GtkTreeModel *model; gint line = 0; + gboolean handled = TRUE;
if (gtk_tree_selection_get_selected(selection, &model, &iter)) { @@ -899,13 +900,15 @@ static gboolean taglist_go_to_selection(GtkTreeSelection *selection, guint keyva if (doc != NULL) { navqueue_goto_line(doc, doc, line); - if (keyval != GDK_space) + if (keyval != GDK_space && ! (state & GDK_CONTROL_MASK)) change_focus_to_editor(doc, NULL); + else + handled = FALSE; } } tm_tag_unref(tag); } - return FALSE; + return handled; }
@@ -928,7 +931,7 @@ static gboolean sidebar_key_press_cb(GtkWidget *widget, GdkEventKey *event, if (widget == tv.tree_openfiles) /* tag and doc list have separate handlers */ openfiles_go_to_selection(selection, event->keyval); else - taglist_go_to_selection(selection, event->keyval); + taglist_go_to_selection(selection, event->keyval, event->state);
return TRUE; } @@ -976,10 +979,12 @@ static gboolean sidebar_button_press_cb(GtkWidget *widget, GdkEventButton *event else if (event->button == 1) { /* allow reclicking of taglist treeview item */ if (widget == tv.tree_openfiles) + { openfiles_go_to_selection(selection, 0); + handled = TRUE; + } else - taglist_go_to_selection(selection, 0); - handled = TRUE; + handled = taglist_go_to_selection(selection, 0, event->state); } else if (event->button == 3) {
@@ Diff output truncated at 100000 characters. @@
-------------- This E-Mail was brought to you by github_commit_mail.py (Source: TBD).