When using keynav in the category views, the fact that the categories are
separate icon views leads to confusion, because each category will end up
with its own selected icon, so that you can end up with multiple selected
items (and the difference between focused/non-focused is not visually
obvious here). Also, since the category views appear visually as a single
unit, it is irritating that arrow keynav stops at category borders.
This commit arranges things so that only one category will ever have a
selected item by unselecting on focus-out. Furthermore, it uses the
keynav-failed signal and some new GTK+ api to make arrow up/down work across
category borders, in the expected way.
This involves storing the default window title and icon name and resetting
the title and icon name when an embedded settings panel is closed.
The icon name and title for each panel is retrieved from the desktop file
information and stored in the CcShellModel.
Set up the extension point and load plugins that are available. If a plugin
implements a particular panel, then load the CcPanel implementation instead
of executing the application.