X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Fsrc%2Fgtkmm%2Fcanvasview.cpp;h=5afa535c6b36994832fec5a60db9d8fd71970170;hb=1fa3eea69cdaf4a0260ff01b443007b4a27d1d4b;hp=39274371a586a835606be93e4a0ecd60d56e9b78;hpb=2e199d64aab59eab3bc8ef168a7603e3694e318a;p=synfig.git diff --git a/synfig-studio/src/gtkmm/canvasview.cpp b/synfig-studio/src/gtkmm/canvasview.cpp index 3927437..5afa535 100644 --- a/synfig-studio/src/gtkmm/canvasview.cpp +++ b/synfig-studio/src/gtkmm/canvasview.cpp @@ -52,6 +52,7 @@ #include #include #include +#include #include #include #include @@ -684,10 +685,10 @@ CanvasView::CanvasView(etl::loose_handle instance,etl::handleadd( Gtk::Action::create("MenuFile", _("_File")) ); action_group->add( Gtk::Action::create("new", Gtk::Stock::NEW), @@ -2949,6 +2950,15 @@ CanvasView::on_duck_changed(const synfig::Point &value,const synfigapp::ValueDes return false; } + if (ValueNode_Range::Handle range_value_node = ValueNode_Range::Handle::cast_dynamic(value_desc.get_value_node())) + { + int link_index(range_value_node->get_link_index_from_name("link")); + return canvas_interface()->change_value( + synfigapp::ValueDesc(range_value_node,link_index), + range_value_node->get_inverse(get_time(), value) + ); + } + switch(value_desc.get_value_type()) { case ValueBase::TYPE_REAL: @@ -2982,6 +2992,14 @@ CanvasView::on_duck_angle_changed(const synfig::Angle &rotation,const synfigapp: return false; } + if (ValueNode_Range::Handle range_value_node = ValueNode_Range::Handle::cast_dynamic(value_desc.get_value_node())) + { + int link_index(range_value_node->get_link_index_from_name("link")); + return canvas_interface()->change_value( + synfigapp::ValueDesc(range_value_node,link_index), + range_value_node->get_inverse(get_time(), rotation) + ); + } // \todo will this really always be the case? assert(value_desc.get_value_type() == ValueBase::TYPE_ANGLE); return canvas_interface()->change_value(value_desc, value_desc.get_value(get_time()).get(Angle()) + rotation);