ComboBox: Handling item reselection


#1

What is the proper way of getting notified when the user selects the same item in a ComboBox that is currently selected?

What I tried so far with no success:
Overriding comboBoxChanged or valueChanged or handleAsyncUpdate in a subclassed ComboBox. All of those methods get only called if the value actually changed.

What I tried with partial success:
Passing a PopupMenu::CustomCallback that handles menuItemTriggered() to every PopupMenu::Item in the ComboBox. Problem here is that the callback in fact is called every time an item is selected but it has no knowledge of the actual item that was selected. Now asking the ComboBox which item is currently selected will still return the old value because it will only get updated after this callback.

From the description of menuItemTriggered() I would have assumed that always returning true from it will always force ComboBox::comboBoxChanged() to be called but that turned out to be a misassumption (Probably because another check for change is run after exitModalState):

true if the itemID should be sent to the exitModalState method, or false if it should send 0, indicating no further action should be taken

Now I guess I could make the PopupMenu::CustomCallback::menuItemTriggered() smart enough to know which item was selected if the callback is called but that would IMO imply having a PopupMenu::CustomCallback for every item in the ComboBox which seems overly complicated to me and I fear I’m missing the easy way.

Any suggestions on how to tackle this?