add "event" for any event. fixes #171.
This commit is contained in:
parent
793646955f
commit
e4900bb037
|
@ -79,6 +79,10 @@ EventEmitter.prototype._emit = function(type, args) {
|
||||||
var handler = this._events[type]
|
var handler = this._events[type]
|
||||||
, ret;
|
, ret;
|
||||||
|
|
||||||
|
// if (type !== 'event') {
|
||||||
|
// this._emit('event', [type.replace(/^element /, '')].concat(args));
|
||||||
|
// }
|
||||||
|
|
||||||
if (!handler) {
|
if (!handler) {
|
||||||
if (type === 'error') {
|
if (type === 'error') {
|
||||||
throw new args[0];
|
throw new args[0];
|
||||||
|
@ -101,8 +105,11 @@ EventEmitter.prototype._emit = function(type, args) {
|
||||||
|
|
||||||
EventEmitter.prototype.emit = function(type) {
|
EventEmitter.prototype.emit = function(type) {
|
||||||
var args = slice.call(arguments, 1)
|
var args = slice.call(arguments, 1)
|
||||||
|
, params = slice.call(arguments)
|
||||||
, el = this;
|
, el = this;
|
||||||
|
|
||||||
|
this._emit('event', params);
|
||||||
|
|
||||||
if (this.type === 'screen') {
|
if (this.type === 'screen') {
|
||||||
return this._emit(type, args);
|
return this._emit(type, args);
|
||||||
}
|
}
|
||||||
|
@ -113,8 +120,13 @@ EventEmitter.prototype.emit = function(type) {
|
||||||
|
|
||||||
type = 'element ' + type;
|
type = 'element ' + type;
|
||||||
args.unshift(this);
|
args.unshift(this);
|
||||||
|
// `element` prefix
|
||||||
|
// params = [type].concat(args);
|
||||||
|
// no `element` prefix
|
||||||
|
// params.splice(1, 0, this);
|
||||||
|
|
||||||
do {
|
do {
|
||||||
|
// el._emit('event', params);
|
||||||
if (!el._events[type]) continue;
|
if (!el._events[type]) continue;
|
||||||
if (el._emit(type, args) === false) {
|
if (el._emit(type, args) === false) {
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -443,9 +443,6 @@ Screen.prototype.destroy = function() {
|
||||||
};
|
};
|
||||||
|
|
||||||
Screen.prototype.log = function() {
|
Screen.prototype.log = function() {
|
||||||
if (this.debugLog) {
|
|
||||||
this.debugLog.log.apply(this.debugLog, arguments);
|
|
||||||
}
|
|
||||||
return this.program.log.apply(this.program, arguments);
|
return this.program.log.apply(this.program, arguments);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -30,6 +30,11 @@ screen.debugLog.on('show', function() {
|
||||||
screen.render();
|
screen.render();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
screen.on('event', function(event, el) {
|
||||||
|
var type = (el && el.type) || Object.prototype.toString.call(el).slice(8, -1);
|
||||||
|
screen.program.log('emit("%s", {%s})', event, type);
|
||||||
|
});
|
||||||
|
|
||||||
screen.append(blessed.text({
|
screen.append(blessed.text({
|
||||||
top: 0,
|
top: 0,
|
||||||
left: 2,
|
left: 2,
|
||||||
|
|
Loading…
Reference in New Issue