diff --git a/Sources/Plasma/PubUtilLib/plInputCore/plInputDevice.cpp b/Sources/Plasma/PubUtilLib/plInputCore/plInputDevice.cpp index 34a6cbe6..96d5deb3 100644 --- a/Sources/Plasma/PubUtilLib/plInputCore/plInputDevice.cpp +++ b/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; diff --git a/Sources/Plasma/PubUtilLib/plInputCore/plInputManager.cpp b/Sources/Plasma/PubUtilLib/plInputCore/plInputManager.cpp index 9e804b45..189afd96 100644 --- a/Sources/Plasma/PubUtilLib/plInputCore/plInputManager.cpp +++ b/Sources/Plasma/PubUtilLib/plInputCore/plInputManager.cpp @@ -293,8 +293,8 @@ 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 || + Wparam == KEY_TAB) break; BYTE scan = Lparam >> 16; @@ -303,8 +303,12 @@ void plInputManager::HandleWin32ControlEvent(UINT message, WPARAM Wparam, LPARAM 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; iHandleKeyEvent( CHAR_MSG, (plKeyDef)vkey, down, bRepeat, (wchar_t)Wparam ); + fInputDevices[i]->HandleKeyEvent( CHAR_MSG, (plKeyDef)vkey, down, bRepeat, ch ); } break; case MOUSEWHEEL: