summaryrefslogtreecommitdiffstats
path: root/src/display/drawing-shape.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/display/drawing-shape.cpp')
-rw-r--r--src/display/drawing-shape.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/display/drawing-shape.cpp b/src/display/drawing-shape.cpp
index 63db9475d..c2208d161 100644
--- a/src/display/drawing-shape.cpp
+++ b/src/display/drawing-shape.cpp
@@ -185,6 +185,17 @@ DrawingShape::_renderStroke(DrawingContext &dc)
dc.save();
}
_nrstyle.applyStroke(dc);
+
+ // Special handling for thin outline mode when we're drawing lines smaller than half a
+ // pixel
+ if (_drawing.outlineThin()) {
+ double outline_thin_size = 0.5, trash = 0.5;
+ dc.device_to_user_distance(outline_thin_size, trash);
+ if (_nrstyle.stroke_width < outline_thin_size) {
+ dc.setLineWidth(outline_thin_size);
+ }
+ }
+
dc.strokePreserve();
dc.newPath(); // clear path
}
@@ -255,6 +266,17 @@ DrawingShape::_renderItem(DrawingContext &dc, Geom::IntRect const &area, unsigne
}
if (has_stroke) {
_nrstyle.applyStroke(dc);
+
+ // Special handling for thin outline mode when we're drawing lines smaller than
+ // half a pixel
+ if (_drawing.outlineThin()) {
+ double outline_thin_size = 0.5, trash = 0.5;
+ dc.device_to_user_distance(outline_thin_size, trash);
+ if (_nrstyle.stroke_width < outline_thin_size) {
+ dc.setLineWidth(outline_thin_size);
+ }
+ }
+
dc.strokePreserve();
}
dc.newPath(); // clear path