Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • FreeType Demo Programs FreeType Demo Programs
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 5
    • Issues 5
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 3
    • Merge requests 3
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • FreeTypeFreeType
  • FreeType Demo ProgramsFreeType Demo Programs
  • Merge requests
  • !21

[windows] Fix IME freezing window, don't filter messages by HWND

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Charlie Jiang requested to merge cqjjjzr/freetype-demos:fix-win-ime into master Apr 06, 2022
  • Overview 2
  • Commits 1
  • Pipelines 0
  • Changes 1

See https://devblogs.microsoft.com/oldnewthing/20050209-00/?p=36493

On systems with IME installed (e.g. Microsoft Pinyin IME for Chinese Windows, and MSIME for Japanese Windows), a hidden auxiliary window with caption Default IME is created. Also, there's an undocumented UserAdapterWindowClass receiving messages. Messages for all those child windows must be handled in the GUI thread properly, so we shouldn't use a per-HWND filter for GetMessage calls because it's the only spot polling the message queue.

If messages bound to those child windows aren't handled properly, and the window was created and focused with IME enabled, the window will just hang. Attaching a debugger shows that no further event is delivered to the window.

Related E-Mail: https://lists.nongnu.org/archive/html/freetype-devel/2022-04/msg00001.html

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: fix-win-ime