Event-driven show/hide turns out to be flakey as shit, so it's back to polling.