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.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/sp-shape.cpp b/src/sp-shape.cpp
index c01f8535d..54f674f6b 100644
--- a/src/sp-shape.cpp
+++ b/src/sp-shape.cpp
@@ -1060,9 +1060,14 @@ sp_shape_has_markers (SPShape const *shape)
int
sp_shape_number_of_markers (SPShape *shape, int type)
{
- int n = 0;
- for (NArtBpath const* bp = SP_CURVE_BPATH(shape->curve); bp->code != NR_END; bp++) {
- if (sp_shape_marker_required (shape, type, bp)) {
+ Geom::PathVector const & pathv = shape->curve->get_pathvector();
+
+ guint n = shape->marker[SP_MARKER_LOC_START] ? pathv.size() : 0;
+
+ for(Geom::PathVector::const_iterator path_it = pathv.begin(); path_it != pathv.end(); ++path_it) {
+ n += shape->marker[SP_MARKER_LOC_MID] ? path_it->size() : 0;
+
+ if ( shape->marker[SP_MARKER_LOC_END] && !path_it->empty()) {
n++;
}
}