edit - fix WantReturns (Win BUG)

Vitaliy Margolen wine-patch at kievinfo.com
Sun May 11 21:20:55 CDT 2003


It looks like Windows has an old BUG in Edit control when handling WM_GetDlgCode message.
It always returns 0x8D no mater what the style and and properties of a window is.
Interesting enough, Delphi relays on this behavior.

Vitaliy Margolen

changelog:
  - controls/edit.c
    fix problem with capturing [return] keys in multi-line edits

    
Index: controls/edit.c
===================================================================
RCS file: /home/wine/wine/controls/edit.c,v
retrieving revision 1.112
diff -u -r1.112 edit.c
--- controls/edit.c     6 May 2003 18:23:17 -0000       1.112
+++ controls/edit.c     12 May 2003 02:12:31 -0000
@@ -744,23 +744,10 @@
          */
 
        case WM_GETDLGCODE:
-               result = DLGC_HASSETSEL | DLGC_WANTCHARS | DLGC_WANTARROWS;
-
-               if (lParam && (((LPMSG)lParam)->message == WM_KEYDOWN))
-               {
-                  int vk = (int)((LPMSG)lParam)->wParam;
-
-                  if (vk == VK_RETURN && (GetWindowLongW( hwnd, GWL_STYLE ) & ES_WANTRETURN))
-                  {
-                     result |= DLGC_WANTMESSAGE;
-                  }
-                  else if (es->hwndListBox && (vk == VK_RETURN || vk == VK_ESCAPE))
-                  {
-                     if (SendMessageW(GetParent(hwnd), CB_GETDROPPEDSTATE, 0, 0))
-                        result |= DLGC_WANTMESSAGE;
-                  }
-               }
-               break;
+               result = DLGC_HASSETSEL | DLGC_WANTCHARS | DLGC_WANTARROWS
+                         | DLGC_WANTMESSAGE;
+                /* Windows BUG! Windows always returns DLGC_WANTMESSAGE flag without additional checks. */
+                break;
 
        case WM_CHAR:
        {




More information about the wine-patches mailing list