Skip to content

Commit f1384b5

Browse files
committed
fix: improve text field focus behavior with context menu
1. Add contextMenuVisible property to TextField to track menu visibility 2. Update SearchEdit's editting property to include contextMenuVisible state 3. Modify EditPanel to show border when context menu is visible 4. Add onClosed handler to context menu to maintain text field focus Log: Fixed text field losing focus when context menu is closed Influence: 1. Test opening context menu in text fields and search inputs 2. Verify text field maintains focus after closing context menu 3. Check that search edit layout remains consistent during context menu usage 4. Test border visibility in text fields when context menu is open 5. Verify search icon positioning in SearchEdit during context menu operations fix: 改进带上下文菜单的文本框焦点行为 1. 为 TextField 添加 contextMenuVisible 属性以跟踪菜单可见性 2. 更新 SearchEdit 的 editting 属性以包含上下文菜单可见状态 3. 修改 EditPanel 在上下文菜单可见时显示边框 4. 添加上下文菜单关闭时的处理程序以保持文本框焦点 Log: 修复关闭上下文菜单时文本框失去焦点的问题 Influence: 1. 测试在文本框和搜索输入中打开上下文菜单 2. 验证关闭上下文菜单后文本框保持焦点 3. 检查搜索编辑布局在上下文菜单使用期间保持一致 4. 测试上下文菜单打开时文本框的边框可见性 5. 验证上下文菜单操作期间 SearchEdit 中搜索图标的位置 PMS: BUG-315333
1 parent fcf3631 commit f1384b5

2 files changed

Lines changed: 5 additions & 1 deletion

File tree

qt6/src/qml/SearchEdit.qml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import org.deepin.dtk.style 1.0 as DS
1010
LineEdit {
1111
id: control
1212
property alias placeholder: centerIndicatorLabel.text
13-
property bool editting: control.activeFocus || (text.length !== 0)
13+
property bool editting: control.activeFocus || control.contextMenuVisible || (text.length !== 0)
1414
leftPadding: (editting) ? searchIcon.width + DS.Style.searchEdit.iconLeftMargin
1515
+ DS.Style.searchEdit.iconRightMargin
1616
: 0

qt6/src/qml/TextField.qml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ T.TextField {
1818
property alias alertText: panel.alertText
1919
property alias alertDuration: panel.alertDuration
2020
property alias showAlert: panel.showAlert
21+
property alias contextMenuVisible: contextMenu.visible
2122

2223
implicitWidth: Math.max(DS.Style.control.implicitWidth(control),
2324
placeholderText ? placeholder.implicitWidth + leftPadding + rightPadding
@@ -52,6 +53,7 @@ T.TextField {
5253
background: EditPanel {
5354
id: panel
5455
control: control
56+
showBorder: control.activeFocus || control.contextMenuVisible
5557
implicitWidth: DS.Style.edit.width
5658
implicitHeight: DS.Style.edit.textFieldHeight
5759
}
@@ -74,6 +76,8 @@ T.TextField {
7476

7577
Menu {
7678
id: contextMenu
79+
// Force the text field to keep focus when the context menu is closed
80+
onClosed: control.forceActiveFocus()
7781

7882
MenuItem
7983
{

0 commit comments

Comments
 (0)