Fix bug 6735, Take into account snap to when stretching regions in Editor
authorTim Mayberry <mojofunk@gmail.com>
Thu, 21 Jan 2016 04:00:54 +0000 (14:00 +1000)
committerTim Mayberry <mojofunk@gmail.com>
Thu, 21 Jan 2016 04:07:49 +0000 (14:07 +1000)
gtk2_ardour/editor_drag.cc

index 12cea263b9cce1314a0d700e1ec30262345d5a15..0aac54ebc048b37796fb4d0cd267840818c39b51 100644 (file)
@@ -4712,20 +4712,24 @@ TimeFXDrag::motion (GdkEvent* event, bool)
 }
 
 void
-TimeFXDrag::finished (GdkEvent* /*event*/, bool movement_occurred)
+TimeFXDrag::finished (GdkEvent* event, bool movement_occurred)
 {
-       _primary->get_time_axis_view().hide_timestretch ();
-
        if (!movement_occurred) {
                return;
        }
 
-       if (last_pointer_frame() < _primary->region()->position()) {
+       motion (event, false);
+
+       _primary->get_time_axis_view().hide_timestretch ();
+
+       framepos_t adjusted_frame_pos = adjusted_current_frame (event);
+
+       if (adjusted_frame_pos < _primary->region()->position()) {
                /* backwards drag of the left edge - not usable */
                return;
        }
 
-       framecnt_t newlen = last_pointer_frame() - _primary->region()->position();
+       framecnt_t newlen = adjusted_frame_pos - _primary->region()->position();
 
        float percentage = (double) newlen / (double) _primary->region()->length();