summaryrefslogtreecommitdiffstats
path: root/src/sp-shape.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/sp-shape.cpp')
-rw-r--r--src/sp-shape.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/sp-shape.cpp b/src/sp-shape.cpp
index bf8fd2003..2a23b1115 100644
--- a/src/sp-shape.cpp
+++ b/src/sp-shape.cpp
@@ -171,6 +171,10 @@ sp_shape_build (SPObject *object, SPDocument *document, Inkscape::XML::Node *rep
if (((SPObjectClass *) (parent_class))->build) {
(*((SPObjectClass *) (parent_class))->build) (object, document, repr);
}
+
+ for (int i = 0 ; i < SP_MARKER_LOC_QTY ; i++) {
+ sp_shape_set_marker (object, i, object->style->marker[i].value);
+ }
}
/**
@@ -196,10 +200,11 @@ sp_shape_release (SPObject *object)
for (i=SP_MARKER_LOC_START; i<SP_MARKER_LOC_QTY; i++) {
if (shape->marker[i]) {
- sp_signal_disconnect_by_data (shape->marker[i], object);
for (v = item->display; v != NULL; v = v->next) {
sp_marker_hide ((SPMarker *) shape->marker[i], NR_ARENA_ITEM_GET_KEY (v->arenaitem) + i);
}
+ shape->release_connect[i].disconnect();
+ shape->modified_connect[i].disconnect();
shape->marker[i] = sp_object_hunref (shape->marker[i], object);
}
}
@@ -894,7 +899,8 @@ sp_shape_marker_release (SPObject *marker, SPShape *shape)
/* nr_arena_item_set_mask (v->arenaitem, NULL); */
}
/* Detach marker */
- sp_signal_disconnect_by_data (shape->marker[i], item);
+ shape->release_connect[i].disconnect();
+ shape->modified_connect[i].disconnect();
shape->marker[i] = sp_object_hunref (shape->marker[i], item);
}
}