From 2fd0802ec14f3cfbb84f497446e6bf3ba90bcd6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=C5=99=C3=ADk?= Date: Sun, 7 Jan 2024 11:10:34 +0100 Subject: [PATCH] Fixed Undo on objects inside sprites --- .../flash/gui/tagtree/TagTreeContextMenu.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/com/jpexs/decompiler/flash/gui/tagtree/TagTreeContextMenu.java b/src/com/jpexs/decompiler/flash/gui/tagtree/TagTreeContextMenu.java index 5c609cae5..568063e2b 100644 --- a/src/com/jpexs/decompiler/flash/gui/tagtree/TagTreeContextMenu.java +++ b/src/com/jpexs/decompiler/flash/gui/tagtree/TagTreeContextMenu.java @@ -3481,10 +3481,22 @@ public class TagTreeContextMenu extends JPopupMenu { try { Tag tag = (Tag) item; tag.undo(); - tag.getSwf().clearAllCache(); + SWF swf = tag.getSwf(); + swf.clearAllCache(); if (tag instanceof Timelined) { ((Timelined) tag).resetTimeline(); } + tag.getTimelined().resetTimeline(); + //For example DefineButton and its DefineButtonCxForm + if ((tag instanceof CharacterIdTag) && (!(tag instanceof CharacterTag))) { + CharacterTag parentCharacter = swf.getCharacter(((CharacterIdTag) tag).getCharacterId()); + if (parentCharacter instanceof Timelined) { + ((Timelined) parentCharacter).resetTimeline(); + } + } + swf.computeDependentCharacters(); + swf.computeDependentFrames(); + tree.getFullModel().updateNode(item); } catch (InterruptedException | IOException ex) { logger.log(Level.SEVERE, null, ex);