diff options
-rw-r--r-- | gtk/menu.c | 2 | ||||
-rw-r--r-- | gtk/proto_draw.c | 11 |
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; } |