From 60cb7387082d159e737c240936f094b3491d0254 Mon Sep 17 00:00:00 2001 From: zqq-dora Date: Thu, 22 Oct 2026 16:12:13 +0800 Subject: [PATCH] fix(MenuItem): show gray background for parent menu item when submenu is open MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Log: fix parent menu item showing active highlight color instead of gray when submenu is open and mouse is not hovering the parent item Influence: parent menu items with open submenus now display gray background instead of active highlight color fix(MenuItem): 修复子菜单打开时一级菜单显示活动色而非灰色的问题 Log: 修复子菜单打开后鼠标移入子菜单时一级菜单仍显示活动高亮色的问题 Influence: 子菜单打开时一级菜单在未 hover 状态下显示灰色背景,而非活动高亮色 --- qt6/src/qml/MenuItem.qml | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/qt6/src/qml/MenuItem.qml b/qt6/src/qml/MenuItem.qml index 5f40e4aa..d3067b83 100644 --- a/qt6/src/qml/MenuItem.qml +++ b/qt6/src/qml/MenuItem.qml @@ -17,7 +17,7 @@ T.MenuItem { padding: DS.Style.menu.item.padding spacing: DS.Style.menu.item.spacing opacity: D.ColorSelector.controlState === D.DTK.DisabledState ? 0.4 : 1 - highlighted: enabled && (hovered || (subMenu && subMenu.visible)) + highlighted: enabled && hovered icon { height: DS.Style.menu.item.iconSize.height width: DS.Style.menu.item.iconSize.height @@ -25,7 +25,7 @@ T.MenuItem { property D.Palette textColor: control.highlighted ? DS.Style.checkedButton.text : DS.Style.menu.itemText - property D.Palette subMenuBackgroundColor: DS.Style.menu.subMenuOpenedBackground + property D.Palette subMenuBackgroundColor: DS.Style.menu.submenuOpenedItemHighlight palette.windowText: D.ColorSelector.textColor D.DciIcon.mode: D.ColorSelector.controlState @@ -106,7 +106,16 @@ T.MenuItem { implicitHeight: DS.Style.menu.item.height Loader { anchors.fill: parent - active: control.highlighted + active: !control.hovered && control.subMenu && control.subMenu.visible + sourceComponent: Rectangle { + color: control.D.ColorSelector.subMenuBackgroundColor + radius: DS.Style.menu.item.radius + } + } + + Loader { + anchors.fill: parent + active: control.down || control.highlighted sourceComponent: HighlightPanel { outerShadowColor: null innerShadowColor: null