Revision: 2386 http://geany.svn.sourceforge.net/geany/?rev=2386&view=rev Author: eht16 Date: 2008-03-21 11:44:12 -0700 (Fri, 21 Mar 2008)
Log Message: ----------- Allow selecting items in the symbol list by pressing Enter or Space.
Modified Paths: -------------- trunk/ChangeLog trunk/src/treeviews.c
Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2008-03-21 18:29:25 UTC (rev 2385) +++ trunk/ChangeLog 2008-03-21 18:44:12 UTC (rev 2386) @@ -17,6 +17,8 @@ * src/win32.c: Fix crash on Windows due to missing error message when a process spawning fails. + * src/treeviews.c: + Allow selecting items in the symbol list by pressing Enter or Space.
2008-03-21 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
Modified: trunk/src/treeviews.c =================================================================== --- trunk/src/treeviews.c 2008-03-21 18:29:25 UTC (rev 2385) +++ trunk/src/treeviews.c 2008-03-21 18:44:12 UTC (rev 2386) @@ -39,6 +39,7 @@ #include "symbols.h" #include "navqueue.h"
+#include <gdk/gdkkeysyms.h>
SidebarTreeviews tv;
@@ -82,6 +83,8 @@ static gboolean on_taglist_tree_selection_changed(GtkTreeSelection *selection); static gboolean on_treeviews_button_press_event(GtkWidget *widget, GdkEventButton *event, gpointer user_data); +static gboolean on_treeviews_key_press_event(GtkWidget *widget, GdkEventKey *event, + gpointer user_data); static void on_list_document_activate(GtkCheckMenuItem *item, gpointer user_data); static void on_list_symbol_activate(GtkCheckMenuItem *item, gpointer user_data);
@@ -117,6 +120,8 @@ gtk_tree_view_set_model(GTK_TREE_VIEW(tree), GTK_TREE_MODEL(store)); g_signal_connect(G_OBJECT(tree), "button-press-event", G_CALLBACK(on_treeviews_button_press_event), GINT_TO_POINTER(TREEVIEW_SYMBOL)); + g_signal_connect(G_OBJECT(tree), "key-press-event", + G_CALLBACK(on_treeviews_key_press_event), GINT_TO_POINTER(TREEVIEW_SYMBOL));
gtk_tree_view_set_enable_search(GTK_TREE_VIEW(tree), FALSE);
@@ -648,6 +653,23 @@ }
+static gboolean on_treeviews_key_press_event(GtkWidget *widget, GdkEventKey *event, + gpointer user_data) +{ + if (event->keyval == GDK_Return || + event->keyval == GDK_ISO_Enter || + event->keyval == GDK_KP_Enter || + event->keyval == GDK_space) + { + GtkTreeSelection *select = gtk_tree_view_get_selection(GTK_TREE_VIEW(widget)); + /* delay the query of selection state because this callback is executed before GTK + * changes the selection (g_signal_connect_after would be better but it doesn't work) */ + g_idle_add((GSourceFunc) on_taglist_tree_selection_changed, select); + } + return FALSE; +} + + static gboolean on_treeviews_button_press_event(GtkWidget *widget, GdkEventButton *event, gpointer user_data) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.