X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Fduckmatic.cpp;h=740f9d719ed309bc2de6ad04efd28ae22219ed0f;hb=e6e385d724df6e43dcf9846c947576d61feb29d1;hp=110a35632449911efbbb6a72a4c2ebdaf97921c2;hpb=06b7eccae8f804c78c3f0d99fe5071a0e34f53ae;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/duckmatic.cpp b/synfig-studio/trunk/src/gtkmm/duckmatic.cpp index 110a356..740f9d7 100644 --- a/synfig-studio/trunk/src/gtkmm/duckmatic.cpp +++ b/synfig-studio/trunk/src/gtkmm/duckmatic.cpp @@ -556,6 +556,31 @@ Duckmatic::signal_edited_selected_ducks() throw String("Bad edit"); } } + else if (App::restrict_radius_ducks && + (*iter)->is_radius()) + { + Point point((*iter)->get_point()); + bool changed = false; + + if (point[0] * (flip_x_ ? -1 : 1) < 0) + { + point[0] = 0; + changed = true; + } + if (point[1] * (flip_y_ ? -1 : 1) < 0) + { + point[1] = 0; + changed = true; + } + + if (changed) (*iter)->set_point(point); + + if(!(*iter)->signal_edited()(point)) + { + selected_ducks=old_set; + throw String("Bad edit"); + } + } else { if(!(*iter)->signal_edited()((*iter)->get_point()))