edit.c is shared with wine. Also using a static variable here looks like a bad idea. I would think that the problem is somewhere else.
[email protected] schrieb: > 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); > } > > > > _______________________________________________ Ros-dev mailing list [email protected] http://www.reactos.org/mailman/listinfo/ros-dev
