diff options
author | Carl Hetherington <carl@carlh.net> | 2011-09-08 17:49:36 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2011-09-08 17:49:36 +0000 |
commit | 632c4ab2643eba90a5a2816befaba27f20740bc4 (patch) | |
tree | 5d9233e833266989eafb32ee726715db0cc2faf0 /gtk2_ardour | |
parent | 6972b09116f0a34e258199bff2efc68c9c4266f5 (diff) |
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
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/editor_mouse.cc | 52 |
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: |