We had been relying on the deselected state of the widget to prevent
selection with the "allow" predicate was false. But clicking the
widget itself isn't the only way items can be selected (double clicking
the item for example). This change adds a test at a lower level to
prevent selection of disallowed items.
g_return_if_fail (selector->select_items);
+ if (selector->allow_selection &&
+ ! selector->allow_selection (selector->source, selector->dest))
+ return;
+
selector->selecting = TRUE;
for (item = g_list_first (selected_rows);