< prev index next >

src/java.desktop/unix/classes/sun/awt/X11/XEmbedClientHelper.java

Print this page




 165     }
 166 
 167     public void dispatchEvent(XEvent xev) {
 168         switch(xev.get_type()) {
 169           case XConstants.ClientMessage:
 170               handleClientMessage(xev);
 171               break;
 172           case XConstants.ReparentNotify:
 173               handleReparentNotify(xev);
 174               break;
 175         }
 176     }
 177     public void handleReparentNotify(XEvent xev) {
 178         XReparentEvent re = xev.get_xreparent();
 179         long newParent = re.get_parent();
 180         if (active) {
 181             // unregister accelerators, etc. for old parent
 182             embedded.notifyStopped();
 183             // check if newParent is a root window
 184             X11GraphicsConfig gc = (X11GraphicsConfig)embedded.getGraphicsConfiguration();
 185             X11GraphicsDevice gd = (X11GraphicsDevice)gc.getDevice();
 186             if ((newParent == XlibUtil.getRootWindow(gd.getScreen())) ||
 187                 (newParent == XToolkit.getDefaultRootWindow()))
 188             {
 189                 // reparenting to root means XEmbed termination
 190                 active = false;
 191             } else {
 192                 // continue XEmbed with a new parent
 193                 server = newParent;
 194                 embedded.notifyStarted();
 195             }
 196         }
 197     }
 198     boolean requestFocus() {
 199         if (active && embedded.focusAllowedFor()) {
 200             sendMessage(server, XEMBED_REQUEST_FOCUS);
 201             return true;
 202         }
 203         return false;
 204     }
 205     void handleWindowFocusOut() {




 165     }
 166 
 167     public void dispatchEvent(XEvent xev) {
 168         switch(xev.get_type()) {
 169           case XConstants.ClientMessage:
 170               handleClientMessage(xev);
 171               break;
 172           case XConstants.ReparentNotify:
 173               handleReparentNotify(xev);
 174               break;
 175         }
 176     }
 177     public void handleReparentNotify(XEvent xev) {
 178         XReparentEvent re = xev.get_xreparent();
 179         long newParent = re.get_parent();
 180         if (active) {
 181             // unregister accelerators, etc. for old parent
 182             embedded.notifyStopped();
 183             // check if newParent is a root window
 184             X11GraphicsConfig gc = (X11GraphicsConfig)embedded.getGraphicsConfiguration();
 185             X11GraphicsDevice gd = gc.getDevice();
 186             if ((newParent == XlibUtil.getRootWindow(gd.getScreen())) ||
 187                 (newParent == XToolkit.getDefaultRootWindow()))
 188             {
 189                 // reparenting to root means XEmbed termination
 190                 active = false;
 191             } else {
 192                 // continue XEmbed with a new parent
 193                 server = newParent;
 194                 embedded.notifyStarted();
 195             }
 196         }
 197     }
 198     boolean requestFocus() {
 199         if (active && embedded.focusAllowedFor()) {
 200             sendMessage(server, XEMBED_REQUEST_FOCUS);
 201             return true;
 202         }
 203         return false;
 204     }
 205     void handleWindowFocusOut() {


< prev index next >