changeset 2653:b5a612371920 trunk

[svn] - fix crashes related to alt+click enqueue
author nenolod
date Thu, 05 Apr 2007 17:16:09 -0700
parents 2d0c90f38824
children 6364a4534889
files ChangeLog src/audacious/build_stamp.c src/audacious/ui_playlist.c
diffstat 3 files changed, 20 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Thu Apr 05 17:01:26 2007 -0700
+++ b/ChangeLog	Thu Apr 05 17:16:09 2007 -0700
@@ -1,3 +1,11 @@
+2007-04-06 00:01:26 +0000  William Pitcock <nenolod@sacredspiral.co.uk>
+  revision [4330]
+  - fix alt+click enqueue. this is more like vincent ratier's original patch except that it's C90-capable for freebsd 4.
+  
+  trunk/src/audacious/ui_playlist.c |    7 +++++--
+  1 file changed, 5 insertions(+), 2 deletions(-)
+
+
 2007-04-05 16:26:13 +0000  Giacomo Lozito <james@develia.org>
   revision [4328]
   - allow the player to start with all of its windows hidden (but give a warning to the user, whose display can be disabled); also, try to remember player windows positions when they stay hidden between sessions
--- a/src/audacious/build_stamp.c	Thu Apr 05 17:01:26 2007 -0700
+++ b/src/audacious/build_stamp.c	Thu Apr 05 17:16:09 2007 -0700
@@ -1,2 +1,2 @@
 #include <glib.h>
-const gchar *svn_stamp = "20070405-4328";
+const gchar *svn_stamp = "20070406-4330";
--- a/src/audacious/ui_playlist.c	Thu Apr 05 17:01:26 2007 -0700
+++ b/src/audacious/ui_playlist.c	Thu Apr 05 17:16:09 2007 -0700
@@ -1029,6 +1029,8 @@
     gboolean grab = TRUE;
     gint xpos, ypos;
     GtkRequisition req;
+    Playlist *playlist = playlist_get_active();
+    gint idx = 0;
 
     gtk_window_get_position(GTK_WINDOW(playlistwin), &xpos, &ypos);
 
@@ -1153,16 +1155,20 @@
     }
     else if (event->button == 1 && (event->state & GDK_MOD1_MASK))
     {
-        Playlist *playlist;
-	gint index;
+        GList *node;
 
         handle_press_cb(playlistwin_wlist, widget, event);
         draw_playlist_window(FALSE);
 
-	playlist = playlist_get_active();
-        index = GPOINTER_TO_INT(playlist_get_selected(playlist)->data);
+        node = playlist_get_selected(playlist);
 
-        playlist_queue_position(playlist, index);
+        if (node != NULL)
+        {
+            idx = GPOINTER_TO_INT(playlist_get_selected(playlist)->data);
+            playlist_queue_position(playlist, idx);
+        }
+
+        grab = FALSE;
     }
     else {
         handle_press_cb(playlistwin_wlist, widget, event);