From 6e1f233d3d77f5ed7d2c64041c1d7ae81ecd67a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=C5=99=C3=ADk?= Date: Sun, 7 Jan 2024 11:17:21 +0100 Subject: [PATCH] Undo - compute dependent chars/frames at the end --- .../flash/gui/tagtree/TagTreeContextMenu.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/com/jpexs/decompiler/flash/gui/tagtree/TagTreeContextMenu.java b/src/com/jpexs/decompiler/flash/gui/tagtree/TagTreeContextMenu.java index 568063e2b..a6b50b07e 100644 --- a/src/com/jpexs/decompiler/flash/gui/tagtree/TagTreeContextMenu.java +++ b/src/com/jpexs/decompiler/flash/gui/tagtree/TagTreeContextMenu.java @@ -3474,7 +3474,8 @@ public class TagTreeContextMenu extends JPopupMenu { private void undoTagActionPerformed(ActionEvent evt) { AbstractTagTree tree = getTree(); - List sel = getSelectedItems(); + List sel = getSelectedItems(); + Set computeSWFs = new LinkedIdentityHashSet<>(); for (TreeItem item : sel) { if (item instanceof Tag) { @@ -3494,9 +3495,7 @@ public class TagTreeContextMenu extends JPopupMenu { ((Timelined) parentCharacter).resetTimeline(); } } - swf.computeDependentCharacters(); - swf.computeDependentFrames(); - + computeSWFs.add(swf); tree.getFullModel().updateNode(item); } catch (InterruptedException | IOException ex) { logger.log(Level.SEVERE, null, ex); @@ -3504,6 +3503,11 @@ public class TagTreeContextMenu extends JPopupMenu { } } + for (SWF swf : computeSWFs) { + swf.computeDependentCharacters(); + swf.computeDependentFrames(); + } + mainPanel.repaintTree(); }