Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(mac): properly manage Input Method lifecycle #13006

Draft
wants to merge 1 commit into
base: fix/mac/12928-open-osk-on-activation
Choose a base branch
from

Conversation

sgschantz
Copy link
Contributor

Moves handling of all KMInputMethodLifeCycle notifications to KMInputMethodAppDelegate from KMInputController.
KMInputController instances are cached by the OS and swapped in when the input method changes state, making it challenging to keep a single active KMInputController as the observer of the KMInputMethodLifeCycle notifications.

Instead, when a KMInputController is activated by the OS, it simply updates KMInputMethodAppDelegate to point to itself and then instructs KMInputMethodLifeCycle to figure out what transition to make. When KMInputMethodLifeCycle determines the correct transition, it fires the notification messages. KMInputMethodAppDelegate receives these messages and orchestrates the correct changes to the event tap, the OSK window and KMInputController.

Fixes: #12997

@keymanapp-test-bot skip

moves handling of all KMInputMethodLifeCycle notifications to
KMInputMethodAppDelegate and out of KMInputController
because KMInputController instances are being cached
by the OS and swapped in when the input method changes
state

Fixes: #12997
@sgschantz sgschantz added the mac/ label Jan 23, 2025
@sgschantz sgschantz added this to the A18S20 milestone Jan 23, 2025
@sgschantz sgschantz self-assigned this Jan 23, 2025
@keymanapp-test-bot
Copy link

keymanapp-test-bot bot commented Jan 23, 2025

User Test Results

Test specification and instructions

User tests are not required

Test Artifacts

@github-actions github-actions bot added the fix label Jan 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: No status
Development

Successfully merging this pull request may close these issues.

1 participant