mirror of
https://github.com/reactos/reactos.git
synced 2025-07-31 16:51:39 +00:00
- Fix applications that depend on KF_DLGMODE flag.
- Added the Alt-Tab intercept for win32k. svn path=/trunk/; revision=54077
This commit is contained in:
parent
d5a6da4ea8
commit
d118a53f82
2 changed files with 20 additions and 4 deletions
|
@ -33,11 +33,13 @@ extern PATTACHINFO gpai;
|
||||||
/* Scan Codes */
|
/* Scan Codes */
|
||||||
#define SC_KEY_UP 0x8000
|
#define SC_KEY_UP 0x8000
|
||||||
/* lParam bits */
|
/* lParam bits */
|
||||||
#define LP_EXT_BIT (1<<24)
|
#define LP_EXT_BIT (KF_EXTENDED<<16)
|
||||||
#define LP_DO_NOT_CARE_BIT (1<<25) // for GetKeyNameText
|
#define LP_DO_NOT_CARE_BIT (1<<25) // for GetKeyNameText
|
||||||
#define LP_CONTEXT_BIT (1<<29)
|
#define LP_DLGMODE (KF_DLGMODE<<16)
|
||||||
#define LP_PREV_STATE_BIT (1<<30)
|
#define LP_MENUMODE (KF_MENUMODE<<16)
|
||||||
#define LP_TRANSITION_BIT (1<<31)
|
#define LP_CONTEXT_BIT (KF_ALTDOWN<<16)
|
||||||
|
#define LP_PREV_STATE_BIT (KF_REPEAT<<16)
|
||||||
|
#define LP_TRANSITION_BIT (KF_UP<<16)
|
||||||
|
|
||||||
|
|
||||||
INIT_FUNCTION NTSTATUS NTAPI InitInputImpl(VOID);
|
INIT_FUNCTION NTSTATUS NTAPI InitInputImpl(VOID);
|
||||||
|
|
|
@ -790,6 +790,12 @@ UserSendKeyboardInput(KEYBDINPUT *pKbdInput, BOOL bInjected)
|
||||||
Msg.lParam |= LP_TRANSITION_BIT;
|
Msg.lParam |= LP_TRANSITION_BIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* FIXME: set KF_DLGMODE and KF_MENUMODE when needed */
|
||||||
|
if ( pFocusQueue && pFocusQueue->QF_flags & QF_DIALOGACTIVE )
|
||||||
|
Msg.lParam |= LP_DLGMODE;
|
||||||
|
if ( pFocusQueue && pFocusQueue->MenuOwner )//pFocusQueue->MenuState ) // MenuState needs a start flag...
|
||||||
|
Msg.lParam |= LP_MENUMODE;
|
||||||
|
|
||||||
/* Init wParam and cursor position */
|
/* Init wParam and cursor position */
|
||||||
Msg.wParam = wVk; // Note: it's simplified by msg queue
|
Msg.wParam = wVk; // Note: it's simplified by msg queue
|
||||||
Msg.pt = gpsi->ptCursor;
|
Msg.pt = gpsi->ptCursor;
|
||||||
|
@ -834,6 +840,14 @@ UserSendKeyboardInput(KEYBDINPUT *pKbdInput, BOOL bInjected)
|
||||||
co_IntKeyboardSendAltKeyMsg();
|
co_IntKeyboardSendAltKeyMsg();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Alt-Tab/Esc Check. Use FocusQueue or RIT Queue */
|
||||||
|
if (!(pKbdInput->dwFlags & KEYEVENTF_KEYUP) &&
|
||||||
|
HIWORD(Msg.lParam) & KF_ALTDOWN &&
|
||||||
|
( Msg.wParam == VK_ESCAPE || Msg.wParam == VK_TAB ) )
|
||||||
|
{
|
||||||
|
TRACE("Alt-Tab/Esc Pressed wParam %x\n",Msg.wParam);
|
||||||
|
}
|
||||||
|
|
||||||
/* If we have a focus queue, post a keyboard message */
|
/* If we have a focus queue, post a keyboard message */
|
||||||
if (pFocusQueue && bPostMsg)
|
if (pFocusQueue && bPostMsg)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue