diff --git a/app/qml/account/MMLoginPage.qml b/app/qml/account/MMLoginPage.qml index 8a2fd0866..2c6f6ae40 100644 --- a/app/qml/account/MMLoginPage.qml +++ b/app/qml/account/MMLoginPage.qml @@ -197,6 +197,8 @@ MMPage { drawerHeader.title: qsTr( "Change server" ) + // clear focus to avoid stale/half-rendered screen on Android + onAboutToHide: if ( serverURLInput.textField.activeFocus ) serverURLInput.textField.focus = false onClosed: changeServerDrawerLoader.active = false drawerContent: MMScrollView { diff --git a/app/qml/dialogs/MMCloseAccountDialog.qml b/app/qml/dialogs/MMCloseAccountDialog.qml index 87d8574a6..0a094b34d 100644 --- a/app/qml/dialogs/MMCloseAccountDialog.qml +++ b/app/qml/dialogs/MMCloseAccountDialog.qml @@ -20,6 +20,9 @@ MMDrawer { signal closeAccountClicked() + // clear focus to avoid stale/half-rendered screen on Android + onAboutToHide: if ( usernameInput.textField.activeFocus ) usernameInput.textField.focus = false + drawerContent: MMScrollView { width: parent.width diff --git a/app/qml/form/MMFormController.qml b/app/qml/form/MMFormController.qml index 6b098ac52..dbfdedd31 100644 --- a/app/qml/form/MMFormController.qml +++ b/app/qml/form/MMFormController.qml @@ -66,6 +66,13 @@ Item { leftPadding: 0 rightPadding: 0 + // clear focus to avoid stale/half-rendered screen on Android + onAboutToHide: { + let focusItem = drawer.ApplicationWindow.window?.activeFocusItem + if ( focusItem ) + focusItem.focus = false + } + StateGroup { id: statesManager diff --git a/app/qml/gps/MMNetworkProviderDrawer.qml b/app/qml/gps/MMNetworkProviderDrawer.qml index 55a448a9f..a107c8fdc 100644 --- a/app/qml/gps/MMNetworkProviderDrawer.qml +++ b/app/qml/gps/MMNetworkProviderDrawer.qml @@ -119,6 +119,13 @@ MMComponents.MMDrawer { portInput.errorMsg = qsTr( "Network position provider with this IP address & port already exists" ) } + // clear focus to avoid stale/half-rendered screen on Android + onAboutToHide: { + ipAddressInput.textField.focus = false + portInput.textField.focus = false + aliasInput.textField.focus = false + } + onClosed: { ipAddressInput.textField.clear() portInput.textField.clear() diff --git a/app/qml/settings/components/MMSettingsInput.qml b/app/qml/settings/components/MMSettingsInput.qml index 11013737e..a189aef04 100644 --- a/app/qml/settings/components/MMSettingsInput.qml +++ b/app/qml/settings/components/MMSettingsInput.qml @@ -33,6 +33,8 @@ MMSettingsItem { drawerHeader.title: root.title + // clear focus to avoid stale/half-rendered screen on Android + onAboutToHide: if ( textInput.textField.activeFocus ) textInput.textField.focus = false onClosed: drawerLoader.active = false drawerContent: MMComponents.MMScrollView {