From 7f906ba0ea66d05ed7c6b8748ae0492aca7a4a4d Mon Sep 17 00:00:00 2001 From: Karl Tauber Date: Sat, 10 Apr 2021 15:52:54 +0200 Subject: [PATCH] DesktopPane: fixed empty minimized icon when switching LaF (regression since commit ab1ce7fab16597c518dd00a4c4e86320d98410c1; see PR #294) --- .../com/formdev/flatlaf/ui/FlatDesktopPaneUI.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatDesktopPaneUI.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatDesktopPaneUI.java index 644c5431..88bdfcef 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatDesktopPaneUI.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatDesktopPaneUI.java @@ -29,6 +29,7 @@ import javax.swing.JInternalFrame; import javax.swing.JInternalFrame.JDesktopIcon; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.UIResource; +import javax.swing.plaf.basic.BasicDesktopIconUI; import javax.swing.plaf.basic.BasicDesktopPaneUI; /** @@ -181,9 +182,21 @@ public class FlatDesktopPaneUI /** * For already installed desktop manager to use the flat desktop manager features. + *

+ * Although this class extends {@link DefaultDesktopManager}, it does not invoke + * any method of the superclass. + * All methods are delegated to parent desktop manager. + *

+ * This class extends {@link DefaultDesktopManager} + * (instead of implementing {@link DesktopManager}), + * because otherwise {@link DesktopManager#iconifyFrame(JInternalFrame)} + * and {@link DesktopManager#deiconifyFrame(JInternalFrame)} are not invoked + * from {@link BasicDesktopIconUI#installUI(JComponent)} + * and {@link BasicDesktopIconUI#uninstallUI(JComponent)} + * when switching Laf. */ private class FlatWrapperDesktopManager - implements DesktopManager + extends DefaultDesktopManager { private final DesktopManager parent;