diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatClientProperties.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatClientProperties.java index 570b3eab..c9b8bc5a 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatClientProperties.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/FlatClientProperties.java @@ -284,6 +284,14 @@ public interface FlatClientProperties */ String TABBED_PANE_TAB_INSETS = "JTabbedPane.tabInsets"; + /** + * Specifies the insets of the tab area. + *

+ * Component {@link javax.swing.JTabbedPane} + * Value type {@link java.awt.Insets} + */ + String TABBED_PANE_TAB_AREA_INSETS = "JTabbedPane.tabAreaInsets"; + /** * Specifies whether tabs are closable. * If set to {@code true} on a tabbed pane component, all tabs in that tabbed pane are closable. diff --git a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTabbedPaneUI.java b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTabbedPaneUI.java index 927ef56a..ff9baeb5 100644 --- a/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTabbedPaneUI.java +++ b/flatlaf-core/src/main/java/com/formdev/flatlaf/ui/FlatTabbedPaneUI.java @@ -604,6 +604,10 @@ public class FlatTabbedPaneUI Insets currentTabAreaInsets = super.getTabAreaInsets( tabPlacement ); Insets insets = (Insets) currentTabAreaInsets.clone(); + Object value = tabPane.getClientProperty( TABBED_PANE_TAB_AREA_INSETS ); + if( value instanceof Insets ) + rotateInsets( (Insets) value, insets, tabPlacement ); + // This is a "trick" to get rid of the cropped edge: // super.getTabAreaInsets() returns private field BasicTabbedPaneUI.currentTabAreaInsets, // which is also used to translate the origin of the cropped edge in @@ -1937,6 +1941,7 @@ public class FlatTabbedPaneUI case TABBED_PANE_MAXIMUM_TAB_WIDTH: case TABBED_PANE_TAB_HEIGHT: case TABBED_PANE_TAB_INSETS: + case TABBED_PANE_TAB_AREA_INSETS: case TABBED_PANE_HIDDEN_TABS_NAVIGATION: case TABBED_PANE_TAB_AREA_ALIGNMENT: case TABBED_PANE_TAB_WIDTH_MODE: diff --git a/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatContainerTest.java b/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatContainerTest.java index c3d2593a..80d935fd 100644 --- a/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatContainerTest.java +++ b/flatlaf-testing/src/main/java/com/formdev/flatlaf/testing/FlatContainerTest.java @@ -324,8 +324,8 @@ public class FlatContainerTest } private void tabAreaInsetsChanged() { - UIManager.put( "TabbedPane.tabAreaInsets", tabAreaInsetsCheckBox.isSelected() ? new Insets( 5, 5, 10, 10 ) : null ); - FlatLaf.updateUI(); + Insets insets = tabAreaInsetsCheckBox.isSelected() ? new Insets( 5, 5, 10, 10 ) : null; + putTabbedPanesClientProperty( TABBED_PANE_TAB_AREA_INSETS, insets ); } private void smallerTabHeightChanged() {