fix dragging of end xfades
authorPaul Davis <paul@linuxaudiosystems.com>
Thu, 10 May 2012 02:50:59 +0000 (02:50 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Thu, 10 May 2012 02:50:59 +0000 (02:50 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@12237 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/audio_region_view.cc
gtk2_ardour/editor_drag.cc

index a50d4752f9aa9f042cab939e28a37e39f7552398..a3b99de3f168c78c64778a216ed88a40cc0d6c5d 100644 (file)
@@ -1702,7 +1702,6 @@ AudioRegionView::redraw_end_xfade_to (boost::shared_ptr<AudioRegion> ar, framecn
 
        } else {
 
-               rend = trackview.editor().frame_to_pixel (_region->length() - inverse->back()->when);
                inverse->curve().get_vector (inverse->front()->when, inverse->back()->when, vec.get(), npoints);
                
                for (int i = 0, pci = 0; i < npoints; ++i) {
index 697122b1015b9d12cb7b696ed486e2859d58c1c4..a075008d201ec7f9baad1ba995e3973791a0743d 100644 (file)
@@ -4576,15 +4576,17 @@ CrossfadeEdgeDrag::start_grab (GdkEvent* event, Gdk::Cursor *cursor)
 void
 CrossfadeEdgeDrag::motion (GdkEvent*, bool)
 {
-       double distance = _drags->current_pointer_x() - grab_x();
+       double distance;
        double new_length;
        framecnt_t len;
 
        boost::shared_ptr<AudioRegion> ar (arv->audio_region());
 
        if (start) {
+               distance = _drags->current_pointer_x() - grab_x();
                len = ar->fade_in()->back()->when;
        } else {
+               distance = grab_x() - _drags->current_pointer_x();
                len = ar->fade_out()->back()->when;
        }
 
@@ -4595,22 +4597,22 @@ CrossfadeEdgeDrag::motion (GdkEvent*, bool)
        } else {
                arv->redraw_end_xfade_to (ar, new_length);
        }
-
-       // _editor->update_canvas_now ();
 }
 
 void
 CrossfadeEdgeDrag::finished (GdkEvent*, bool)
 {
-       double distance = _drags->current_pointer_x() - grab_x();
+       double distance;
        double new_length;
        framecnt_t len;
 
        boost::shared_ptr<AudioRegion> ar (arv->audio_region());
 
        if (start) {
+               distance = _drags->current_pointer_x() - grab_x();
                len = ar->fade_in()->back()->when;
        } else {
+               distance = grab_x() - _drags->current_pointer_x();
                len = ar->fade_out()->back()->when;
        }