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.
libcommon.la defines several new GTypes, so it cannot be loaded into the
same process multiple times.
Copy gconf-property-editor to libgnome-control-center as this is useful
for all panels. However, it will need to be converted to GSettings in the
near future.
Copy capplet-stock-icons to the mouse panel, as it is not used in any other
panels.
Remove references to functions not yet implemented for panels (help,
window icon, etc).
If new password is really close to the old one, 'passwd' says: "Bad: new password must be different than the old one". Handle this case too, instead of hanging.
https://bugzilla.gnome.org/show_bug.cgi?id=619354
The example panel implements CcPanel and registers itself as extending the
panel extension point. It provides a simple "Hello World" message. The
example panel is not build by default, but enabled through a configure option.
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.
The extension point name is used to identify modules that implement
new settings panels using CcPanel.
Also add various libtool flags that will be good practice for new panels.
CcShell is an abstract class that represents an instance of a control
center shell. It provides access to some of the properties of the shell
that panels will need to read or change. When a panel is created it has an
instance of CcShell available that represents the current shell.
CcPanel is an abstract class used to implement panels for the shell. A
panel contains a collection of related settings that are displayed within
the shell window.