projects
/
synfig.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Turning the first point in a polygon 'off' was causing a crash.
[synfig.git]
/
synfig-studio
/
trunk
/
src
/
gtkmm
/
duckmatic.cpp
diff --git
a/synfig-studio/trunk/src/gtkmm/duckmatic.cpp
b/synfig-studio/trunk/src/gtkmm/duckmatic.cpp
index
15ee0c9
..
084f642
100644
(file)
--- a/
synfig-studio/trunk/src/gtkmm/duckmatic.cpp
+++ b/
synfig-studio/trunk/src/gtkmm/duckmatic.cpp
@@
-1695,6
+1695,7
@@
Duckmatic::add_to_ducks(const synfigapp::ValueDesc& value_desc,etl::handle<Canva
if(value_node->get_contained_type()==ValueBase::TYPE_VECTOR)
{
Bezier bezier;
if(value_node->get_contained_type()==ValueBase::TYPE_VECTOR)
{
Bezier bezier;
+ int first = -1;
for(i=0;i<value_node->link_count();i++)
{
if(!value_node->list[i].status_at_time(get_time()))
for(i=0;i<value_node->link_count();i++)
{
if(!value_node->list[i].status_at_time(get_time()))
@@
-1703,6
+1704,10
@@
Duckmatic::add_to_ducks(const synfigapp::ValueDesc& value_desc,etl::handle<Canva
return false;
etl::handle<Duck> duck(last_duck());
return false;
etl::handle<Duck> duck(last_duck());
+ // remember the index of the first vertex we didn't skip
+ if (first == -1)
+ first = i;
+
if(param_desc)
{
synfigapp::ValueDesc value_desc_origin(value_desc.get_layer(),param_desc->get_origin());
if(param_desc)
{
synfigapp::ValueDesc value_desc_origin(value_desc.get_layer(),param_desc->get_origin());
@@
-1720,7
+1725,7
@@
Duckmatic::add_to_ducks(const synfigapp::ValueDesc& value_desc,etl::handle<Canva
bezier.p1=bezier.p2;bezier.c1=bezier.c2;
bezier.p2=bezier.c2=duck;
bezier.p1=bezier.p2;bezier.c1=bezier.c2;
bezier.p2=bezier.c2=duck;
- if
(i>0
)
+ if
(first != i
)
{
handle<Bezier> bezier_(new Bezier());
bezier_->p1=bezier.p1;
{
handle<Bezier> bezier_(new Bezier());
bezier_->p1=bezier.p1;