diff --git a/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/util/FilterIconFlashTimer.java b/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/util/FilterIconFlashTimer.java index f8f67a4af8..f6fbe99d21 100644 --- a/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/util/FilterIconFlashTimer.java +++ b/Ghidra/Features/VersionTracking/src/main/java/ghidra/feature/vt/gui/util/FilterIconFlashTimer.java @@ -20,6 +20,7 @@ import java.awt.event.ActionListener; import javax.swing.*; +import docking.util.AnimationUtils; import generic.theme.GIcon; import ghidra.feature.vt.gui.filters.AncillaryFilterDialogComponentProvider; @@ -49,6 +50,11 @@ public class FilterIconFlashTimer extends Timer implements ActionListener { @Override public void actionPerformed(ActionEvent event) { + if (!AnimationUtils.isAnimationEnabled()) { + stop(); + return; + } + if (!filterDialog.isFiltered()) { stop(); return; // no filter applied diff --git a/Ghidra/Framework/Docking/src/main/java/docking/StatusBar.java b/Ghidra/Framework/Docking/src/main/java/docking/StatusBar.java index 98e2618e9d..7bdee9a872 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/StatusBar.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/StatusBar.java @@ -4,9 +4,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -396,6 +396,14 @@ public class StatusBar extends JPanel { } } + @Override + public void start() { + if (!AnimationUtils.isAnimationEnabled()) { + return; + } + super.start(); + } + @Override public void stop() { super.stop(); diff --git a/Ghidra/Framework/Docking/src/main/java/docking/widgets/filter/FilterTextField.java b/Ghidra/Framework/Docking/src/main/java/docking/widgets/filter/FilterTextField.java index b88d507630..02ac2695cf 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/widgets/filter/FilterTextField.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/widgets/filter/FilterTextField.java @@ -23,9 +23,10 @@ import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import docking.DockingUtils; +import docking.util.AnimationUtils; import generic.theme.GColor; import generic.theme.GThemeDefaults.Colors; -import ghidra.util.SystemUtilities; +import ghidra.util.Swing; import ghidra.util.datastruct.WeakDataStructureFactory; import ghidra.util.datastruct.WeakSet; import ghidra.util.layout.AbstractLayoutManager; @@ -372,7 +373,7 @@ public class FilterTextField extends JPanel { // Note: this must be run on the Swing thread. When the filter button shows itself, // it requires an AWT lock. If called from a non-Swing thread, deadlocks! - SystemUtilities.runIfSwingOrPostSwingLater(() -> { + Swing.runIfSwingOrRunLater(() -> { if (showFilter) { clearLabel.showFilterButton(); } @@ -467,6 +468,11 @@ public class FilterTextField extends JPanel { @Override public void actionPerformed(ActionEvent event) { + if (!AnimationUtils.isAnimationEnabled()) { + stop(); + return; + } + if (flashCount < MAX_FLASH_COUNT) { contrastColors(); flashCount++;