summaryrefslogtreecommitdiff
path: root/canvas
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2016-10-06 09:56:29 +0100
committerCaolán McNamara <caolanm@redhat.com>2016-10-06 09:56:59 +0100
commitc5d355e9c9cbc94eede8f438895e192d834f7096 (patch)
tree418d2940b29340e5399cf2e4e3da277c99048610 /canvas
parente713ec442de1370829f6d0e01d73b5d6ed6cd0f8 (diff)
Resolves: tdf#103026 invalid dash causes CAIRO_STATUS_INVALID_DASH state
Change-Id: I072635ff7c67022ebfd5bdb475e390f3aab7a51c
Diffstat (limited to 'canvas')
-rw-r--r--canvas/source/cairo/cairo_canvashelper.cxx5
1 files changed, 4 insertions, 1 deletions
diff --git a/canvas/source/cairo/cairo_canvashelper.cxx b/canvas/source/cairo/cairo_canvashelper.cxx
index 773dbfa472bb..b2f673bab8c5 100644
--- a/canvas/source/cairo/cairo_canvashelper.cxx
+++ b/canvas/source/cairo/cairo_canvashelper.cxx
@@ -1226,7 +1226,10 @@ namespace cairocanvas
break;
}
- if (strokeAttributes.DashArray.getLength() > 0)
+ //tdf#103026 If the w scaling is 0, then all dashes become zero so
+ //cairo will set the cairo_t status to CAIRO_STATUS_INVALID_DASH
+ //and no further drawing will occur
+ if (strokeAttributes.DashArray.getLength() > 0 && w > 0.0)
{
auto aDashArray(comphelper::sequenceToContainer<std::vector<double>>(strokeAttributes.DashArray));
for (auto& rDash : aDashArray)