Success! Looks like we've fixed this one. According to our records the fix was applied for
Sencha Premium Member
GXT 3.0.1, bug in com.sencha.gxt.widget.core.client.Window
In the method "hide(TextButton buttonPressed)" the beforeHideEvent is called before hideButton is set. This is causing getHideButton() to return null if asking for this value in an event-handler. The simple fix is to move "hideButton = buttonPressed;" to be invoked at the start of the method.
The value of the hideButton is valuable if one want to do validation in the beforeHide-loop, and thus call cancel on the beforeHideEvent (the hideEvent itself is not cancellable) if validation fails.
Thanks for the feedback. It turns out to be slightly more complex than that - if the hide is cancelled, we must also restore the previous value.
I've filed this internally, and we'll look into it for our next release.