diff --git a/lib/ace/css/editor.css b/lib/ace/css/editor.css index 350cc8bf..31b0cc09 100644 --- a/lib/ace/css/editor.css +++ b/lib/ace/css/editor.css @@ -76,9 +76,11 @@ .ace_editor textarea { position: fixed; z-index: -1; - opacity: 0; width: 10px; height: 30px; + opacity: 0; + background: transparent; + appearance: none; border: none; resize: none; outline: none; diff --git a/lib/ace/keyboard/textinput.js b/lib/ace/keyboard/textinput.js index 097149a7..a6f43ede 100644 --- a/lib/ace/keyboard/textinput.js +++ b/lib/ace/keyboard/textinput.js @@ -43,6 +43,7 @@ var useragent = require("pilot/useragent"); var TextInput = function(parentNode, host) { var text = document.createElement("textarea"); + text.style.left = "-10000px"; parentNode.appendChild(text); var PLACEHOLDER = String.fromCharCode(0); diff --git a/lib/ace/virtual_renderer.js b/lib/ace/virtual_renderer.js index 171d263c..6b94b43b 100644 --- a/lib/ace/virtual_renderer.js +++ b/lib/ace/virtual_renderer.js @@ -43,6 +43,7 @@ define(function(require, exports, module) { var oop = require("pilot/oop"); var dom = require("pilot/dom"); var event = require("pilot/event"); +var useragent = require("pilot/useragent"); var GutterLayer = require("ace/layer/gutter").Gutter; var MarkerLayer = require("ace/layer/marker").Marker; var TextLayer = require("ace/layer/text").Text; @@ -301,6 +302,10 @@ var VirtualRenderer = function(container, theme) { }; this.moveTextAreaToCursor = function(textarea) { + // in IE the native cursor always shines through + if (useragent.isIE) + return; + var pos = this.$cursorLayer.getPixelPosition(); if (!pos) return;