aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gtk/menu.c2
-rw-r--r--gtk/proto_draw.c11
2 files changed, 9 insertions, 4 deletions
diff --git a/gtk/menu.c b/gtk/menu.c
index ef839e1704..2dac85a8c6 100644
--- a/gtk/menu.c
+++ b/gtk/menu.c
@@ -2349,7 +2349,7 @@ popup_menu_handler(GtkWidget *widget, GdkEvent *event, gpointer data)
}
/* Check if we are on tree_view object */
- if (widget == tree_view && ((GdkEventButton *)event)->button != 1) {
+ if (widget == tree_view) {
tree_view_select(widget, (GdkEventButton *) event);
}
diff --git a/gtk/proto_draw.c b/gtk/proto_draw.c
index c2f61a42d8..5b292ae6ad 100644
--- a/gtk/proto_draw.c
+++ b/gtk/proto_draw.c
@@ -2046,13 +2046,15 @@ tree_view_select(GtkWidget *widget, GdkEventButton *event)
node = gtk_ctree_node_nth(ctree, row);
g_assert(node);
- gtk_ctree_select(ctree, node);
-
/* if that's a doubleclick, try to follow the link */
if(event->type == GDK_2BUTTON_PRESS) {
fi = gtk_ctree_node_get_row_data(ctree, node);
tree_view_follow_link(fi);
}
+ else if (((GdkEventButton *)event)->button != 1) {
+ /* if button == 1 gtk_ctree_select is already (or will be) called by the widget */
+ gtk_ctree_select(ctree, node);
+ }
} else {
return FALSE;
}
@@ -2066,7 +2068,6 @@ tree_view_select(GtkWidget *widget, GdkEventButton *event)
&path, NULL, NULL, NULL))
{
sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(widget));
- gtk_tree_selection_select_path(sel, path);
/* if that's a doubleclick, try to follow the link */
if(event->type == GDK_2BUTTON_PRESS) {
@@ -2079,6 +2080,10 @@ tree_view_select(GtkWidget *widget, GdkEventButton *event)
tree_view_follow_link(fi);
}
}
+ else if (((GdkEventButton *)event)->button != 1) {
+ /* if button == 1 gtk_tree_selection_select_path is already (or will be) called by the widget */
+ gtk_tree_selection_select_path(sel, path);
+ }
} else {
return FALSE;
}