changeset 3196:be1d387e1f66 trunk

temporal fix for update problem which randomly caused by scrolling in playlist.
author Yoshiki Yazawa <yaz@cc.rim.or.jp>
date Mon, 30 Jul 2007 20:42:40 +0900
parents 7ef1d3b56b92
children 5dd8bc77a590 808c6b79e838
files src/audacious/ui_playlist.c
diffstat 1 files changed, 5 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/audacious/ui_playlist.c	Sun Jul 29 17:35:31 2007 +0200
+++ b/src/audacious/ui_playlist.c	Mon Jul 30 20:42:40 2007 +0900
@@ -279,7 +279,7 @@
     /* this can happen early on. just bail gracefully. */
     g_return_if_fail(playlistwin_list);
 
-    widget_draw(WIDGET(playlistwin_list));
+    widget_queue_redraw(WIDGET(playlistwin_list));
     gtk_widget_queue_draw(playlistwin_slider);
     playlistwin_update_info(playlist);
     playlistwin_update_sinfo(playlist);
@@ -394,7 +394,7 @@
 
     playlistwin_set_mask();
 
-    widget_draw(WIDGET(playlistwin_list));
+    widget_queue_redraw(WIDGET(playlistwin_list));
 
     draw_playlist_window(TRUE);
 }
@@ -710,8 +710,8 @@
     widget_list_draw(playlistwin_wlist, &redraw, TRUE);
     widget_list_clear_redraw(playlistwin_wlist);
 
+    widget_list_unlock(playlistwin_wlist);
     g_mutex_unlock(resize_mutex);
-    widget_list_unlock(playlistwin_wlist);
 
     gdk_window_set_back_pixmap(playlistwin->window, playlistwin_bg, 0);
     gdk_window_clear(playlistwin->window);
@@ -1440,6 +1440,7 @@
 
     if (redraw || force) {
         if (force) {
+            widget_list_unlock(playlistwin_wlist);
             gdk_window_clear(playlistwin->window);
             GList *iter;
             for (iter = GTK_FIXED (SKINNED_WINDOW(playlistwin)->fixed)->children; iter; iter = g_list_next (iter)) {
@@ -1457,6 +1458,7 @@
                     w->redraw = FALSE;
                 }
             }
+            widget_list_unlock(playlistwin_wlist);
         }
 
         gdk_flush();