--- old/src/solaris/classes/sun/awt/X11/XWindowPeer.java 2012-08-27 23:08:54.654955849 +0400 +++ new/src/solaris/classes/sun/awt/X11/XWindowPeer.java 2012-08-27 23:08:54.418955847 +0400 @@ -1165,15 +1165,25 @@ } public void dispose() { + if (isGrabbed()) { + if (grabLog.isLoggable(PlatformLogger.FINE)) { + grabLog.fine("Generating UngrabEvent on {0} because of the window disposal", this); + } + postEventToEventQueue(new sun.awt.UngrabEvent(getEventSource())); + } + SunToolkit.awtLock(); + try { windows.remove(this); } finally { SunToolkit.awtUnlock(); } + if (warningWindow != null) { warningWindow.destroy(); } + removeRootPropertyEventDispatcher(); mustControlStackPosition = false; super.dispose(); @@ -1191,6 +1201,7 @@ } } } + boolean isResizable() { return winAttr.isResizable; }