Author: mjmartin
Date: Tue Apr 21 08:45:08 2009
New Revision: 40630

URL: http://svn.reactos.org/svn/reactos?rev=40630&view=rev
Log:
- edit.c: Add TPM_RETURNCMD flag to TrackPopupMenu so that WM_COMMAND messages 
are not sent to the edit control.
Use WM_MENUSELECT vice WM_COMMAND to determine which clipboard message to send.
- Fixes vb apps edit context menu and maybe others. Bug #4404

Modified:
    trunk/reactos/dll/win32/user32/controls/edit.c

Modified: trunk/reactos/dll/win32/user32/controls/edit.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/user32/controls/edit.c?rev=40630&r1=40629&r2=40630&view=diff
==============================================================================
--- trunk/reactos/dll/win32/user32/controls/edit.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/user32/controls/edit.c [iso-8859-1] Tue Apr 21 
08:45:08 2009
@@ -255,7 +255,7 @@
  *     WM_XXX message handlers
  */
 static LRESULT EDIT_WM_Char(EDITSTATE *es, WCHAR c);
-static void    EDIT_WM_Command(EDITSTATE *es, INT code, INT id, HWND conrtol);
+static void    EDIT_WM_MenuSelect(EDITSTATE *es, INT code, INT id, HWND 
conrtol);
 static void    EDIT_WM_ContextMenu(EDITSTATE *es, INT x, INT y);
 static void    EDIT_WM_Copy(EDITSTATE *es);
 static LRESULT EDIT_WM_Create(EDITSTATE *es, LPCWSTR name);
@@ -947,8 +947,8 @@
                EDIT_WM_Clear(es);
                break;
 
-       case WM_COMMAND:
-               EDIT_WM_Command(es, HIWORD(wParam), LOWORD(wParam), 
(HWND)lParam);
+       case WM_MENUSELECT:
+               EDIT_WM_MenuSelect(es, HIWORD(wParam), LOWORD(wParam), 
(HWND)lParam);
                break;
 
         case WM_CONTEXTMENU:
@@ -4224,12 +4224,17 @@
  *     WM_COMMAND
  *
  */
-static void EDIT_WM_Command(EDITSTATE *es, INT code, INT id, HWND control)
-{
-       if (code || control)
+static void EDIT_WM_MenuSelect(EDITSTATE *es, INT code, INT id, HWND control)
+{
+
+       static INT MenuSelected;
+
+       if (id != 0) {
+               MenuSelected = id;
                return;
-
-       switch (id) {
+       }
+
+       switch (MenuSelected) {
                case EM_UNDO:
                         SendMessageW(es->hwndSelf, WM_UNDO, 0, 0);
                        break;
@@ -4308,7 +4313,7 @@
             y = rc.top + (rc.bottom - rc.top) / 2;
         }
 
-       TrackPopupMenu(popup, TPM_LEFTALIGN | TPM_RIGHTBUTTON, x, y, 0, 
es->hwndSelf, NULL);
+       TrackPopupMenu(popup, TPM_LEFTALIGN | TPM_RIGHTBUTTON | TPM_RETURNCMD, 
x, y, 0, es->hwndSelf, NULL);
        DestroyMenu(menu);
 }
 

Reply via email to