diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc index 4816c2e04c..9df6de3a8e 100644 --- a/gtk2_ardour/editor_mouse.cc +++ b/gtk2_ardour/editor_mouse.cc @@ -589,26 +589,42 @@ Editor::button_press_handler_1 (ArdourCanvas::Item* item, GdkEvent* event, ItemT return true; case TempoMarkerItem: - _drags->set ( - new TempoMarkerDrag ( - this, - item, - Keyboard::modifier_state_contains (event->button.state, Keyboard::CopyModifier) - ), - event - ); - return true; + { + TempoMarker* m = reinterpret_cast (item->get_data ("marker")); + assert (m); + if (m->tempo().movable ()) { + _drags->set ( + new TempoMarkerDrag ( + this, + item, + Keyboard::modifier_state_contains (event->button.state, Keyboard::CopyModifier) + ), + event + ); + return true; + } else { + return false; + } + } case MeterMarkerItem: - _drags->set ( - new MeterMarkerDrag ( - this, - item, - Keyboard::modifier_state_contains (event->button.state, Keyboard::CopyModifier) - ), - event - ); - return true; + { + MeterMarker* m = reinterpret_cast (item->get_data ("marker")); + assert (m); + if (m->meter().movable ()) { + _drags->set ( + new MeterMarkerDrag ( + this, + item, + Keyboard::modifier_state_contains (event->button.state, Keyboard::CopyModifier) + ), + event + ); + return true; + } else { + return false; + } + } case MarkerBarItem: case TempoBarItem: