xor? Wouldn't it be simpler to just `setVisible(visible)` everything every time?