From 64cdb31252fd6844adc5f731776649ddde6d5c2b Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Wed, 26 Feb 2025 17:06:27 +0100 Subject: [PATCH] Due to collapsing pop-ups on scrollbar change fix, textfields also lost focus. CURA-12254 --- resources/qml/Settings/SettingItem.qml | 1 + resources/qml/Settings/SettingTextField.qml | 5 +++++ resources/qml/Settings/SettingView.qml | 7 ++++++- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/resources/qml/Settings/SettingItem.qml b/resources/qml/Settings/SettingItem.qml index f46c59ff61..744ce8b197 100644 --- a/resources/qml/Settings/SettingItem.qml +++ b/resources/qml/Settings/SettingItem.qml @@ -53,6 +53,7 @@ Item signal showTooltip(string text) signal hideTooltip() signal showAllHiddenInheritedSettings(string category_id) + signal setScrollPositionChangeLoseFocus(bool lose_focus) function createTooltipText() { diff --git a/resources/qml/Settings/SettingTextField.qml b/resources/qml/Settings/SettingTextField.qml index f49b688c18..5259e5ea75 100644 --- a/resources/qml/Settings/SettingTextField.qml +++ b/resources/qml/Settings/SettingTextField.qml @@ -148,6 +148,11 @@ SettingItem if(activeFocus) { base.focusReceived(); + setScrollPositionChangeLoseFocus(false); + } + else + { + setScrollPositionChangeLoseFocus(true); } base.focusGainedByClick = false; } diff --git a/resources/qml/Settings/SettingView.qml b/resources/qml/Settings/SettingView.qml index c5fed795d5..9622998595 100644 --- a/resources/qml/Settings/SettingView.qml +++ b/resources/qml/Settings/SettingView.qml @@ -15,6 +15,7 @@ Item property QtObject settingVisibilityPresetsModel: CuraApplication.getSettingVisibilityPresetsModel() property bool findingSettings + property bool loseFocusOnScrollPositionChange: true Item { @@ -195,7 +196,7 @@ Item onPositionChanged: { // This removes focus from items when scrolling. // This fixes comboboxes staying open and scrolling container - if (!activeFocus && !filter.activeFocus) { + if (!activeFocus && !filter.activeFocus && loseFocusOnScrollPositionChange) { forceActiveFocus(); } } @@ -378,6 +379,10 @@ Item } } } + function onSetScrollPositionChangeLoseFocus(lose_focus) + { + loseFocusOnScrollPositionChange = lose_focus; + } } }