Commit 26c82350 authored by techird's avatar techird

命令锁逻辑修改

parent 9bb0158c
...@@ -20,7 +20,7 @@ kity.extendClass( Minder, { ...@@ -20,7 +20,7 @@ kity.extendClass( Minder, {
} }
}, },
execCommand: function ( name ) { execCommand: function ( name ) {
var TargetCommand, command, cmdArgs, eventParams, stoped; var TargetCommand, command, cmdArgs, eventParams, stoped, isTopCommand;
TargetCommand = this._getCommand( name ); TargetCommand = this._getCommand( name );
if ( !TargetCommand ) { if ( !TargetCommand ) {
...@@ -36,20 +36,23 @@ kity.extendClass( Minder, { ...@@ -36,20 +36,23 @@ kity.extendClass( Minder, {
commandArgs: cmdArgs commandArgs: cmdArgs
}; };
this._executingCommand = this._executingCommand || command; if ( !this._executingCommand ) {
this._executingCommand = command;
if ( this._executingCommand == command ) { isTopCommand = true;
} else {
isTopCommand = false;
}
stoped = this._fire( new MinderEvent( 'beforecommand', eventParams, true ) ); stoped = this._fire( new MinderEvent( 'beforecommand', eventParams, true ) );
if ( !stoped ) { if ( !stoped ) {
this._fire( new MinderEvent( "precommand", eventParams, false ) ); this._fire( new MinderEvent( "precommand", eventParams, false ) );
command.execute.apply( command, [ this ].concat( cmdArgs ) ); command.execute.apply( command, [ this ].concat( cmdArgs ) );
this._fire( new MinderEvent( "command", eventParams, false ) ); this._fire( new MinderEvent( "command", eventParams, false ) );
// 顶级命令才触发事件
if ( isTopCommand ) {
if ( command.isContentChanged() ) { if ( command.isContentChanged() ) {
this._firePharse( new MinderEvent( 'contentchange' ) ); this._firePharse( new MinderEvent( 'contentchange' ) );
} }
...@@ -58,10 +61,11 @@ kity.extendClass( Minder, { ...@@ -58,10 +61,11 @@ kity.extendClass( Minder, {
} }
this._firePharse( new MinderEvent( 'interactchange' ) ); this._firePharse( new MinderEvent( 'interactchange' ) );
} }
}
// 顶级事件执行完毕才能清楚顶级事件的执行标记
if ( isTopCommand ) {
this._executingCommand = null; 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