Merge pull request #20321 from Ultimaker/CURA-12254_dont_lose_focus

[CURA-12254] Don't lose text-field focus when scrolling.
This commit is contained in:
HellAholic 2025-02-27 12:10:21 +01:00 committed by GitHub
commit 9ac0f113db
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 12 additions and 1 deletions

View File

@ -53,6 +53,7 @@ Item
signal showTooltip(string text) signal showTooltip(string text)
signal hideTooltip() signal hideTooltip()
signal showAllHiddenInheritedSettings(string category_id) signal showAllHiddenInheritedSettings(string category_id)
signal setScrollPositionChangeLoseFocus(bool lose_focus)
function createTooltipText() function createTooltipText()
{ {

View File

@ -148,6 +148,11 @@ SettingItem
if(activeFocus) if(activeFocus)
{ {
base.focusReceived(); base.focusReceived();
setScrollPositionChangeLoseFocus(false);
}
else
{
setScrollPositionChangeLoseFocus(true);
} }
base.focusGainedByClick = false; base.focusGainedByClick = false;
} }

View File

@ -15,6 +15,7 @@ Item
property QtObject settingVisibilityPresetsModel: CuraApplication.getSettingVisibilityPresetsModel() property QtObject settingVisibilityPresetsModel: CuraApplication.getSettingVisibilityPresetsModel()
property bool findingSettings property bool findingSettings
property bool loseFocusOnScrollPositionChange: true
Item Item
{ {
@ -195,7 +196,7 @@ Item
onPositionChanged: { onPositionChanged: {
// This removes focus from items when scrolling. // This removes focus from items when scrolling.
// This fixes comboboxes staying open and scrolling container // This fixes comboboxes staying open and scrolling container
if (!activeFocus && !filter.activeFocus) { if (!activeFocus && !filter.activeFocus && loseFocusOnScrollPositionChange) {
forceActiveFocus(); forceActiveFocus();
} }
} }
@ -378,6 +379,10 @@ Item
} }
} }
} }
function onSetScrollPositionChangeLoseFocus(lose_focus)
{
loseFocusOnScrollPositionChange = lose_focus;
}
} }
} }