summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gui/painting/qstroker.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/gui/painting/qstroker.cpp b/src/gui/painting/qstroker.cpp
index 1fa63c3cb5..57c69e1389 100644
--- a/src/gui/painting/qstroker.cpp
+++ b/src/gui/painting/qstroker.cpp
@@ -1184,6 +1184,7 @@ void QDashStroker::processCurrentSubpath()
// Check if the entire line should be clipped away or simplified
bool clipIt = clipping && !lineIntersectsRect(prev, e, clip_tl, clip_br);
bool skipDashing = elen * invSumLength > repetitionLimit();
+ int maxDashes = dashCount;
if (skipDashing || clipIt) {
// Cut away full dash sequences.
elen -= std::floor(elen * invSumLength) * sumLength;
@@ -1198,7 +1199,7 @@ void QDashStroker::processCurrentSubpath()
pos = estop; // move pos to next path element
done = true;
} else { // Dash is on this line
- pos = dpos + estart;
+ pos = --maxDashes > 0 ? dpos + estart : estop;
done = pos >= estop;
if (++idash >= dashCount)
idash = 0;