diff options
Diffstat (limited to 'src/solaris/classes/sun/awt/X11/XBaseMenuWindow.java')
-rw-r--r-- | src/solaris/classes/sun/awt/X11/XBaseMenuWindow.java | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/solaris/classes/sun/awt/X11/XBaseMenuWindow.java b/src/solaris/classes/sun/awt/X11/XBaseMenuWindow.java index 783f4acb93..2d611b7a72 100644 --- a/src/solaris/classes/sun/awt/X11/XBaseMenuWindow.java +++ b/src/solaris/classes/sun/awt/X11/XBaseMenuWindow.java @@ -116,6 +116,8 @@ abstract public class XBaseMenuWindow extends XWindow { protected Point grabInputPoint = null; protected boolean hasPointerMoved = false; + private AppContext disposeAppContext; + /************************************************ * * Mapping data @@ -174,6 +176,8 @@ abstract public class XBaseMenuWindow extends XWindow { XBaseMenuWindow() { super(new XCreateWindowParams(new Object[] { DELAYED, Boolean.TRUE})); + + disposeAppContext = AppContext.getAppContext(); } /************************************************ @@ -904,12 +908,12 @@ abstract public class XBaseMenuWindow extends XWindow { */ public void dispose() { setDisposed(true); - InvocationEvent ev = new InvocationEvent(target, new Runnable() { + + SunToolkit.invokeLaterOnAppContext(disposeAppContext, new Runnable() { public void run() { doDispose(); } }); - super.postEvent(ev); } /** @@ -923,7 +927,6 @@ abstract public class XBaseMenuWindow extends XWindow { if (oldData != null) { oldData.invalidate(); } - XToolkit.targetDisposedPeer(target, this); destroy(); } |