diff --git a/src/solaris/classes/sun/awt/X11/XWindowPeer.java b/src/solaris/classes/sun/awt/X11/XWindowPeer.java index faa8ff0da74c26809d4faaf18dd152f0dc1055c1..a6af2e776d2867ebf3277aec818ced5f06671590 100644 --- a/src/solaris/classes/sun/awt/X11/XWindowPeer.java +++ b/src/solaris/classes/sun/awt/X11/XWindowPeer.java @@ -1165,15 +1165,25 @@ class XWindowPeer extends XPanelPeer implements WindowPeer, } 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 @@ class XWindowPeer extends XPanelPeer implements WindowPeer, } } } + boolean isResizable() { return winAttr.isResizable; }