diff options
author | Andreas Kling <awesomekling@gmail.com> | 2019-09-01 17:30:23 +0200 |
---|---|---|
committer | Andreas Kling <awesomekling@gmail.com> | 2019-09-01 17:30:23 +0200 |
commit | 74ca299b4b51d8f8a3c46fdba1f8e91a7eb7f9a6 (patch) | |
tree | 4f8afc4400fc8ea63d0c54061a40c2a3e2727db5 | |
parent | 72a29d72d3c9461fd093ef76ca27bb0f23d3ec9b (diff) | |
download | serenity-74ca299b4b51d8f8a3c46fdba1f8e91a7eb7f9a6.zip |
GTextEditor: Make visual lines stop after their last character
Instead of letting each visual line run to the end of the editor when
wrapping lines, stop each visual line where it runs ouf characters.
Fixes #493.
-rw-r--r-- | Libraries/LibGUI/GTextEditor.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/Libraries/LibGUI/GTextEditor.cpp b/Libraries/LibGUI/GTextEditor.cpp index 53d3477290..15129a7584 100644 --- a/Libraries/LibGUI/GTextEditor.cpp +++ b/Libraries/LibGUI/GTextEditor.cpp @@ -156,7 +156,7 @@ GTextPosition GTextEditor::text_position_at(const Point& a_position) const column_index = (position.x() + glyph_width() / 2) / glyph_width(); if (is_line_wrapping_enabled()) { line.for_each_visual_line([&](const Rect& rect, const StringView&, int start_of_line) { - if (rect.contains(position)) { + if (rect.contains_vertically(position.y())) { column_index += start_of_line; return IterationDecision::Break; } @@ -405,7 +405,7 @@ void GTextEditor::paint_event(GPaintEvent& event) int selection_right = selection_ends_on_current_visual_line ? content_x_for_position({ line_index, selection_end_column_within_line }) - : visual_line_rect.right(); + : visual_line_rect.right() + 1; Rect selection_rect { selection_left, @@ -1412,7 +1412,7 @@ void GTextEditor::Line::for_each_visual_line(Callback callback) const Rect visual_line_rect { m_visual_rect.x(), m_visual_rect.y() + (line_index * m_editor.line_height()), - m_visual_rect.width(), + m_editor.font().width(visual_line_view), m_editor.line_height() }; if (callback(visual_line_rect, visual_line_view, start_of_line) == IterationDecision::Break) |