fix deactivating proper actor from activation stack

This commit is contained in:
Szymon Stasik
2016-03-12 13:58:22 +01:00
parent 614e9f4b87
commit 499a2582e6

View File

@@ -117,8 +117,12 @@ exports.bounds = {
anchored: svgDraw.anchorElement(diagram) anchored: svgDraw.anchorElement(diagram)
}); });
}, },
endActivation:function(){ endActivation:function(message){
var activation = this.activations.pop(); // find most recent activation for given actor
var lastActorActivationIdx = this.activations
.map(function(activation) { return activation.actor })
.lastIndexOf(message.from.actor);
var activation = this.activations.splice(lastActorActivationIdx, 1)[0];
return activation; return activation;
}, },
newLoop:function(title){ newLoop:function(title){
@@ -375,7 +379,7 @@ module.exports.draw = function (text, id) {
// exports.bounds.bumpVerticalPos(conf.boxMargin + conf.boxTextMargin); // exports.bounds.bumpVerticalPos(conf.boxMargin + conf.boxTextMargin);
break; break;
case sq.yy.LINETYPE.ACTIVE_END: case sq.yy.LINETYPE.ACTIVE_END:
var activationData = exports.bounds.endActivation(); var activationData = exports.bounds.endActivation(msg);
svgDraw.drawActivation(diagram, activationData, exports.bounds.getVerticalPos(), conf); svgDraw.drawActivation(diagram, activationData, exports.bounds.getVerticalPos(), conf);
exports.bounds.insert(activationData.startx, exports.bounds.getVerticalPos() -10, activationData.stopx, exports.bounds.getVerticalPos()); exports.bounds.insert(activationData.startx, exports.bounds.getVerticalPos() -10, activationData.stopx, exports.bounds.getVerticalPos());