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()); |