TextAreaWidget: It feels natural now *.*
This commit is contained in:
parent
5aa2efc737
commit
4e9508e23a
|
|
@ -122,6 +122,8 @@ namespace Ndk
|
||||||
if (cursorPosition.y >= lineCount)
|
if (cursorPosition.y >= lineCount)
|
||||||
cursorPosition.y = static_cast<unsigned int>(lineCount - 1);
|
cursorPosition.y = static_cast<unsigned int>(lineCount - 1);
|
||||||
|
|
||||||
|
m_cursorPosition = cursorPosition;
|
||||||
|
|
||||||
const auto& lineInfo = m_drawer.GetLine(cursorPosition.y);
|
const auto& lineInfo = m_drawer.GetLine(cursorPosition.y);
|
||||||
if (cursorPosition.y + 1 < lineCount)
|
if (cursorPosition.y + 1 < lineCount)
|
||||||
{
|
{
|
||||||
|
|
@ -129,7 +131,13 @@ namespace Ndk
|
||||||
cursorPosition.x = std::min(cursorPosition.x, static_cast<unsigned int>(nextLineInfo.glyphIndex - lineInfo.glyphIndex - 1));
|
cursorPosition.x = std::min(cursorPosition.x, static_cast<unsigned int>(nextLineInfo.glyphIndex - lineInfo.glyphIndex - 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
SetCursorPosition(lineInfo.glyphIndex + cursorPosition.x); //<TODO: Optimize to prevent recalculation of line
|
std::size_t glyphIndex = lineInfo.glyphIndex + cursorPosition.x;
|
||||||
|
|
||||||
|
OnTextAreaCursorMove(this, &glyphIndex);
|
||||||
|
|
||||||
|
m_cursorGlyph = std::min(glyphIndex, m_drawer.GetGlyphCount());
|
||||||
|
|
||||||
|
RefreshCursor();
|
||||||
}
|
}
|
||||||
|
|
||||||
inline void TextAreaWidget::SetReadOnly(bool readOnly)
|
inline void TextAreaWidget::SetReadOnly(bool readOnly)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue