On macOS the Listbox CellClick event is triggered when releasing the mouse (equivalent of MouseUp) which is imo correct behaviour.
But on Windows the CellClick event is already triggered when clicking down the mouse (equivalent of MouseDown).
For as long as I know, it was a well known fact that Mac and Windows handled double clicks differently: Mac would trigger double clicks on mouse up and Windows on mouse down (earlier). Those are “little” differences that make me remembering why I prefer Macs
Actually, on Windows every time you click on a cell you get a MouseDown. If the event handler returns True then you get a MouseUp but no CellClick or DoubleClick (DoublePressed on API2). If the MouseDown returns False you don’t get a MouseUp but you do get the CellClick.
If the MouseDown returns False AND the second mouse release returns within the necessary area and timing you will also get the DoubleClick. This can be seen if you do a quick MouseClick-Release-MouseClick and not doing the second release of the mouse button for a few seconds. On Windows (at least) the DoubleClick won’t fire.
With the events that exist (cellpressed, mousedown, mouseup, mouse enter, mouseexit) you can implement any behaviour you wish.
In my case, my buttons when clicked (pressed) become darker. However they don’t do any action until you release the mouse. Or if as @Emile_Schwarz says you “regret” it, you can move the mouse outside the button and it becomes light again. Release the mouse at this point and nothing happens.