If your UI is based on multi selection (and Nautilus definitely is) you should not register to whenSelectedIndexChanged:/whenSelectedItemChanged:, but only the plural version.

Ok, I get that.�
Still, when you create a NewList you have to provide a setIndexSelector, for example in the CategoryWidget I am doing:

categoriesList := NewList
on: self�
getItemsSelector: #getCategories�
setIndexSelector: #selectedCategoryIndex:
getDisplaySelector: #categoryWrapper:.

So, every time you click on the categories list (both selecting multiple categories or not) the CategoryWidget receives the #selectedCategoryIndex: message.
The current selectedCategoryIndex: message reads like this:

selectedCategoryIndex: anInteger

| anObject |
anObject := self getCategories at: anInteger ifAbsent: [ nil ].
self model selectedCategory: anObject.
self changed: #selectedCategoryIndex.
self model categorySelectionChanged.
self model changed: #currentHistoryIndex.


Also the NewList is in the list of dependents of the CategoryWidget, so it also gets the #update: message
Is this right?