+void TrackCanvas::draw_speed_highlight()
+{
+ FloatAuto *drag_speed = (FloatAuto*)mwindow->session->drag_auto;
+ if( !drag_speed ) return;
+ draw_speed_track(drag_speed->autos->track);
+ ArrayList<Auto*> &speed_gang = *mwindow->session->drag_auto_gang;
+ for( int i=0, sz=speed_gang.size(); i<sz; ++i ) {
+ Track *track = speed_gang[i]->autos->track;
+ if( track->is_hidden() ) continue;
+ draw_speed_track(track);
+ }
+}
+
+void TrackCanvas::draw_speed_track(Track *track)
+{
+ for( Edit *edit=track->edits->first; edit; edit=edit->next ) {
+ int64_t x, y, w, h;
+ edit_dimensions(edit, x, y, w, h);
+ if( !MWindowGUI::visible(x, x + w, 0, get_w()) ) continue;
+ if( !MWindowGUI::visible(y, y + h, 0, get_h()) ) continue;
+ int color = 0xc00cc0;
+ set_color(color);
+ set_opaque();
+ draw_selected(x, y, w, h);
+ }
+}
+