edit_items.push_back (MenuElem (menu_item_name, *region_menu));
if (multiple_regions_at_position && (layering_order_editor == 0 || !layering_order_editor->is_visible ())) {
- edit_items.push_back (MenuElem (_("Choose top region"), (bind (mem_fun(*this, &Editor::change_region_layering_order), position))));
+ edit_items.push_back (MenuElem (_("Choose Top Region"), (bind (mem_fun(*this, &Editor::change_region_layering_order), position))));
}
edit_items.push_back (SeparatorElem());
}
void
Editor::change_region_layering_order (framepos_t position)
{
- if (!clicked_regionview) {
+ if (!clicked_routeview) {
if (layering_order_editor) {
layering_order_editor->hide ();
}
return;
}
- if (!clicked_routeview) {
- return;
- }
-
boost::shared_ptr<Track> track = boost::dynamic_pointer_cast<Track> (clicked_routeview->route());
if (!track) {
case GDK_BUTTON_PRESS:
clicked_crossfadeview = xfv;
clicked_axisview = &clicked_crossfadeview->get_time_axis_view();
+ clicked_routeview = dynamic_cast<RouteTimeAxisView*>(clicked_axisview);
if (event->button.button == 3) {
return button_press_handler (item, event, CrossfadeViewItem);
}
}
}
+ freeze ();
+
/* now reset the layers without holding the region lock */
for (list<LayerInfo>::iterator x = layerinfo.begin(); x != layerinfo.end(); ++x) {
region->set_layer (target_layer);
-#if 0
- /* now check all dependents */
+ /* now check all dependents, since we changed the layering */
for (list<LayerInfo>::iterator x = layerinfo.begin(); x != layerinfo.end(); ++x) {
check_dependents (x->first, false);
}
check_dependents (region, false);
-#endif
+ notify_layering_changed ();
+
+ thaw ();
return 0;
}