+
+ add_action_front(action);
+
+ if(value_desc.parent_is_layer_param() && !value_desc.is_value_node())
+ {
+ // action: LayerParamSet
+ Action::Handle action(LayerParamSet::create());
+
+ action->set_param("canvas",get_canvas());
+ action->set_param("canvas_interface",get_canvas_interface());
+ action->set_param("layer",value_desc.get_layer());
+ action->set_param("param",value_desc.get_param_name());
+ action->set_param("new_value",ValueBase(canvas));
+
+ assert(action->is_ready());
+ if(!action->is_ready())
+ throw Error(Error::TYPE_NOTREADY);
+
+ add_action_front(action);
+ }
+