Skip to content

fix: improve input source switching reliability on macOS 26#105

Open
spinachomes wants to merge 1 commit into
runjuu:mainfrom
spinachomes:main
Open

fix: improve input source switching reliability on macOS 26#105
spinachomes wants to merge 1 commit into
runjuu:mainfrom
spinachomes:main

Conversation

@spinachomes
Copy link
Copy Markdown
Contributor

@spinachomes spinachomes commented May 18, 2026

修复在macOS 26中,当应用默认输入法设置为中文输入法,且总是切换至默认输入法。当切换到该应用时,会先切换至中文输入法,然后闪现切换至ABC,最后又切换至中文输入法,而不是直接切到中文输入法,导致打字不流畅。我尝试在2.10.0版本,此问题仍然存在,故再次pr

goodnightzsj pushed a commit to goodnightzsj/InputSourcePro that referenced this pull request May 29, 2026
…provements

Core fixes:
- Restore _isProgrammaticChange flag in InputSourceVM to filter out
  system notifications from programmatic switches (runjuu#83, runjuu#66, runjuu#68)
- Add allowShortcutFallback parameter to prevent CJKV shortcut bounce
  when user manually triggers input source switch via keyboard shortcut
- Change browser URL poll interval from 1s to 50ms for faster resolution
- Add browser context cache in ApplicationVM to avoid losing per-website
  rules while waiting for AX to resolve the focused tab URL

Issue fixes:
- runjuu#80: Replace NSApp.activate with orderFrontRegardless in temporary
  input window to prevent triggering emoji dialog when switching to WeChat
- runjuu#97: Set temporary input window alpha to 0 (was 0.01) so it's truly
  invisible even when all indicators are disabled
- runjuu#103/runjuu#94: Removing NSApp.activate prevents fullscreen lag and tearing
- runjuu#104: Add ChatGPT (com.openai.chatgpt) to floating app list so its
  floating window doesn't trigger unwanted input source switching
- runjuu#109: Add global "Force English Punctuation for All Apps" toggle in
  General settings, overriding per-app punctuation rules
- runjuu#95: (Partial) PunctuationService key code map covers the reported
  characters; Unicode-level post-processing may still be needed

Bug fixes:
- Fix canPostShortcuts() returning true when Accessibility permission
  is missing (was a no-op guard that always returned true)
- Add multi-point timer (50ms/150ms/300ms) after input source switch
  instead of single 1s delay, for faster state convergence
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant