From 76104e1ccc2875dbb14331764913c07e75f3d0b7 Mon Sep 17 00:00:00 2001 From: Thomas Kho Date: Wed, 26 Apr 2006 17:44:28 -0700 Subject: [PATCH] user: Allow menu WndProc to recognize VK_[LR]MENU. --- dlls/user/defwnd.c | 7 ++++--- dlls/user/tests/menu.c | 24 ++++++++++++------------ 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/dlls/user/defwnd.c b/dlls/user/defwnd.c index 5ea3ee47080..cba8e764b29 100644 --- a/dlls/user/defwnd.c +++ b/dlls/user/defwnd.c @@ -527,7 +527,8 @@ static LRESULT DEFWND_DefWinProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPa 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 @@ static LRESULT DEFWND_DefWinProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lPa 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 --git a/dlls/user/tests/menu.c b/dlls/user/tests/menu.c index 96195fd4593..faa58920eb4 100644 --- a/dlls/user/tests/menu.c +++ b/dlls/user/tests/menu.c @@ -1506,23 +1506,23 @@ static struct menu_mouse_tests_s { 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 */