Aric Stewart : winemac.drv: Improve positioning of IME client window based on caret.
Alexandre Julliard
julliard at winehq.org
Thu Feb 20 10:08:10 CST 2014
Module: wine
Branch: master
Commit: eb19c39126f8ea6cad7aa5165adbfd16a5a8b1b2
URL: http://source.winehq.org/git/wine.git/?a=commit;h=eb19c39126f8ea6cad7aa5165adbfd16a5a8b1b2
Author: Aric Stewart <aric at codeweavers.com>
Date: Thu Feb 20 15:28:33 2014 +0900
winemac.drv: Improve positioning of IME client window based on caret.
---
dlls/winemac.drv/ime.c | 15 +++++----------
1 file changed, 5 insertions(+), 10 deletions(-)
diff --git a/dlls/winemac.drv/ime.c b/dlls/winemac.drv/ime.c
index 2c74f6e..3a2a78b 100644
--- a/dlls/winemac.drv/ime.c
+++ b/dlls/winemac.drv/ime.c
@@ -1581,17 +1581,12 @@ BOOL query_ime_char_rect(macdrv_query* query)
if (!ret)
{
- HWND focus = GetFocus();
- if (focus && (focus == hwnd || IsChild(hwnd, focus)) &&
- GetClientRect(focus, &charpos.rcDocument))
+ GUITHREADINFO gti;
+ gti.cbSize = sizeof(gti);
+ if (GetGUIThreadInfo(0, >i))
{
- if (!GetCaretPos((POINT*)&charpos.rcDocument))
- charpos.rcDocument.left = charpos.rcDocument.top = 0;
-
- charpos.rcDocument.right = charpos.rcDocument.left + 1;
- MapWindowPoints(focus, 0, (POINT*)&charpos.rcDocument, 2);
-
- *rect = cgrect_from_rect(charpos.rcDocument);
+ MapWindowPoints(gti.hwndCaret, 0, (POINT*)>i.rcCaret, 2);
+ *rect = cgrect_from_rect(gti.rcCaret);
ret = TRUE;
}
}
More information about the wine-cvs
mailing list