Conversation
echoMode: TextInput.Password only masks committed text. An active input method (fcitx5, ibus, ...) still draws its own preedit/candidate popup with the literal characters being typed, independent of the field's echo mode, until Qt.ImhSensitiveData/ImhHiddenText/ImhNoPredictiveText hints tell it not to. Sets inputMethodHints on the lock screen password field, the shared Ui/TextField password mode, and the Polkit auth prompt's masked state, so a password typed while composing with an IME isn't shown in plaintext on unlock or privilege-escalation dialogs. Fixes omacom#12727
|
The added hints do not change the effective input-method flags in the inspected Qt versions, so they do not establish the proposed fix for #12727. Password mode overrides the explicit hintsThis affects all three additions:
Both versions also add NoAutoUppercase. See the effective-hints implementation in Qt 6.10.2 and Qt 6.11.2, and the latter's input-method query. Synthetic Qt 6.11.2 password inputs also returned Impact: The input method receives no new password-protection flags. In particular, explicitly adding HiddenText cannot restore it on Qt 6.11.2. The comments saying these declarations suppress preedit, and the claim that this fixes #12727, are not supported by this change. The reported exposure itself was not reproduced, and its root cause remains unconfirmed. Suggested change: Identify the actual exposed-text path with a baseline/head IME reproduction on the affected Qt version, then change that path rather than redeclaring flags Qt already adds or removes. Until that difference is demonstrated, avoid presenting these declarations as the fix. Review informationTest scope: Pinned head Community review: Independent automated community review, unaffiliated with the Omarchy team, intended to help prepare PRs for their review. Automated AI review: Astra Medium initial inspection, independent Opus 5.5 High and GPT 6 Sol Xhigh technical reviews, followed by coordinator verification of the cited source and recorded query values. A fresh Astra Medium check assessed presentation and disclosures only. |
Summary
TextInput.Password/Ui/TextField'spasswordmode only mask committed text. An active input method (fcitx5, ibus, ...) still renders its own preedit/candidate popup with the literal characters being composed, independent ofechoMode, untilQt.ImhSensitiveData | Qt.ImhHiddenText | Qt.ImhNoPredictiveTexthints tell it not to.inputMethodHintsto the lock screen password field (shell/plugins/lock/LockView.qml), the shared password mode ofshell/Ui/TextField.qml, and the masked state of the Polkit auth prompt (shell/plugins/polkit/PolkitAgent.qml), so a password typed while composing with an IME isn't shown in plaintext on the unlock screen or privilege-escalation dialogs.Fixes #12727
Test plan
./test/shell(ran in a non-Linux dev environment here, so it could not fully execute — please re-run in CI)