From: Richard Kettlewell Date: Tue, 10 Jun 2008 21:46:31 +0000 (+0100) Subject: Select hovered track if nothing is selected on right click over queue etc. X-Git-Tag: 4.1~15^2~57 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/disorder/commitdiff_plain/be9093980bb57f8a7d102f3e4bac0af79b34435f?hp=b0b15b7ced28b3c6ddfcd4b0a7e46ee6432a243c Select hovered track if nothing is selected on right click over queue etc. --- 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);