13
0

do not add items twice to their canvas parent!

This commit is contained in:
Paul Davis 2017-01-18 10:21:58 +01:00
parent ef64c7ba19
commit c91c028c37
2 changed files with 7 additions and 5 deletions

View File

@ -99,7 +99,7 @@ public:
void ungrab ();
void unparent ();
void reparent (Item *);
void reparent (Item *, bool already_added = false);
/** @return Parent group, or 0 if this is the root group */
Item* parent () const {

View File

@ -410,7 +410,7 @@ Item::unparent ()
}
void
Item::reparent (Item* new_parent)
Item::reparent (Item* new_parent, bool already_added)
{
if (new_parent == _parent) {
return;
@ -429,7 +429,9 @@ Item::reparent (Item* new_parent)
find_scroll_parent ();
_parent->add (this);
if (!already_added) {
_parent->add (this);
}
}
void
@ -862,7 +864,7 @@ Item::add (Item* i)
/* XXX should really notify canvas about this */
_items.push_back (i);
i->reparent (this);
i->reparent (this, true);
invalidate_lut ();
_bounding_box_dirty = true;
}
@ -873,7 +875,7 @@ Item::add_front (Item* i)
/* XXX should really notify canvas about this */
_items.push_front (i);
i->reparent (this);
i->reparent (this, true);
invalidate_lut ();
_bounding_box_dirty = true;
}