diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatCheckBoxMenuItemUI.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatCheckBoxMenuItemUI.java index 8d108f08..7b4fac40 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatCheckBoxMenuItemUI.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatCheckBoxMenuItemUI.java @@ -17,6 +17,7 @@ package com.formdev.flatlaf.ui; import static com.formdev.flatlaf.util.UIScale.scale; +import java.beans.PropertyChangeListener; import javax.swing.JComponent; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicCheckBoxMenuItemUI; @@ -40,4 +41,17 @@ public class FlatCheckBoxMenuItemUI // scale defaultTextIconGap = scale( defaultTextIconGap ); } + + /** + * Scale defaultTextIconGap again if iconTextGap property has changed. + */ + @Override + protected PropertyChangeListener createPropertyChangeListener( JComponent c ) { + PropertyChangeListener superListener = super.createPropertyChangeListener( c ); + return e -> { + superListener.propertyChange( e ); + if( e.getPropertyName() == "iconTextGap" ) + defaultTextIconGap = scale( defaultTextIconGap ); + }; + } } diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatMenuItemUI.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatMenuItemUI.java index 9652cae8..c8084f72 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatMenuItemUI.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatMenuItemUI.java @@ -17,6 +17,7 @@ package com.formdev.flatlaf.ui; import static com.formdev.flatlaf.util.UIScale.scale; +import java.beans.PropertyChangeListener; import javax.swing.JComponent; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicMenuItemUI; @@ -40,4 +41,17 @@ public class FlatMenuItemUI // scale defaultTextIconGap = scale( defaultTextIconGap ); } + + /** + * Scale defaultTextIconGap again if iconTextGap property has changed. + */ + @Override + protected PropertyChangeListener createPropertyChangeListener( JComponent c ) { + PropertyChangeListener superListener = super.createPropertyChangeListener( c ); + return e -> { + superListener.propertyChange( e ); + if( e.getPropertyName() == "iconTextGap" ) + defaultTextIconGap = scale( defaultTextIconGap ); + }; + } } diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatMenuUI.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatMenuUI.java index 45836975..7f09f7a5 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatMenuUI.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatMenuUI.java @@ -17,6 +17,7 @@ package com.formdev.flatlaf.ui; import static com.formdev.flatlaf.util.UIScale.scale; +import java.beans.PropertyChangeListener; import javax.swing.JComponent; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicMenuUI; @@ -40,4 +41,17 @@ public class FlatMenuUI // scale defaultTextIconGap = scale( defaultTextIconGap ); } + + /** + * Scale defaultTextIconGap again if iconTextGap property has changed. + */ + @Override + protected PropertyChangeListener createPropertyChangeListener( JComponent c ) { + PropertyChangeListener superListener = super.createPropertyChangeListener( c ); + return e -> { + superListener.propertyChange( e ); + if( e.getPropertyName() == "iconTextGap" ) + defaultTextIconGap = scale( defaultTextIconGap ); + }; + } } diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatRadioButtonMenuItemUI.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatRadioButtonMenuItemUI.java index 879293c5..af92f0b2 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatRadioButtonMenuItemUI.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatRadioButtonMenuItemUI.java @@ -17,6 +17,7 @@ package com.formdev.flatlaf.ui; import static com.formdev.flatlaf.util.UIScale.scale; +import java.beans.PropertyChangeListener; import javax.swing.JComponent; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.basic.BasicRadioButtonMenuItemUI; @@ -40,4 +41,17 @@ public class FlatRadioButtonMenuItemUI // scale defaultTextIconGap = scale( defaultTextIconGap ); } + + /** + * Scale defaultTextIconGap again if iconTextGap property has changed. + */ + @Override + protected PropertyChangeListener createPropertyChangeListener( JComponent c ) { + PropertyChangeListener superListener = super.createPropertyChangeListener( c ); + return e -> { + superListener.propertyChange( e ); + if( e.getPropertyName() == "iconTextGap" ) + defaultTextIconGap = scale( defaultTextIconGap ); + }; + } }