Dylan Smith : richedit: Fixed implementation of WM_GETDLGCODE message.

Alexandre Julliard julliard at winehq.org
Thu Jan 8 08:31:15 CST 2009


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

Author: Dylan Smith <dylan.ah.smith at gmail.com>
Date:   Thu Jan  8 00:44:11 2009 -0500

richedit: Fixed implementation of WM_GETDLGCODE message.

This fixes inconsistencies shown in the tests I added for the
WM_GETDLGCODE.  The tests covered different cases handled by the
current implementation in order to show that the native implementation
is simpler for all these cases.

---

 dlls/riched20/editor.c       |   18 +++---------------
 dlls/riched20/tests/editor.c |   26 +++++++++++++-------------
 2 files changed, 16 insertions(+), 28 deletions(-)

diff --git a/dlls/riched20/editor.c b/dlls/riched20/editor.c
index 107dcea..5bfc0aa 100644
--- a/dlls/riched20/editor.c
+++ b/dlls/riched20/editor.c
@@ -2956,21 +2956,9 @@ LRESULT ME_HandleMessage(ME_TextEditor *editor, UINT msg, WPARAM wParam,
    return ME_StreamOut(editor, wParam, (EDITSTREAM *)lParam);
   case WM_GETDLGCODE:
   {
-    UINT code = DLGC_WANTCHARS|DLGC_WANTARROWS;
-    if(lParam && (((LPMSG)lParam)->message == WM_KEYDOWN))
-    {
-      int vk = (int)((LPMSG)lParam)->wParam;
-      /* if style says we want return key */
-      if((vk == VK_RETURN) && (GetWindowLongW(editor->hWnd, GWL_STYLE) & ES_WANTRETURN))
-      {
-        code |= DLGC_WANTMESSAGE;
-      }
-      /* we always handle ctrl-tab */
-      if((vk == VK_TAB) && (GetKeyState(VK_CONTROL) & 0x8000))
-      {
-        code |= DLGC_WANTMESSAGE;
-      }
-    }
+    UINT code = DLGC_WANTCHARS|DLGC_WANTTAB|DLGC_WANTARROWS|DLGC_HASSETSEL;
+    if (GetWindowLongW(editor->hWnd, GWL_STYLE) & ES_MULTILINE)
+      code |= DLGC_WANTMESSAGE;
     return code;
   }
   case EM_EMPTYUNDOBUFFER:
diff --git a/dlls/riched20/tests/editor.c b/dlls/riched20/tests/editor.c
index d9c5d78..11930ad 100644
--- a/dlls/riched20/tests/editor.c
+++ b/dlls/riched20/tests/editor.c
@@ -6025,7 +6025,7 @@ static void test_WM_GETDLGCODE(void)
     msg.hwnd = hwnd;
     res = SendMessage(hwnd, WM_GETDLGCODE, VK_RETURN, 0);
     expected = expected | DLGC_WANTMESSAGE;
-    todo_wine ok(res == expected, "WM_GETDLGCODE returned %x but expected %x\n",
+    ok(res == expected, "WM_GETDLGCODE returned %x but expected %x\n",
        res, expected);
     DestroyWindow(hwnd);
 
@@ -6043,7 +6043,7 @@ static void test_WM_GETDLGCODE(void)
     msg.hwnd = hwnd;
     res = SendMessage(hwnd, WM_GETDLGCODE, VK_RETURN, (LPARAM)&msg);
     expected = expected | DLGC_WANTMESSAGE;
-    todo_wine ok(res == expected, "WM_GETDLGCODE returned %x but expected %x\n",
+    ok(res == expected, "WM_GETDLGCODE returned %x but expected %x\n",
        res, expected);
     DestroyWindow(hwnd);
 
@@ -6054,7 +6054,7 @@ static void test_WM_GETDLGCODE(void)
     msg.hwnd = hwnd;
     res = SendMessage(hwnd, WM_GETDLGCODE, VK_RETURN, (LPARAM)&msg);
     expected = DLGC_WANTCHARS|DLGC_WANTTAB|DLGC_WANTARROWS|DLGC_HASSETSEL|DLGC_WANTMESSAGE;
-    todo_wine ok(res == expected, "WM_GETDLGCODE returned %x but expected %x\n",
+    ok(res == expected, "WM_GETDLGCODE returned %x but expected %x\n",
        res, expected);
     DestroyWindow(hwnd);
 
@@ -6065,7 +6065,7 @@ static void test_WM_GETDLGCODE(void)
     msg.hwnd = hwnd;
     res = SendMessage(hwnd, WM_GETDLGCODE, VK_RETURN, (LPARAM)&msg);
     expected = DLGC_WANTCHARS|DLGC_WANTTAB|DLGC_WANTARROWS|DLGC_HASSETSEL;
-    todo_wine ok(res == expected, "WM_GETDLGCODE returned %x but expected %x\n",
+    ok(res == expected, "WM_GETDLGCODE returned %x but expected %x\n",
        res, expected);
     DestroyWindow(hwnd);
 
@@ -6076,7 +6076,7 @@ static void test_WM_GETDLGCODE(void)
     msg.hwnd = hwnd;
     res = SendMessage(hwnd, WM_GETDLGCODE, VK_RETURN, (LPARAM)&msg);
     expected = DLGC_WANTCHARS|DLGC_WANTTAB|DLGC_WANTARROWS|DLGC_HASSETSEL;
-    todo_wine ok(res == expected, "WM_GETDLGCODE returned %x but expected %x\n",
+    ok(res == expected, "WM_GETDLGCODE returned %x but expected %x\n",
        res, expected);
     DestroyWindow(hwnd);
 
@@ -6090,7 +6090,7 @@ static void test_WM_GETDLGCODE(void)
     msg.hwnd = hwnd;
     res = SendMessage(hwnd, WM_GETDLGCODE, VK_RETURN, (LPARAM)&msg);
     expected = DLGC_WANTCHARS|DLGC_WANTTAB|DLGC_WANTARROWS|DLGC_HASSETSEL|DLGC_WANTMESSAGE;
-    todo_wine ok(res == expected, "WM_GETDLGCODE returned %x but expected %x\n",
+    ok(res == expected, "WM_GETDLGCODE returned %x but expected %x\n",
        res, expected);
     DestroyWindow(hwnd);
 
@@ -6101,7 +6101,7 @@ static void test_WM_GETDLGCODE(void)
     msg.hwnd = hwnd;
     res = SendMessage(hwnd, WM_GETDLGCODE, VK_RETURN, (LPARAM)&msg);
     expected = DLGC_WANTCHARS|DLGC_WANTTAB|DLGC_WANTARROWS|DLGC_HASSETSEL;
-    todo_wine ok(res == expected, "WM_GETDLGCODE returned %x but expected %x\n",
+    ok(res == expected, "WM_GETDLGCODE returned %x but expected %x\n",
        res, expected);
     DestroyWindow(hwnd);
 
@@ -6114,7 +6114,7 @@ static void test_WM_GETDLGCODE(void)
     msg.hwnd = hwnd;
     res = SendMessage(hwnd, WM_GETDLGCODE, VK_RETURN, (LPARAM)&msg);
     expected = DLGC_WANTCHARS|DLGC_WANTTAB|DLGC_WANTARROWS|DLGC_HASSETSEL|DLGC_WANTMESSAGE;
-    todo_wine ok(res == expected, "WM_GETDLGCODE returned %x but expected %x\n",
+    ok(res == expected, "WM_GETDLGCODE returned %x but expected %x\n",
        res, expected);
     DestroyWindow(hwnd);
 
@@ -6125,7 +6125,7 @@ static void test_WM_GETDLGCODE(void)
     msg.hwnd = hwnd;
     res = SendMessage(hwnd, WM_GETDLGCODE, VK_RETURN, (LPARAM)&msg);
     expected = DLGC_WANTCHARS|DLGC_WANTTAB|DLGC_WANTARROWS|DLGC_HASSETSEL;
-    todo_wine ok(res == expected, "WM_GETDLGCODE returned %x but expected %x\n",
+    ok(res == expected, "WM_GETDLGCODE returned %x but expected %x\n",
        res, expected);
     DestroyWindow(hwnd);
 
@@ -6141,7 +6141,7 @@ static void test_WM_GETDLGCODE(void)
     msg.hwnd = hwnd;
     res = SendMessage(hwnd, WM_GETDLGCODE, VK_RETURN, (LPARAM)&msg);
     expected = DLGC_WANTCHARS|DLGC_WANTTAB|DLGC_WANTARROWS|DLGC_HASSETSEL|DLGC_WANTMESSAGE;
-    todo_wine ok(res == expected, "WM_GETDLGCODE returned %x but expected %x\n",
+    ok(res == expected, "WM_GETDLGCODE returned %x but expected %x\n",
        res, expected);
     DestroyWindow(hwnd);
 
@@ -6152,7 +6152,7 @@ static void test_WM_GETDLGCODE(void)
     msg.hwnd = hwnd;
     res = SendMessage(hwnd, WM_GETDLGCODE, VK_RETURN, (LPARAM)&msg);
     expected = DLGC_WANTCHARS|DLGC_WANTTAB|DLGC_WANTARROWS|DLGC_HASSETSEL;
-    todo_wine ok(res == expected, "WM_GETDLGCODE returned %x but expected %x\n",
+    ok(res == expected, "WM_GETDLGCODE returned %x but expected %x\n",
        res, expected);
     DestroyWindow(hwnd);
 
@@ -6165,7 +6165,7 @@ static void test_WM_GETDLGCODE(void)
     msg.hwnd = hwnd;
     res = SendMessage(hwnd, WM_GETDLGCODE, VK_RETURN, (LPARAM)&msg);
     expected = DLGC_WANTCHARS|DLGC_WANTTAB|DLGC_WANTARROWS|DLGC_HASSETSEL|DLGC_WANTMESSAGE;
-    todo_wine ok(res == expected, "WM_GETDLGCODE returned %x but expected %x\n",
+    ok(res == expected, "WM_GETDLGCODE returned %x but expected %x\n",
        res, expected);
     DestroyWindow(hwnd);
 
@@ -6176,7 +6176,7 @@ static void test_WM_GETDLGCODE(void)
     msg.hwnd = hwnd;
     res = SendMessage(hwnd, WM_GETDLGCODE, VK_RETURN, (LPARAM)&msg);
     expected = DLGC_WANTCHARS|DLGC_WANTTAB|DLGC_WANTARROWS|DLGC_HASSETSEL;
-    todo_wine ok(res == expected, "WM_GETDLGCODE returned %x but expected %x\n",
+    ok(res == expected, "WM_GETDLGCODE returned %x but expected %x\n",
        res, expected);
     DestroyWindow(hwnd);
 }




More information about the wine-cvs mailing list