summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/editor_mouse.cc52
1 files changed, 34 insertions, 18 deletions
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<TempoMarker*> (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<MeterMarker*> (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: