diff --git a/lib/ace/editor.js b/lib/ace/editor.js index f87ad128..f85debf6 100644 --- a/lib/ace/editor.js +++ b/lib/ace/editor.js @@ -1015,6 +1015,8 @@ var Editor = function(renderer, session) { **/ this.setReadOnly = function(readOnly) { this.$readOnly = readOnly; + this.textInput.setReadOnly(readOnly); + this.renderer.$cursorLayer.setBlinking(!readOnly); }; /** diff --git a/lib/ace/keyboard/textinput.js b/lib/ace/keyboard/textinput.js index 3321f2b9..183260c9 100644 --- a/lib/ace/keyboard/textinput.js +++ b/lib/ace/keyboard/textinput.js @@ -355,11 +355,14 @@ var TextInput = function(parentNode, host) { event.addListener(text, "keyup", onCompositionUpdate); event.addListener(text, "compositionend", onCompositionEnd); - // CONTEXTMENU this.getElement = function() { return text; }; + this.setReadOnly = function(readOnly) { + text.readOnly = readOnly; + }; + this.onContextMenu = function(e) { if (!tempStyle) tempStyle = text.style.cssText; diff --git a/lib/ace/mouse/dragdrop.js b/lib/ace/mouse/dragdrop.js index 9f6c0c15..88f526b5 100644 --- a/lib/ace/mouse/dragdrop.js +++ b/lib/ace/mouse/dragdrop.js @@ -41,6 +41,8 @@ var DragdropHandler = function(mouseHandler) { var mouseTarget = editor.container; event.addListener(mouseTarget, "dragenter", function(e) { + if (editor.getReadOnly()) + return; counter++; if (!dragSelectionMarker) { range = editor.getSelectionRange(); @@ -55,6 +57,8 @@ var DragdropHandler = function(mouseHandler) { }); event.addListener(mouseTarget, "dragover", function(e) { + if (editor.getReadOnly()) + return; x = e.clientX; y = e.clientY; return event.preventDefault(e); @@ -67,10 +71,11 @@ var DragdropHandler = function(mouseHandler) { }; event.addListener(mouseTarget, "dragleave", function(e) { + if (editor.getReadOnly()) + return; counter--; if (counter > 0) return; - console.log(e.type, counter,e.target); clearInterval(timerId); editor.session.removeMarker(dragSelectionMarker); dragSelectionMarker = null; @@ -79,7 +84,8 @@ var DragdropHandler = function(mouseHandler) { }); event.addListener(mouseTarget, "drop", function(e) { - console.log(e.type, counter,e.target); + if (editor.getReadOnly()) + return; counter = 0; clearInterval(timerId); editor.session.removeMarker(dragSelectionMarker);