Accept 1927294 (a further patch from Gerald Young): the previous patch stopped the...
[synfig.git] / synfig-studio / trunk / src / gtkmm / renderer_ducks.cpp
index 8c3dd3e..c842811 100644 (file)
@@ -75,11 +75,12 @@ restrict_blinevertex_duck(etl::handle<Duck> duck, WorkArea& w_area, synfig::Poin
        {
                synfig::Point closest_point = duck->get_point();
                synfig::Real radius = 0.0;
+               ValueNode_BLine::Handle bline = ValueNode_BLine::Handle::cast_dynamic(bline_vertex->get_link(bline_vertex->get_link_index_from_name("bline")));
                synfig::find_closest_point( 
-                       ( *bline_vertex->get_link(bline_vertex->get_link_index_from_name("bline")) )( w_area.get_time() ),
+                       (*bline)(w_area.get_time()),
                        duck->get_point(),
                        radius,
-                       ( *bline_vertex->get_link(bline_vertex->get_link_index_from_name("loop")) )( w_area.get_time() ).get(bool()),
+                       bline->get_loop(),
                        &closest_point
                );
 
@@ -309,7 +310,9 @@ Renderer_Ducks::render_vfunc(
                if(get_work_area()->get_selected_value_node())
                {
                        synfigapp::ValueDesc value_desc((*iter)->get_value_desc());
-                       if(value_desc.is_valid() && value_desc.is_value_node() && get_work_area()->get_selected_value_node()==value_desc.get_value_node())
+                       if (value_desc.is_valid() &&
+                               ((value_desc.is_value_node()            && get_work_area()->get_selected_value_node() == value_desc.get_value_node()) ||
+                                (value_desc.parent_is_value_node()     && get_work_area()->get_selected_value_node() == value_desc.get_parent_value_node())))
                        {
                                gc->set_function(Gdk::COPY);
                                gc->set_rgb_fg_color(DUCK_COLOR_SELECTED);