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.
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.
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.
This adds a "Make Default" button in gnome-display-properties, which is used
to set up a systemwide default RANDR configuration. For users which don't have
a personal ~/.config/monitors.xml, then that systemwide configuration will
be used instead.
There is a PolicyKit helper program, gnome-display-properties-install-systemwide,
which is used to create the file
/etc/gnome-settings-daemon/xrandr/monitors.xml
in a secure fashion.
Otherwise we get:
/usr/bin/ld: gnome-mouse-properties.o: undefined reference to symbol 'floor@@GLIBC_2.0'
/usr/bin/ld: note: 'floor@@GLIBC_2.0' is defined in DSO /lib/libm.so.6 so try adding it to the linker command line
/lib/libm.so.6: could not read symbols: Invalid operation
https://bugzilla.gnome.org/show_bug.cgi?id=609570