From 1141c82da11be89283f07b8fdf00c83603ad34d2 Mon Sep 17 00:00:00 2001 From: Andreas Hocevar Date: Wed, 11 Oct 2017 00:32:45 +0200 Subject: [PATCH] Handle different lineWidth scaling in Safari --- src/ol/render/canvas/textreplay.js | 2 +- .../ol/style/expected/text-canvas-hidpi.png | Bin 8748 -> 5469 bytes test/rendering/ol/style/text.test.js | 7 ++++--- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/ol/render/canvas/textreplay.js b/src/ol/render/canvas/textreplay.js index 2ff5fd3792..842b8e148b 100644 --- a/src/ol/render/canvas/textreplay.js +++ b/src/ol/render/canvas/textreplay.js @@ -326,7 +326,7 @@ ol.render.canvas.TextReplay.prototype.getImage_ = function(text, fill, stroke) { context.font = textState.font; if (stroke) { context.strokeStyle = strokeState.strokeStyle; - context.lineWidth = strokeWidth * pixelRatio; + context.lineWidth = strokeWidth * (ol.has.SAFARI ? pixelRatio : 1); context.lineCap = strokeState.lineCap; context.lineJoin = strokeState.lineJoin; context.miterLimit = strokeState.miterLimit; diff --git a/test/rendering/ol/style/expected/text-canvas-hidpi.png b/test/rendering/ol/style/expected/text-canvas-hidpi.png index 4c8a444edb405a4b727f47f4c5d74a5b4cd367b7..7577d3b62f10ce6ed2c90f92342a3bb53b0451dd 100644 GIT binary patch literal 5469 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 Ar~m)} literal 8748 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