Aric Stewart : imm: Report GCS_DELTASTART to help behavior with advanced IME aware applications .

Alexandre Julliard julliard at wine.codeweavers.com
Wed Aug 29 07:48:13 CDT 2007


Module: wine
Branch: master
Commit: 0c9c00cf2b94108d22e96d8c053c70770c59d114
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=0c9c00cf2b94108d22e96d8c053c70770c59d114

Author: Aric Stewart <aric at codeweavers.com>
Date:   Wed Aug 29 17:55:07 2007 +0900

imm: Report GCS_DELTASTART to help behavior with advanced IME aware applications.

---

 dlls/imm32/imm.c |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 deletions(-)

diff --git a/dlls/imm32/imm.c b/dlls/imm32/imm.c
index 2bb1a47..38ba65e 100644
--- a/dlls/imm32/imm.c
+++ b/dlls/imm32/imm.c
@@ -287,6 +287,7 @@ static HIMCC updateCompStr(HIMCC old, LPWSTR compstr, DWORD len)
                                      &new_one->dwCompReadStrOffset, TRUE);
 
         /* new CompAttr, CompClause, CompStr, dwCursorPos */
+        new_one->dwDeltaStart = 0;
 
         current_offset = updateField(lpcs->dwResultReadClauseLen,
                                      lpcs->dwResultReadClauseOffset,
@@ -438,6 +439,7 @@ static HIMCC updateResultStr(HIMCC old, LPWSTR resultstr, DWORD len)
                                      &new_one->dwCompStrOffset, TRUE);
 
         new_one->dwCursorPos = lpcs->dwCursorPos;
+        new_one->dwDeltaStart = 0;
 
         current_offset = updateField(lpcs->dwResultReadClauseLen,
                                      lpcs->dwResultReadClauseOffset,
@@ -861,6 +863,11 @@ LONG WINAPI ImmGetCompositionStringA(
         TRACE("GSC_CURSORPOS\n");
         rc = compstr->dwCursorPos;
     }
+    else if (dwIndex == GCS_DELTASTART)
+    {
+        TRACE("GCS_DELTASTART\n");
+        rc = compstr->dwDeltaStart;
+    }
     else
     {
         FIXME("Unhandled index 0x%x\n",dwIndex);
@@ -955,6 +962,11 @@ LONG WINAPI ImmGetCompositionStringW(
         TRACE("GSC_CURSORPOS\n");
         rc = compstr->dwCursorPos;
     }
+    else if (dwIndex == GCS_DELTASTART)
+    {
+        TRACE("GCS_DELTASTART\n");
+        rc = compstr->dwDeltaStart;
+    }
     else
     {
         FIXME("Unhandled index 0x%x\n",dwIndex);
@@ -1662,7 +1674,7 @@ BOOL WINAPI ImmSetCompositionStringW(
             root_context->IMC.hCompStr = newCompStr;
 
              wParam = ((const WCHAR*)lpComp)[0];
-             flags |= GCS_COMPCLAUSE | GCS_COMPATTR;
+             flags |= GCS_COMPCLAUSE | GCS_COMPATTR | GCS_DELTASTART;
         }
         else
         {




More information about the wine-cvs mailing list