staging/xdg-toplevel-icon: Add new protocol
This is an alternative to !269 (merged). There are three changes:
- Setting the icon is only allowed on unmapped toplevels
- The xdg icon theme variant was deleted
- The protocol mechanics were changes to have a creator and immutable toplevel icon objects
The protocol can be changed in a new version to...
- remove the restriction to only being able to set an icon on unmapped toplevels
- add new creators, such as xdg icon theme
The rationale for only allowing an icon to be set on unmapped toplevels is that...
- a window either does have or does not have an icon for the entire lifetime
- it makes it impossible for apps to relay some status via the icon
One disadvantage of this restriction is that wine will apparently not be able to use it. A lot of Windows window management is not possible with wayland right now. The rootful mode continues to work, and wayland might eventually grow a wine protocol to specifically deal with those cases.
The reason for deleting the xdg icon theme variant is that the fate of the spec is uncertain right now.