diff --git a/qt6/src/qml/SearchEdit.qml b/qt6/src/qml/SearchEdit.qml index 240787c9..cca234f0 100644 --- a/qt6/src/qml/SearchEdit.qml +++ b/qt6/src/qml/SearchEdit.qml @@ -10,7 +10,7 @@ import org.deepin.dtk.style 1.0 as DS LineEdit { id: control property alias placeholder: centerIndicatorLabel.text - property bool editting: control.activeFocus || (text.length !== 0) + property bool editting: control.activeFocus || control.contextMenuVisible || (text.length !== 0) leftPadding: (editting) ? searchIcon.width + DS.Style.searchEdit.iconLeftMargin + DS.Style.searchEdit.iconRightMargin : 0 diff --git a/qt6/src/qml/TextField.qml b/qt6/src/qml/TextField.qml index 1d83fcfd..319ea335 100644 --- a/qt6/src/qml/TextField.qml +++ b/qt6/src/qml/TextField.qml @@ -18,6 +18,7 @@ T.TextField { property alias alertText: panel.alertText property alias alertDuration: panel.alertDuration property alias showAlert: panel.showAlert + property alias contextMenuVisible: contextMenu.visible implicitWidth: Math.max(DS.Style.control.implicitWidth(control), placeholderText ? placeholder.implicitWidth + leftPadding + rightPadding @@ -52,6 +53,7 @@ T.TextField { background: EditPanel { id: panel control: control + showBorder: control.activeFocus || control.contextMenuVisible implicitWidth: DS.Style.edit.width implicitHeight: DS.Style.edit.textFieldHeight } @@ -74,6 +76,8 @@ T.TextField { Menu { id: contextMenu + // Force the text field to keep focus when the context menu is closed + onClosed: control.forceActiveFocus() MenuItem {