From 658c6936fc04a4ae712814d1a106556476696efd Mon Sep 17 00:00:00 2001 From: Julian Viereck Date: Tue, 25 Sep 2012 16:07:59 +0200 Subject: [PATCH 1/2] Tune whitespace insertion --- src/evaluator.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/evaluator.js b/src/evaluator.js index 0b9bdf42d..17c26cb52 100644 --- a/src/evaluator.js +++ b/src/evaluator.js @@ -551,8 +551,13 @@ var PartialEvaluator = (function PartialEvaluatorClosure() { if (typeof items[j] === 'string') { chunk += fontCharsToUnicode(items[j], font); } else if (items[j] < 0 && font.spaceWidth > 0) { - var numFakeSpaces = Math.round(-items[j] / font.spaceWidth); - if (numFakeSpaces > 0) { + var fakeSpaces = -items[j] / font.spaceWidth; + if (fakeSpaces > 1.5) { + fakeSpaces = Math.round(fakeSpaces); + while (fakeSpaces--) { + chunk += ' '; + } + } else if (-items[j] / font.spaceWidth > 0.35) { chunk += ' '; } } From 47809fe3165ab805c324e909878fb712455b8f57 Mon Sep 17 00:00:00 2001 From: Julian Viereck Date: Wed, 26 Sep 2012 19:46:06 +0200 Subject: [PATCH 2/2] Address yury's review comments --- src/evaluator.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/evaluator.js b/src/evaluator.js index 17c26cb52..f6ef31c9b 100644 --- a/src/evaluator.js +++ b/src/evaluator.js @@ -510,6 +510,8 @@ var PartialEvaluator = (function PartialEvaluatorClosure() { getTextContent: function partialEvaluatorGetIRQueue( stream, resources, state) { var bidiTexts; + var kSpaceFactor = 0.35; + var kMultipleSpaceFactor = 1.5; if (!state) { bidiTexts = []; @@ -552,12 +554,12 @@ var PartialEvaluator = (function PartialEvaluatorClosure() { chunk += fontCharsToUnicode(items[j], font); } else if (items[j] < 0 && font.spaceWidth > 0) { var fakeSpaces = -items[j] / font.spaceWidth; - if (fakeSpaces > 1.5) { + if (fakeSpaces > kMultipleSpaceFactor) { fakeSpaces = Math.round(fakeSpaces); while (fakeSpaces--) { chunk += ' '; } - } else if (-items[j] / font.spaceWidth > 0.35) { + } else if (fakeSpaces > kSpaceFactor) { chunk += ' '; } }