Revision: 1606 http://svn.sourceforge.net/geany/?rev=1606&view=rev Author: eht16 Date: 2007-06-10 04:28:54 -0700 (Sun, 10 Jun 2007)
Log Message: ----------- Prevent double jump to line when clicking on a symbol list item.
Modified Paths: -------------- trunk/ChangeLog trunk/src/treeviews.c
Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2007-06-09 12:57:04 UTC (rev 1605) +++ trunk/ChangeLog 2007-06-10 11:28:54 UTC (rev 1606) @@ -1,3 +1,9 @@ +2007-06-10 Enrico Tröger enrico.troeger@uvena.de + + * src/treeviews.c: Prevent double jump to line when clicking on a + symbol list item. + + 2007-06-09 Enrico Tröger enrico.troeger@uvena.de
* THANKS, src/document.c:
Modified: trunk/src/treeviews.c =================================================================== --- trunk/src/treeviews.c 2007-06-09 12:57:04 UTC (rev 1605) +++ trunk/src/treeviews.c 2007-06-10 11:28:54 UTC (rev 1606) @@ -59,7 +59,7 @@ static void on_taglist_tree_popup_clicked(GtkMenuItem *menuitem, gpointer user_data); static void on_openfiles_tree_selection_changed(GtkTreeSelection *selection, gpointer data); static void on_openfiles_tree_popup_clicked(GtkMenuItem *menuitem, gpointer user_data); -static void on_taglist_tree_selection_changed(GtkTreeSelection *selection, gpointer data); +static gboolean on_taglist_tree_selection_changed(GtkTreeSelection *selection); static gboolean on_treeviews_button_press_event(GtkWidget *widget, GdkEventButton *event, gpointer user_data);
@@ -91,8 +91,7 @@ // selection handling select = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree)); gtk_tree_selection_set_mode(select, GTK_SELECTION_SINGLE); - g_signal_connect(G_OBJECT(select), "changed", - G_CALLBACK(on_taglist_tree_selection_changed), NULL); + // callback for changed selection not necessary, will be handled by button-press-event }
@@ -452,7 +451,7 @@ }
-static void on_taglist_tree_selection_changed(GtkTreeSelection *selection, gpointer data) +static gboolean on_taglist_tree_selection_changed(GtkTreeSelection *selection) { GtkTreeIter iter; GtkTreeModel *model; @@ -468,19 +467,19 @@ g_free(string); } } + return FALSE; }
static gboolean on_treeviews_button_press_event(GtkWidget *widget, GdkEventButton *event, gpointer user_data) { - if (event->button == 1) - { - if (GPOINTER_TO_INT(user_data) == TREEVIEW_SYMBOL) - { // allow reclicking of taglist treeview item - GtkTreeSelection *select = gtk_tree_view_get_selection(GTK_TREE_VIEW(widget)); - on_taglist_tree_selection_changed(select, NULL); - } + if (event->button == 1 && GPOINTER_TO_INT(user_data) == TREEVIEW_SYMBOL) + { // allow reclicking of taglist treeview item + 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); }
if (event->button == 3)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.