From 0087212be2b3e1636a0c154e9e60b1da6e58e088 Mon Sep 17 00:00:00 2001 From: zhangkun2 Date: Mon, 21 Sep 2026 18:12:04 +0800 Subject: [PATCH] fix(slider): increase focus border paddings for Slider visibility MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. Root cause: FocusBoxBorder hardcoded paddings as borderWidth + DS.Style.control.focusBorderPaddings (2+1=3px), making the focus indicator too small to see on Slider's 20x24px handle 2. Fix: add overridable focusBorderPaddings property to FocusBoxBorder (default unchanged), add DS.Style.slider.focusBorderPaddings: 5 in FlowStyle, and pass it from Slider.qml so Slider gets 7px total padding instead of 3px 3. Impact: only Slider focus border becomes more visible; Switch, ComboBox, EditPanel, DelayButton, ButtonPanel keep default 3px Log: Slider focus indicator is now visually visible on Tab focus Influence: 1. Test Slider Tab focus visibility in control center volume/brightness 2. Verify Switch/ComboBox focus border appearance unchanged 3. Verify EditPanel/DelayButton focus border appearance unchanged fix(slider): 增大 Slider 焦点边框间距以提升可见性 1. 根因:FocusBoxBorder 硬编码 paddings 为 borderWidth + DS.Style.control.focusBorderPaddings(2+1=3px),在 Slider 的 20x24px 手柄上焦点指示器过小不可见 2. 方案:在 FocusBoxBorder 新增可覆盖的 focusBorderPaddings 属性 (默认值不变),在 FlowStyle 新增 DS.Style.slider.focusBorderPaddings: 5,并在 Slider.qml 中传入,使 Slider 总间距从 3px 增至 7px 3. 影响:仅 Slider 焦点边框变得更醒目;Switch、ComboBox、EditPanel、 DelayButton、ButtonPanel 保持默认 3px 不变 Log: Slider Tab 聚焦时焦点指示器现在清晰可见 Influence: 1. 测试控制中心音量/亮度滑块 Tab 聚焦时的焦点指示器可见性 2. 验证 Switch/ComboBox 焦点边框外观无变化 3. 验证 EditPanel/DelayButton 焦点边框外观无变化 PMS: BUG-341415 --- qt6/src/qml/FlowStyle.qml | 2 ++ qt6/src/qml/FocusBoxBorder.qml | 3 ++- qt6/src/qml/Slider.qml | 4 +++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/qt6/src/qml/FlowStyle.qml b/qt6/src/qml/FlowStyle.qml index 7c089f110..c3341d52e 100644 --- a/qt6/src/qml/FlowStyle.qml +++ b/qt6/src/qml/FlowStyle.qml @@ -958,6 +958,8 @@ QtObject { property int height: 60 property int highlightMargin: -4 + property int focusBorderPaddings: 5 + property QtObject handle: QtObject { property int width: 20 property int height: 24 diff --git a/qt6/src/qml/FocusBoxBorder.qml b/qt6/src/qml/FocusBoxBorder.qml index 5408c8bf8..fb5f71bd2 100644 --- a/qt6/src/qml/FocusBoxBorder.qml +++ b/qt6/src/qml/FocusBoxBorder.qml @@ -11,11 +11,12 @@ Item { property color color: palette.highlight property real borderWidth: DS.Style.control.focusBorderWidth property real radius: DS.Style.control.radius + property real focusBorderPaddings: DS.Style.control.focusBorderPaddings Rectangle { id: _border - readonly property real paddings: borderWidth + DS.Style.control.focusBorderPaddings + readonly property real paddings: borderWidth + control.focusBorderPaddings anchors { fill: parent diff --git a/qt6/src/qml/Slider.qml b/qt6/src/qml/Slider.qml index a36d81ebb..465f11208 100644 --- a/qt6/src/qml/Slider.qml +++ b/qt6/src/qml/Slider.qml @@ -50,7 +50,9 @@ T.Slider { Loader { anchors.fill: parent active: control.visualFocus - sourceComponent: FocusBoxBorder {} + sourceComponent: FocusBoxBorder { + focusBorderPaddings: DS.Style.slider.focusBorderPaddings + } } }