Index: lams_central/web/lams_authoring.swf =================================================================== diff -u -r69c442eb02e0be013812860d6d573f9c6d48c950 -r2a754b5c9c11bfe83d3c57899310e69bdc3b9c9f Binary files differ Index: lams_central/web/lams_authoring_library.swf =================================================================== diff -u -r69c442eb02e0be013812860d6d573f9c6d48c950 -r2a754b5c9c11bfe83d3c57899310e69bdc3b9c9f Binary files differ Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as =================================================================== diff -u -r69c442eb02e0be013812860d6d573f9c6d48c950 -r2a754b5c9c11bfe83d3c57899310e69bdc3b9c9f --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as (.../CanvasController.as) (revision 69c442eb02e0be013812860d6d573f9c6d48c950) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasController.as (.../CanvasController.as) (revision 2a754b5c9c11bfe83d3c57899310e69bdc3b9c9f) @@ -341,11 +341,18 @@ } } } else { - if(ca instanceof CanvasParallelActivity || ca instanceof CanvasOptionalActivity) { + if(ca instanceof CanvasOptionalActivity || ca instanceof CanvasParallelActivity) { ca._x = 0; ca._y = 0; } else { - activitySnapBack(ca); + var sequenceActivity:Activity = _canvasModel.ddm.getActivityByUIID(ca.activity.parentUIID); + + if(sequenceActivity != null) + if(!_canvasModel.moveOptionalSequenceCA(ca, sequenceActivity)) + activitySnapBack(ca); + else + activitySnapBack(ca); + } } @@ -601,6 +608,12 @@ r = _canvasModel.ddm.removeActivity(ca.activity.activityUIID); } + var seqActivity:Activity = Activity(_canvasModel.ddm.getActivityByUIID(r.parentUIID)); + if(seqActivity.isOptionalSequenceActivity(_canvasModel.ddm.getActivityByUIID(seqActivity.parentUIID))) { + _canvasModel.removeOptionalSequenceCA(ca, r.parentUIID); + Debugger.log("is opt: " + ca.activity.activityUIID, Debugger.CRITICAL, "isActivityOnBin", "CanvasController"); + } + if(ca == _canvasModel.activeView.openActivity) { // close current complex activity + refresh parent _canvasModel.activeView.close(); @@ -625,6 +638,7 @@ _canvasModel.activitiesDisplayed.get(ca.activity) } } else { + // refresh current complex activity _canvasModel.activeView.updateActivity(); } Index: lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasModel.as =================================================================== diff -u -rcda1896b7cc29065750f10d9a3548c3cc9db3a9d -r2a754b5c9c11bfe83d3c57899310e69bdc3b9c9f --- lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasModel.as (.../CanvasModel.as) (revision cda1896b7cc29065750f10d9a3548c3cc9db3a9d) +++ lams_flash/src/central/flash/org/lamsfoundation/lams/authoring/cv/CanvasModel.as (.../CanvasModel.as) (revision 2a754b5c9c11bfe83d3c57899310e69bdc3b9c9f) @@ -343,7 +343,7 @@ ca.activity.orderID = null; ca.activity.parentActivityID = (activeView instanceof CanvasBranchView) ? activeView.defaultSequenceActivity.activityID : null; - removeActivity(parentID); + if(!(activeView instanceof CanvasComplexView)) removeActivity(parentID); haltRefresh(false); setDirty(); @@ -466,7 +466,10 @@ createSequenceTransition(fromActivity, toActivity); } - removeActivity(sequence.parentUIID); + if(activeView instanceof CanvasComplexView && activeView.openActivity.activity.activityUIID == sequence.parentUIID) + activeView.updateActivity(); + else removeActivity(sequence.parentUIID); + haltRefresh(false); setDirty();