X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;ds=sidebyside;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Fduckmatic.cpp;h=118d33985249510f88b998b76481c9bed94c1b22;hb=d8b000c637f56647d30a929b4fa4b7950c814c3b;hp=fec7061aaccdc59ba85435ce3fcd810862301277;hpb=9f44faaf8a4b3c513aad5e2ac4d195c28b0fe567;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/duckmatic.cpp b/synfig-studio/trunk/src/gtkmm/duckmatic.cpp index fec7061..118d339 100644 --- a/synfig-studio/trunk/src/gtkmm/duckmatic.cpp +++ b/synfig-studio/trunk/src/gtkmm/duckmatic.cpp @@ -99,7 +99,12 @@ Duckmatic::Duckmatic(): Duckmatic::~Duckmatic() { clear_ducks(); - //synfig::info("Duckmatic::~Duckmatic(): Deleted. Duck Count=%d",Duck::duck_count); + + if (Duck::duck_count) + synfig::error("%d ducks not yet deleted!", Duck::duck_count); + + if (getenv("SYNFIG_DEBUG_DESTRUCTORS")) + synfig::info("Duckmatic::~Duckmatic(): Deleted"); } void @@ -243,20 +248,17 @@ Duckmatic::is_duck_group_selectable(const etl::handle& x)const const Type type(get_type_mask()); if(( x->get_type() && (!(type & x->get_type())) ) ) - { return false; - } + if(x->get_value_desc().parent_is_layer_param() && type & Duck::TYPE_POSITION) { Layer::Handle layer(x->get_value_desc().get_layer()); String layer_name(layer->get_name()); - if( - layer_name=="outline" || - layer_name=="region" || - layer_name=="polygon" || - layer_name=="curve_gradient" - ) + + if (layer_name == "outline" || layer_name == "region" || layer_name == "plant" || + layer_name == "polygon" || layer_name == "curve_gradient") return false; + if((layer_name=="PasteCanvas"|| layer_name=="paste_canvas") && !layer->get_param("children_lock").get(bool())) return false; @@ -408,7 +410,7 @@ Duckmatic::end_duck_drag() } Point -Duckmatic::snap_point_to_grid(const Point& x, float radius)const +Duckmatic::snap_point_to_grid(const synfig::Point& x, float radius)const { Point ret(x); @@ -817,6 +819,7 @@ Duckmatic::find_bezier(synfig::Point pos, synfig::Real scale, synfig::Real radiu bool Duckmatic::save_sketch(const synfig::String& filename)const { + ChangeLocale change_locale(LC_NUMERIC, "C"); std::ofstream file(filename.c_str()); if(!file)return false; @@ -850,6 +853,7 @@ Duckmatic::save_sketch(const synfig::String& filename)const bool Duckmatic::load_sketch(const synfig::String& filename) { + ChangeLocale change_locale(LC_NUMERIC, "C"); std::ifstream file(filename.c_str()); if(!file)