jdk/src/solaris/classes/sun/awt/X11/XDropTargetRegistry.java
changeset 17679 a81555868357
parent 5506 202f599c92aa
child 18178 ee71c923891d
equal deleted inserted replaced
17678:ec24ad8455ec 17679:a81555868357
     1 /*
     1 /*
     2  * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.  Oracle designates this
     7  * published by the Free Software Foundation.  Oracle designates this
   166                 int dest_x = p.x;
   166                 int dest_x = p.x;
   167                 int dest_y = p.y;
   167                 int dest_y = p.y;
   168                 if (dest_x >= 0 && dest_y >= 0) {
   168                 if (dest_x >= 0 && dest_y >= 0) {
   169                     XWindowAttributes wattr = new XWindowAttributes();
   169                     XWindowAttributes wattr = new XWindowAttributes();
   170                     try {
   170                     try {
   171                         XToolkit.WITH_XERROR_HANDLER(XErrorHandler.IgnoreBadWindowHandler.getInstance());
   171                         XErrorHandlerUtil.WITH_XERROR_HANDLER(XErrorHandler.IgnoreBadWindowHandler.getInstance());
   172                         int status = XlibWrapper.XGetWindowAttributes(XToolkit.getDisplay(),
   172                         int status = XlibWrapper.XGetWindowAttributes(XToolkit.getDisplay(),
   173                                                                       window, wattr.pData);
   173                                                                       window, wattr.pData);
   174                         XToolkit.RESTORE_XERROR_HANDLER();
   174                         XErrorHandlerUtil.RESTORE_XERROR_HANDLER();
   175 
   175 
   176                         if (status == 0 ||
   176                         if ((status == 0) ||
   177                             (XToolkit.saved_error != null &&
   177                             ((XErrorHandlerUtil.saved_error != null) &&
   178                              XToolkit.saved_error.get_error_code() != XConstants.Success)) {
   178                             (XErrorHandlerUtil.saved_error.get_error_code() != XConstants.Success))) {
   179                             continue;
   179                             continue;
   180                         }
   180                         }
   181 
   181 
   182                         if (wattr.get_map_state() != XConstants.IsUnmapped
   182                         if (wattr.get_map_state() != XConstants.IsUnmapped
   183                             && dest_x < wattr.get_width()
   183                             && dest_x < wattr.get_width()
   220         try {
   220         try {
   221             long root = 0;
   221             long root = 0;
   222             long event_mask = 0;
   222             long event_mask = 0;
   223             XWindowAttributes wattr = new XWindowAttributes();
   223             XWindowAttributes wattr = new XWindowAttributes();
   224             try {
   224             try {
   225                 XToolkit.WITH_XERROR_HANDLER(XErrorHandler.IgnoreBadWindowHandler.getInstance());
   225                 XErrorHandlerUtil.WITH_XERROR_HANDLER(XErrorHandler.IgnoreBadWindowHandler.getInstance());
   226                 int status = XlibWrapper.XGetWindowAttributes(XToolkit.getDisplay(),
   226                 int status = XlibWrapper.XGetWindowAttributes(XToolkit.getDisplay(),
   227                                                               embedder, wattr.pData);
   227                                                               embedder, wattr.pData);
   228                 XToolkit.RESTORE_XERROR_HANDLER();
   228                 XErrorHandlerUtil.RESTORE_XERROR_HANDLER();
   229 
   229 
   230                 if (status == 0 ||
   230                 if ((status == 0) ||
   231                     (XToolkit.saved_error != null &&
   231                     ((XErrorHandlerUtil.saved_error != null) &&
   232                      XToolkit.saved_error.get_error_code() != XConstants.Success)) {
   232                     (XErrorHandlerUtil.saved_error.get_error_code() != XConstants.Success))) {
   233                     throw new XException("XGetWindowAttributes failed");
   233                     throw new XException("XGetWindowAttributes failed");
   234                 }
   234                 }
   235 
   235 
   236                 event_mask = wattr.get_your_event_mask();
   236                 event_mask = wattr.get_your_event_mask();
   237                 root = wattr.get_root();
   237                 root = wattr.get_root();
   238             } finally {
   238             } finally {
   239                 wattr.dispose();
   239                 wattr.dispose();
   240             }
   240             }
   241 
   241 
   242             if ((event_mask & XConstants.PropertyChangeMask) == 0) {
   242             if ((event_mask & XConstants.PropertyChangeMask) == 0) {
   243                 XToolkit.WITH_XERROR_HANDLER(XErrorHandler.IgnoreBadWindowHandler.getInstance());
   243                 XErrorHandlerUtil.WITH_XERROR_HANDLER(XErrorHandler.IgnoreBadWindowHandler.getInstance());
   244                 XlibWrapper.XSelectInput(XToolkit.getDisplay(), embedder,
   244                 XlibWrapper.XSelectInput(XToolkit.getDisplay(), embedder,
   245                                          event_mask | XConstants.PropertyChangeMask);
   245                                          event_mask | XConstants.PropertyChangeMask);
   246                 XToolkit.RESTORE_XERROR_HANDLER();
   246                 XErrorHandlerUtil.RESTORE_XERROR_HANDLER();
   247 
   247 
   248                 if (XToolkit.saved_error != null &&
   248                 if ((XErrorHandlerUtil.saved_error != null) &&
   249                     XToolkit.saved_error.get_error_code() != XConstants.Success) {
   249                     (XErrorHandlerUtil.saved_error.get_error_code() != XConstants.Success)) {
   250                     throw new XException("XSelectInput failed");
   250                     throw new XException("XSelectInput failed");
   251                 }
   251                 }
   252             }
   252             }
   253 
   253 
   254             return new EmbeddedDropSiteEntry(root, event_mask, embedderProtocols);
   254             return new EmbeddedDropSiteEntry(root, event_mask, embedderProtocols);
   392 
   392 
   393             long event_mask = entry.getEventMask();
   393             long event_mask = entry.getEventMask();
   394 
   394 
   395             /* Restore the original event mask for the embedder. */
   395             /* Restore the original event mask for the embedder. */
   396             if ((event_mask & XConstants.PropertyChangeMask) == 0) {
   396             if ((event_mask & XConstants.PropertyChangeMask) == 0) {
   397                 XToolkit.WITH_XERROR_HANDLER(XErrorHandler.IgnoreBadWindowHandler.getInstance());
   397                 XErrorHandlerUtil.WITH_XERROR_HANDLER(XErrorHandler.IgnoreBadWindowHandler.getInstance());
   398                 XlibWrapper.XSelectInput(XToolkit.getDisplay(), embedder,
   398                 XlibWrapper.XSelectInput(XToolkit.getDisplay(), embedder,
   399                                          event_mask);
   399                                          event_mask);
   400                 XToolkit.RESTORE_XERROR_HANDLER();
   400                 XErrorHandlerUtil.RESTORE_XERROR_HANDLER();
   401 
   401 
   402                 if (XToolkit.saved_error != null &&
   402                 if ((XErrorHandlerUtil.saved_error != null) &&
   403                     XToolkit.saved_error.get_error_code() != XConstants.Success) {
   403                     (XErrorHandlerUtil.saved_error.get_error_code() != XConstants.Success)) {
   404                     throw new XException("XSelectInput failed");
   404                     throw new XException("XSelectInput failed");
   405                 }
   405                 }
   406             }
   406             }
   407         } finally {
   407         } finally {
   408             XlibWrapper.XUngrabServer(XToolkit.getDisplay());
   408             XlibWrapper.XUngrabServer(XToolkit.getDisplay());