Module: wine Branch: master Commit: eb19c39126f8ea6cad7aa5165adbfd16a5a8b1b2 URL: http://source.winehq.org/git/wine.git/?a=commit;h=eb19c39126f8ea6cad7aa5165a...
Author: Aric Stewart aric@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; } }