Mercurial > audlegacy
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; |