diff --git a/platform/platform-api/src/com/intellij/ide/ui/UISettings.java b/platform/platform-api/src/com/intellij/ide/ui/UISettings.java index 93ce6cda0209..bf0bd05e801f 100644 --- a/platform/platform-api/src/com/intellij/ide/ui/UISettings.java +++ b/platform/platform-api/src/com/intellij/ide/ui/UISettings.java @@ -91,6 +91,7 @@ public class UISettings implements PersistentStateComponent, Exporta public boolean SHOW_ICONS_IN_MENUS = true; public boolean DISABLE_MNEMONICS = SystemInfo.isMac; // IDEADEV-33409, should be disabled by default on MacOS public boolean DISABLE_MNEMONICS_IN_CONTROLS = false; + public boolean USE_SMALL_LABELS_ON_TABS = SystemInfo.isMac; public boolean SORT_LOOKUP_ELEMENTS_LEXICOGRAPHICALLY = false; public int MAX_LOOKUP_WIDTH2 = 500; public int MAX_LOOKUP_LIST_HEIGHT = 11; diff --git a/platform/platform-api/src/com/intellij/ui/tabs/impl/JBEditorTabs.java b/platform/platform-api/src/com/intellij/ui/tabs/impl/JBEditorTabs.java index 1a4a7ec6eb4f..3f2e37e5fb0b 100644 --- a/platform/platform-api/src/com/intellij/ui/tabs/impl/JBEditorTabs.java +++ b/platform/platform-api/src/com/intellij/ui/tabs/impl/JBEditorTabs.java @@ -15,6 +15,7 @@ */ package com.intellij.ui.tabs.impl; +import com.intellij.ide.ui.UISettings; import com.intellij.openapi.Disposable; import com.intellij.openapi.actionSystem.ActionManager; import com.intellij.openapi.application.ApplicationManager; @@ -76,7 +77,7 @@ public class JBEditorTabs extends JBTabsImpl { @Override public boolean useSmallLabels() { - return SystemInfo.isMac; + return UISettings.getInstance().USE_SMALL_LABELS_ON_TABS; } @Override diff --git a/platform/platform-api/src/com/intellij/ui/tabs/impl/TabLabel.java b/platform/platform-api/src/com/intellij/ui/tabs/impl/TabLabel.java index cd42788f69e8..96bed30a1f5c 100644 --- a/platform/platform-api/src/com/intellij/ui/tabs/impl/TabLabel.java +++ b/platform/platform-api/src/com/intellij/ui/tabs/impl/TabLabel.java @@ -52,6 +52,14 @@ public class TabLabel extends JPanel { protected boolean shouldDrawDimmed() { return myTabs.getSelectedInfo() != myInfo || myTabs.useBoldLabels(); } + + @Override + public Font getFont() { + if (isFontSet() || !myTabs.useSmallLabels()) { + return super.getFont(); + } + return UIUtil.getLabelFont(UIUtil.FontSize.SMALL); + } }; private final LayeredIcon myIcon; @@ -77,7 +85,6 @@ public class TabLabel extends JPanel { myLabel.setIconTextGap(tabs.isEditorTabs() ? 2 : new JLabel().getIconTextGap()); myLabel.setIconOpaque(false); myLabel.setIpad(new Insets(0, 0, 0, 0)); - if (myTabs.useSmallLabels() || UIUtil.isUnderDarcula()) myLabel.setFont(UIUtil.getLabelFont(UIUtil.FontSize.SMALL)); setOpaque(false); setLayout(new BorderLayout()); diff --git a/platform/platform-impl/src/com/intellij/ide/ui/AppearanceConfigurable.java b/platform/platform-impl/src/com/intellij/ide/ui/AppearanceConfigurable.java index 72280d5c3f4b..ae0f2239064c 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/AppearanceConfigurable.java +++ b/platform/platform-impl/src/com/intellij/ide/ui/AppearanceConfigurable.java @@ -148,6 +148,9 @@ public class AppearanceConfigurable extends BaseConfigurable implements Searchab update |= settings.DISABLE_MNEMONICS != myComponent.myDisableMnemonics.isSelected(); settings.DISABLE_MNEMONICS = myComponent.myDisableMnemonics.isSelected(); + update |= settings.USE_SMALL_LABELS_ON_TABS != myComponent.myUseSmallLabelsOnTabs.isSelected(); + settings.USE_SMALL_LABELS_ON_TABS = myComponent.myUseSmallLabelsOnTabs.isSelected(); + update |= settings.DISABLE_MNEMONICS_IN_CONTROLS != myComponent.myDisableMnemonicInControlsCheckBox.isSelected(); settings.DISABLE_MNEMONICS_IN_CONTROLS = myComponent.myDisableMnemonicInControlsCheckBox.isSelected(); @@ -221,6 +224,7 @@ public class AppearanceConfigurable extends BaseConfigurable implements Searchab myComponent.myLafComboBox.setSelectedItem(LafManager.getInstance().getCurrentLookAndFeel()); myComponent.myOverrideLAFFonts.setSelected(settings.OVERRIDE_NONIDEA_LAF_FONTS); myComponent.myDisableMnemonics.setSelected(settings.DISABLE_MNEMONICS); + myComponent.myUseSmallLabelsOnTabs.setSelected(settings.USE_SMALL_LABELS_ON_TABS); myComponent.myDisableMnemonicInControlsCheckBox.setSelected(settings.DISABLE_MNEMONICS_IN_CONTROLS); boolean alphaModeEnabled = WindowManagerEx.getInstanceEx().isAlphaModeSupported(); @@ -260,6 +264,8 @@ public class AppearanceConfigurable extends BaseConfigurable implements Searchab isModified |= myComponent.myDisableMnemonics.isSelected() != settings.DISABLE_MNEMONICS; isModified |= myComponent.myDisableMnemonicInControlsCheckBox.isSelected() != settings.DISABLE_MNEMONICS_IN_CONTROLS; + isModified |= myComponent.myUseSmallLabelsOnTabs.isSelected() != settings.USE_SMALL_LABELS_ON_TABS; + isModified |= myComponent.myHideIconsInQuickNavigation.isSelected() != settings.SHOW_ICONS_IN_QUICK_NAVIGATION; isModified |= myComponent.myMoveMouseOnDefaultButtonCheckBox.isSelected() != settings.MOVE_MOUSE_ON_DEFAULT_BUTTON; @@ -332,6 +338,7 @@ public class AppearanceConfigurable extends BaseConfigurable implements Searchab private JCheckBox myDisableMnemonicInControlsCheckBox; private JBCheckBox myHideNavigationPopupsCheckBox; private JCheckBox myAllowMergeButtons; + private JBCheckBox myUseSmallLabelsOnTabs; public MyComponent() { myOverrideLAFFonts.addActionListener( new ActionListener() { diff --git a/platform/platform-impl/src/com/intellij/ide/ui/AppearancePanel.form b/platform/platform-impl/src/com/intellij/ide/ui/AppearancePanel.form index 5d19dcb07811..5153fa2eaa2c 100644 --- a/platform/platform-impl/src/com/intellij/ide/ui/AppearancePanel.form +++ b/platform/platform-impl/src/com/intellij/ide/ui/AppearancePanel.form @@ -315,6 +315,14 @@ + + + + + + + +