user: Allow menu WndProc to recognize VK_[LR]MENU

tkho at ucla.edu tkho at ucla.edu
Wed Apr 26 19:44:28 CDT 2006


Hello,

This patch #1 of 3 applies on top of the menu conformance test sent earlier in
the day. This patch enables the menu WndProc to recognize VK_LMENU and VK_RMENU
messages.

Thanks,

Thomas Kho

2006-04-26 Thomas Kho <tkho at ucla.edu>

	* dlls/user/tests/menu.c:
	user: Allow menu WndProc to recognize VK_[LR]MENU

 defwnd.c     |    7 ++++---
 tests/menu.c |   24 ++++++++++++------------
 2 files changed, 16 insertions(+), 15 deletions(-)

Signed-off-by: Thomas Kho <tkho at ucla.edu>
diff -aur ../1/dlls/user/defwnd.c ./dlls/user/defwnd.c
--- ../1/dlls/user/defwnd.c	2006-04-26 17:16:15.000000000 -0700
+++ ./dlls/user/defwnd.c	2006-04-26 17:16:34.000000000 -0700
@@ -527,7 +527,8 @@
         if( HIWORD(lParam) & KEYDATA_ALT )
         {
             /* if( HIWORD(lParam) & ~KEYDATA_PREVSTATE ) */
-              if( wParam == VK_MENU && !iMenuSysKey )
+              if ( (wParam == VK_MENU || wParam == VK_LMENU
+                    || wParam == VK_RMENU) && !iMenuSysKey )
                 iMenuSysKey = 1;
               else
                 iMenuSysKey = 0;
@@ -550,8 +551,8 @@
     case WM_KEYUP:
     case WM_SYSKEYUP:
         /* Press and release F10 or ALT */
-        if (((wParam == VK_MENU) && iMenuSysKey) ||
-            ((wParam == VK_F10) && iF10Key))
+        if (((wParam == VK_MENU || wParam == VK_LMENU || wParam == VK_RMENU)
+             && iMenuSysKey) || ((wParam == VK_F10) && iF10Key))
               SendMessageW( GetAncestor( hwnd, GA_ROOT ), WM_SYSCOMMAND, SC_KEYMENU, 0L );
         iMenuSysKey = iF10Key = 0;
         break;
diff -aur ../1/dlls/user/tests/menu.c ./dlls/user/tests/menu.c
--- ../1/dlls/user/tests/menu.c	2006-04-26 17:16:22.000000000 -0700
+++ ./dlls/user/tests/menu.c	2006-04-26 17:16:36.000000000 -0700
@@ -1506,23 +1506,23 @@
     BOOL _todo_wine;
 } menu_tests[] = {
     /* for each test, send keys or clicks and check for menu visibility */
-    { INPUT_KEYBOARD, {{0}}, {VK_LMENU, 0}, TRUE, TRUE }, /* test 0 */
+    { INPUT_KEYBOARD, {{0}}, {VK_LMENU, 0}, TRUE, FALSE }, /* test 0 */
     { INPUT_KEYBOARD, {{0}}, {VK_ESCAPE, 0}, FALSE, FALSE },
-    { INPUT_KEYBOARD, {{0}}, {VK_LMENU, 0}, TRUE, TRUE },
-    { INPUT_KEYBOARD, {{0}}, {'D', 0}, FALSE, FALSE },
-    { INPUT_KEYBOARD, {{0}}, {VK_LMENU, 0}, TRUE, TRUE },
+    { INPUT_KEYBOARD, {{0}}, {VK_LMENU, 0}, TRUE, FALSE },
+    { INPUT_KEYBOARD, {{0}}, {'D', 0}, FALSE, TRUE },
+    { INPUT_KEYBOARD, {{0}}, {VK_LMENU, 0}, TRUE, FALSE },
     { INPUT_KEYBOARD, {{0}}, {'E', 0}, FALSE, FALSE },
-    { INPUT_KEYBOARD, {{0}}, {VK_LMENU, 'M', 0}, TRUE, TRUE },
+    { INPUT_KEYBOARD, {{0}}, {VK_LMENU, 'M', 0}, TRUE, FALSE },
     { INPUT_KEYBOARD, {{0}}, {VK_ESCAPE, VK_ESCAPE, 0}, FALSE, FALSE },
-    { INPUT_KEYBOARD, {{0}}, {VK_LMENU, 'M', VK_ESCAPE, 0}, TRUE, TRUE },
+    { INPUT_KEYBOARD, {{0}}, {VK_LMENU, 'M', VK_ESCAPE, 0}, TRUE, FALSE },
     { INPUT_KEYBOARD, {{0}}, {VK_ESCAPE, 0}, FALSE, FALSE },
-    { INPUT_KEYBOARD, {{0}}, {VK_LMENU, 'M', 0}, TRUE, TRUE },
-    { INPUT_KEYBOARD, {{0}}, {'D', 0}, FALSE, FALSE },
-    { INPUT_KEYBOARD, {{0}}, {VK_LMENU, 'M', 0}, TRUE, TRUE },
+    { INPUT_KEYBOARD, {{0}}, {VK_LMENU, 'M', 0}, TRUE, FALSE },
+    { INPUT_KEYBOARD, {{0}}, {'D', 0}, FALSE, TRUE },
+    { INPUT_KEYBOARD, {{0}}, {VK_LMENU, 'M', 0}, TRUE, FALSE },
     { INPUT_KEYBOARD, {{0}}, {'E', 0}, FALSE, FALSE },
-    { INPUT_KEYBOARD, {{0}}, {VK_LMENU, 'M', 'P', 0}, TRUE, TRUE },
-    { INPUT_KEYBOARD, {{0}}, {'D', 0}, FALSE, FALSE },
-    { INPUT_KEYBOARD, {{0}}, {VK_LMENU, 'M', 'P', 0}, TRUE, TRUE },
+    { INPUT_KEYBOARD, {{0}}, {VK_LMENU, 'M', 'P', 0}, TRUE, FALSE },
+    { INPUT_KEYBOARD, {{0}}, {'D', 0}, FALSE, TRUE },
+    { INPUT_KEYBOARD, {{0}}, {VK_LMENU, 'M', 'P', 0}, TRUE, FALSE },
     { INPUT_KEYBOARD, {{0}}, {'E', 0}, FALSE, FALSE },
 
     { INPUT_MOUSE, {{1, 2}, {0}}, {0}, TRUE, TRUE }, /* test 18 */



More information about the wine-patches mailing list