fix flash of hidden textarea

This commit is contained in:
Fabian Jakobs 2011-12-20 12:16:49 +01:00
commit 3b7871ce0e
30 changed files with 68 additions and 62 deletions

View file

@ -51,6 +51,7 @@ var TextInput = function(parentNode, host) {
text.setAttribute("x-palm-disable-auto-cap", true); text.setAttribute("x-palm-disable-auto-cap", true);
text.style.left = "-10000px"; text.style.left = "-10000px";
text.style.position = "fixed";
parentNode.insertBefore(text, parentNode.firstChild); parentNode.insertBefore(text, parentNode.firstChild);
var PLACEHOLDER = String.fromCharCode(0); var PLACEHOLDER = String.fromCharCode(0);

View file

@ -145,9 +145,9 @@ exports.importCssString = function importCssString(cssText, id, doc) {
if (id) if (id)
style.title = id; style.title = id;
} else { } else {
style = doc.createElementNS ? style = doc.createElementNS
doc.createElementNS(XHTML_NS, "style") : ? doc.createElementNS(XHTML_NS, "style")
doc.createElement("style"); : doc.createElement("style");
style.appendChild(doc.createTextNode(cssText)); style.appendChild(doc.createTextNode(cssText));
if (id) if (id)

View file

@ -59,9 +59,11 @@ var RenderLoop = function(onRender, win) {
var _self = this; var _self = this;
event.nextTick(function() { event.nextTick(function() {
_self.pending = false; _self.pending = false;
var changes = _self.changes; var changes;
while (changes = _self.changes) {
_self.changes = 0; _self.changes = 0;
_self.onRender(changes); _self.onRender(changes);
}
}, this.window); }, this.window);
} }
}; };

View file

@ -207,4 +207,7 @@ exports.cssText = ".ace-chrome .ace_editor {\
color: #994409;\ color: #994409;\
}"; }";
var dom = require("../lib/dom");
dom.importCssString(exports.cssText, exports.cssClass);
}); });

View file

@ -147,5 +147,6 @@ exports.cssText = "\
}"; }";
var dom = require("../lib/dom"); var dom = require("../lib/dom");
dom.importCssString(exports.cssText); dom.importCssString(exports.cssText, exports.cssClass);
}); });

View file

@ -148,5 +148,6 @@ background-color:#E92E2E;\
}"; }";
var dom = require("../lib/dom"); var dom = require("../lib/dom");
dom.importCssString(exports.cssText); dom.importCssString(exports.cssText, exports.cssClass);
}); });

View file

@ -162,5 +162,5 @@ background-color:#001221;\
}"; }";
var dom = require("../lib/dom"); var dom = require("../lib/dom");
dom.importCssString(exports.cssText); dom.importCssString(exports.cssText, exports.cssClass);
}); });

View file

@ -194,6 +194,5 @@ exports.cssText = ".ace-crimson-editor .ace_editor {\
exports.cssClass = "ace-crimson-editor"; exports.cssClass = "ace-crimson-editor";
var dom = require("../lib/dom"); var dom = require("../lib/dom");
dom.importCssString(exports.cssText); dom.importCssString(exports.cssText, exports.cssClass);
}); });

View file

@ -165,5 +165,5 @@ color:#5A525F;\
}"; }";
var dom = require("../lib/dom"); var dom = require("../lib/dom");
dom.importCssString(exports.cssText); dom.importCssString(exports.cssText, exports.cssClass);
}); });

View file

@ -222,5 +222,5 @@ exports.cssText = ".ace-tm .ace_editor {\
}"; }";
var dom = require("../lib/dom"); var dom = require("../lib/dom");
dom.importCssString(exports.cssText); dom.importCssString(exports.cssText, exports.cssClass);
}); });

View file

@ -141,6 +141,5 @@ exports.cssText = ".ace-eclipse .ace_editor {\
exports.cssClass = "ace-eclipse"; exports.cssClass = "ace-eclipse";
var dom = require("../lib/dom"); var dom = require("../lib/dom");
dom.importCssString(exports.cssText); dom.importCssString(exports.cssText, exports.cssClass);
}); });

View file

@ -154,5 +154,5 @@ background-color:#FFF980; \
}"; }";
var dom = require("../lib/dom"); var dom = require("../lib/dom");
dom.importCssString(exports.cssText); dom.importCssString(exports.cssText, exports.cssClass);
}); });

View file

@ -157,5 +157,5 @@ color:#706D5B;\
}"; }";
var dom = require("../lib/dom"); var dom = require("../lib/dom");
dom.importCssString(exports.cssText); dom.importCssString(exports.cssText, exports.cssClass);
}); });

View file

@ -157,5 +157,5 @@ color:#AD2EA4;\
}"; }";
var dom = require("../lib/dom"); var dom = require("../lib/dom");
dom.importCssString(exports.cssText); dom.importCssString(exports.cssText, exports.cssClass);
}); });

View file

@ -163,5 +163,5 @@ color:#AC4BB8;\
}"; }";
var dom = require("../lib/dom"); var dom = require("../lib/dom");
dom.importCssString(exports.cssText); dom.importCssString(exports.cssText, exports.cssClass);
}); });

View file

@ -157,5 +157,5 @@ background-color:#151C19;\
}"; }";
var dom = require("../lib/dom"); var dom = require("../lib/dom");
dom.importCssString(exports.cssText); dom.importCssString(exports.cssText, exports.cssClass);
}); });

View file

@ -153,5 +153,5 @@ background-color:#AE81FF;\
}"; }";
var dom = require("../lib/dom"); var dom = require("../lib/dom");
dom.importCssString(exports.cssText); dom.importCssString(exports.cssText, exports.cssClass);
}); });

View file

@ -175,5 +175,5 @@ color:#D2A8A1;\
}"; }";
var dom = require("../lib/dom"); var dom = require("../lib/dom");
dom.importCssString(exports.cssText); dom.importCssString(exports.cssText, exports.cssClass);
}); });

View file

@ -152,5 +152,5 @@ color:#657B83;\
}"; }";
var dom = require("../lib/dom"); var dom = require("../lib/dom");
dom.importCssString(exports.cssText); dom.importCssString(exports.cssText, exports.cssClass);
}); });

View file

@ -151,5 +151,5 @@ exports.cssText = "\
}"; }";
var dom = require("../lib/dom"); var dom = require("../lib/dom");
dom.importCssString(exports.cssText); dom.importCssString(exports.cssText, exports.cssClass);
}); });

View file

@ -196,5 +196,5 @@ exports.cssText = ".ace-tm .ace_editor {\
}"; }";
var dom = require("../lib/dom"); var dom = require("../lib/dom");
dom.importCssString(exports.cssText); dom.importCssString(exports.cssText, exports.cssClass);
}); });

View file

@ -173,5 +173,5 @@ background-color:#8959A8;\
}"; }";
var dom = require("../lib/dom"); var dom = require("../lib/dom");
dom.importCssString(exports.cssText); dom.importCssString(exports.cssText, exports.cssClass);
}); });

View file

@ -173,5 +173,5 @@ background-color:#B798BF;\
}"; }";
var dom = require("../lib/dom"); var dom = require("../lib/dom");
dom.importCssString(exports.cssText); dom.importCssString(exports.cssText, exports.cssClass);
}); });

View file

@ -173,5 +173,5 @@ background-color:#EBBBFF;\
}"; }";
var dom = require("../lib/dom"); var dom = require("../lib/dom");
dom.importCssString(exports.cssText); dom.importCssString(exports.cssText, exports.cssClass);
}); });

View file

@ -173,5 +173,5 @@ background-color:#B798BF;\
}"; }";
var dom = require("../lib/dom"); var dom = require("../lib/dom");
dom.importCssString(exports.cssText); dom.importCssString(exports.cssText, exports.cssClass);
}); });

View file

@ -169,5 +169,5 @@ background-color:#CC99CC;\
}"; }";
var dom = require("../lib/dom"); var dom = require("../lib/dom");
dom.importCssString(exports.cssText); dom.importCssString(exports.cssText, exports.cssClass);
}); });

View file

@ -175,5 +175,5 @@ color:#5F5A60;\
}"; }";
var dom = require("../lib/dom"); var dom = require("../lib/dom");
dom.importCssString(exports.cssText); dom.importCssString(exports.cssText, exports.cssClass);
}); });

View file

@ -158,5 +158,5 @@ color:#99CC99;\
}"; }";
var dom = require("../lib/dom"); var dom = require("../lib/dom");
dom.importCssString(exports.cssText); dom.importCssString(exports.cssText, exports.cssClass);
}); });

View file

@ -62,10 +62,7 @@ var VirtualRenderer = function(container, theme) {
// // Imports CSS once per DOM document ('ace_editor' serves as an identifier). // // Imports CSS once per DOM document ('ace_editor' serves as an identifier).
// dom.importCssString(editorCss, "ace_editor", container.ownerDocument); // dom.importCssString(editorCss, "ace_editor", container.ownerDocument);
// Chrome has some strange rendering issues if this is not done async
setTimeout(function() {
dom.addCssClass(container, "ace_editor"); dom.addCssClass(container, "ace_editor");
}, 0);
this.setTheme(theme); this.setTheme(theme);
@ -342,6 +339,9 @@ var VirtualRenderer = function(container, theme) {
if (useragent.isIE) if (useragent.isIE)
return; return;
if (this.layerConfig.lastRow === 0)
return;
var pos = this.$cursorLayer.getPixelPosition(); var pos = this.$cursorLayer.getPixelPosition();
if (!pos) if (!pos)
return; return;

View file

@ -42,5 +42,5 @@ exports.cssClass = "%cssClass%";
exports.cssText = %css%; exports.cssText = %css%;
var dom = require("../lib/dom"); var dom = require("../lib/dom");
dom.importCssString(exports.cssText); dom.importCssString(exports.cssText, exports.cssClass);
}); });