From de90819cc348263c3c61b962f0e796558ae20dfb Mon Sep 17 00:00:00 2001 From: Johannes Wolf Date: Thu, 30 Apr 2026 23:38:47 +0200 Subject: [PATCH] Call GUI Refresh on EDT Make sure that refreshGUIAndCards is called on the EDT. --- Mage.Client/src/main/java/mage/client/MageFrame.java | 2 ++ .../src/main/java/mage/client/util/GUISizeHelper.java | 11 ++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/Mage.Client/src/main/java/mage/client/MageFrame.java b/Mage.Client/src/main/java/mage/client/MageFrame.java index 16c710e2ac8a..6d424f2a7fb9 100644 --- a/Mage.Client/src/main/java/mage/client/MageFrame.java +++ b/Mage.Client/src/main/java/mage/client/MageFrame.java @@ -1896,6 +1896,8 @@ private void endTables() { * Use it after new images downloaded, new fonts or theme settings selected. */ public void refreshGUIAndCards() { + ThreadUtils.ensureRunInGUISwingThread(); + ImageCaches.clearAll(); setGUISize(); diff --git a/Mage.Client/src/main/java/mage/client/util/GUISizeHelper.java b/Mage.Client/src/main/java/mage/client/util/GUISizeHelper.java index d0b1e9f06df2..30fac348bb1d 100644 --- a/Mage.Client/src/main/java/mage/client/util/GUISizeHelper.java +++ b/Mage.Client/src/main/java/mage/client/util/GUISizeHelper.java @@ -87,9 +87,18 @@ public static Font getCardFont() { * Reset all caches and reload all GUI with actual settings. * Use it after GUI settings change like colors/fonts/sizes. * - * @param reloadTheme use it after theme changes only + * This function is safe to call outsides the EDT! + * + * @param reloadTheme Use it after theme changes only */ public static void refreshGUIAndCards(boolean reloadTheme) { + if (!SwingUtilities.isEventDispatchThread()) { + SwingUtilities.invokeLater(() -> { + GUISizeHelper.refreshGUIAndCards(reloadTheme); + }); + return; + } + calculateGUISizes(); if (reloadTheme) { GuiDisplayUtil.refreshThemeSettings();