I've run into an odd little problem in a custom UI. I suspect there's no solution, but thought I'd toss it out there. A minor issue, to be sure.
The quick demo: choose Gromit, and create a project with a couple of images in it. Now go into edit mode on the first image, and open the little Gromit panel on the right. Enter something (anything) in the Video host URL field. This will enable the Width and Height spinners.
Change the value for Width by using the spinner arrows. Now hover on the image and click the arrow icon to go to the next image, then return to the first image. Your change to Width should be shown. So far, so good.
But now change the value for Width by manually entering a value in that field. But without hitting Enter or Tab, move to the next image for editing, then back again. Your change to the Width field hasn't been registered.
I've tried adding a FocusListener() to the spinners, and also a StateMonitor() that listens for any change, each of them forcing a saveUI(). No luck. I can feel what's happening - until the user leaves that spinner field, his input hasn't been validated by the spinner, so it hasn't registered. After all, he could enter abcd, which would not be a valid value.
No need for any forced saveUI() calls, either, at least not in Gromit. I still have to use them in Matrix because that entire custom UI is in a separate popup, where the jAlbum core isn't controlling things as tightly. But simple StateMonitor()'s take care of it pretty well there.
This is one of those weird little things that a user would almost never encounter. I only found it because I was changing some video frame bounds in one of my demo albums, and my changes were mysteriously vanishing!