From 048be5cc80b22d840de6ad164fb23c9f03b1207a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=C5=99=C3=ADk?= Date: Wed, 25 Oct 2023 08:41:02 +0200 Subject: [PATCH] Replacing morphshape1 fix, do not corrupt old tag on error. --- .../jpexs/decompiler/flash/gui/MainPanel.java | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/com/jpexs/decompiler/flash/gui/MainPanel.java b/src/com/jpexs/decompiler/flash/gui/MainPanel.java index b649b8c68..25e381ce5 100644 --- a/src/com/jpexs/decompiler/flash/gui/MainPanel.java +++ b/src/com/jpexs/decompiler/flash/gui/MainPanel.java @@ -4489,29 +4489,29 @@ public final class MainPanel extends JPanel implements TreeSelectionListener, Se } newEndTag.getTimelined().removeTag(newEndTag); - if (morphShape instanceof DefineMorphShapeTag) { - DefineMorphShape2Tag morphShape2 = new DefineMorphShape2Tag(morphShape.getSwf()); - morphShape.getTimelined().replaceTag(morphShape, morphShape2); - morphShape2.setTimelined(morphShape.getTimelined()); - morphShape = morphShape2; - } + DefineMorphShape2Tag newMorphShape = new DefineMorphShape2Tag(morphShape.getSwf()); + newMorphShape.setTimelined(morphShape.getTimelined()); + SWF.addTagBefore(newMorphShape, morphShape); MorphShapeGenerator gen = new MorphShapeGenerator(); try { - gen.generate((DefineMorphShape2Tag) morphShape, shapeStart, shapeEnd); + gen.generate(newMorphShape, shapeStart, shapeEnd); } catch (StyleMismatchException sme) { + newMorphShape.getTimelined().removeTag(newMorphShape); + SWF swf = morphShape.getSwf(); + swf.resetTimeline(); + refreshTree(swf); ViewMessages.showMessageDialog(this, AppStrings.translate("error.morphshape.incompatible"), AppStrings.translate("error"), JOptionPane.ERROR_MESSAGE); return false; } + SWF swf = newMorphShape.getSwf(); - SWF swf = morphShape.getSwf(); + morphShape.getTimelined().removeTag(morphShape); + newMorphShape.setCharacterId(morphShape.getCharacterId()); + swf.updateCharacters(); swf.resetTimeline(); refreshTree(swf); - /*if (newTag != null) { - - setTagTreeSelectedNode(getCurrentTree(), newTag); - }*/ - + setTagTreeSelectedNode(getCurrentTree(), newMorphShape); swf.clearImageCache(); swf.clearShapeCache(); } catch (IOException ex) {