as an experiment, prevent redisplay of (MIDI) regions during trimming

This doesn't actually work right now because of a conflicting design in MidiRegionView, but
could be promising. Or it might be reverted
This commit is contained in:
Paul Davis 2022-03-30 23:08:38 -06:00
parent 5ec7375884
commit 582661dbd0
2 changed files with 7 additions and 1 deletions

View file

@ -3110,6 +3110,7 @@ TrimDrag::start_grab (GdkEvent* event, Gdk::Cursor*)
for (list<DraggingView>::const_iterator i = _views.begin(); i != _views.end(); ++i) { for (list<DraggingView>::const_iterator i = _views.begin(); i != _views.end(); ++i) {
i->view->region()->suspend_property_changes (); i->view->region()->suspend_property_changes ();
suspenders.push_back (RegionView::DisplaySuspender (*i->view));
} }
} }
@ -3352,6 +3353,8 @@ TrimDrag::finished (GdkEvent* event, bool movement_occurred)
for (list<DraggingView>::const_iterator i = _views.begin(); i != _views.end(); ++i) { for (list<DraggingView>::const_iterator i = _views.begin(); i != _views.end(); ++i) {
i->view->region()->resume_property_changes (); i->view->region()->resume_property_changes ();
} }
suspenders.clear ();
} }
void void

View file

@ -27,6 +27,7 @@
#define __gtk2_ardour_editor_drag_h_ #define __gtk2_ardour_editor_drag_h_
#include <list> #include <list>
#include <vector>
#include <gdk/gdk.h> #include <gdk/gdk.h>
#include <stdint.h> #include <stdint.h>
@ -41,6 +42,7 @@
#include "mouse_cursors.h" #include "mouse_cursors.h"
#include "editing.h" #include "editing.h"
#include "track_selection.h" #include "track_selection.h"
#include "region_view.h"
namespace ARDOUR { namespace ARDOUR {
class Location; class Location;
@ -65,7 +67,6 @@ class TimeAxisView;
class MidiTimeAxisView; class MidiTimeAxisView;
class Drag; class Drag;
class NoteBase; class NoteBase;
class RegionView;
class TimeAxisView; class TimeAxisView;
class RouteTimeAxisView; class RouteTimeAxisView;
class RegionSelection; class RegionSelection;
@ -819,6 +820,8 @@ private:
bool _preserve_fade_anchor; bool _preserve_fade_anchor;
bool _jump_position_when_done; bool _jump_position_when_done;
std::vector<RegionView::DisplaySuspender> suspenders;
}; };
/** Meter marker drag */ /** Meter marker drag */