diff --git a/lib/ace/layer/text.js b/lib/ace/layer/text.js index 89b684bf..4e17e221 100644 --- a/lib/ace/layer/text.js +++ b/lib/ace/layer/text.js @@ -121,8 +121,8 @@ var Text = function(parentEl) { // Note: characterWidth can be a float! measureNode.innerHTML = lang.stringRepeat("Xy", n); - if (document.body) { - document.body.appendChild(measureNode); + if (this.element.ownerDocument.body) { + this.element.ownerDocument.body.appendChild(measureNode); } else { var container = this.element.parentNode; while (!dom.hasCssClass(container, "ace_editor")) @@ -257,7 +257,7 @@ var Text = function(parentEl) { }; this.$renderLinesFragment = function(config, firstRow, lastRow) { - var fragment = document.createDocumentFragment(), + var fragment = this.element.ownerDocument.createDocumentFragment(), row = firstRow, fold = this.session.getNextFold(row), foldStart = fold ?fold.start.row :Infinity; diff --git a/lib/ace/scrollbar.js b/lib/ace/scrollbar.js index ad6c3b1a..ea63edec 100644 --- a/lib/ace/scrollbar.js +++ b/lib/ace/scrollbar.js @@ -56,7 +56,7 @@ var ScrollBar = function(parent) { // of 0px // in Firefox 6+ scrollbar is hidden if element has the same width as scrollbar // make element a little bit wider to retain scrollbar when page is zoomed - this.width = dom.scrollbarWidth(); + this.width = dom.scrollbarWidth(parent.ownerDocument); this.element.style.width = (this.width || 15) + 5 + "px"; event.addListener(this.element, "scroll", this.onScroll.bind(this)); diff --git a/lib/ace/virtual_renderer.js b/lib/ace/virtual_renderer.js index dfa0fb56..130121d4 100644 --- a/lib/ace/virtual_renderer.js +++ b/lib/ace/virtual_renderer.js @@ -135,7 +135,10 @@ var VirtualRenderer = function(container, theme) { height : 1 }; - this.$loop = new RenderLoop(this.$renderChanges.bind(this)); + this.$loop = new RenderLoop( + this.$renderChanges.bind(this), + this.container.ownerDocument.defaultView + ); this.$loop.schedule(this.CHANGE_FULL); this.setPadding(4);