The image does not change when I use SetGadgetState in a ButtonImageGadget. If I click off my window then back on it changes to the new image.
I was able to work around the issue by using DisableGadget to disable the button, then enabling with a small delay. It is not noticeable when the app executes but its kinda weird to have this work-around in the code.
Just thought I would mention it - carry on.