diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2008-03-24 14:13:33 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2008-03-24 14:13:33 +0000 |
commit | ad0fded50d9995090a5773c7a894372deba703a1 (patch) | |
tree | 4aff68c0d1c8211b2ead966f24520bd863367252 | |
parent | 9e8c6830fd50f1adf58c95053a04249c7ca8bfb6 (diff) |
fix specific copy-drag ops
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@3173 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r-- | gtk2_ardour/editor_mouse.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc index fdbc8dd596..b43280690a 100644 --- a/gtk2_ardour/editor_mouse.cc +++ b/gtk2_ardour/editor_mouse.cc @@ -3401,7 +3401,9 @@ Editor::region_drag_motion_callback (ArdourCanvas::Item* item, GdkEvent* event) // printf ("3: pending_region_position= %lu %lu\n", pending_region_position, drag_info.last_frame_position ); - bool x_move_allowed = ( drag_info.copy || !drag_info.x_constrained && (Config->get_edit_mode() != Lock)) || ( drag_info.x_constrained && (Config->get_edit_mode() == Lock)) ; + bool x_move_allowed = ((drag_info.copy && !drag_info.x_constrained) || + (!drag_info.x_constrained && (Config->get_edit_mode() != Lock)) || + (drag_info.x_constrained && (Config->get_edit_mode() == Lock))); if ( pending_region_position != drag_info.last_frame_position && x_move_allowed ) { @@ -3701,7 +3703,7 @@ Editor::region_drag_finished_callback (ArdourCanvas::Item* item, GdkEvent* event changed_position = (drag_info.last_frame_position != (nframes_t) (rv->region()->position()/speed)); changed_tracks = (dest_tv != &rv->get_time_axis_view()); - if (changed_position) { + if (changed_position && !drag_info.x_constrained) { where = (nframes_t) (unit_to_frame (ix1) * speed); } else { where = rv->region()->position(); |