Commit 652af4e2 authored by Aric Stewart's avatar Aric Stewart Committed by Alexandre Julliard

user32: Implement IMR_QUERYCHARPOSITION handling in the edit control.

parent b98ef8f0
......@@ -5169,6 +5169,25 @@ LRESULT EditWndProc_common( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, B
case WM_IME_CONTROL:
break;
case WM_IME_REQUEST:
switch (wParam)
{
case IMR_QUERYCHARPOSITION:
{
LRESULT pos;
IMECHARPOSITION *chpos = (IMECHARPOSITION *)lParam;
pos = EDIT_EM_PosFromChar(es, es->selection_start + chpos->dwCharPos, FALSE);
chpos->pt.x = LOWORD(pos);
chpos->pt.y = HIWORD(pos);
chpos->cLineHeight = es->line_height;
chpos->rcDocument = es->format_rect;
result = 1;
break;
}
}
break;
default:
result = DefWindowProcT(hwnd, msg, wParam, lParam, unicode);
break;
......
......@@ -129,6 +129,15 @@ typedef struct _tagCOMPOSITIONFORM
typedef BOOL (CALLBACK* IMCENUMPROC)(HIMC, LPARAM);
typedef struct _tagIMECHARPOSITION
{
DWORD dwSize;
DWORD dwCharPos;
POINT pt;
UINT cLineHeight;
RECT rcDocument;
} IMECHARPOSITION, *LPIMECHARPOSITION;
/* wParam for WM_IME_CONTROL */
#define IMC_GETCANDIDATEPOS 0x0007
#define IMC_SETCANDIDATEPOS 0x0008
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment