stash info on whether we disabled region view redisplay for view-only or model changes
The bool may be unnecessary since everywhere we use this seems to be for model changes
This commit is contained in:
parent
c0eb86b586
commit
f8b0a8843c
@ -160,7 +160,7 @@ MidiStreamView::add_region_view_internal (boost::shared_ptr<Region> r, bool wait
|
||||
region_views.push_front (region_view);
|
||||
|
||||
{
|
||||
RegionView::DisplaySuspender ds (*region_view);
|
||||
RegionView::DisplaySuspender ds (*region_view, false);
|
||||
|
||||
display_region (region_view, wait_for_data);
|
||||
|
||||
@ -181,13 +181,13 @@ MidiStreamView::add_region_view_internal (boost::shared_ptr<Region> r, bool wait
|
||||
}
|
||||
|
||||
void
|
||||
MidiStreamView::display_region (MidiRegionView* region_view, bool load_model)
|
||||
MidiStreamView::display_region (MidiRegionView* region_view, bool)
|
||||
{
|
||||
if (!region_view) {
|
||||
return;
|
||||
}
|
||||
|
||||
RegionView::DisplaySuspender ds (*region_view);
|
||||
RegionView::DisplaySuspender ds (*region_view, false);
|
||||
|
||||
region_view->set_height (child_height());
|
||||
|
||||
@ -285,7 +285,7 @@ MidiStreamView::redisplay_track ()
|
||||
// Flag region views as invalid and disable drawing
|
||||
for (i = region_views.begin(); i != region_views.end(); ++i) {
|
||||
(*i)->set_valid (false);
|
||||
vds.push_back (RegionView::DisplaySuspender (**i));
|
||||
vds.push_back (RegionView::DisplaySuspender (**i, false));
|
||||
}
|
||||
|
||||
// Add and display region views, and flag them as valid
|
||||
|
@ -429,6 +429,8 @@ RegionView::lock_toggle ()
|
||||
void
|
||||
RegionView::region_changed (const PropertyChange& what_changed)
|
||||
{
|
||||
DisplaySuspender ds (*this, false);
|
||||
|
||||
ENSURE_GUI_THREAD (*this, &RegionView::region_changed, what_changed);
|
||||
|
||||
if (what_changed.contains (ARDOUR::bounds_change)) {
|
||||
@ -1254,13 +1256,12 @@ RegionView::drop_cue_marker (ArdourMarker* m)
|
||||
}
|
||||
|
||||
void
|
||||
RegionView::enable_display ()
|
||||
RegionView::enable_display (bool view_only)
|
||||
{
|
||||
std::cerr << "EnableDisplay " << this << " currently " << _disable_display << std::endl;
|
||||
if (_disable_display) {
|
||||
_disable_display--;
|
||||
if (_disable_display == 0) {
|
||||
redisplay (false);
|
||||
redisplay (view_only);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1268,7 +1269,6 @@ RegionView::enable_display ()
|
||||
void
|
||||
RegionView::disable_display ()
|
||||
{
|
||||
std::cerr << "DisableDisplay " << this << " currently " << _disable_display << std::endl;
|
||||
_disable_display++;
|
||||
}
|
||||
|
||||
|
@ -107,18 +107,19 @@ public:
|
||||
}
|
||||
|
||||
struct DisplaySuspender {
|
||||
DisplaySuspender (RegionView& rv) : region_view (rv) {
|
||||
DisplaySuspender (RegionView& rv, bool just_view = false) : region_view (rv), view_only (just_view) {
|
||||
region_view.disable_display ();
|
||||
}
|
||||
|
||||
DisplaySuspender (DisplaySuspender const & other) : region_view (other.region_view) {
|
||||
DisplaySuspender (DisplaySuspender const & other) : region_view (other.region_view), view_only (other.view_only) {
|
||||
region_view.disable_display ();
|
||||
}
|
||||
|
||||
~DisplaySuspender () {
|
||||
region_view.enable_display ();
|
||||
region_view.enable_display (view_only);
|
||||
}
|
||||
RegionView& region_view;
|
||||
bool view_only;
|
||||
};
|
||||
|
||||
virtual void update_coverage_frame (LayerDisplay);
|
||||
@ -249,7 +250,7 @@ private:
|
||||
|
||||
private:
|
||||
friend class DisplaySuspender;
|
||||
void enable_display();
|
||||
void enable_display (bool view_only);
|
||||
void disable_display();
|
||||
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user