mirror of
https://foundry.openuru.org/gitblit/r/CWE-ou-minkata.git
synced 2025-07-14 02:27:40 -04:00
Include the vkey code with the key character
This commit is contained in:
@ -72,6 +72,7 @@ class pfConsoleInputInterface : public plInputInterface
|
||||
pfConsole *fConsole;
|
||||
|
||||
|
||||
|
||||
virtual hsBool IHandleCtrlCmd( plCtrlCmd *cmd )
|
||||
{
|
||||
if( cmd->fControlCode == B_SET_CONSOLE_MODE )
|
||||
@ -99,7 +100,7 @@ class pfConsoleInputInterface : public plInputInterface
|
||||
|
||||
public:
|
||||
|
||||
pfConsoleInputInterface( pfConsole *console )
|
||||
pfConsoleInputInterface( pfConsole *console )
|
||||
{
|
||||
fConsole = console;
|
||||
SetEnabled( true ); // Always enabled
|
||||
@ -126,12 +127,19 @@ class pfConsoleInputInterface : public plInputInterface
|
||||
virtual hsBool InterpretInputEvent( plInputEventMsg *pMsg )
|
||||
{
|
||||
plKeyEventMsg *keyMsg = plKeyEventMsg::ConvertNoRef( pMsg );
|
||||
|
||||
// HACK for now to let runlock work always (until we can think of a more generic and good way of doing this)
|
||||
if( keyMsg != nil && keyMsg->GetKeyCode() != KEY_CAPSLOCK )
|
||||
if( keyMsg != nil )
|
||||
{
|
||||
if( fConsole->fMode )
|
||||
{
|
||||
// If this is a character input, do not accept the codes (yes, the code) that will toggle
|
||||
// the console--that's handled elsewhere...
|
||||
if ( keyMsg->GetKeyChar() )
|
||||
{
|
||||
const plKeyBinding* keyb = fControlMap->FindBinding( B_SET_CONSOLE_MODE );
|
||||
if ( keyb->GetKey1().fKey == keyMsg->GetKeyCode() )
|
||||
return true;
|
||||
}
|
||||
|
||||
fConsole->IHandleKey( keyMsg );
|
||||
return true;
|
||||
}
|
||||
|
@ -281,11 +281,15 @@ void plInputManager::HandleWin32ControlEvent(UINT message, WPARAM Wparam, LPARAM
|
||||
Wparam == KEY_TAB || Wparam == 0x0D)
|
||||
break;
|
||||
|
||||
UINT scan = Lparam >> 16;
|
||||
scan = MapVirtualKeyEx(scan, MAPVK_VSC_TO_VK, nil);
|
||||
if (scan == 0) scan = -1;
|
||||
|
||||
bExtended = Lparam >> 24 & 1;
|
||||
hsBool bRepeat = ((Lparam >> 29) & 0xf) != 0;
|
||||
bool down = !(Lparam >> 31);
|
||||
for (int i=0; i<fInputDevices.Count(); i++)
|
||||
fInputDevices[i]->HandleKeyEvent( CHAR_MSG, (plKeyDef)-1, down, bRepeat, (wchar_t)Wparam );
|
||||
fInputDevices[i]->HandleKeyEvent( CHAR_MSG, (plKeyDef)scan, down, bRepeat, (wchar_t)Wparam );
|
||||
}
|
||||
break;
|
||||
case MOUSEWHEEL:
|
||||
|
Reference in New Issue
Block a user