mirror of
https://github.com/lutris/lutris.git
synced 2026-06-17 10:19:58 -04:00
Replace the Gtk.IconView + CellRenderer-based grid with a Gtk.GridView driven by Gtk.SignalListItemFactory, matching the ColumnView conversion done for the list view. Each cell is a vertical Gtk.Box containing a new GameCoverWidget (a Gtk.Widget that ports GridViewCellRendererImage's snapshot drawing, badges, and inset animation) plus an optional Gtk.Label. The cover's texture and badge caches live on the class rather than per-instance so recycled widgets share them during scrolling — otherwise every rebind missed the cache and scroll performance tanked. Enforces the old min_width = 70 cell floor via set_size_request on each cell box so labels stay readable at the smallest icon zoom. Drops cellrenderers.py; nothing else used it. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>