Suspend signal emission of Locations during Drag
This significantly speeds up Location Drag/motion
This commit is contained in:
parent
153c7e289d
commit
067a124fd1
@ -4346,7 +4346,7 @@ MarkerDrag::~MarkerDrag ()
|
|||||||
|
|
||||||
MarkerDrag::CopiedLocationMarkerInfo::CopiedLocationMarkerInfo (Location* l, ArdourMarker* m)
|
MarkerDrag::CopiedLocationMarkerInfo::CopiedLocationMarkerInfo (Location* l, ArdourMarker* m)
|
||||||
{
|
{
|
||||||
location = new Location (*l);
|
location = new Location (*l, true);
|
||||||
markers.push_back (m);
|
markers.push_back (m);
|
||||||
move_both = false;
|
move_both = false;
|
||||||
}
|
}
|
||||||
@ -4431,6 +4431,7 @@ MarkerDrag::start_grab (GdkEvent* event, Gdk::Cursor* cursor)
|
|||||||
if (!l) {
|
if (!l) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
lcs.push_back (l);
|
||||||
|
|
||||||
if (l->is_mark ()) {
|
if (l->is_mark ()) {
|
||||||
_copied_locations.push_back (CopiedLocationMarkerInfo (l, *i));
|
_copied_locations.push_back (CopiedLocationMarkerInfo (l, *i));
|
||||||
|
@ -1176,6 +1176,8 @@ private:
|
|||||||
CopiedLocationMarkerInfo (ARDOUR::Location* l, ArdourMarker* m);
|
CopiedLocationMarkerInfo (ARDOUR::Location* l, ArdourMarker* m);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
std::vector<ARDOUR::Location::ChangeSuspender> lcs;
|
||||||
|
|
||||||
typedef std::list<CopiedLocationMarkerInfo> CopiedLocationInfo;
|
typedef std::list<CopiedLocationMarkerInfo> CopiedLocationInfo;
|
||||||
CopiedLocationInfo _copied_locations;
|
CopiedLocationInfo _copied_locations;
|
||||||
ArdourCanvas::Points _points;
|
ArdourCanvas::Points _points;
|
||||||
|
Loading…
Reference in New Issue
Block a user