From 3af539a3c94d3afc6aaf551ed6277937ecf26937 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Anian=20B=C3=BChler?=
 <anian.buehler@reutlingen-university.de>
Date: Thu, 3 Feb 2022 11:05:15 +0100
Subject: [PATCH] fixed "opening multiple help pages" by helpButton

---
 src/main/java/com/ardublock/ui/OpenblocksFrame.java | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/ardublock/ui/OpenblocksFrame.java b/src/main/java/com/ardublock/ui/OpenblocksFrame.java
index f420051..608bee3 100644
--- a/src/main/java/com/ardublock/ui/OpenblocksFrame.java
+++ b/src/main/java/com/ardublock/ui/OpenblocksFrame.java
@@ -578,7 +578,7 @@ public class OpenblocksFrame extends JFrame
 			        simulateMenuItem.setVisible(false);
 			        simulateMenuItem.unregisterKeyboardAction(ctrluKeyStroke);
 			        //helpButton.setVisible(false);
-			        helpButton.removeActionListener(simulatorHelpButtonListener);
+			        removeAllActionListeners(helpButton);
 			        helpButton.addActionListener(helpButtonListener);
 					helpButton.setToolTipText(uiMessageBundle.getString("ardublock.ui.help.tooltip"));
 			        serialMonitorButton.setVisible(true);
@@ -649,7 +649,7 @@ public class OpenblocksFrame extends JFrame
 			        simulateMenuItem.setVisible(false);
 			        simulateMenuItem.unregisterKeyboardAction(ctrluKeyStroke);
 			        //helpButton.setVisible(false);
-			        helpButton.removeActionListener(simulatorHelpButtonListener);
+			        removeAllActionListeners(helpButton);
 			        helpButton.addActionListener(helpButtonListener);
 					helpButton.setToolTipText(uiMessageBundle.getString("ardublock.ui.help.tooltip"));
 			        serialMonitorButton.setVisible(true);
@@ -718,8 +718,9 @@ public class OpenblocksFrame extends JFrame
 				    simulateMenuItem.setVisible(true);
 				    simulateMenuItem.registerKeyboardAction(simulateButtonListener, ctrluKeyStroke, JComponent.WHEN_IN_FOCUSED_WINDOW);
 				    //helpButton.setVisible(true);
-				    helpButton.removeActionListener(helpButtonListener);
+				    removeAllActionListeners(helpButton);
 				    helpButton.addActionListener(simulatorHelpButtonListener);
+				    helpButton.addActionListener(helpButtonListener);
 					helpButton.setToolTipText(uiMessageBundle.getString("ardublock.ui.simulatorHelp.tooltip"));
 				    serialMonitorButton.setVisible(false);
 				    serialPlotterButton.setVisible(false);
@@ -1380,6 +1381,12 @@ public class OpenblocksFrame extends JFrame
 		return workspaceModeState; 
 	}
 	
+	private void removeAllActionListeners(JButton button) { //letsgoING
+		for( ActionListener al : button.getActionListeners() ) {
+			button.removeActionListener( al );
+	    }
+	}
+	
 	//TODO: TESTTESTTEST
 	private void addLibrary(String libraryName) 
 	{
-- 
GitLab