From be9093980bb57f8a7d102f3e4bac0af79b34435f Mon Sep 17 00:00:00 2001 Message-Id: From: Mark Wooding Date: Tue, 10 Jun 2008 22:46:31 +0100 Subject: [PATCH] Select hovered track if nothing is selected on right click over queue etc. Organization: Straylight/Edgeware From: Richard Kettlewell --- disobedience/queue-menu.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/disobedience/queue-menu.c b/disobedience/queue-menu.c index 8734cf6..b76ed81 100644 --- a/disobedience/queue-menu.c +++ b/disobedience/queue-menu.c @@ -135,14 +135,24 @@ static void ql_configure_menu(struct queuelike *ql) { } /** @brief Called when a button is released over a queuelike */ -gboolean ql_button_release(GtkWidget attribute((unused)) *widget, +gboolean ql_button_release(GtkWidget*widget, GdkEventButton *event, gpointer user_data) { struct queuelike *ql = user_data; if(event->type == GDK_BUTTON_PRESS && event->button == 3) { - /* Right button click. */ + /* Right button click. */ + if(gtk_tree_selection_count_selected_rows(ql->selection) == 0) { + /* Nothing is selected, select whatever is under the pointer */ + GtkTreePath *path; + if(gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(widget), + event->x, event->y, + &path, + NULL, + NULL, NULL)) + gtk_tree_selection_select_path(ql->selection, path); + } ql_create_menu(ql); ql_configure_menu(ql); gtk_widget_show_all(ql->menu); -- [mdw]