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, &gti))
         {
-            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*)&gti.rcCaret, 2);
+            *rect = cgrect_from_rect(gti.rcCaret);
             ret = TRUE;
         }
     }




More information about the wine-cvs mailing list