TextAreaWidget: Fix erase handling with unicode characters
This commit is contained in:
parent
e6c0f864f3
commit
dec857d807
|
|
@ -72,10 +72,10 @@ namespace Ndk
|
||||||
Nz::String newText;
|
Nz::String newText;
|
||||||
if (firstGlyph > blockFirstGlyph)
|
if (firstGlyph > blockFirstGlyph)
|
||||||
{
|
{
|
||||||
std::size_t characterPosition = blockText.GetCharacterPosition(firstGlyph - blockFirstGlyph - 1);
|
std::size_t characterPosition = blockText.GetCharacterPosition(firstGlyph - blockFirstGlyph);
|
||||||
NazaraAssert(characterPosition != Nz::String::npos, "Invalid character position");
|
NazaraAssert(characterPosition != Nz::String::npos, "Invalid character position");
|
||||||
|
|
||||||
newText.Append(blockText.SubString(0, characterPosition));
|
newText.Append(blockText.SubString(0, characterPosition - 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lastGlyph < textLength)
|
if (lastGlyph < textLength)
|
||||||
|
|
|
||||||
|
|
@ -74,10 +74,10 @@ namespace Ndk
|
||||||
Nz::String newText;
|
Nz::String newText;
|
||||||
if (firstGlyph > 0)
|
if (firstGlyph > 0)
|
||||||
{
|
{
|
||||||
std::size_t characterPosition = m_text.GetCharacterPosition(firstGlyph - 1);
|
std::size_t characterPosition = m_text.GetCharacterPosition(firstGlyph);
|
||||||
NazaraAssert(characterPosition != Nz::String::npos, "Invalid character position");
|
NazaraAssert(characterPosition != Nz::String::npos, "Invalid character position");
|
||||||
|
|
||||||
newText.Append(m_text.SubString(0, characterPosition));
|
newText.Append(m_text.SubString(0, characterPosition - 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lastGlyph < textLength)
|
if (lastGlyph < textLength)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue