+ case NoteItem:
+ if (internal_editing()) {
+ /* trim notes if we're in internal edit mode and near the ends of the note */
+ ArdourCanvas::CanvasNote* cn = dynamic_cast<ArdourCanvas::CanvasNote*> (item);
+ cerr << "NoteItem button press, cursor = " << current_canvas_cursor << endl;
+ if (cn->mouse_near_ends()) {
+ _drags->set (new NoteResizeDrag (this, item), event, current_canvas_cursor);
+ } else {
+ _drags->set (new NoteDrag (this, item), event);
+ }
+ }
+ return true;
+
+ case StreamItem:
+ if (internal_editing()) {
+ if (dynamic_cast<MidiTimeAxisView*> (clicked_axisview)) {
+ _drags->set (new RegionCreateDrag (this, item, clicked_axisview), event);
+ return true;
+ }
+ } else {
+ _drags->set (new SelectionDrag (this, item, SelectionDrag::CreateSelection), event);
+ return true;
+ }
+ break;
+
+ case RegionViewNameHighlight:
+ case LeftFrameHandle:
+ case RightFrameHandle:
+ if (!clicked_regionview->region()->locked()) {
+ RegionSelection s = get_equivalent_regions (selection->regions, Properties::edit.property_id);
+ _drags->set (new TrimDrag (this, item, clicked_regionview, s.by_layer()), event);
+ return true;
+ }
+ break;
+