diff --git a/Libraries/LibGUI/ColumnsView.cpp b/Libraries/LibGUI/ColumnsView.cpp index f1951d0a8a..4f26b35b6c 100644 --- a/Libraries/LibGUI/ColumnsView.cpp +++ b/Libraries/LibGUI/ColumnsView.cpp @@ -130,10 +130,14 @@ void ColumnsView::paint_event(PaintEvent& event) icon_rect.center_vertically_within(row_rect); if (icon.is_icon()) { if (auto* bitmap = icon.as_icon().bitmap_for_size(icon_size())) { - if (m_hovered_index.is_valid() && m_hovered_index.parent() == index.parent() && m_hovered_index.row() == index.row()) + if (is_selected_row) { + auto tint = palette().selection().with_alpha(100); + painter.blit_filtered(icon_rect.location(), *bitmap, bitmap->rect(), [&](auto src) { return src.blend(tint); }); + } else if (m_hovered_index.is_valid() && m_hovered_index.parent() == index.parent() && m_hovered_index.row() == index.row()) { painter.blit_brightened(icon_rect.location(), *bitmap, bitmap->rect()); - else + } else { painter.blit(icon_rect.location(), *bitmap, bitmap->rect()); + } } } diff --git a/Libraries/LibGUI/IconView.cpp b/Libraries/LibGUI/IconView.cpp index e40bd9135b..5243ac678d 100644 --- a/Libraries/LibGUI/IconView.cpp +++ b/Libraries/LibGUI/IconView.cpp @@ -457,7 +457,10 @@ void IconView::paint_event(PaintEvent& event) Gfx::IntRect destination = bitmap->rect(); destination.center_within(item_data.icon_rect); - if (m_hovered_index.is_valid() && m_hovered_index == item_data.index) { + if (item_data.selected) { + auto tint = palette().selection().with_alpha(100); + painter.blit_filtered(destination.location(), *bitmap, bitmap->rect(), [&](auto src) { return src.blend(tint); }); + } else if (m_hovered_index.is_valid() && m_hovered_index == item_data.index) { painter.blit_brightened(destination.location(), *bitmap, bitmap->rect()); } else { painter.blit(destination.location(), *bitmap, bitmap->rect()); diff --git a/Libraries/LibGUI/TableView.cpp b/Libraries/LibGUI/TableView.cpp index 3f7cef5073..501da53af1 100644 --- a/Libraries/LibGUI/TableView.cpp +++ b/Libraries/LibGUI/TableView.cpp @@ -121,10 +121,14 @@ void TableView::paint_event(PaintEvent& event) painter.blit(cell_rect.location(), data.as_bitmap(), data.as_bitmap().rect()); } else if (data.is_icon()) { if (auto bitmap = data.as_icon().bitmap_for_size(16)) { - if (m_hovered_index.is_valid() && cell_index.row() == m_hovered_index.row()) + if (is_selected_row) { + auto tint = palette().selection().with_alpha(100); + painter.blit_filtered(cell_rect.location(), *bitmap, bitmap->rect(), [&](auto src) { return src.blend(tint); }); + } else if (m_hovered_index.is_valid() && cell_index.row() == m_hovered_index.row()) { painter.blit_brightened(cell_rect.location(), *bitmap, bitmap->rect()); - else + } else { painter.blit(cell_rect.location(), *bitmap, bitmap->rect()); + } } } else { if (!is_selected_row) {