diff --git a/src/graphics/ui/elements/TextBox.cpp b/src/graphics/ui/elements/TextBox.cpp index c9afde7f..a09a47fa 100644 --- a/src/graphics/ui/elements/TextBox.cpp +++ b/src/graphics/ui/elements/TextBox.cpp @@ -253,9 +253,10 @@ void TextBox::draw(const DrawContext& pctx, const Assets& assets) { float time = gui.getWindow().time(); if (editable && static_cast((time - caretLastMove) * 2) % 2 == 0) { - uint line = rawTextCache.getLineByTextIndex(caret); - uint lcaret = caret - rawTextCache.getTextLineOffset(line); + uint line = label->getLineByTextIndex(caret); + uint lcaret = caret - label->getTextLineOffset(line); int width = rawTextCache.metrics.calcWidth(input, 0, lcaret); + batch->rect( lcoord.x + width, lcoord.y + label->getLineYOffset(line), @@ -272,10 +273,10 @@ void TextBox::draw(const DrawContext& pctx, const Assets& assets) { batch->setColor(glm::vec4(0.8f, 0.9f, 1.0f, 0.25f)); int start = rawTextCache.metrics.calcWidth( - labelText, selectionStart - label->getTextLineOffset(startLine) + labelText, 0, selectionStart - label->getTextLineOffset(startLine) ); int end = rawTextCache.metrics.calcWidth( - labelText, selectionEnd - label->getTextLineOffset(endLine) + labelText, 0, selectionEnd - label->getTextLineOffset(endLine) ); int lineY = label->getLineYOffset(startLine); @@ -1210,8 +1211,8 @@ void TextBox::setCaret(size_t position) { scrolled(-glm::ceil(offset / static_cast(scrollStep) + 0.5f)); } int lcaret = caret - rawTextCache.getTextLineOffset(line); - int realoffset = - rawTextCache.metrics.calcWidth(labelText, 0, lcaret) - static_cast(textOffset) + 2; + int realoffset = rawTextCache.metrics.calcWidth(labelText, 0, lcaret) - + static_cast(textOffset) + 2; if (realoffset - width > 0) { setTextOffset(textOffset + realoffset - width);