From ad0e8d471bf9d488b3e5d1494f0cc07387c499d2 Mon Sep 17 00:00:00 2001 From: Richard Campbell Date: Sat, 13 Nov 2004 01:52:56 +0000 Subject: [PATCH] - Check for a valid hwnd. - passing Key Up messages as a parameter always returns 0; - WM_SYSCHAR IS used however. - Get rid of an odd debug print message. - Changed the Window parameter name to hWnd. svn path=/trunk/; revision=11639 --- reactos/subsys/win32k/ntuser/accelerator.c | 27 +++++++++++----------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/reactos/subsys/win32k/ntuser/accelerator.c b/reactos/subsys/win32k/ntuser/accelerator.c index cc2405305f5..737b7be98ef 100644 --- a/reactos/subsys/win32k/ntuser/accelerator.c +++ b/reactos/subsys/win32k/ntuser/accelerator.c @@ -16,7 +16,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -/* $Id: accelerator.c,v 1.10 2004/05/10 17:07:18 weiden Exp $ +/* $Id: accelerator.c,v 1.11 2004/11/13 01:52:56 rcampbell Exp $ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -435,7 +435,7 @@ IntTranslateAccelerator(HWND hWnd, int STDCALL NtUserTranslateAccelerator( - HWND Window, + HWND hWnd, HACCEL Table, LPMSG Message) { @@ -444,8 +444,11 @@ NtUserTranslateAccelerator( NTSTATUS Status; ULONG i; - DPRINT("NtUserTranslateAccelerator(Window %x, Table %x, Message %p)\n", - Window, Table, Message); + DPRINT("NtUserTranslateAccelerator(hWnd %x, Table %x, Message %p)\n", + hWnd, Table, Message); + + if (hWnd == NULL) + return 0; if (Message == NULL) { @@ -462,12 +465,10 @@ NtUserTranslateAccelerator( } if ((Message->message != WM_KEYDOWN) && - (Message->message != WM_KEYUP) && (Message->message != WM_SYSKEYDOWN) && - (Message->message != WM_SYSKEYUP) && + (Message->message != WM_SYSCHAR) && (Message->message != WM_CHAR)) { - DPRINT1("E0c\n"); return 0; } @@ -496,17 +497,17 @@ NtUserTranslateAccelerator( /* FIXME: Associate AcceleratorTable with the current thread */ - /* FIXME: If Window is active and no window has focus, translate WM_SYSKEYUP and WM_SYSKEY_DOWN instead */ + /* FIXME: If hWnd is active and no hWnd has focus, translate WM_SYSKEYUP and WM_SYSKEY_DOWN instead */ for (i = 0; i < AcceleratorTable->Count; i++) { - if (IntTranslateAccelerator(Window, Message->message, Message->wParam, Message->lParam, + if (IntTranslateAccelerator(hWnd, Message->message, Message->wParam, Message->lParam, AcceleratorTable->Table[i].fVirt, AcceleratorTable->Table[i].key, AcceleratorTable->Table[i].cmd)) { ObDereferenceObject(WindowStation); - DPRINT("NtUserTranslateAccelerator(Window %x, Table %x, Message %p) = %i end\n", - Window, Table, Message, 1); + DPRINT("NtUserTranslateAccelerator(hWnd %x, Table %x, Message %p) = %i end\n", + hWnd, Table, Message, 1); return 1; } if (((AcceleratorTable->Table[i].fVirt & 0x80) > 0)) @@ -517,8 +518,8 @@ NtUserTranslateAccelerator( ObDereferenceObject(WindowStation); - DPRINT("NtUserTranslateAccelerator(Window %x, Table %x, Message %p) = %i end\n", - Window, Table, Message, 0); + DPRINT("NtUserTranslateAccelerator(hWnd %x, Table %x, Message %p) = %i end\n", + hWnd, Table, Message, 0); return 0; }