瀏覽代碼

GItemView: Elide item names that won't fit

This isn't perfect since now you will just see "Long name..." instead
of the whole name, but at least it doesn't look totally wrong either.
Andreas Kling 5 年之前
父節點
當前提交
77d6dbc236
共有 1 個文件被更改,包括 2 次插入1 次删除
  1. 2 1
      Libraries/LibGUI/GItemView.cpp

+ 2 - 1
Libraries/LibGUI/GItemView.cpp

@@ -167,6 +167,7 @@ void GItemView::paint_event(GPaintEvent& event)
         Rect text_rect { 0, icon_rect.bottom() + 6 + 1, font.width(item_text.to_string()), font.glyph_height() };
         text_rect.center_horizontally_within(item_rect);
         text_rect.inflate(6, 4);
+        text_rect.intersect(item_rect);
 
         Color text_color;
         if (is_selected_item)
@@ -174,7 +175,7 @@ void GItemView::paint_event(GPaintEvent& event)
         else
             text_color = model()->data(model_index, GModel::Role::ForegroundColor).to_color(Color::Black);
         painter.fill_rect(text_rect, background_color);
-        painter.draw_text(text_rect, item_text.to_string(), font, TextAlignment::Center, text_color);
+        painter.draw_text(text_rect, item_text.to_string(), font, TextAlignment::Center, text_color, TextElision::Right);
     };
 }