93319e7c11
GTK4 changed icon loading significantly, it is now closely tied to snapshots and paintables. This makes a port highly unrealistic, so to avoid staying stuck on GTK3 forever, copy the relevant code into the tree. The code is unmodified except for the include names and replacing some stray tab indentation. It is still full of GTK internals, so it will take a while before we can actually build it. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2620>