fix: switch user login password input unresponsive#1020
Draft
deepin-wm wants to merge 1 commit into
Draft
Conversation
|
Skipping CI for Draft Pull Request. |
There was a problem hiding this comment.
Sorry @deepin-wm, you have reached your weekly rate limit of 500000 diff characters.
Please try again later or upgrade to continue using Sourcery
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: deepin-wm The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
1. Add setLock(true) in lock() for real user branch to immediately set isLocked state 2. The root cause is lock() did not immediately set isLocked, causing keyboard focus not transferred to lock screen QML 3. Downgrade onSessionLock() log from qCWarning to qCDebug for non-active session id branch 4. Add ordering dependency comment in setLock() to prevent re-entry 5. Use Qt.callLater in updateUser() to delay forceActiveFocus until event loop iteration ends Log: Fixed switch user login screen password input unresponsive issue Influence: 1. Test user switching from power management interface 2. Verify password input field gets focus after user selection 3. Test lock/unlock cycle with real user sessions fix: 切换用户登录输入密码无响应 1. 在 lock() 真实用户分支中添加 setLock(true) 立即设置 isLocked 状态 2. 根因是 lock() 未立即设置 isLocked, 导致键盘焦点未转移到锁屏 QML 3. 将 onSessionLock() 中非活跃 session 的日志 从 qCWarning 降级为 qCDebug 4. 在 setLock() 中添加顺序依赖注释防止重入 5. 在 updateUser() 中使用 Qt.callLater 延迟 forceActiveFocus 到事件循环末尾 Log: 修复切换用户登录界面输入密码无响应问题 Influence: 1. 测试从电源管理界面切换用户功能 2. 验证用户选择后密码输入框获得焦点 3. 测试真实用户会话的锁定/解锁循环
3d6aa43 to
92b78d1
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fix the issue where switching users results in an unresponsive password input field on the login screen.
Root Cause
GreeterProxy::lock()did not immediately setisLockedwhen the active session is a real user (non-"dde"), causing keyboard focus to not transfer to the lock screen QML.Changes
setLock(true)inlock()for real user branch to immediately setisLockedstateonSessionLock()log fromqCWarningtoqCDebugfor non-active session ID branch, since this is expected whenlock()already setisLockedsetLock()to prevent re-entry (m_isLockedmust be set beforem_lockScreen->lock())Qt.callLaterinupdateUser()to delayforceActiveFocusuntil event loop iteration ends, ensuring UserList Popup close has taken effectTesting