diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index 2481ffc188..c6485e4546 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -2530,7 +2530,7 @@ private: friend class RegionDrag; friend class RegionMoveDrag; friend class TrimDrag; - friend class BBTRulerDrag; + friend class MappingDrag; friend class MeterMarkerDrag; friend class BBTMarkerDrag; friend class TempoMarkerDrag; diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc index e6604d4363..a8a7dc0074 100644 --- a/gtk2_ardour/editor_drag.cc +++ b/gtk2_ardour/editor_drag.cc @@ -3476,18 +3476,18 @@ BBTMarkerDrag::aborted (bool moved) } } -BBTRulerDrag::BBTRulerDrag (Editor* e, ArdourCanvas::Item* i) +MappingDrag::MappingDrag (Editor* e, ArdourCanvas::Item* i) : Drag (e, i, Temporal::BeatTime) , _tempo (0) , _before_state (0) , _drag_valid (true) { - DEBUG_TRACE (DEBUG::Drags, "New BBTRulerDrag\n"); + DEBUG_TRACE (DEBUG::Drags, "New MappingDrag\n"); } void -BBTRulerDrag::start_grab (GdkEvent* event, Gdk::Cursor* cursor) +MappingDrag::start_grab (GdkEvent* event, Gdk::Cursor* cursor) { map = _editor->begin_tempo_mapping (); @@ -3515,7 +3515,7 @@ BBTRulerDrag::start_grab (GdkEvent* event, Gdk::Cursor* cursor) } void -BBTRulerDrag::setup_pointer_offset () +MappingDrag::setup_pointer_offset () { /* get current state */ _before_state = &map->get_state(); @@ -3533,7 +3533,7 @@ BBTRulerDrag::setup_pointer_offset () } void -BBTRulerDrag::motion (GdkEvent* event, bool first_move) +MappingDrag::motion (GdkEvent* event, bool first_move) { if (!_drag_valid) { return; @@ -3570,7 +3570,7 @@ BBTRulerDrag::motion (GdkEvent* event, bool first_move) } void -BBTRulerDrag::finished (GdkEvent* event, bool movement_occurred) +MappingDrag::finished (GdkEvent* event, bool movement_occurred) { if (!_drag_valid) { _editor->abort_tempo_map_edit (); @@ -3613,7 +3613,7 @@ BBTRulerDrag::finished (GdkEvent* event, bool movement_occurred) } void -BBTRulerDrag::aborted (bool moved) +MappingDrag::aborted (bool moved) { _editor->abort_tempo_mapping (); } diff --git a/gtk2_ardour/editor_drag.h b/gtk2_ardour/editor_drag.h index baa69a6b50..482ad364c6 100644 --- a/gtk2_ardour/editor_drag.h +++ b/gtk2_ardour/editor_drag.h @@ -915,10 +915,10 @@ private: /** BBT Ruler drag */ -class BBTRulerDrag : public Drag +class MappingDrag : public Drag { public: - BBTRulerDrag (Editor *, ArdourCanvas::Item *); + MappingDrag (Editor *, ArdourCanvas::Item *); void start_grab (GdkEvent *, Gdk::Cursor* c = 0); void motion (GdkEvent *, bool); diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc index 4a6ca725a6..e1780e6f8f 100644 --- a/gtk2_ardour/editor_mouse.cc +++ b/gtk2_ardour/editor_mouse.cc @@ -817,7 +817,15 @@ Editor::button_press_handler_1 (ArdourCanvas::Item* item, GdkEvent* event, ItemT break; case MappingBarItem: - break; + if (!Keyboard::modifier_state_equals (event->button.state, Keyboard::PrimaryModifier) + && !ArdourKeyboard::indicates_constraint (event->button.state)) { + _drags->set (new CursorDrag (this, *_playhead_cursor, false), event); + } else if (Keyboard::modifier_state_equals (event->button.state, Keyboard::PrimaryModifier|Keyboard::TertiaryModifier)) { + _drags->set (new TempoTwistDrag (this, item), event); + } else if (Keyboard::modifier_state_contains (event->button.state, Keyboard::PrimaryModifier)) { + _drags->set (new MappingDrag (this, item), event); + } + return true; case TempoBarItem: case TempoCurveItem: @@ -841,10 +849,6 @@ Editor::button_press_handler_1 (ArdourCanvas::Item* item, GdkEvent* event, ItemT if (!Keyboard::modifier_state_equals (event->button.state, Keyboard::PrimaryModifier) && !ArdourKeyboard::indicates_constraint (event->button.state)) { _drags->set (new CursorDrag (this, *_playhead_cursor, false), event); - } else if (Keyboard::modifier_state_equals (event->button.state, Keyboard::PrimaryModifier|Keyboard::TertiaryModifier)) { - _drags->set (new TempoTwistDrag (this, item), event); - } else if (Keyboard::modifier_state_contains (event->button.state, Keyboard::PrimaryModifier)) { - _drags->set (new BBTRulerDrag (this, item), event); } return true;