Author: winesync
Date: Wed Apr 25 12:21:11 2007
New Revision: 26496
URL:
http://svn.reactos.org/svn/reactos?rev=26496&view=rev
Log:
Autosyncing with Wine HEAD
Modified:
trunk/reactos/dll/win32/imm32/imm.c
trunk/reactos/dll/win32/imm32/imm32.spec
Modified: trunk/reactos/dll/win32/imm32/imm.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/imm32/imm.c?rev=…
==============================================================================
--- trunk/reactos/dll/win32/imm32/imm.c (original)
+++ trunk/reactos/dll/win32/imm32/imm.c Wed Apr 25 12:21:11 2007
@@ -763,8 +763,8 @@
static const WCHAR the_name[] =
{'I','M','E','\0'};
IMM_Register();
- hwndDefault = CreateWindowExW( WS_EX_CLIENTEDGE, WC_IMECLASSNAME,
- the_name, WS_POPUPWINDOW|WS_CAPTION, 0, 0, 120, 55, 0, 0,
+ hwndDefault = CreateWindowExW( WS_EX_TOOLWINDOW, WC_IMECLASSNAME,
+ the_name, WS_POPUP, 0, 0, 1, 1, 0, 0,
hImeInst, 0);
TRACE("Default created (%p)\n",hwndDefault);
@@ -1556,6 +1556,7 @@
RECT rect;
HDC hdc = BeginPaint(hwnd,&ps);
GetClientRect(hwnd,&rect);
+ FillRect(hdc, &rect, (HBRUSH)(COLOR_WINDOW + 1));
if (root_context->dwCompStringLength &&
root_context->CompositionString)
{
@@ -1566,8 +1567,6 @@
if (root_context->textfont)
oldfont = SelectObject(hdc,root_context->textfont);
- TextOutW(hdc, 0,0,(LPWSTR)root_context->CompositionString,
- root_context->dwCompStringLength / sizeof(WCHAR));
GetTextExtentPoint32W(hdc, (LPWSTR)root_context->CompositionString,
root_context->dwCompStringLength / sizeof(WCHAR),
@@ -1575,12 +1574,44 @@
pt.x = size.cx;
pt.y = size.cy;
LPtoDP(hdc,&pt,1);
- rect.left = pt.x;
+
+ if (root_context->CompForm.dwStyle == CFS_POINT ||
+ root_context->CompForm.dwStyle == CFS_FORCE_POSITION)
+ {
+ POINT cpt = root_context->CompForm.ptCurrentPos;
+ ClientToScreen(root_context->hwnd,&cpt);
+ rect.left = cpt.x;
+ rect.top = cpt.y;
+ rect.right = rect.left + pt.x + 20;
+ rect.bottom = rect.top + pt.y + 20;
+ }
+ else if (root_context->CompForm.dwStyle == CFS_RECT)
+ {
+ POINT cpt;
+ cpt.x = root_context->CompForm.rcArea.left;
+ cpt.y = root_context->CompForm.rcArea.top;
+ ClientToScreen(root_context->hwnd,&cpt);
+ rect.left = cpt.x;
+ rect.top = cpt.y;
+ cpt.x = root_context->CompForm.rcArea.right;
+ cpt.y = root_context->CompForm.rcArea.bottom;
+ ClientToScreen(root_context->hwnd,&cpt);
+ rect.right = cpt.x;
+ rect.bottom = cpt.y;
+ }
+ else
+ {
+ rect.right = rect.left + pt.x + 20;
+ rect.bottom = rect.top + pt.y + 20;
+ }
+ MoveWindow(hwnd, rect.left, rect.top, rect.right - rect.left ,
+ rect.bottom - rect.top, FALSE);
+ TextOutW(hdc, 10,10,(LPWSTR)root_context->CompositionString,
+ root_context->dwCompStringLength / sizeof(WCHAR));
if (oldfont)
SelectObject(hdc,oldfont);
}
- FillRect(hdc,&rect, (HBRUSH) (COLOR_WINDOW+1));
EndPaint(hwnd,&ps);
}
Modified: trunk/reactos/dll/win32/imm32/imm32.spec
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/imm32/imm32.spec…
==============================================================================
--- trunk/reactos/dll/win32/imm32/imm32.spec (original)
+++ trunk/reactos/dll/win32/imm32/imm32.spec Wed Apr 25 12:21:11 2007
@@ -93,7 +93,7 @@
@ stdcall ImmSetCompositionStringW(long long ptr long ptr long)
@ stdcall ImmSetCompositionWindow(long ptr)
@ stdcall ImmSetConversionStatus(long long long)
-@ stdcall ImmSetHotKey(long long long ptr) user32.CliImmSetHotKey
+#@ stdcall ImmSetHotKey(long long long ptr) user32.CliImmSetHotKey
@ stdcall ImmSetOpenStatus(long long)
@ stdcall ImmSetStatusWindowPos(long ptr)
@ stub ImmShowSoftKeyboard