浏览代码

LibGUI: Consider TextEditor icon size when scrolling text horizontally

If an icon exists and the horizontal scroll value is larger than 0,
translate the TextEditor painter by the icon size and padding.

The text would scroll over the icon when the text was long enough to
trigger a horizontal scroll.

Fixes #13669.
offtkp 3 年之前
父节点
当前提交
62d41d58d6
共有 1 个文件被更改,包括 4 次插入1 次删除
  1. 4 1
      Userland/Libraries/LibGUI/TextEditor.cpp

+ 4 - 1
Userland/Libraries/LibGUI/TextEditor.cpp

@@ -452,7 +452,10 @@ void TextEditor::paint_event(PaintEvent& event)
         painter.draw_line(ruler_rect.top_right(), ruler_rect.bottom_right(), palette().ruler_border());
     }
 
-    painter.translate(-horizontal_scrollbar().value(), -vertical_scrollbar().value());
+    auto horizontal_scrollbar_value = horizontal_scrollbar().value();
+    painter.translate(-horizontal_scrollbar_value, -vertical_scrollbar().value());
+    if (m_icon && horizontal_scrollbar_value > 0)
+        painter.translate(min(icon_size() + icon_padding(), horizontal_scrollbar_value), 0);
     painter.translate(gutter_width(), 0);
     painter.translate(ruler_width(), 0);