diff --git a/indra/llui/lllineeditor.cpp b/indra/llui/lllineeditor.cpp index f8fd2f08862d90f59f2912003a14ee6565be2683..754b8bbe96fd7a63dc66219061984e4db13fdcc2 100644 --- a/indra/llui/lllineeditor.cpp +++ b/indra/llui/lllineeditor.cpp @@ -1262,7 +1262,7 @@ void LLLineEditor::cut() deleteSelection(); // Validate new string and rollback the if needed. - BOOL need_to_rollback = mPrevalidator && !mPrevalidator.validate(mText.getWString()); + BOOL need_to_rollback = mPrevalidator && !mPrevalidator.validate(mText.getString()); if (need_to_rollback) { rollback.doRollback( this ); @@ -1396,7 +1396,7 @@ void LLLineEditor::pasteHelper(bool is_primary) deselect(); // Validate new string and rollback the if needed. - BOOL need_to_rollback = mPrevalidator && !mPrevalidator.validate(mText.getWString()); + BOOL need_to_rollback = mPrevalidator && !mPrevalidator.validate(mText.getString()); if (need_to_rollback) { rollback.doRollback( this ); @@ -1663,7 +1663,7 @@ BOOL LLLineEditor::handleKeyHere(KEY key, MASK mask ) // Validate new string and rollback the keystroke if needed. if (!need_to_rollback && mPrevalidator) { - prevalidator_failed = !mPrevalidator.validate(mText.getWString()); + prevalidator_failed = !mPrevalidator.validate(mText.getString()); need_to_rollback |= prevalidator_failed; } @@ -1723,7 +1723,7 @@ BOOL LLLineEditor::handleUnicodeCharHere(llwchar uni_char) deselect(); // Validate new string and rollback the keystroke if needed. - bool need_to_rollback = mPrevalidator && !mPrevalidator.validate(mText.getWString()); + bool need_to_rollback = mPrevalidator && !mPrevalidator.validate(mText.getString()); if (need_to_rollback) { rollback.doRollback( this ); @@ -1776,7 +1776,7 @@ void LLLineEditor::doDelete() } // Validate new string and rollback the if needed. - bool need_to_rollback = mPrevalidator && !mPrevalidator.validate(mText.getWString()); + bool need_to_rollback = mPrevalidator && !mPrevalidator.validate(mText.getString()); if (need_to_rollback) { rollback.doRollback(this); @@ -2313,7 +2313,7 @@ void LLLineEditor::setFocus( BOOL new_state ) // fine on 1.15.0.2, since all prevalidate func reject any // non-ASCII characters. I'm not sure on future versions, // however. - getWindow()->allowLanguageTextInput(this, !mPrevalidator); + getWindow()->allowLanguageTextInput(this, TRUE); } } @@ -2482,7 +2482,7 @@ void LLLineEditor::updateAllowingLanguageInput() // test app, no window available return; } - if (hasFocus() && !mReadOnly && !mDrawAsterixes && !mPrevalidator) + if (hasFocus() && !mReadOnly && !mDrawAsterixes) { window->allowLanguageTextInput(this, TRUE); } diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp index 284252a48d4f4f24b97ab480f5a5c493ac53daf0..f7e2474fde225fa1aea70539cfe7a74a4715a858 100644 --- a/indra/llui/lltexteditor.cpp +++ b/indra/llui/lltexteditor.cpp @@ -1051,7 +1051,7 @@ S32 LLTextEditor::execute( TextCmd* cmd ) mUndoStack.push_front(cmd); mLastCmd = cmd; - bool need_to_rollback = mPrevalidator && !mPrevalidator.validate(getViewModel()->getDisplay()); + bool need_to_rollback = mPrevalidator && !mPrevalidator.validate(getViewModel()->getStringValue()); if (need_to_rollback) { LLUI::getInstance()->reportBadKeystroke(); diff --git a/indra/llui/lltextvalidate.cpp b/indra/llui/lltextvalidate.cpp index 9e27ed6232fabe03bf9d10a0f071fdb977fe4bfa..3345e7e26316bb09783cf415788a299c174a2f34 100644 --- a/indra/llui/lltextvalidate.cpp +++ b/indra/llui/lltextvalidate.cpp @@ -102,7 +102,7 @@ class ValidatorFloat : public ValidatorImpl public: /*virtual*/ bool validate(const std::string& str) override { return validate<char>(str); } - /*virtual*/ bool validate(const LLWString& str) override { return validate<llwchar>(str); } + /*virtual*/ bool validate(const LLWString& str) override { return validate<char>(wstring_to_utf8str(str)); } } validatorFloatImpl; Validator validateFloat(validatorFloatImpl); @@ -144,7 +144,7 @@ class ValidatorInt : public ValidatorImpl public: /*virtual*/ bool validate(const std::string& str) override { return validate<char>(str); } - /*virtual*/ bool validate(const LLWString& str) override { return validate<llwchar>(str); } + /*virtual*/ bool validate(const LLWString& str) override { return validate<char>(wstring_to_utf8str(str)); } } validatorIntImpl; Validator validateInt(validatorIntImpl); @@ -188,7 +188,7 @@ class ValidatorPositiveS32 : public ValidatorImpl public: /*virtual*/ bool validate(const std::string& str) override { return validate<char>(str); } - /*virtual*/ bool validate(const LLWString& str) override { return validate<llwchar>(str); } + /*virtual*/ bool validate(const LLWString& str) override { return validate<char>(wstring_to_utf8str(str)); } } validatorPositiveS32Impl; Validator validatePositiveS32(validatorPositiveS32Impl); @@ -232,7 +232,7 @@ class ValidatorNonNegativeS32 : public ValidatorImpl public: /*virtual*/ bool validate(const std::string& str) override { return validate<char>(str); } - /*virtual*/ bool validate(const LLWString& str) override { return validate<llwchar>(str); } + /*virtual*/ bool validate(const LLWString& str) override { return validate<char>(wstring_to_utf8str(str)); } } validatorNonNegativeS32Impl; Validator validateNonNegativeS32(validatorNonNegativeS32Impl); @@ -275,7 +275,7 @@ class ValidatorNonNegativeS32NoSpace : public ValidatorImpl public: /*virtual*/ bool validate(const std::string& str) override { return validate<char>(str); } - /*virtual*/ bool validate(const LLWString& str) override { return validate<llwchar>(str); } + /*virtual*/ bool validate(const LLWString& str) override { return validate<char>(wstring_to_utf8str(str)); } } validatorNonNegativeS32NoSpaceImpl; Validator validateNonNegativeS32NoSpace(validatorNonNegativeS32NoSpaceImpl); @@ -302,7 +302,7 @@ class ValidatorAlphaNum : public ValidatorImpl public: /*virtual*/ bool validate(const std::string& str) override { return validate<char>(str); } - /*virtual*/ bool validate(const LLWString& str) override { return validate<llwchar>(str); } + /*virtual*/ bool validate(const LLWString& str) override { return validate<char>(wstring_to_utf8str(str)); } } validatorAlphaNumImpl; Validator validateAlphaNum(validatorAlphaNumImpl); @@ -329,7 +329,7 @@ class ValidatorAlphaNumSpace : public ValidatorImpl public: /*virtual*/ bool validate(const std::string& str) override { return validate<char>(str); } - /*virtual*/ bool validate(const LLWString& str) override { return validate<llwchar>(str); } + /*virtual*/ bool validate(const LLWString& str) override { return validate<char>(wstring_to_utf8str(str)); } } validatorAlphaNumSpaceImpl; Validator validateAlphaNumSpace(validatorAlphaNumSpaceImpl); @@ -358,7 +358,7 @@ class ValidatorASCIIPrintableNoPipe : public ValidatorImpl public: /*virtual*/ bool validate(const std::string& str) override { return validate<char>(str); } - /*virtual*/ bool validate(const LLWString& str) override { return validate<llwchar>(str); } + /*virtual*/ bool validate(const LLWString& str) override { return validate<char>(wstring_to_utf8str(str)); } } validatorASCIIPrintableNoPipeImpl; Validator validateASCIIPrintableNoPipe(validatorASCIIPrintableNoPipeImpl); @@ -385,7 +385,7 @@ class ValidatorASCIIPrintableNoSpace : public ValidatorImpl public: /*virtual*/ bool validate(const std::string& str) override { return validate<char>(str); } - /*virtual*/ bool validate(const LLWString& str) override { return validate<llwchar>(str); } + /*virtual*/ bool validate(const LLWString& str) override { return validate<char>(wstring_to_utf8str(str)); } } validatorASCIIPrintableNoSpaceImpl; Validator validateASCIIPrintableNoSpace(validatorASCIIPrintableNoSpaceImpl); @@ -411,7 +411,7 @@ class ValidatorASCII : public ValidatorImpl public: /*virtual*/ bool validate(const std::string& str) override { return validate<char>(str); } - /*virtual*/ bool validate(const LLWString& str) override { return validate<llwchar>(str); } + /*virtual*/ bool validate(const LLWString& str) override { return validate<char>(wstring_to_utf8str(str)); } } validatorASCIIImpl; Validator validateASCII(validatorASCIIImpl); @@ -430,7 +430,7 @@ class ValidatorASCIINoLeadingSpace : public ValidatorASCII public: /*virtual*/ bool validate(const std::string& str) override { return validate<char>(str); } - /*virtual*/ bool validate(const LLWString& str) override { return validate<llwchar>(str); } + /*virtual*/ bool validate(const LLWString& str) override { return validate<char>(wstring_to_utf8str(str)); } } validatorASCIINoLeadingSpaceImpl; Validator validateASCIINoLeadingSpace(validatorASCIINoLeadingSpaceImpl); @@ -457,7 +457,7 @@ class ValidatorASCIIWithNewLine : public ValidatorImpl public: /*virtual*/ bool validate(const std::string& str) override { return validate<char>(str); } - /*virtual*/ bool validate(const LLWString& str) override { return validate<llwchar>(str); } + /*virtual*/ bool validate(const LLWString& str) override { return validate<char>(wstring_to_utf8str(str)); } } validatorASCIIWithNewLineImpl; Validator validateASCIIWithNewLine(validatorASCIIWithNewLineImpl); diff --git a/indra/llwindow/llwindowsdl.cpp b/indra/llwindow/llwindowsdl.cpp index adb223f543e2be8fc627f6ea485a1e51e8a1cf3d..a4079b9529cad973223c7093ad0d8e0d265a2802 100644 --- a/indra/llwindow/llwindowsdl.cpp +++ b/indra/llwindow/llwindowsdl.cpp @@ -1762,8 +1762,6 @@ void LLWindowSDL::gatherInput() gKeyboard->handleKeyDown(mKeyVirtualKey, mKeyModifiers); if (mKeyVirtualKey == SDLK_RETURN || mKeyVirtualKey == SDLK_KP_ENTER) handleUnicodeUTF16(SDLK_RETURN, gKeyboard->currentMask(FALSE)); - if (!mLanguageTextInputAllowed && isascii(mKeyVirtualKey)) - mCallbacks->handleUnicodeChar(utf8str_to_wchar(std::string(1, (char)mKeyVirtualKey)), mKeyModifiers); // part of the fix for SL-13243 if (SDLCheckGrabbyKeys(event.key.keysym.sym, TRUE) != 0) SDLReallyCaptureInput(TRUE); diff --git a/indra/newview/llurllineeditorctrl.cpp b/indra/newview/llurllineeditorctrl.cpp index 058b6e6862015a9b36dbe5b797ea5d54fc277854..ca6ff69d1bb9e9c83e1b2a07b50ac0c5463eb2de 100644 --- a/indra/newview/llurllineeditorctrl.cpp +++ b/indra/newview/llurllineeditorctrl.cpp @@ -62,7 +62,7 @@ void LLURLLineEditor::cut() deleteSelection(); // Validate new string and rollback the if needed. - bool need_to_rollback = mPrevalidator && !mPrevalidator.validate(mText.getWString()); + bool need_to_rollback = mPrevalidator && !mPrevalidator.validate(mText.getString()); if( need_to_rollback ) { rollback.doRollback( this );