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