commit
91afcc5800
6 changed files with 32 additions and 16 deletions
|
|
@ -93,22 +93,37 @@ exports.setModuleUrl = function(name, subst) {
|
|||
return options.$moduleUrls[name] = subst;
|
||||
};
|
||||
|
||||
exports.$loading = {};
|
||||
exports.loadModule = function(moduleName, onLoad) {
|
||||
var module, moduleType;
|
||||
if (Array.isArray(moduleName)) {
|
||||
moduleType = moduleName[0];
|
||||
moduleName = moduleName[1];
|
||||
}
|
||||
|
||||
try {
|
||||
module = require(moduleName);
|
||||
} catch (e) {};
|
||||
if (module)
|
||||
// require(moduleName) can return empty object if called after require([moduleName], callback)
|
||||
if (module && !exports.$loading[moduleName])
|
||||
return onLoad && onLoad(module);
|
||||
|
||||
if (!exports.$loading[moduleName])
|
||||
exports.$loading[moduleName] = [];
|
||||
|
||||
exports.$loading[moduleName].push(onLoad);
|
||||
|
||||
if (exports.$loading[moduleName].length > 1)
|
||||
return;
|
||||
|
||||
var afterLoad = function() {
|
||||
require([moduleName], function(module) {
|
||||
exports._emit("load.module", {name: moduleName, module: module});
|
||||
onLoad && onLoad(module);
|
||||
var listeners = exports.$loading[moduleName];
|
||||
exports.$loading[moduleName] = null;
|
||||
listeners.forEach(function(onLoad) {
|
||||
onLoad && onLoad(module);
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -79,11 +79,10 @@ EventEmitter._signal = function(eventName, e) {
|
|||
|
||||
EventEmitter.once = function(eventName, callback) {
|
||||
var _self = this;
|
||||
var newCallback = function() {
|
||||
fun && fun.apply(null, arguments);
|
||||
_self.removeEventListener(event, newCallback);
|
||||
};
|
||||
this.addEventListener(event, newCallback);
|
||||
callback && this.addEventListener(eventName, function newCallback() {
|
||||
_self.removeEventListener(eventName, newCallback);
|
||||
callback.apply(null, arguments);
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -121,6 +121,7 @@ var MouseHandler = function(editor) {
|
|||
renderer.$moveTextAreaToCursor();
|
||||
}
|
||||
self.isMousePressed = false;
|
||||
self.onMouseEvent("mouseup", e)
|
||||
};
|
||||
|
||||
var onCaptureInterval = function() {
|
||||
|
|
|
|||
|
|
@ -106,7 +106,7 @@ function onMouseDown(e) {
|
|||
|
||||
var oldRange = selection.rangeList.rangeAtPoint(pos);
|
||||
|
||||
event.capture(editor.container, function(){}, function() {
|
||||
editor.once("mouseup", function() {
|
||||
var tmpSel = selection.toOrientedRange();
|
||||
|
||||
if (oldRange && tmpSel.isEmpty() && isSamePoint(oldRange.cursor, tmpSel.cursor))
|
||||
|
|
|
|||
|
|
@ -831,14 +831,10 @@ exports.onSessionChange = function(e) {
|
|||
|
||||
var oldSession = e.oldSession;
|
||||
if (oldSession) {
|
||||
// todo use events
|
||||
if (oldSession.multiSelect && oldSession.multiSelect.editor == this)
|
||||
oldSession.multiSelect.editor = null;
|
||||
|
||||
session.multiSelect.removeEventListener("addRange", this.$onAddRange);
|
||||
session.multiSelect.removeEventListener("removeRange", this.$onRemoveRange);
|
||||
session.multiSelect.removeEventListener("multiSelect", this.$onMultiSelect);
|
||||
session.multiSelect.removeEventListener("singleSelect", this.$onSingleSelect);
|
||||
oldSession.multiSelect.removeEventListener("addRange", this.$onAddRange);
|
||||
oldSession.multiSelect.removeEventListener("removeRange", this.$onRemoveRange);
|
||||
oldSession.multiSelect.removeEventListener("multiSelect", this.$onMultiSelect);
|
||||
oldSession.multiSelect.removeEventListener("singleSelect", this.$onSingleSelect);
|
||||
}
|
||||
|
||||
session.multiSelect.on("addRange", this.$onAddRange);
|
||||
|
|
|
|||
|
|
@ -326,6 +326,9 @@ var VirtualRenderer = function(container, theme) {
|
|||
changes = changes | this.CHANGE_FULL;
|
||||
}
|
||||
|
||||
if (!this.$size.scrollerHeight)
|
||||
return;
|
||||
|
||||
if (force)
|
||||
this.$renderChanges(changes, true);
|
||||
else
|
||||
|
|
@ -1265,6 +1268,8 @@ var VirtualRenderer = function(container, theme) {
|
|||
}
|
||||
|
||||
function afterLoad(theme) {
|
||||
if (!theme.cssClass)
|
||||
return;
|
||||
dom.importCssString(
|
||||
theme.cssText,
|
||||
theme.cssClass,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue