X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/3193141f55df20910cf8ba35f9e669d79c90d3f4..717c14c014e3c988bcb392599a47ffa92630da78:/platforma/static/js/lib/codemirror/codemirror.js diff --git a/platforma/static/js/lib/codemirror/codemirror.js b/platforma/static/js/lib/codemirror/codemirror.js index f63ed07e..97e2657b 100644 --- a/platforma/static/js/lib/codemirror/codemirror.js +++ b/platforma/static/js/lib/codemirror/codemirror.js @@ -81,10 +81,13 @@ var CodeMirror = (function(){ var nextNum = 1, barWidth = null; function sizeBar() { - for (var root = frame; root.parentNode; root = root.parentNode); - if (root != document || !win.Editor) { - clearInterval(sizeInterval); - return; + if (!frame.offsetWidth || !win.Editor) { + for (var cur = frame; cur.parentNode; cur = cur.parentNode) { + if (cur != document) { + clearInterval(sizeInterval); + return; + } + } } if (nums.offsetWidth != barWidth) { @@ -132,7 +135,6 @@ var CodeMirror = (function(){ var node = place; place = function(n){node.appendChild(n);}; } - if (options.lineNumbers) place = wrapLineNumberDiv(place); place(frame); @@ -173,14 +175,10 @@ var CodeMirror = (function(){ getCode: function() {return this.editor.getCode();}, setCode: function(code) {this.editor.importCode(code);}, - selection: function() {this.focusIfIE(); return this.editor.selectedText();}, + selection: function() {return this.editor.selectedText();}, reindent: function() {this.editor.reindent();}, - reindentSelection: function() {this.focusIfIE(); this.editor.reindentSelection(null);}, + reindentSelection: function() {this.editor.reindentSelection(null);}, - focusIfIE: function() { - // in IE, a lot of selection-related functionality only works when the frame is focused - if (this.win.select.ie_selection) this.focus(); - }, focus: function() { this.win.focus(); if (this.editor.selectionSnapshot) // IE hack @@ -208,7 +206,10 @@ var CodeMirror = (function(){ setParser: function(name) {this.editor.setParser(name);}, - cursorPosition: function(start) {this.focusIfIE(); return this.editor.cursorPosition(start);}, + cursorPosition: function(start) { + if (this.win.select.ie_selection) this.focus(); + return this.editor.cursorPosition(start); + }, firstLine: function() {return this.editor.firstLine();}, lastLine: function() {return this.editor.lastLine();}, nextLine: function(line) {return this.editor.nextLine(line);},