fix ie issue to convert document to screen coordinates

This commit is contained in:
Fabian Jakobs 2010-05-05 10:50:38 +02:00
commit 05fd6df8fe
3 changed files with 20 additions and 7 deletions

View file

@ -115,11 +115,10 @@
</div>
<script type="text/editor" id="jstext">function foo(items) {
for (var i=0; i<items.length; i++) {
alert(items[i] + "juhu";
}
}
</script>
for (var i=0; i<items.length; i++) {
alert(items[i] + "juhu";
}
}</script>
<script type="text/editor" id="csstext">.text-layer {
font-family: Monaco, "Courier New", monospace;

View file

@ -228,7 +228,7 @@ ace.VirtualRenderer = function(container) {
var screenColumn = 0;
var remaining = docColumn;
var line = this.doc.getLine(row).split(/\t/g);
var line = this.doc.getLine(row).split("\t");
for (var i=0; i<line.length; i++) {
var len = line[i].length;
if (remaining > len) {
@ -240,6 +240,7 @@ ace.VirtualRenderer = function(container) {
break;
}
}
return screenColumn;
};
@ -249,7 +250,7 @@ ace.VirtualRenderer = function(container) {
var docColumn = 0;
var remaining = screenColumn;
var line = this.doc.getLine(row).split(/\t/g);
var line = this.doc.getLine(row).split("\t");
for (var i=0; i<line.length; i++) {
var len = line[i].length;
if (remaining >= len + tabSize) {

View file

@ -25,6 +25,19 @@ var VirtualRendererTest = new TestCase("VirtualRendererTest", {
assertEquals(15, renderer.$documentToScreenColumn(0, 13));
},
"test: convert document to scrren coordinates with leading tabs": function() {
var el = document.createElement("div");
var renderer = new ace.VirtualRenderer(el);
var doc = new ace.Document("\t\t123");
doc.setTabSize(4);
renderer.setDocument(doc);
assertEquals(0, renderer.$documentToScreenColumn(0, 0));
assertEquals(4, renderer.$documentToScreenColumn(0, 1));
assertEquals(8, renderer.$documentToScreenColumn(0, 2));
assertEquals(9, renderer.$documentToScreenColumn(0, 3));
},
"test: convert screen to document coordinates" : function() {
var el = document.createElement("div");
var renderer = new ace.VirtualRenderer(el);