winex11: Add IME functionality to winex11drv.
All XIM interaction will soon pass through this functionality instead of directly to imm32.
This commit is contained in:
parent
d03f4d2a49
commit
6dca48feaf
|
@ -3,7 +3,7 @@ TOPOBJDIR = ../..
|
|||
SRCDIR = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
MODULE = winex11.drv
|
||||
IMPORTS = user32 gdi32 advapi32 kernel32 ntdll
|
||||
IMPORTS = user32 gdi32 advapi32 imm32 kernel32 ntdll
|
||||
EXTRAINCL = @X_CFLAGS@
|
||||
EXTRALIBS = @X_LIBS@ @X_PRE_LIBS@ @XLIB@ @X_EXTRA_LIBS@
|
||||
|
||||
|
@ -21,6 +21,7 @@ C_SRCS = \
|
|||
dib_src_swap.c \
|
||||
event.c \
|
||||
graphics.c \
|
||||
ime.c \
|
||||
init.c \
|
||||
keyboard.c \
|
||||
mouse.c \
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -145,3 +145,21 @@
|
|||
@ cdecl wglShareLists(long long) X11DRV_wglShareLists
|
||||
@ cdecl wglUseFontBitmapsA(ptr long long long) X11DRV_wglUseFontBitmapsA
|
||||
@ cdecl wglUseFontBitmapsW(ptr long long long) X11DRV_wglUseFontBitmapsW
|
||||
|
||||
#IME Interface
|
||||
@ stdcall ImeInquire(ptr wstr wstr)
|
||||
@ stdcall ImeConfigure(long long long ptr)
|
||||
@ stdcall ImeDestroy(long)
|
||||
@ stdcall ImeEscape(long long ptr)
|
||||
@ stdcall ImeSelect(long long)
|
||||
@ stdcall ImeSetActiveContext(long long)
|
||||
@ stdcall ImeToAsciiEx(long long ptr ptr long long)
|
||||
@ stdcall NotifyIME(long long long long)
|
||||
@ stdcall ImeRegisterWord(wstr long wstr)
|
||||
@ stdcall ImeUnregisterWord(wstr long wstr)
|
||||
@ stdcall ImeEnumRegisterWord(ptr wstr long wstr ptr)
|
||||
@ stdcall ImeSetCompositionString(long long ptr long ptr long)
|
||||
@ stdcall ImeConversionList(long wstr ptr long long)
|
||||
@ stdcall ImeProcessKey(long long long ptr)
|
||||
@ stdcall ImeGetRegisterWordStyle(wstr long wstr)
|
||||
@ stdcall ImeGetImeMenuItems(long long long ptr ptr long)
|
||||
|
|
|
@ -277,6 +277,20 @@ extern BOOL destroy_glxpixmap(Display *display, XID glxpixmap);
|
|||
extern XIC X11DRV_CreateIC(XIM xim, Display *display, Window win);
|
||||
extern XIM X11DRV_SetupXIM(Display *display, const char *input_style);
|
||||
extern void X11DRV_XIMLookupChars( const char *str, DWORD count );
|
||||
extern void X11DRV_ForceXIMReset(HWND hwnd);
|
||||
|
||||
/* IME support */
|
||||
extern void IME_RegisterClasses(HINSTANCE hImeInst);
|
||||
extern void IME_UnregisterClasses(HINSTANCE hImeInst);
|
||||
extern void IME_SetOpenStatus(BOOL fOpen);
|
||||
extern void IME_XIMPresent(BOOL present);
|
||||
extern LRESULT IME_SendMessageToSelectedHWND(UINT msg, WPARAM wParam, LPARAM lParam);
|
||||
extern INT IME_GetCursorPos();
|
||||
extern void IME_UpdateAssociation(HWND focus);
|
||||
extern BOOL IME_SetCompositionString(DWORD dwIndex, LPCVOID lpComp,
|
||||
DWORD dwCompLen, LPCVOID lpRead,
|
||||
DWORD dwReadLen);
|
||||
extern BOOL IME_NotifyIME(DWORD dwAction, DWORD dwIndex, DWORD dwValue);
|
||||
|
||||
extern void X11DRV_XDND_EnterEvent( HWND hWnd, XClientMessageEvent *event );
|
||||
extern void X11DRV_XDND_PositionEvent( HWND hWnd, XClientMessageEvent *event );
|
||||
|
|
|
@ -672,12 +672,14 @@ BOOL WINAPI DllMain( HINSTANCE hinst, DWORD reason, LPVOID reserved )
|
|||
{
|
||||
case DLL_PROCESS_ATTACH:
|
||||
ret = process_attach();
|
||||
IME_RegisterClasses(hinst);
|
||||
break;
|
||||
case DLL_THREAD_DETACH:
|
||||
thread_detach();
|
||||
break;
|
||||
case DLL_PROCESS_DETACH:
|
||||
process_detach();
|
||||
IME_UnregisterClasses(hinst);
|
||||
break;
|
||||
}
|
||||
return ret;
|
||||
|
|
|
@ -500,6 +500,8 @@ XIM X11DRV_SetupXIM(Display *display, const char *input_style)
|
|||
}
|
||||
|
||||
wine_tsx11_unlock();
|
||||
IME_XIMPresent(TRUE);
|
||||
IME_UpdateAssociation(NULL);
|
||||
|
||||
if(!hImmDll)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue