diff --git a/platform/platform-impl/src/com/intellij/openapi/actionSystem/SplitButtonAction.java b/platform/platform-impl/src/com/intellij/openapi/actionSystem/SplitButtonAction.java index 18e06bf1940a..95e55b8caaf3 100644 --- a/platform/platform-impl/src/com/intellij/openapi/actionSystem/SplitButtonAction.java +++ b/platform/platform-impl/src/com/intellij/openapi/actionSystem/SplitButtonAction.java @@ -186,7 +186,7 @@ public class SplitButtonAction extends ActionGroup implements CustomComponentAct } } - x = baseRect.x + (x - actionIcon.getIconWidth()) / 2; + x = baseRect.x + (x - baseRect.x - actionIcon.getIconWidth()) / 2; y = baseRect.y + (baseRect.height - actionIcon.getIconHeight()) / 2; look.paintIcon(g, this, actionIcon, x, y); } diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/customFrameDecorations/header/toolbar/HeaderToolbarButtonLook.kt b/platform/platform-impl/src/com/intellij/openapi/wm/impl/customFrameDecorations/header/toolbar/HeaderToolbarButtonLook.kt index 14e3b8aa678d..7a4b7755b12b 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/customFrameDecorations/header/toolbar/HeaderToolbarButtonLook.kt +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/customFrameDecorations/header/toolbar/HeaderToolbarButtonLook.kt @@ -15,6 +15,7 @@ import com.intellij.util.ui.JBValue import com.intellij.util.ui.UIUtil import org.jetbrains.annotations.ApiStatus import java.awt.Color +import java.awt.Dimension import java.awt.Graphics import java.awt.Rectangle import java.awt.image.RGBImageFilter @@ -63,7 +64,12 @@ internal class HeaderToolbarButtonLook( override fun paintIcon(g: Graphics?, actionButton: ActionButtonComponent?, icon: Icon, x: Int, y: Int) { val scaledIcon = scaleIcon(adjustIconForHeader(icon)) - paintIconImpl(g, actionButton, scaledIcon, x, y) + val originalSize = Dimension(icon.iconWidth, icon.iconHeight) + val scaledSize = Dimension(scaledIcon.iconWidth, scaledIcon.iconHeight) + val scaledX = x - (scaledSize.width - originalSize.width) / 2 + val scaledY = y - (scaledSize.height - originalSize.height) / 2 + + paintIconImpl(g, actionButton, scaledIcon, scaledX, scaledY) } override fun paintDownArrow(g: Graphics?, actionButton: ActionButtonComponent?, originalIcon: Icon, arrowIcon: Icon) { diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/headertoolbar/MainToolbar.kt b/platform/platform-impl/src/com/intellij/openapi/wm/impl/headertoolbar/MainToolbar.kt index cda3d200b8fb..7b6873daba61 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/headertoolbar/MainToolbar.kt +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/headertoolbar/MainToolbar.kt @@ -14,6 +14,7 @@ import com.intellij.openapi.actionSystem.* import com.intellij.openapi.actionSystem.ex.ComboBoxAction import com.intellij.openapi.actionSystem.ex.ComboBoxAction.ComboBoxButton import com.intellij.openapi.actionSystem.ex.CustomComponentAction +import com.intellij.openapi.actionSystem.impl.ActionButton import com.intellij.openapi.actionSystem.impl.ActionToolbarImpl import com.intellij.openapi.application.EDT import com.intellij.openapi.components.serviceAsync @@ -366,6 +367,8 @@ private class MyActionToolbarImpl(group: ActionGroup, adjustIcons(presentation) + (component as? ActionButton)?.let { button -> button.setMinimumButtonSize(ActionToolbar.experimentalToolbarMinimumButtonSize()) } + if (action is ComboBoxAction) { findComboButton(component)?.apply { margin = JBInsets.emptyInsets()