diff --git a/CHANGELOG.md b/CHANGELOG.md index f1563afd9..578e11cd2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ All notable changes to this project will be documented in this file. ### Fixed - Do not show option to Show in taglist on resource view folders - Disallow add tag before header context menu +- Context menu on tags mapped to other characters like DefineScalingGrid ## [16.0.0] - 2022-10-30 ### Added diff --git a/src/com/jpexs/decompiler/flash/gui/tagtree/TagTreeModel.java b/src/com/jpexs/decompiler/flash/gui/tagtree/TagTreeModel.java index bb18a147d..303146443 100644 --- a/src/com/jpexs/decompiler/flash/gui/tagtree/TagTreeModel.java +++ b/src/com/jpexs/decompiler/flash/gui/tagtree/TagTreeModel.java @@ -452,8 +452,12 @@ public class TagTreeModel extends AbstractTagTreeModel { @Override public List getAllChildren(Object parent) { TreeItem parentNode = (TreeItem) parent; + List result = new ArrayList<>(); + if (parentNode instanceof CharacterTag) { + result = getMappedCharacters(((CharacterTag) parentNode).getSwf(), (CharacterTag) parentNode); + } + if (parentNode == root) { - List result = new ArrayList<>(swfs.size()); for (SWFList swfList : swfs) { if (!swfList.isBundle()) { result.add(swfList.get(0)); @@ -470,11 +474,11 @@ public class TagTreeModel extends AbstractTagTreeModel { } else if (parentNode instanceof Frame) { return ((Frame) parentNode).innerTags; } else if (parentNode instanceof DefineSpriteTag) { - return ((DefineSpriteTag) parentNode).getTimeline().getFrames(); + result.addAll(((DefineSpriteTag) parentNode).getTimeline().getFrames()); + return result; } else if (parentNode instanceof DefineBinaryDataTag) { DefineBinaryDataTag binaryDataTag = (DefineBinaryDataTag) parentNode; if (binaryDataTag.innerSwf != null) { - List result = new ArrayList<>(1); result.add(((DefineBinaryDataTag) parentNode).innerSwf); return result; } else { @@ -484,7 +488,6 @@ public class TagTreeModel extends AbstractTagTreeModel { return ((AS2Package) parentNode).getAllChildren(); } else if (parentNode instanceof FrameScript) { Frame parentFrame = ((FrameScript) parentNode).getFrame(); - List result = new ArrayList<>(); result.addAll(parentFrame.actionContainers); result.addAll(parentFrame.actions); for (int i = 0; i < result.size(); i++) { @@ -518,11 +521,9 @@ public class TagTreeModel extends AbstractTagTreeModel { } else { return new ArrayList<>(); } - } else if (parentNode instanceof CharacterTag) { - return getMappedCharacters(((CharacterTag) parentNode).getSwf(), (CharacterTag) parentNode); } - return new ArrayList<>(); + return result; } @Override