+ *
+ * Normally when you start a drag, GtkTreeView sets the selection to just row
+ * you dragged from (because it can't cope with dragging more than one row at a
+ * time).
+ *
+ * Disobedience needs more. To implement this it intercepts button-press-event
+ * and button-release event and for clicks that might be the start of drags,
+ * suppresses changes to the selection. A consequence of this is that it needs
+ * to intercept button-release-event too, to restore the effect of the click,
+ * if it turns out not to be drag after all.
+ *
+ * The location of the initial click is stored in object data called @c
+ * multidrag-where.
+ *
+ * Inspired by similar code in <a
+ * href="http://code.google.com/p/quodlibet/">Quodlibet</a> (another software
+ * jukebox, albeit as far as I can see a single-user one).