summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_drag.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2010-06-28 18:43:40 +0000
committerCarl Hetherington <carl@carlh.net>2010-06-28 18:43:40 +0000
commitbf7023bc7f91c5cb6b9b6235d5368f0cf5d25c82 (patch)
treedc99fda9b2838ed5dbed76664399797f8fc818e9 /gtk2_ardour/editor_drag.cc
parent89b686f9375decea756e4111a7c1f44192e00f0b (diff)
Disable midi model updates during trim drags. Speeds the drags up at the cost of not updating notes in real-time. Fixes #3162.
git-svn-id: svn://localhost/ardour2/branches/3.0@7315 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/editor_drag.cc')
-rw-r--r--gtk2_ardour/editor_drag.cc9
1 files changed, 5 insertions, 4 deletions
diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc
index d49f60c9ca..6d6b368b3a 100644
--- a/gtk2_ardour/editor_drag.cc
+++ b/gtk2_ardour/editor_drag.cc
@@ -1699,10 +1699,9 @@ TrimDrag::start_grab (GdkEvent* event, Gdk::Cursor *)
speed = tv->track()->speed();
}
- nframes64_t region_start = (nframes64_t) (_primary->region()->position() / speed);
- nframes64_t region_end = (nframes64_t) (_primary->region()->last_frame() / speed);
- nframes64_t region_length = (nframes64_t) (_primary->region()->length() / speed);
-
+ nframes64_t const region_start = (nframes64_t) (_primary->region()->position() / speed);
+ nframes64_t const region_end = (nframes64_t) (_primary->region()->last_frame() / speed);
+ nframes64_t const region_length = (nframes64_t) (_primary->region()->length() / speed);
nframes64_t const pf = adjusted_current_frame (event);
@@ -1778,6 +1777,7 @@ TrimDrag::motion (GdkEvent* event, bool first_move)
for (list<DraggingView>::const_iterator i = _views.begin(); i != _views.end(); ++i) {
RegionView* rv = i->view;
rv->fake_set_opaque(false);
+ rv->enable_display (false);
rv->region()->clear_history ();
rv->region()->suspend_property_changes ();
@@ -1869,6 +1869,7 @@ TrimDrag::finished (GdkEvent* event, bool movement_occurred)
for (list<DraggingView>::const_iterator i = _views.begin(); i != _views.end(); ++i) {
_editor->thaw_region_after_trim (*i->view);
+ i->view->enable_display (true);
i->view->fake_set_opaque (true);
if (_have_transaction) {
_editor->session()->add_command (new StatefulDiffCommand (i->view->region()));