switch (item_type) {
case RegionItem:
- if (!get_smart_mode() || (_join_object_range_state == JOIN_OBJECT_RANGE_OBJECT)) {
+ if (!get_smart_mode() || (_join_object_range_state != JOIN_OBJECT_RANGE_RANGE)) {
if (press) {
if (mouse_mode != MouseRange) {
set_selected_regionview_from_click (press, op);
case RegionViewNameHighlight:
if (!clicked_regionview->region()->locked()) {
- RegionSelection s = get_equivalent_regions (selection->regions, Properties::select.property_id);
- _drags->set (new TrimDrag (this, item, clicked_regionview, s.by_layer()), event);
+ _drags->set (new TrimDrag (this, item, clicked_regionview, selection->regions.by_layer()), event);
return true;
}
break;
switch (item_type) {
case FadeInHandleItem:
{
- RegionSelection s = get_equivalent_regions (selection->regions, Properties::select.property_id);
- _drags->set (new FadeInDrag (this, item, reinterpret_cast<RegionView*> (item->get_data("regionview")), s), event, _cursors->fade_in);
+ _drags->set (new FadeInDrag (this, item, reinterpret_cast<RegionView*> (item->get_data("regionview")), selection->regions), event, _cursors->fade_in);
return true;
}
case FadeOutHandleItem:
{
- RegionSelection s = get_equivalent_regions (selection->regions, Properties::select.property_id);
- _drags->set (new FadeOutDrag (this, item, reinterpret_cast<RegionView*> (item->get_data("regionview")), s), event, _cursors->fade_out);
+ _drags->set (new FadeOutDrag (this, item, reinterpret_cast<RegionView*> (item->get_data("regionview")), selection->regions), event, _cursors->fade_out);
return true;
}
case EndCrossFadeItem:
/* we might allow user to grab inside the fade to trim a region with preserve_fade_anchor. for not this is not fully implemented */
// 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(), true), event);
+// _drags->set (new TrimDrag (this, item, clicked_regionview, selection->regions.by_layer(), true), event);
// return true;
// }
break;
}
if (internal_editing ()) {
- if (event->type == GDK_2BUTTON_PRESS && event->button.button == 1) {
- Glib::RefPtr<Action> act = ActionManager::get_action (X_("MouseMode"), X_("toggle-internal-edit"));
- act->activate ();
- }
break;
}
case LeftFrameHandle:
case RightFrameHandle:
if (!clicked_regionview->region()->locked()) {
- RegionSelection s = get_equivalent_regions (selection->regions, Properties::select.property_id);
- _drags->set (new TrimDrag (this, item, clicked_regionview, s.by_layer()), event);
+ _drags->set (new TrimDrag (this, item, clicked_regionview, selection->regions.by_layer()), event);
return true;
}
break;
case RegionViewName:
{
/* rename happens on edit clicks */
- RegionSelection s = get_equivalent_regions (selection->regions, Properties::select.property_id);
- _drags->set (new TrimDrag (this, clicked_regionview->get_name_highlight(), clicked_regionview, s.by_layer()), event);
+ _drags->set (new TrimDrag (this, clicked_regionview->get_name_highlight(), clicked_regionview, selection->regions.by_layer()), event);
return true;
break;
}
break;
}
-#ifdef WITH_CMT
- case ImageFrameHandleStartItem:
- imageframe_start_handle_op(item, event) ;
- return(true) ;
- break ;
- case ImageFrameHandleEndItem:
- imageframe_end_handle_op(item, event) ;
- return(true) ;
- break ;
- case MarkerViewHandleStartItem:
- markerview_item_start_handle_op(item, event) ;
- return(true) ;
- break ;
- case MarkerViewHandleEndItem:
- markerview_item_end_handle_op(item, event) ;
- return(true) ;
- break ;
- case MarkerViewItem:
- start_markerview_grab(item, event) ;
- break ;
- case ImageFrameItem:
- start_imageframe_grab(item, event) ;
- break ;
-#endif
-
case MarkerBarItem:
break;
bool
Editor::button_press_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemType item_type)
{
+ if (event->type == GDK_2BUTTON_PRESS) {
+ _drags->mark_double_click ();
+ return false;
+ }
+
if (event->type != GDK_BUTTON_PRESS) {
return false;
}
//not rolling, range mode click + join_play_range : locate the PH here
if ( !_drags->active () && !_session->transport_rolling() && ( effective_mouse_mode() == MouseRange ) && Config->get_always_play_range() ) {
- framepos_t where = canvas_event_frame (event, 0, 0);
+ framepos_t where = canvas_event_frame (event);
snap_to(where);
_session->request_locate (where, false);
}
bool
Editor::button_release_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemType item_type)
{
- framepos_t where = canvas_event_frame (event, 0, 0);
+ framepos_t where = canvas_event_frame (event);
AutomationTimeAxisView* atv = 0;
if (pre_press_cursor) {
were_dragging = true;
}
- update_region_layering_order_editor ();
+ update_region_layering_order_editor ();
/* edit events get handled here */
edit_control_point (item);
break;
- case NoteItem:
- {
- NoteBase* e = reinterpret_cast<NoteBase*> (item->get_data ("notebase"));
- assert (e);
- edit_notes (e->region_view().selection ());
- break;
- }
-
default:
break;
}
popup_control_point_context_menu (item, event);
break;
-#ifdef WITH_CMT
- case ImageFrameItem:
- popup_imageframe_edit_menu(1, event->button.time, item, true) ;
- break ;
- case ImageFrameTimeAxisItem:
- popup_imageframe_edit_menu(1, event->button.time, item, false) ;
- break ;
- case MarkerViewItem:
- popup_marker_time_axis_edit_menu(1, event->button.time, item, true) ;
- break ;
- case MarkerTimeAxisItem:
- popup_marker_time_axis_edit_menu(1, event->button.time, item, false) ;
- break ;
-#endif
-
default:
break;
}
break;
case StartSelectionTrimItem:
-#ifdef WITH_CMT
- case ImageFrameHandleStartItem:
- case MarkerViewHandleStartItem:
-#endif
if (is_drawable()) {
set_canvas_cursor (_cursors->left_side_trim);
}
break;
case EndSelectionTrimItem:
-#ifdef WITH_CMT
- case ImageFrameHandleEndItem:
- case MarkerViewHandleEndItem:
-#endif
if (is_drawable()) {
set_canvas_cursor (_cursors->right_side_trim);
}
case EndSelectionTrimItem:
case PlayheadCursorItem:
-#ifdef WITH_CMT
- case ImageFrameHandleStartItem:
- case ImageFrameHandleEndItem:
- case MarkerViewHandleStartItem:
- case MarkerViewHandleEndItem:
-#endif
-
_over_region_trim_target = false;
if (is_drawable()) {
}
ControlPointDialog d (p);
- d.set_position (Gtk::WIN_POS_MOUSE);
ensure_float (d);
if (d.run () != RESPONSE_ACCEPT) {
}
void
-Editor::edit_notes (MidiRegionView::Selection const & s)
+Editor::edit_notes (TimeAxisViewItem& tavi)
{
+ MidiRegionView* mrv = dynamic_cast<MidiRegionView*>(&tavi);
+
+ if (!mrv) {
+ return;
+ }
+
+ MidiRegionView::Selection const & s = mrv->selection();
+
if (s.empty ()) {
return;
}
- EditNoteDialog d (&(*s.begin())->region_view(), s);
- d.set_position (Gtk::WIN_POS_MOUSE);
- ensure_float (d);
+ EditNoteDialog* d = new EditNoteDialog (&(*s.begin())->region_view(), s);
+ d->show_all ();
+ ensure_float (*d);
- d.run ();
+ d->signal_response().connect (sigc::bind (sigc::mem_fun (*this, &Editor::note_edit_done), d));
}
+void
+Editor::note_edit_done (int r, EditNoteDialog* d)
+{
+ d->done (r);
+ delete d;
+}
void
Editor::visible_order_range (int* low, int* high) const
if (Config->get_edit_mode() == Splice) {
_drags->add (new RegionSpliceDrag (this, item, region_view, selection->regions.by_layer()));
} else {
- RegionSelection s = get_equivalent_regions (selection->regions, ARDOUR::Properties::select.property_id);
- _drags->add (new RegionMoveDrag (this, item, region_view, s.by_layer(), false, false));
+ _drags->add (new RegionMoveDrag (this, item, region_view, selection->regions.by_layer(), false, false));
}
}
_region_motion_group->raise_to_top ();
- RegionSelection s = get_equivalent_regions (selection->regions, ARDOUR::Properties::select.property_id);
- _drags->add (new RegionMoveDrag (this, item, region_view, s.by_layer(), false, true));
+ _drags->add (new RegionMoveDrag (this, item, region_view, selection->regions.by_layer(), false, true));
}
void
return;
}
- RegionSelection s = get_equivalent_regions (selection->regions, ARDOUR::Properties::select.property_id);
- _drags->add (new RegionMoveDrag (this, item, region_view, s.by_layer(), true, false));
+ _drags->add (new RegionMoveDrag (this, item, region_view, selection->regions.by_layer(), true, false));
begin_reversible_command (Operations::drag_region_brush);
}