mirror of
https://github.com/reactos/reactos.git
synced 2024-10-02 15:34:13 +00:00
[IMM32] Rewrite ImmSetStatusWindowPos (#3852)
Implementing Japanese input... CORE-11700
This commit is contained in:
parent
da2a5673e7
commit
a71de262d3
|
@ -3129,25 +3129,29 @@ BOOL WINAPI ImmSetOpenStatus(HIMC hIMC, BOOL fOpen)
|
||||||
*/
|
*/
|
||||||
BOOL WINAPI ImmSetStatusWindowPos(HIMC hIMC, LPPOINT lpptPos)
|
BOOL WINAPI ImmSetStatusWindowPos(HIMC hIMC, LPPOINT lpptPos)
|
||||||
{
|
{
|
||||||
InputContextData *data = get_imc_data(hIMC);
|
LPINPUTCONTEXT pIC;
|
||||||
|
HWND hWnd;
|
||||||
|
DWORD dwImeThreadId, dwThreadId;
|
||||||
|
|
||||||
TRACE("(%p, %p)\n", hIMC, lpptPos);
|
TRACE("ImmSetStatusWindowPos(%p, {%ld, %ld})\n", hIMC, lpptPos->x, lpptPos->y);
|
||||||
|
|
||||||
if (!data || !lpptPos)
|
dwImeThreadId = Imm32QueryInputContext(hIMC, 1);
|
||||||
{
|
dwThreadId = GetCurrentThreadId();
|
||||||
SetLastError(ERROR_INVALID_HANDLE);
|
if (dwImeThreadId != dwThreadId)
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (IMM_IsCrossThreadAccess(NULL, hIMC))
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
TRACE("\t%s\n", wine_dbgstr_point(lpptPos));
|
pIC = ImmLockIMC(hIMC);
|
||||||
|
if (!pIC)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
data->IMC.ptStatusWndPos = *lpptPos;
|
hWnd = pIC->hWnd;
|
||||||
ImmNotifyIME( hIMC, NI_CONTEXTUPDATED, 0, IMC_SETSTATUSWINDOWPOS);
|
pIC->ptStatusWndPos = *lpptPos;
|
||||||
ImmInternalSendIMENotify(data, IMN_SETSTATUSWINDOWPOS, 0);
|
pIC->fdwInit |= INIT_STATUSWNDPOS;
|
||||||
|
|
||||||
|
ImmUnlockIMC(hIMC);
|
||||||
|
|
||||||
|
Imm32NotifyAction(hIMC, hWnd, NI_CONTEXTUPDATED, 0,
|
||||||
|
IMC_SETSTATUSWINDOWPOS, IMN_SETSTATUSWINDOWPOS, 0);
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue