- if (ValueNode_Composite::Handle::cast_dynamic(parent_value_node) &&
- parent_value_node->get_type() == ValueBase::TYPE_BLINEPOINT &&
- ValueNode_BLineCalcVertex::Handle::cast_dynamic(
- synfigapp::ValueDesc(parent_value_node,
- parent_value_node->get_link_index_from_name("point")).get_value_node()))
- return false;
+ if (ValueNode_Composite::Handle::cast_dynamic(parent_value_node))
+ {
+ if (parent_value_node->get_type() == ValueBase::TYPE_BLINEPOINT &&
+ ValueNode_BLineCalcVertex::Handle::cast_dynamic(
+ parent_value_node->get_link("point")))
+ return false;
+ }
+ else if (ValueNode_BLine::Handle::cast_dynamic(parent_value_node))
+ {
+ ValueNode_Composite::Handle composite(ValueNode_Composite::Handle::cast_dynamic(
+ value_desc.get_value_node()));
+ if (composite &&
+ ValueNode_BLineCalcVertex::Handle::cast_dynamic(composite->get_link("point")))
+ return false;
+ }