Fixed: [#1962] Close button could close more than one file at once

Fixed: Simple editor - Selecting previous SWF when swf close
Changed: An item selected in the tag tree is needed for actions to be available.
Also SWF node is selected by default on first SWF opening.
This commit is contained in:
Jindra Petřík
2025-05-15 22:50:13 +02:00
parent 960f705071
commit cd91e3c3d2
6 changed files with 139 additions and 31 deletions

View File

@@ -307,23 +307,30 @@ public abstract class MainFrameMenu implements MenuBuilder {
}
Set<OpenableList> listsToClose = new LinkedHashSet<>();
List<SWF> binaryDataClosedSwfs = new ArrayList<>();
for (TreeItem item : mainFrame.getPanel().getCurrentTree().getSelected()) {
if (item instanceof OpenableList) {
listsToClose.add((OpenableList) item);
} else {
Openable itemOpenable = item.getOpenable();
enumerateListsToClose(listsToClose, itemOpenable, binaryDataClosedSwfs);
if (mainFrame.getPanel().getCurrentView() == MainPanel.VIEW_EASY) {
Openable itemOpenable = mainFrame.getPanel().easyPanel.getSwf();
enumerateListsToClose(listsToClose, itemOpenable, binaryDataClosedSwfs);
} else {
for (TreeItem item : mainFrame.getPanel().getCurrentTree().getSelected()) {
if (item instanceof OpenableList) {
listsToClose.add((OpenableList) item);
} else {
Openable itemOpenable = item.getOpenable();
enumerateListsToClose(listsToClose, itemOpenable, binaryDataClosedSwfs);
}
}
}
if (openable != null && !binaryDataClosedSwfs.contains(openable)) {
enumerateListsToClose(listsToClose, openable, binaryDataClosedSwfs);
}
openable = null;
for (OpenableList list : listsToClose) {
Main.closeFile(list);
}
mainFrame.getPanel().refreshTree();
openable = null;
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override