gridview: Redo tile management
authorBenjamin Otte <otte@redhat.com>
Wed, 1 Mar 2023 14:25:17 +0000 (15:25 +0100)
committerBenjamin Otte <otte.benjamin@googlemail.com>
Sun, 5 Mar 2023 15:23:20 +0000 (15:23 +0000)
commit776910d03d2b28a6e90b47f60e15a229316b5a8f
treee2b6ded5b0ecc1a5c6d81a4f6d8605cabaedb48a
parentc82b2d86c0db5465366c1a87e15d49ba17742daa
gridview: Redo tile management

Instead of the custom size property, use the new tile size.

Also introduce the ability to split tiles, so that gridview can split a
layout that would look like (question mark denoting cells without a
widget, which in this case would be a single tile)

█ █ █ ? ?
? ? ? ? ?
? ? ? ? ?
? ? ?

into 3 rectangular tiles like so:

█ █ █ A A
B B B B B
B B B B B
C C C

This of course also means we need to be able to merge those tiles again
when cells got added/deleted or the gridview was resized. For that job,
gtk_list_tile_gc() exists now, which removes tiles without items and
merges adjacent tiles without widgets.
gtk/gtkgridview.c
gtk/gtklistitemmanager.c
gtk/gtklistitemmanagerprivate.h