first vaguely working version using PresentationInfo
[ardour.git] / gtk2_ardour / editor_canvas_events.cc
index 6eb017134da64b0ab06ba898572093867ee7474d..559961512dbd3411af511d54c3f483967c53c60a 100644 (file)
@@ -677,10 +677,14 @@ Editor::canvas_line_event (GdkEvent *event, ArdourCanvas::Item* item, Automation
        AudioRegionGainLine* gl;
        if ((gl = dynamic_cast<AudioRegionGainLine*> (al)) != 0) {
                type = GainLineItem;
-               clicked_regionview = &gl->region_view ();
+               if (event->type == GDK_BUTTON_PRESS) {
+                       clicked_regionview = &gl->region_view ();
+               }
        } else {
                type = AutomationLineItem;
-               clicked_regionview = 0;
+               if (event->type == GDK_BUTTON_PRESS) {
+                       clicked_regionview = 0;
+               }
        }
 
        clicked_control_point = 0;
@@ -1009,6 +1013,12 @@ Editor::canvas_tempo_marker_event (GdkEvent *event, ArdourCanvas::Item* item, Te
        return typed_event (item, event, TempoMarkerItem);
 }
 
+bool
+Editor::canvas_tempo_curve_event (GdkEvent *event, ArdourCanvas::Item* item, TempoCurve* /*marker*/)
+{
+       return typed_event (item, event, TempoCurveItem);
+}
+
 bool
 Editor::canvas_meter_marker_event (GdkEvent *event, ArdourCanvas::Item* item, MeterMarker* /*marker*/)
 {
@@ -1270,12 +1280,12 @@ Editor::drop_regions (const Glib::RefPtr<Gdk::DragContext>& /*context*/,
                                        output_chan =  session()->master_out()->n_inputs().n_audio();
                                }
                                list<boost::shared_ptr<AudioTrack> > audio_tracks;
-                               audio_tracks = session()->new_audio_track (region->n_channels(), output_chan, ARDOUR::Normal, 0, 1, region->name());
+                               audio_tracks = session()->new_audio_track (region->n_channels(), output_chan, 0, 1, region->name(), PresentationInfo::max_order, ARDOUR::Normal);
                                rtav = axis_view_from_route (audio_tracks.front());
                        } else if (boost::dynamic_pointer_cast<MidiRegion> (region)) {
                                ChanCount one_midi_port (DataType::MIDI, 1);
                                list<boost::shared_ptr<MidiTrack> > midi_tracks;
-                               midi_tracks = session()->new_midi_track (one_midi_port, one_midi_port, boost::shared_ptr<ARDOUR::PluginInfo>(), ARDOUR::Normal, 0, 1, region->name());
+                               midi_tracks = session()->new_midi_track (one_midi_port, one_midi_port, boost::shared_ptr<ARDOUR::PluginInfo>(), 0, 1, region->name(), PresentationInfo::max_order, ARDOUR::Normal);
                                rtav = axis_view_from_route (midi_tracks.front());
                        } else {
                                return;