Commit 26c82350 authored by techird's avatar techird

命令锁逻辑修改

parent 9bb0158c
......@@ -20,7 +20,7 @@ kity.extendClass( Minder, {
}
},
execCommand: function ( name ) {
var TargetCommand, command, cmdArgs, eventParams, stoped;
var TargetCommand, command, cmdArgs, eventParams, stoped, isTopCommand;
TargetCommand = this._getCommand( name );
if ( !TargetCommand ) {
......@@ -36,20 +36,23 @@ kity.extendClass( Minder, {
commandArgs: cmdArgs
};
this._executingCommand = this._executingCommand || command;
if ( this._executingCommand == command ) {
stoped = this._fire( new MinderEvent( 'beforecommand', eventParams, true ) );
if ( !stoped ) {
if ( !this._executingCommand ) {
this._executingCommand = command;
isTopCommand = true;
} else {
isTopCommand = false;
}
this._fire( new MinderEvent( "precommand", eventParams, false ) );
stoped = this._fire( new MinderEvent( 'beforecommand', eventParams, true ) );
command.execute.apply( command, [ this ].concat( cmdArgs ) );
if ( !stoped ) {
this._fire( new MinderEvent( "command", eventParams, false ) );
this._fire( new MinderEvent( "precommand", eventParams, false ) );
command.execute.apply( command, [ this ].concat( cmdArgs ) );
this._fire( new MinderEvent( "command", eventParams, false ) );
// 顶级命令才触发事件
if ( isTopCommand ) {
if ( command.isContentChanged() ) {
this._firePharse( new MinderEvent( 'contentchange' ) );
}
......@@ -58,10 +61,11 @@ kity.extendClass( Minder, {
}
this._firePharse( new MinderEvent( 'interactchange' ) );
}
}
// 顶级事件执行完毕才能清楚顶级事件的执行标记
if ( isTopCommand ) {
this._executingCommand = null;
} else {
command.execute.apply( command, [ this ].concat( cmdArgs ) );
}
},
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment