diff options
Diffstat (limited to 'lib/gtk-vlc-player/gtk-vlc-player.c')
-rw-r--r-- | lib/gtk-vlc-player/gtk-vlc-player.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/gtk-vlc-player/gtk-vlc-player.c b/lib/gtk-vlc-player/gtk-vlc-player.c index 136310c..fec9adf 100644 --- a/lib/gtk-vlc-player/gtk-vlc-player.c +++ b/lib/gtk-vlc-player/gtk-vlc-player.c @@ -326,9 +326,16 @@ gtk_vlc_player_get_time_adjustment(GtkVlcPlayer *player) void gtk_vlc_player_set_time_adjustment(GtkVlcPlayer *player, GtkAdjustment *adj) { + g_signal_handler_disconnect(G_OBJECT(player->time_adjustment), + player->time_adj_on_value_changed_id); + gtk_object_unref(player->time_adjustment); player->time_adjustment = GTK_OBJECT(adj); gtk_object_ref(player->time_adjustment); + + player->time_adj_on_value_changed_id = + g_signal_connect(G_OBJECT(player->time_adjustment), "value-changed", + G_CALLBACK(time_adj_on_value_changed), player); } GtkAdjustment * @@ -340,7 +347,14 @@ gtk_vlc_player_get_volume_adjustment(GtkVlcPlayer *player) void gtk_vlc_player_set_volume_adjustment(GtkVlcPlayer *player, GtkAdjustment *adj) { + g_signal_handler_disconnect(G_OBJECT(player->volume_adjustment), + player->vol_adj_on_value_changed_id); + gtk_object_unref(player->volume_adjustment); player->volume_adjustment = GTK_OBJECT(adj); gtk_object_ref(player->volume_adjustment); + + player->vol_adj_on_value_changed_id = + g_signal_connect(G_OBJECT(player->volume_adjustment), "value-changed", + G_CALLBACK(vol_adj_on_value_changed), player); } |