mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-08 07:45:00 +01:00
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
3 changed files with 13 additions and 12 deletions
|
|
@ -160,7 +160,7 @@ MidiStreamView::add_region_view_internal (boost::shared_ptr<Region> r, bool wait
|
||||||
region_views.push_front (region_view);
|
region_views.push_front (region_view);
|
||||||
|
|
||||||
{
|
{
|
||||||
RegionView::DisplaySuspender ds (*region_view);
|
RegionView::DisplaySuspender ds (*region_view, false);
|
||||||
|
|
||||||
display_region (region_view, wait_for_data);
|
display_region (region_view, wait_for_data);
|
||||||
|
|
||||||
|
|
@ -181,13 +181,13 @@ MidiStreamView::add_region_view_internal (boost::shared_ptr<Region> r, bool wait
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
MidiStreamView::display_region (MidiRegionView* region_view, bool load_model)
|
MidiStreamView::display_region (MidiRegionView* region_view, bool)
|
||||||
{
|
{
|
||||||
if (!region_view) {
|
if (!region_view) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
RegionView::DisplaySuspender ds (*region_view);
|
RegionView::DisplaySuspender ds (*region_view, false);
|
||||||
|
|
||||||
region_view->set_height (child_height());
|
region_view->set_height (child_height());
|
||||||
|
|
||||||
|
|
@ -285,7 +285,7 @@ MidiStreamView::redisplay_track ()
|
||||||
// Flag region views as invalid and disable drawing
|
// Flag region views as invalid and disable drawing
|
||||||
for (i = region_views.begin(); i != region_views.end(); ++i) {
|
for (i = region_views.begin(); i != region_views.end(); ++i) {
|
||||||
(*i)->set_valid (false);
|
(*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
|
// Add and display region views, and flag them as valid
|
||||||
|
|
|
||||||
|
|
@ -429,6 +429,8 @@ RegionView::lock_toggle ()
|
||||||
void
|
void
|
||||||
RegionView::region_changed (const PropertyChange& what_changed)
|
RegionView::region_changed (const PropertyChange& what_changed)
|
||||||
{
|
{
|
||||||
|
DisplaySuspender ds (*this, false);
|
||||||
|
|
||||||
ENSURE_GUI_THREAD (*this, &RegionView::region_changed, what_changed);
|
ENSURE_GUI_THREAD (*this, &RegionView::region_changed, what_changed);
|
||||||
|
|
||||||
if (what_changed.contains (ARDOUR::bounds_change)) {
|
if (what_changed.contains (ARDOUR::bounds_change)) {
|
||||||
|
|
@ -1254,13 +1256,12 @@ RegionView::drop_cue_marker (ArdourMarker* m)
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
RegionView::enable_display ()
|
RegionView::enable_display (bool view_only)
|
||||||
{
|
{
|
||||||
std::cerr << "EnableDisplay " << this << " currently " << _disable_display << std::endl;
|
|
||||||
if (_disable_display) {
|
if (_disable_display) {
|
||||||
_disable_display--;
|
_disable_display--;
|
||||||
if (_disable_display == 0) {
|
if (_disable_display == 0) {
|
||||||
redisplay (false);
|
redisplay (view_only);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1268,7 +1269,6 @@ RegionView::enable_display ()
|
||||||
void
|
void
|
||||||
RegionView::disable_display ()
|
RegionView::disable_display ()
|
||||||
{
|
{
|
||||||
std::cerr << "DisableDisplay " << this << " currently " << _disable_display << std::endl;
|
|
||||||
_disable_display++;
|
_disable_display++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -107,18 +107,19 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
struct DisplaySuspender {
|
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 ();
|
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 ();
|
region_view.disable_display ();
|
||||||
}
|
}
|
||||||
|
|
||||||
~DisplaySuspender () {
|
~DisplaySuspender () {
|
||||||
region_view.enable_display ();
|
region_view.enable_display (view_only);
|
||||||
}
|
}
|
||||||
RegionView& region_view;
|
RegionView& region_view;
|
||||||
|
bool view_only;
|
||||||
};
|
};
|
||||||
|
|
||||||
virtual void update_coverage_frame (LayerDisplay);
|
virtual void update_coverage_frame (LayerDisplay);
|
||||||
|
|
@ -249,7 +250,7 @@ private:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
friend class DisplaySuspender;
|
friend class DisplaySuspender;
|
||||||
void enable_display();
|
void enable_display (bool view_only);
|
||||||
void disable_display();
|
void disable_display();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue