[NTUSER][IMM32] Create the default IME window! (retry) (#4463)

The default IME window has to be created for each top-level window in specific condition. It is needed for implementing Japanese input.
- Add IntFocusSetInputContext helper function.
- Call IntFocusSetInputContext after sending WM_KILLFOCUS message.
- Add IntWantImeWindow, co_IntCreateDefaultImeWindow, and IntDestroyOwnedWindows helper functions.
- Create the default IME window (spwndDefaultIme) for the specified window at IntCreateWindow.
- Fix Imm32InternalLockIMC function.
CORE-11700
This commit is contained in:
Katayama Hirofumi MZ 2022-04-23 07:11:48 +09:00 committed by GitHub
parent 2f2795ab4c
commit 8f719cb97e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 265 additions and 48 deletions

View file

@ -24,6 +24,11 @@ extern "C" {
#define IMC_GETSOFTKBDPOS 0x0013
#define IMC_SETSOFTKBDPOS 0x0014
/* wParam for WM_IME_SYSTEM */
#define IMS_IMEACTIVATE 0x17
#define IMS_IMEDEACTIVATE 0x18
#define IMS_ACTIVATELAYOUT 0x19
#define IMMGWL_IMC 0
#define IMMGWL_PRIVATE (sizeof(LONG))