-
-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Windows IME #7007
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
Windows IME #7007
Conversation
…rrent focused element
…ispatcher. Also change a method of enabling/disabling IME to work like in WPF.
… context is not applied.
…fix a lot of possible issues. Added comments. Minor Refactoring
There is a lot we can do more about IME. But for now I think this is a good start. Next step will be - not using composition window - create preEdit support in textBox |
…Manager, Move check for IsInputMethodEnabled before TextInputMethodClientRequestedEvent query
…called in Client setter
lfHeight = y2-y1, | ||
lfQuality = 5 //CLEARTYPE_QUALITY | ||
}; | ||
ImmSetCompositionFont(himc, ref logFont); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
cool!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've also tried hard to get a current font family name, is bold, is italic, is underlined from focused textBox and apply here, but I think @kekekeks will be not so happy about this because it adds a lot of code, so I've decided to provide a lot cleaner solution, and f it's ok - then I will push another PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We could optionally provide the current font from ITextInputClient, but that would require also invalidation events and support from the text box. That would also be a breaking change, so it get the feature into 0.10.x we'd need a separate ITextInputClientWithFontInformation
interface.
@kekekeks everything is done 2 weeks ago |
* win32 ime wip * ime window starts tracking the cursor, but coords are wrong * fix win32 ime cursor coord * win32-ime lang-specific behaviors * track language id in WindowImpl * lowercase dllimport * create initial ime on window creation * InputMethodManager: connect to client even if im is absent at the moment * proposal: IKeyboardDevice.NotifyInputMethodUpdated * finalizing * ime: allow client to request active state change * remove backward incompatible ActiveState. * InputMethodManager: NotifyInputMethodUpdated: filter the window of current focused element * [IME] [Windows] ability to enable/disable IME for any InputElement * [IME] [Windows] Refactor Imm32InputMethod - create a single one for dispatcher. Also change a method of enabling/disabling IME to work like in WPF. * [IME] [Windows] Fix IME after dialog show not working - active window context is not applied. * [IME] [Windows] fix intermediate input position * [IME] [Windows] PreEdit font size is applied * [IME] [Windows] Make MoveImeWindow code to be exact like in chrome - fix a lot of possible issues. Added comments. Minor Refactoring * [IME] [Windows] Refactor caret management, improve deactivation, remove comments * [IME] [Windows] Remove redundant api changes (request from @kekekeks) * Fix .sln and ApiCompatBesaline.txt redundant changes. * [Windows] [IME] move IsInputMethodEnabled subscription to InputMethodManager, Move check for IsInputMethodEnabled before TextInputMethodClientRequestedEvent query * [IME] [Windows] remove redundant SetActive(false) call, because it's called in Client setter * remove redundant change Co-authored-by: Yatao Li <[email protected]> Co-authored-by: Max Katz <[email protected]>
What does the pull request do?
This is a continue of #6223. I want to fix all issues our QA team have found to make windows IME usable in production.
Resources used to find out how to implement IME:
PS: I'm not a good github user, so I don't know if there was a better solution to contribute to the @yatli PR. So I've created this PR and PR to @yatli repo.