We often use rows representing different things in the same list
box. In these cases it's often desirable to have rows emitting their
own activation signals instead of having a single handler for the
whole list box that dispatches according to the activated row.
https://bugzilla.gnome.org/show_bug.cgi?id=785949
The usual implementation of the header func adds headers to all rows but
the first one. If the first row then gets removed, the second row
becomes the first and keeps its header, since nothing ever removes it.
Fix this by also removing the header if we are looking at the first row.
https://bugzilla.gnome.org/show_bug.cgi?id=743441
GtkListBox doesn't implement GtkScrollable so it needs to be added to
a GtkViewport. Instead of having to do this in all .ui files, add a
new helper function to setup the widget tree correctly.
https://bugzilla.gnome.org/show_bug.cgi?id=732175