Kevin Koltzau : user32:
Generate WM_APPCOMMAND messages for browser and multimedia keys.
Alexandre Julliard
julliard at wine.codeweavers.com
Mon Nov 27 07:09:53 CST 2006
Module: wine
Branch: master
Commit: 80db3ad8bb0e7bd6cffa20a59e121ac337b8300e
URL: http://source.winehq.org/git/wine.git/?a=commit;h=80db3ad8bb0e7bd6cffa20a59e121ac337b8300e
Author: Kevin Koltzau <kevin at 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))));
+ }
}
}
More information about the wine-cvs
mailing list