comparison src/audacious/ui_new.c @ 4743:df6cd6f44a4f

block value-changed signal handler before setting new range on position slider
author Tomasz Mon <desowin@gmail.com>
date Thu, 24 Jul 2008 15:32:42 +0200
parents 0b96e6982c64
children 3e188277c4ed
comparison
equal deleted inserted replaced
4742:f9a672bec635 4743:df6cd6f44a4f
95 static void 95 static void
96 ui_set_song_info(gchar *text, gpointer user_data) 96 ui_set_song_info(gchar *text, gpointer user_data)
97 { 97 {
98 gint length = playback_get_length(); 98 gint length = playback_get_length();
99 99
100 /* block "value-changed" signal handler to prevent skipping track
101 if the next track is shorter than the previous one --desowin */
102 g_signal_handler_block(slider, slider_change_handler_id);
100 gtk_range_set_range(GTK_RANGE(slider), 0.0, (gdouble)length); 103 gtk_range_set_range(GTK_RANGE(slider), 0.0, (gdouble)length);
104 g_signal_handler_unblock(slider, slider_change_handler_id);
105
101 gtk_widget_show(label_time); 106 gtk_widget_show(label_time);
102 107
103 ui_playlist_widget_set_current(treeview, playlist_get_position(playlist_get_active())); 108 ui_playlist_widget_set_current(treeview, playlist_get_position(playlist_get_active()));
104 } 109 }
105 110
132 static gboolean 137 static gboolean
133 ui_update_song_info(gpointer hook_data, gpointer user_data) 138 ui_update_song_info(gpointer hook_data, gpointer user_data)
134 { 139 {
135 if (!playback_get_playing()) 140 if (!playback_get_playing())
136 { 141 {
137 gtk_range_set_value(GTK_RANGE(slider), (gdouble)0); 142 gtk_range_set_value(GTK_RANGE(slider), 0.0);
138 return FALSE; 143 return FALSE;
139 } 144 }
140 145
141 if (slider_is_moving) 146 if (slider_is_moving)
142 return TRUE; 147 return TRUE;