- if (ev->type == GDK_BUTTON_RELEASE) {
- const nframes_t when = trackview.editor().pixel_to_frame((nframes_t)ev->button.x)
- - _region->position();
- add_automation_event(ev, when, ev->button.y);
+ PublicEditor& e = trackview.editor ();
+
+ if (ev->type == GDK_BUTTON_PRESS && e.current_mouse_mode() == Editing::MouseObject) {
+
+ /* XXX: icky dcast to Editor */
+ e.drags()->set (new RubberbandSelectDrag (dynamic_cast<Editor*> (&e), group), ev);
+
+ } else if (ev->type == GDK_BUTTON_RELEASE) {
+
+ if (trackview.editor().drags()->active() && trackview.editor().drags()->end_grab (ev)) {
+ return true;
+ }
+
+ double x = ev->button.x;
+ double y = ev->button.y;
+
+ /* convert to item coordinates in the time axis view */
+ automation_view()->canvas_display()->w2i (x, y);
+
+ /* clamp y */
+ y = max (y, 0.0);
+ y = min (y, _height - NAME_HIGHLIGHT_SIZE);
+
+ add_automation_event (ev, trackview.editor().pixel_to_frame (x) - _region->position(), y);