[sound-juicer] Fix playback with multiple track selection



commit 3ee9f26be071a63a5f43db449d451b30bc5f6c1f
Author: Phillip Wood <phillip wood dunelm org uk>
Date:   Tue Jun 11 10:56:04 2013 +0100

    Fix playback with multiple track selection
    
    Prepare support for multiple selections. Only change seek_to_track if
    there is a single track selected.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=151469

 src/sj-play.c |   20 ++++++++++++++------
 1 files changed, 14 insertions(+), 6 deletions(-)
---
diff --git a/src/sj-play.c b/src/sj-play.c
index 58bea19..396efaf 100644
--- a/src/sj-play.c
+++ b/src/sj-play.c
@@ -506,21 +506,29 @@ set_gst_ui_and_play (void)
   }
 }
 
+static void
+select_track_foreach (GtkTreeModel *model,
+                      GtkTreePath  *path,
+                      GtkTreeIter  *iter,
+                      gpointer      data)
+{
+  gint track;
+
+  gtk_tree_model_get (model, iter, COLUMN_NUMBER, &track, -1);
+  seek_to_track = track - 1;
+}
+
 G_MODULE_EXPORT void
 on_tracklist_row_selected (GtkTreeView *treeview,
                gpointer user_data)
 {
-  gint track;
   GtkTreeSelection *selection = gtk_tree_view_get_selection (treeview);
 
   if (is_playing () || is_paused ())
     return;
 
-  if (gtk_tree_selection_get_selected (selection, NULL, &current_iter)) {
-    gtk_tree_model_get (GTK_TREE_MODEL (track_store),
-        &current_iter, COLUMN_NUMBER, &track, -1);
-    seek_to_track = track - 1;
-  }
+  if (gtk_tree_selection_count_selected_rows (selection) == 1)
+    gtk_tree_selection_selected_foreach (selection, select_track_foreach, NULL);
 }
 
 /*


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]