--- canna2imm32-1.0.0/winimm.c~ 2004-10-05 09:25:09.836789200 +0900 +++ canna2imm32-1.0.0/winimm.c 2004-10-05 09:24:41.945915400 +0900 @@ -1137,7 +1137,7 @@ break; case IMN_CLOSESTATUSWINDOW: m_msg_dbg("IMN_CLOSESTATUSWINDOW\n"); -#if 1 +#if 0 /* どうもinactiveになるとIMN_CLOSESTATUSWINDOWが来て */ /* かな漢が出来なくなるので入れる。 */ if (SetActiveWindow(hWnd_IMM) == NULL) @@ -1293,7 +1293,7 @@ #if 0 hwnd = CreateWindow("WinIMM32", "", WS_POPUPWINDOW | WS_SYSMENU, 0,0,0,0, NULL, 0, 0, 0); /* HWND_MESSAGEウィンドウは入力を受け付けないらしい(ImmXXX系のAPIを受け付けない) */ #else - hwnd = CreateWindowEx(WS_EX_TOOLWINDOW, "WinIMM32", "", WS_OVERLAPPEDWINDOW, 0,0,0,0, NULL, 0, 0, 0); + hwnd = CreateWindowEx(WS_EX_PALETTEWINDOW, "WinIMM32", "", WS_POPUPWINDOW, 0, 0, 0, 0, NULL, 0, 0, 0); #endif if (hwnd == 0) { @@ -1306,7 +1306,9 @@ } SetWindowText(hwnd, "Canna2IMM32"); +#if 0 ShowWindow(hwnd, SW_SHOW); /* どうやらShowWindow()しないとImmSetCompositionString()できないらしい */ +#endif while (GetMessage(&msg, NULL, 0, 0)) { @@ -1616,6 +1618,9 @@ if (cx->fIME == 0) mw_open_imm32(id, cx, client[cx->client_id].user); + if (! GetActiveWindow()) + SetActiveWindow(hWnd_IMM); + if (cx->fIME != 0) { /* hIMCの確保 */