Module: wine Branch: master Commit: 80db3ad8bb0e7bd6cffa20a59e121ac337b8300e URL: http://source.winehq.org/git/wine.git/?a=commit;h=80db3ad8bb0e7bd6cffa20a59e...
Author: Kevin Koltzau kevin@plop.org Date: Sun Nov 26 01:31:27 2006 -0500
user32: Generate WM_APPCOMMAND messages for browser and multimedia keys.
---
dlls/user32/defwnd.c | 10 ++++++++++ dlls/user32/message.c | 34 +++++++++++++++++++++------------- 2 files changed, 31 insertions(+), 13 deletions(-)
diff --git a/dlls/user32/defwnd.c b/dlls/user32/defwnd.c index c07398f..9278ddd 100644 --- a/dlls/user32/defwnd.c +++ b/dlls/user32/defwnd.c @@ -711,6 +711,16 @@ static LRESULT DEFWND_DefWinProc( HWND h case WM_HELP: SendMessageW( GetParent(hwnd), msg, wParam, lParam ); break; + + case WM_APPCOMMAND: + { + HWND parent = GetParent(hwnd); + if(!parent) + HOOK_CallHooks(WH_SHELL, HSHELL_APPCOMMAND, wParam, lParam, TRUE); + else + SendMessageW( parent, msg, wParam, lParam ); + break; + } }
return 0; diff --git a/dlls/user32/message.c b/dlls/user32/message.c index df3dcd4..e6dacd3 100644 --- a/dlls/user32/message.c +++ b/dlls/user32/message.c @@ -1637,20 +1637,28 @@ static BOOL process_keyboard_message( MS
if (remove) { - /* Handle F1 key by sending out WM_HELP message */ - if ((msg->message == WM_KEYUP) && - (msg->wParam == VK_F1) && - (msg->hwnd != GetDesktopWindow()) && - !MENU_IsMenuActive()) + if((msg->message == WM_KEYDOWN) && + (msg->hwnd != GetDesktopWindow())) { - HELPINFO hi; - hi.cbSize = sizeof(HELPINFO); - hi.iContextType = HELPINFO_WINDOW; - hi.iCtrlId = GetWindowLongPtrA( msg->hwnd, GWLP_ID ); - hi.hItemHandle = msg->hwnd; - hi.dwContextId = GetWindowContextHelpId( msg->hwnd ); - hi.MousePos = msg->pt; - SendMessageW( msg->hwnd, WM_HELP, 0, (LPARAM)&hi ); + /* Handle F1 key by sending out WM_HELP message */ + if(msg->wParam == VK_F1 && + !MENU_IsMenuActive()) + { + HELPINFO hi; + hi.cbSize = sizeof(HELPINFO); + hi.iContextType = HELPINFO_WINDOW; + hi.iCtrlId = GetWindowLongPtrA( msg->hwnd, GWLP_ID ); + hi.hItemHandle = msg->hwnd; + hi.dwContextId = GetWindowContextHelpId( msg->hwnd ); + hi.MousePos = msg->pt; + SendMessageW( msg->hwnd, WM_HELP, 0, (LPARAM)&hi ); + } + else if(msg->wParam >= VK_BROWSER_BACK && + msg->wParam <= VK_LAUNCH_APP2) + { + /* FIXME: Process keystate */ + SendMessageW(msg->hwnd, WM_APPCOMMAND, (WPARAM)msg->hwnd, MAKELPARAM(0, (FAPPCOMMAND_KEY | (msg->wParam - VK_BROWSER_BACK + 1)))); + } } }