Reviewers: jgw, Description: Calling PopupPanel#removeFromParent or RootPanel.get().remove(popupPanel) does not hide the glass.
Fix: ===== onUnload now uses ResizeAnimation to complete the hide process if the PopupPanel isn't already hidden. While the fix seems trivial, this bug actually revealed a few problems that can lead to invalid states. First of all, prior to this patch, calling hide() would actually call setState() twice (once in hide, once in onUnload). Second, calling hide() synchronously after calling show with animations could would leave the PopupPanel in an invalid state. Testing: ======= I added unit tests. Please review this at http://gwt-code-reviews.appspot.com/220801 Affected files: user/src/com/google/gwt/user/client/ui/PopupPanel.java user/test/com/google/gwt/user/client/ui/PopupTest.java -- http://groups.google.com/group/Google-Web-Toolkit-Contributors