summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibGUI/TextEditor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Userland/Libraries/LibGUI/TextEditor.cpp')
-rw-r--r--Userland/Libraries/LibGUI/TextEditor.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/Userland/Libraries/LibGUI/TextEditor.cpp b/Userland/Libraries/LibGUI/TextEditor.cpp
index 9428a62191..e3619f01c6 100644
--- a/Userland/Libraries/LibGUI/TextEditor.cpp
+++ b/Userland/Libraries/LibGUI/TextEditor.cpp
@@ -1418,6 +1418,19 @@ void TextEditor::set_cursor_to_text_position(Gfx::IntPoint position)
set_cursor({ visual_position.line(), physical_column });
}
+void TextEditor::set_cursor_to_end_of_visual_line()
+{
+ for_each_visual_line(m_cursor.line(), [&](auto const&, auto& view, size_t start_of_visual_line, auto) {
+ if (m_cursor.column() < start_of_visual_line)
+ return IterationDecision::Continue;
+ if ((m_cursor.column() - start_of_visual_line) >= view.length())
+ return IterationDecision::Continue;
+
+ set_cursor(m_cursor.line(), start_of_visual_line + view.length());
+ return IterationDecision::Break;
+ });
+}
+
void TextEditor::focusin_event(FocusEvent& event)
{
if (event.source() == FocusSource::Keyboard)