Description: fix ags_recall_stop_persistent() The content of ags_recall_stop_persistent() and ags_recall_real_stop_persistent() need to be exchanged to each other. This fixes the AgsRecall::stop-persistent() event. Author: Joël Krähemann Origin: upstream, Forwarded: not-needed Last-Update: 2018-04-10 --- This patch header follows DEP-3: http://dep.debian.net/deps/dep3/ --- a/ags/audio/ags_recall.c +++ b/ags/audio/ags_recall.c @@ -1980,12 +1980,16 @@ void ags_recall_real_stop_persistent(AgsRecall *recall) { - g_return_if_fail(AGS_IS_RECALL(recall)); + if((AGS_RECALL_DONE & (recall->flags)) != 0){ + return; + } - g_object_ref(G_OBJECT(recall)); - g_signal_emit(G_OBJECT(recall), - recall_signals[STOP_PERSISTENT], 0); - g_object_unref(G_OBJECT(recall)); + recall->flags &= (~(AGS_RECALL_PERSISTENT | + AGS_RECALL_PERSISTENT_PLAYBACK | + AGS_RECALL_PERSISTENT_SEQUENCER | + AGS_RECALL_PERSISTENT_NOTATION)); + + ags_recall_done(recall); } /** @@ -1999,16 +2003,12 @@ void ags_recall_stop_persistent(AgsRecall *recall) { - if((AGS_RECALL_DONE & (recall->flags)) != 0){ - return; - } - - recall->flags &= (~(AGS_RECALL_PERSISTENT | - AGS_RECALL_PERSISTENT_PLAYBACK | - AGS_RECALL_PERSISTENT_SEQUENCER | - AGS_RECALL_PERSISTENT_NOTATION)); + g_return_if_fail(AGS_IS_RECALL(recall)); - ags_recall_done(recall); + g_object_ref(G_OBJECT(recall)); + g_signal_emit(G_OBJECT(recall), + recall_signals[STOP_PERSISTENT], 0); + g_object_unref(G_OBJECT(recall)); } void