From 632c4ab2643eba90a5a2816befaba27f20740bc4 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Thu, 8 Sep 2011 17:49:36 +0000 Subject: [PATCH] Don't allow non-movable meter / tempo markers to be dragged (part of #4313). git-svn-id: svn://localhost/ardour2/branches/3.0@10067 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/editor_mouse.cc | 52 ++++++++++++++++++++++++------------- 1 file 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 (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: