From a4e9343b12e73d7ab1abc82e6832379146a4cdc0 Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Sun, 18 May 2025 11:42:55 -0400 Subject: [PATCH] Initially focus a more relevant login field This was only done during account change, but the same logic is now used on start-up. Also, if the password doesn't need to be entered by the user (e.g. they have "Remember Password" checked) then the OTP/Login button is focused instead. --- launcher/ui/Pages/LoginPage.qml | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/launcher/ui/Pages/LoginPage.qml b/launcher/ui/Pages/LoginPage.qml index e50bf03..b73f08c 100644 --- a/launcher/ui/Pages/LoginPage.qml +++ b/launcher/ui/Pages/LoginPage.qml @@ -73,22 +73,28 @@ QQC2.Control { function onAccountChanged(): void { page.updateFields(); - - if (LauncherCore.currentProfile.account.needsPassword) { - passwordField.forceActiveFocus(); - return; - } - - if (LauncherCore.currentProfile.account.config.useOTP) { - otpField.forceActiveFocus(); - return; - } - - loginButton.forceActiveFocus(); + page.updateFocus(); } } - Component.onCompleted: updateFields() + function updateFocus(): void { + if (LauncherCore.currentProfile.account.needsPassword && !LauncherCore.currentProfile.account.config.rememberPassword) { + passwordField.forceActiveFocus(); + return; + } + + if (LauncherCore.currentProfile.account.config.useOTP) { + otpField.forceActiveFocus(); + return; + } + + loginButton.forceActiveFocus(); + } + + Component.onCompleted: { + updateFields(); + updateFocus(); + } contentItem: ColumnLayout { width: parent.width @@ -227,7 +233,6 @@ QQC2.Control { FormCard.FormPasswordFieldDelegate { id: passwordField label: i18n("Square Enix Password") - focus: true onAccepted: { if (otpField.visible) { otpField.clicked();