From b7fa59271aa3766a135821850aee954ade33c12a Mon Sep 17 00:00:00 2001 From: KingRabbid <13966341+KingRabbid@users.noreply.github.com> Date: Mon, 6 Oct 2025 13:37:17 +0300 Subject: [PATCH] Fix File->Open recent showing old files --- .../apache/jmeter/gui/util/JMeterMenuBar.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/core/src/main/java/org/apache/jmeter/gui/util/JMeterMenuBar.java b/src/core/src/main/java/org/apache/jmeter/gui/util/JMeterMenuBar.java index 4f829e9d2ea..43409d48659 100644 --- a/src/core/src/main/java/org/apache/jmeter/gui/util/JMeterMenuBar.java +++ b/src/core/src/main/java/org/apache/jmeter/gui/util/JMeterMenuBar.java @@ -39,6 +39,8 @@ import javax.swing.MenuElement; import javax.swing.UIManager; import javax.swing.UIManager.LookAndFeelInfo; +import javax.swing.event.MenuEvent; +import javax.swing.event.MenuListener; import org.apache.jmeter.gui.GuiPackage; import org.apache.jmeter.gui.action.ActionNames; @@ -532,6 +534,30 @@ private void makeFileMenu() { fileLoadRecentFiles.forEach(jc -> recentFilesOpen.add(jc)); recentFilesOpen.setEnabled(LoadRecentProject.hasVisibleMenuItem(fileLoadRecentFiles)); + // Add menu listener to refresh recent files when menu is selected + recentFilesOpen.addMenuListener(new MenuListener() { + @Override + public void menuSelected(MenuEvent e) { + // Clear existing recent files from menu + recentFilesOpen.removeAll(); + + // Reload recent files + fileLoadRecentFiles = LoadRecentProject.getRecentFileMenuItems(); + fileLoadRecentFiles.forEach(jc -> recentFilesOpen.add(jc)); + recentFilesOpen.setEnabled(LoadRecentProject.hasVisibleMenuItem(fileLoadRecentFiles)); + } + + @Override + public void menuDeselected(MenuEvent e) { + // Not needed + } + + @Override + public void menuCanceled(MenuEvent e) { + // Not needed + } + }); + addPluginsMenuItems(fileMenu, menuCreators, MENU_LOCATION.FILE); // When JMeter menu is integrated with macOS system menu, there's no need in extra "exit"