mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-16 11:46:25 +01:00
when flushing notifications/signals from an ARDOUR::Playlist, emit the RegionAdded/ContentsChanged signals first so that when LayersChanged is sent, the receivers know about all the new regions
This commit is contained in:
parent
ab658d7ca1
commit
5d53335300
1 changed files with 32 additions and 27 deletions
|
|
@ -557,6 +557,7 @@ Playlist::notify_region_added (boost::shared_ptr<Region> r)
|
||||||
pending_contents_change = false;
|
pending_contents_change = false;
|
||||||
RegionAdded (boost::weak_ptr<Region> (r)); /* EMIT SIGNAL */
|
RegionAdded (boost::weak_ptr<Region> (r)); /* EMIT SIGNAL */
|
||||||
ContentsChanged (); /* EMIT SIGNAL */
|
ContentsChanged (); /* EMIT SIGNAL */
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -611,12 +612,12 @@ Playlist::flush_notifications (bool from_undo)
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
if (((regions_changed || pending_contents_change) && !in_set_state) || pending_layering) {
|
/* notify about contents/region changes first so that layering changes
|
||||||
relayer ();
|
* in a UI will take place on the new contents.
|
||||||
}
|
*/
|
||||||
|
|
||||||
if (regions_changed || pending_contents_change) {
|
if (regions_changed || pending_contents_change) {
|
||||||
pending_contents_change = false;
|
pending_layering = true;
|
||||||
ContentsChanged (); /* EMIT SIGNAL */
|
ContentsChanged (); /* EMIT SIGNAL */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -625,6 +626,10 @@ Playlist::flush_notifications (bool from_undo)
|
||||||
RegionAdded (boost::weak_ptr<Region> (*s)); /* EMIT SIGNAL */
|
RegionAdded (boost::weak_ptr<Region> (*s)); /* EMIT SIGNAL */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((regions_changed && !in_set_state) || pending_layering) {
|
||||||
|
relayer ();
|
||||||
|
}
|
||||||
|
|
||||||
coalesce_and_check_crossfades (crossfade_ranges);
|
coalesce_and_check_crossfades (crossfade_ranges);
|
||||||
|
|
||||||
if (!pending_range_moves.empty ()) {
|
if (!pending_range_moves.empty ()) {
|
||||||
|
|
@ -641,7 +646,7 @@ Playlist::flush_notifications (bool from_undo)
|
||||||
clear_pending ();
|
clear_pending ();
|
||||||
|
|
||||||
in_flush = false;
|
in_flush = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Playlist::clear_pending ()
|
Playlist::clear_pending ()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue