prevent drags on the tempo/meter markers representing a BBT marker
This commit is contained in:
@@ -3078,6 +3078,12 @@ MeterMarkerDrag::MeterMarkerDrag (Editor& e, ArdourCanvas::Item* i, bool c)
|
||||
, _old_snap_mode (e.snap_mode ())
|
||||
, before_state (0)
|
||||
{
|
||||
Temporal::MeterPoint const & mp (_marker->meter());
|
||||
|
||||
if (dynamic_cast<Temporal::MusicTimePoint const *> (&mp)) {
|
||||
throw failed_constructor ();
|
||||
}
|
||||
|
||||
DEBUG_TRACE (DEBUG::Drags, "New MeterMarkerDrag\n");
|
||||
assert (_marker);
|
||||
_movable = !TempoMap::use ()->is_initial (_marker->meter ());
|
||||
@@ -3280,6 +3286,11 @@ TempoMarkerDrag::TempoMarkerDrag (Editor& e, ArdourCanvas::Item* i)
|
||||
|
||||
_marker = reinterpret_cast<TempoMarker*> (_item->get_data ("marker"));
|
||||
_real_section = &_marker->tempo ();
|
||||
|
||||
if (dynamic_cast<Temporal::MusicTimePoint const *> (_real_section)) {
|
||||
throw failed_constructor ();
|
||||
}
|
||||
|
||||
_movable = !TempoMap::use ()->is_initial (_marker->tempo ());
|
||||
_grab_bpm = _real_section->note_types_per_minute ();
|
||||
_grab_qn = _real_section->beats ();
|
||||
|
||||
@@ -574,7 +574,10 @@ Editor::button_press_handler_1 (ArdourCanvas::Item* item, GdkEvent* event, ItemT
|
||||
if (ArdourKeyboard::indicates_constraint (event->button.state)) {
|
||||
_drags->set (new TempoEndDrag (*this, item), event);
|
||||
} else {
|
||||
_drags->set (new TempoMarkerDrag (*this, item), event);
|
||||
try {
|
||||
_drags->set (new TempoMarkerDrag (*this, item), event);
|
||||
} catch (...) {
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -588,8 +591,10 @@ Editor::button_press_handler_1 (ArdourCanvas::Item* item, GdkEvent* event, ItemT
|
||||
return true;
|
||||
|
||||
case MeterMarkerItem:
|
||||
_drags->set (
|
||||
new MeterMarkerDrag (*this, item, ArdourKeyboard::indicates_copy (event->button.state)), event);
|
||||
try {
|
||||
_drags->set (new MeterMarkerDrag (*this, item, ArdourKeyboard::indicates_copy (event->button.state)), event);
|
||||
} catch (...) {
|
||||
}
|
||||
return true;
|
||||
|
||||
case VideoBarItem:
|
||||
|
||||
Reference in New Issue
Block a user