From a4ef760c7aa1b483883522a28063d45fe808ec2f Mon Sep 17 00:00:00 2001 From: Garen Torikian Date: Fri, 23 Aug 2013 12:59:04 -0700 Subject: [PATCH 1/3] Support fractional fixed-width fonts --- lib/ace/layer/text.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/ace/layer/text.js b/lib/ace/layer/text.js index ed926584..e8c49cea 100644 --- a/lib/ace/layer/text.js +++ b/lib/ace/layer/text.js @@ -161,7 +161,11 @@ var Text = function(parentEl) { style.overflow = "visible"; style.whiteSpace = "nowrap"; - measureNode.innerHTML = "X"; + var measuredString = ""; + for (var i = 0; i < 100; i++) + measuredString += "X"; + + measureNode.innerHTML = measuredString; var container = this.element.parentNode; while (container && !dom.hasCssClass(container, "ace_editor")) @@ -177,7 +181,7 @@ var Text = function(parentEl) { var size = { height: rect.height, - width: rect.width + width: rect.width / 100 }; // Size and width can be null if the editor is not visible or From 4b42933b8a3a2997fd5c1e980be5a691c2f5f38b Mon Sep 17 00:00:00 2001 From: Garen Torikian Date: Fri, 23 Aug 2013 12:59:50 -0700 Subject: [PATCH 2/3] Add comment explaining maths --- lib/ace/layer/text.js | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/ace/layer/text.js b/lib/ace/layer/text.js index e8c49cea..ecd025cb 100644 --- a/lib/ace/layer/text.js +++ b/lib/ace/layer/text.js @@ -161,6 +161,7 @@ var Text = function(parentEl) { style.overflow = "visible"; style.whiteSpace = "nowrap"; + // fixes fractional fixed-width fonts; see http://git.io/CavZNw var measuredString = ""; for (var i = 0; i < 100; i++) measuredString += "X"; From d9c5921e48ffb5a7d00362c468223e8a0a593fde Mon Sep 17 00:00:00 2001 From: Garen Torikian Date: Fri, 23 Aug 2013 14:02:26 -0700 Subject: [PATCH 3/3] Use lang.stringRepeat instead of a for loop --- lib/ace/layer/text.js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/lib/ace/layer/text.js b/lib/ace/layer/text.js index ecd025cb..7e81b584 100644 --- a/lib/ace/layer/text.js +++ b/lib/ace/layer/text.js @@ -162,11 +162,7 @@ var Text = function(parentEl) { style.whiteSpace = "nowrap"; // fixes fractional fixed-width fonts; see http://git.io/CavZNw - var measuredString = ""; - for (var i = 0; i < 100; i++) - measuredString += "X"; - - measureNode.innerHTML = measuredString; + measureNode.innerHTML = lang.stringRepeat("X", 100); var container = this.element.parentNode; while (container && !dom.hasCssClass(container, "ace_editor"))