From 29847e30d376ef756cd7b1cadba2b660b4f93c84 Mon Sep 17 00:00:00 2001 From: Sebastiano Poggi Date: Thu, 13 Feb 2025 11:30:32 +0000 Subject: [PATCH] [jewel] JEWEL-734 Menu appearance does not match the Swing one This realigns the menu appearance with the Swing ones, as it had drifted apart since being implemented. closes https://github.com/JetBrains/intellij-community/pull/2933 (cherry picked from commit 28eb215e1fa8cf3d462acb399a1ed5beb8f1dcb2) (cherry picked from commit 93148b5450d76267de353f2903cccfdb78176f3c) IJ-MR-155570 GitOrigin-RevId: 4e565faac9fd37fde68dd1b467bcacbe43ba23bb --- .../jetbrains/jewel/bridge/theme/IntUiBridgeMenu.kt | 11 ++++++----- .../intui/standalone/styling/IntUiMenuStyling.kt | 8 ++++---- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/platform/jewel/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridgeMenu.kt b/platform/jewel/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridgeMenu.kt index b8a3111521ee..2ed2bd59b00b 100644 --- a/platform/jewel/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridgeMenu.kt +++ b/platform/jewel/ide-laf-bridge/src/main/kotlin/org/jetbrains/jewel/bridge/theme/IntUiBridgeMenu.kt @@ -14,6 +14,7 @@ import org.jetbrains.jewel.bridge.dp import org.jetbrains.jewel.bridge.isNewUiTheme import org.jetbrains.jewel.bridge.retrieveColorOrUnspecified import org.jetbrains.jewel.bridge.retrieveIntAsDpOrUnspecified +import org.jetbrains.jewel.bridge.toPaddingValues import org.jetbrains.jewel.ui.component.styling.MenuColors import org.jetbrains.jewel.ui.component.styling.MenuIcons import org.jetbrains.jewel.ui.component.styling.MenuItemColors @@ -69,16 +70,16 @@ internal fun readMenuStyle(): MenuStyle { metrics = MenuMetrics( cornerSize = CornerSize(IdeaPopupMenuUI.CORNER_RADIUS.dp), - menuMargin = PaddingValues(), - contentPadding = PaddingValues(), + menuMargin = PaddingValues(vertical = 6.dp), + contentPadding = PaddingValues(vertical = 7.dp, horizontal = 2.dp), offset = DpOffset(0.dp, 2.dp), shadowSize = 12.dp, borderWidth = retrieveIntAsDpOrUnspecified("Popup.borderWidth").takeOrElse { 1.dp }, itemMetrics = MenuItemMetrics( - selectionCornerSize = CornerSize(0.dp), - outerPadding = PaddingValues(), - contentPadding = PaddingValues(horizontal = 14.dp, vertical = 4.dp), + selectionCornerSize = CornerSize(JBUI.CurrentTheme.PopupMenu.Selection.ARC.dp / 2), + outerPadding = JBUI.CurrentTheme.PopupMenu.Selection.outerInsets().toPaddingValues(), + contentPadding = PaddingValues(horizontal = 12.dp, vertical = 4.dp), keybindingsPadding = PaddingValues(start = 36.dp), separatorPadding = PaddingValues( diff --git a/platform/jewel/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/styling/IntUiMenuStyling.kt b/platform/jewel/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/styling/IntUiMenuStyling.kt index 93aed0e4583b..d8bf99a7e938 100644 --- a/platform/jewel/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/styling/IntUiMenuStyling.kt +++ b/platform/jewel/int-ui/int-ui-standalone/src/main/kotlin/org/jetbrains/jewel/intui/standalone/styling/IntUiMenuStyling.kt @@ -148,7 +148,7 @@ public fun MenuItemColors.Companion.dark( public fun MenuMetrics.Companion.defaults( cornerSize: CornerSize = CornerSize(8.dp), menuMargin: PaddingValues = PaddingValues(vertical = 6.dp), - contentPadding: PaddingValues = PaddingValues(0.dp), + contentPadding: PaddingValues = PaddingValues(vertical = 7.dp, horizontal = 2.dp), offset: DpOffset = DpOffset(0.dp, 2.dp), shadowSize: Dp = 12.dp, borderWidth: Dp = 1.dp, @@ -158,9 +158,9 @@ public fun MenuMetrics.Companion.defaults( MenuMetrics(cornerSize, menuMargin, contentPadding, offset, shadowSize, borderWidth, itemMetrics, submenuMetrics) public fun MenuItemMetrics.Companion.defaults( - selectionCornerSize: CornerSize = CornerSize(0.dp), - outerPadding: PaddingValues = PaddingValues(), - contentPadding: PaddingValues = PaddingValues(horizontal = 10.dp, vertical = 4.dp), + selectionCornerSize: CornerSize = CornerSize(4.dp), + outerPadding: PaddingValues = PaddingValues(horizontal = 6.dp), + contentPadding: PaddingValues = PaddingValues(horizontal = 12.dp, vertical = 4.dp), separatorPadding: PaddingValues = PaddingValues(horizontal = 12.dp, vertical = 4.dp), keybindingsPadding: PaddingValues = PaddingValues(start = 36.dp), separatorThickness: Dp = 1.dp,