Browse Source

Merge pull request #120 from cwalther/returnkey

Fix use of the return key as a control key
Branan Purvine-Riley 13 years ago
parent
commit
a0d54e2644
  1. 4
      Sources/Plasma/PubUtilLib/plInputCore/plInputDevice.cpp
  2. 11
      Sources/Plasma/PubUtilLib/plInputCore/plInputManager.cpp

4
Sources/Plasma/PubUtilLib/plInputCore/plInputDevice.cpp

@ -186,10 +186,6 @@ void plKeyboardDevice::HandleKeyEvent(plOSMsg message, plKeyDef key, bool bKeyDo
plAvatarInputInterface::GetInstance()->ForceAlwaysRun(fCapsLockLock);
}
}
if (key == KEY_ENTER)
{
c = '\n';
}
// send a key event...
plKeyEventMsg* pMsg = TRACKED_NEW plKeyEventMsg;

11
Sources/Plasma/PubUtilLib/plInputCore/plInputManager.cpp

@ -293,18 +293,21 @@ void plInputManager::HandleWin32ControlEvent(UINT message, WPARAM Wparam, LPARAM
{
// These are handled by KEYUP/KEYDOWN and should not be sent
// We don't like garbage getting in string fields
if (Wparam == KEY_BACKSPACE || Wparam == 0x0A || Wparam == KEY_ESCAPE ||
Wparam == KEY_TAB || Wparam == 0x0D)
if (Wparam == KEY_BACKSPACE || Wparam == KEY_ESCAPE)
break;
BYTE scan = Lparam >> 16;
BYTE scan = (BYTE)(Lparam >> 16);
UINT vkey = MapVirtualKey(scan, MAPVK_VSC_TO_VK);
bExtended = Lparam >> 24 & 1;
hsBool bRepeat = ((Lparam >> 29) & 0xf) != 0;
bool down = !(Lparam >> 31);
wchar_t ch = (wchar_t)Wparam;
// for the return key, Windows sends CR, but multiline text input fields want LF (CR is rendered as a wide horizontal space)
if (ch == 0x0D)
ch = 0x0A;
for (int i=0; i<fInputDevices.Count(); i++)
fInputDevices[i]->HandleKeyEvent( CHAR_MSG, (plKeyDef)vkey, down, bRepeat, (wchar_t)Wparam );
fInputDevices[i]->HandleKeyEvent( CHAR_MSG, (plKeyDef)vkey, down, bRepeat, ch );
}
break;
case MOUSEWHEEL:

Loading…
Cancel
Save