jdk/src/solaris/classes/sun/awt/X11/XEmbeddedFramePeer.java
changeset 1974 1e1487c04864
parent 439 3488710b02f8
child 2643 ea218b1a2000
--- a/jdk/src/solaris/classes/sun/awt/X11/XEmbeddedFramePeer.java	Wed Nov 26 16:25:16 2008 +0300
+++ b/jdk/src/solaris/classes/sun/awt/X11/XEmbeddedFramePeer.java	Fri Dec 19 16:04:04 2008 +0300
@@ -63,7 +63,10 @@
     void postInit(XCreateWindowParams params) {
         super.postInit(params);
         if (embedder != null) {
-            embedder.install(this);
+            // install X11 event dispatcher
+            embedder.setClient(this);
+            // reparent to XEmbed server
+            embedder.install();
         } else if (getParentWindowHandle() != 0) {
             XToolkit.awtLock();
             try {
@@ -77,6 +80,15 @@
         }
     }
 
+    @Override
+    public void dispose() {
+        if (embedder != null) {
+            // uninstall X11 event dispatcher
+            embedder.setClient(null);
+        }
+        super.dispose();
+    }
+
     public void updateMinimumSize() {
     }
 
@@ -249,6 +261,14 @@
         // XEmbed.
         updateDropTarget();
     }
+    void notifyStopped() {
+        if (embedder != null && embedder.isActive()) {
+            for (int i = strokes.size() - 1; i >= 0; i--) {
+                embedder.unregisterAccelerator(i);
+            }
+        }
+    }
+
     long getFocusTargetWindow() {
         return getWindow();
     }