Thanks for the tip. And I had a feeling you would have an easier way of fixing the bug.
My main problem was obviously not understanding having to call IsCursor and GetCursor as well as IsSelected. In addition you have to use the WhenEnterItem callback instead of WhenSelection to pick up on the change. I do not like this interface, IMO it is not obvious to new users (ie. me ) and needs extra code for functionality that could be a single line (like retrieving the first selected item). I appreciate this gives more flexibility but some additional member functions with obvious names would make this control easier to use.
I also still think that there needs to be an 'if (multi)' check in the LeftDown handling. When in single selection mode using the Ctrl key causes the item to be highlighted in grey, and Shift also causes a second item to be highlighted. As this behaviour makes no sense when you can't select more than one item it should be removed. Simply changing:
if (cursor >= 0) {
to
if (multi && cursor >= 0) {
Fixes this.
Just my 2c really, since I can make it work however I like for my own projects. Thanks again.