Trouble Managing Spinner AfterSelecting

With my spinner I first understood that AfterSelecting would fire only when the user actually selected and changed the value. But I began to notice that this was firing when my code changed the Selection.

Assuming this was expected behavior (is it?) I started trying to manage the situation with flags. But that is getting very messy.

Is there a way to detect whether or not this is being executed due to actual user interaction, or my code?

See here

Interesting and helpful, as you always are. But it doesn't really address my question/problem. Documentation seems to imply to me that AfterSelecting is triggered only by the user. But I'm not seeing that...having difficulty handling things. I want my spinners to always be visible to the user (but sometimes my code needs to change the selection).

If you use a button, you can change the text, with code, (for visualising) without activating the afterSelected event, and call for an action without "using" the spinner, or not. The only thing you lose is the little down arrow, but you could include that in the button text if need be.