Fix missing X11 fallback icons
Quoting the main commit:
Since commit 770231, StImageContent implements the GIcon interface, which
allowed us to represent all application icons as GIcon (app-info, X11 icon
property or themed fallback icon).
While that change made for a nicer ShellApp API, it did introduce a
conceptual issue in st_texture_cache_bind_cairo_surface_property():
GIcons usually represent static icons, while the ClutterContent
returned by that method updates automatically when the bound property
changes.
Address this by tracking the MetaWindow:icon property in ShellApp, and
update the fallback icon when it changes. With that, a GIcon object
always represents the same icon, and any icon change is reflected
by a corresponding GIcon change.
This fixes two cases of missing (or rather: empty) fallback icons: When a window doesn't set an icon (and we should therefore fall back to a generic themed icon), and when a window only sets its icon after we start managing it.
Fixes #3327 (closed)