From 79179a822619fb0aac6744d66a7d3313a4d92424 Mon Sep 17 00:00:00 2001 From: dragonmacher <48328597+dragonmacher@users.noreply.github.com> Date: Fri, 20 Sep 2024 16:45:49 -0400 Subject: [PATCH] Fixed warning for recent font changes --- .../generic/theme/laf/LookAndFeelManager.java | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/Ghidra/Framework/Gui/src/main/java/generic/theme/laf/LookAndFeelManager.java b/Ghidra/Framework/Gui/src/main/java/generic/theme/laf/LookAndFeelManager.java index dc54e4c4d6..c9973ba03e 100644 --- a/Ghidra/Framework/Gui/src/main/java/generic/theme/laf/LookAndFeelManager.java +++ b/Ghidra/Framework/Gui/src/main/java/generic/theme/laf/LookAndFeelManager.java @@ -254,13 +254,22 @@ public abstract class LookAndFeelManager { private void checkForAlreadyRegistered(Component component, String newFontId) { String existingFontId = componentToIdMap.get(component); - if (existingFontId != null) { - Msg.warn(this, """ - Component has a Font ID registered more than once. \ - Previously registered ID: '%s'. Newly registered ID: '%s'. - """.formatted(existingFontId, newFontId), - ReflectionUtilities.createJavaFilteredThrowable()); + if (existingFontId == null) { + return; // never registered before } + + if (component instanceof FontChangeListener) { + // Special Case: this allows clients to control how they listen to font changes. We + // have guilty knowledge that some clients will use one listener to listen to multiple + // font ids, so don't print a warning for this case. + return; + } + + Msg.warn(this, """ + Component has a Font ID registered more than once. \ + Previously registered ID: '%s'. Newly registered ID: '%s'. + """.formatted(existingFontId, newFontId), + ReflectionUtilities.createJavaFilteredThrowable()); } private Font toUiResource(Font font) {