From b5a121407b93a3a8e1b115ffb11fcf53cc9e2eca Mon Sep 17 00:00:00 2001 From: "Jason P. Leasure" Date: Wed, 2 Dec 2020 13:59:48 -0500 Subject: [PATCH] fix #2536, don't fire redundant property change --- .../plugin/core/compositeeditor/HexNumbersAction.java | 6 ++++-- .../src/main/java/docking/action/DockingAction.java | 9 +++++---- .../main/java/docking/action/ToggleDockingAction.java | 3 +++ 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/compositeeditor/HexNumbersAction.java b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/compositeeditor/HexNumbersAction.java index c4eaba4eaf..5c2ea61852 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/compositeeditor/HexNumbersAction.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/compositeeditor/HexNumbersAction.java @@ -35,8 +35,7 @@ public class HexNumbersAction extends CompositeEditorTableAction implements Togg private boolean isSelected; public HexNumbersAction(CompositeEditorProvider provider) { - super(provider, EDIT_ACTION_PREFIX + ACTION_NAME, GROUP_NAME, PATH, PATH, - null); + super(provider, EDIT_ACTION_PREFIX + ACTION_NAME, GROUP_NAME, PATH, PATH, null); setDescription(DESCRIPTION); setEnabled(true); setSelected(model.isShowingNumbersInHex()); @@ -59,6 +58,9 @@ public class HexNumbersAction extends CompositeEditorTableAction implements Togg @Override public void setSelected(boolean newValue) { + if (isSelected == newValue) { + return; + } isSelected = newValue; firePropertyChanged(SELECTED_STATE_PROPERTY, !isSelected, isSelected); } diff --git a/Ghidra/Framework/Docking/src/main/java/docking/action/DockingAction.java b/Ghidra/Framework/Docking/src/main/java/docking/action/DockingAction.java index fd3bc48b18..43a922e58a 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/action/DockingAction.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/action/DockingAction.java @@ -444,8 +444,7 @@ public abstract class DockingAction implements DockingActionIf { // menu path if (menuBarData != null) { buffer.append(" MENU PATH: ") - .append( - menuBarData.getMenuPathAsString()); + .append(menuBarData.getMenuPathAsString()); buffer.append('\n'); buffer.append(" MENU GROUP: ").append(menuBarData.getMenuGroup()); buffer.append('\n'); @@ -468,8 +467,7 @@ public abstract class DockingAction implements DockingActionIf { // popup menu path if (popupMenuData != null) { buffer.append(" POPUP PATH: ") - .append( - popupMenuData.getMenuPathAsString()); + .append(popupMenuData.getMenuPathAsString()); buffer.append('\n'); buffer.append(" POPUP GROUP: ").append(popupMenuData.getMenuGroup()); buffer.append('\n'); @@ -535,6 +533,9 @@ public abstract class DockingAction implements DockingActionIf { } public void firePropertyChanged(String propertyName, Object oldValue, Object newValue) { + if (Objects.equals(oldValue, newValue)) { + return; + } PropertyChangeEvent event = new PropertyChangeEvent(this, propertyName, oldValue, newValue); for (PropertyChangeListener listener : propertyListeners) { listener.propertyChange(event); diff --git a/Ghidra/Framework/Docking/src/main/java/docking/action/ToggleDockingAction.java b/Ghidra/Framework/Docking/src/main/java/docking/action/ToggleDockingAction.java index ccdf64c3cb..e16802706e 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/action/ToggleDockingAction.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/action/ToggleDockingAction.java @@ -43,6 +43,9 @@ public abstract class ToggleDockingAction extends DockingAction implements Toggl @Override public void setSelected(boolean newValue) { + if (isSelected == newValue) { + return; + } isSelected = newValue; firePropertyChanged(SELECTED_STATE_PROPERTY, !isSelected, isSelected); }