Kill the mode switch distinction, and kill the old and unmaintained
Workspace&Icons mode.
Introduce instead configurability for the All&Thumbnails code, which
now independently allows choosing if only all windows or only those
from current workspace should be shown, and in which way (thumbnail,
icon, both).
All configuration settings changed, so the extension must be configured
again (although hopefully I chose reasonable defaults)
In All&Thumbnails mode, show an application icon above the thumbnail,
for easier recognition of the window.
The old behaviour can be restored in the preferences dialog.
Split the two modes in two different modules, for easier maintenance.
Refactor the AllThumbnails code completely, by copying relevant
or useful code for gnome-shell directly instead of hacking around
it.
This module is meant to be a copy-lib, and it is used all over the
place (including GPLv3, LGPL or BSD licensed extensions). I don't
want to block an extension for license incompatibility.
The rest of the repository is still GPLv2, as it is the tarball
distribution and individual extensions downloaded from the website.
Core shell changed the user menu so that Power Off is no longer at
the end, and it's no longer hidden by Alt. Update the extension
so that it blends nicely with the core behavior, while still exposing
Suspend/Hibernate/Power Off as separate menu items.
Desktop users rarely use suspend, and in general hibernate is
more trouble than it's worth to show at all times, so make their
visibility configurable in GSettings.
Supend defaults to true (since that's the GNOME 3 message anyway),
while hibernate is normally false. No UI is provided, since it's
unlikely that changing this is necessary.
Because the popup-menu min-width imposed by the theme was bigger
than the natural size of the menu, and because core shell code
cannot deal with that, the icon was not right aligned unless
"Removable devices" was showing.
Hack around that by setting span: -1, which pushes it to end of
the menu item.