src/solaris/classes/sun/awt/X11/XDnDDropTargetProtocol.java

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this --- 1,7 ---- /* ! * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this
*** 86,101 **** long data = Native.allocateLongArray(1); try { Native.putLong(data, 0, XDnDConstants.XDND_PROTOCOL_VERSION); ! XToolkit.WITH_XERROR_HANDLER(XErrorHandler.VerifyChangePropertyHandler.getInstance()); XDnDConstants.XA_XdndAware.setAtomData(window, XAtom.XA_ATOM, data, 1); ! XToolkit.RESTORE_XERROR_HANDLER(); ! if (XToolkit.saved_error != null && ! XToolkit.saved_error.get_error_code() != XConstants.Success) { throw new XException("Cannot write XdndAware property"); } } finally { unsafe.freeMemory(data); data = 0; --- 86,101 ---- long data = Native.allocateLongArray(1); try { Native.putLong(data, 0, XDnDConstants.XDND_PROTOCOL_VERSION); ! XErrorHandlerUtil.WITH_XERROR_HANDLER(XErrorHandler.VerifyChangePropertyHandler.getInstance()); XDnDConstants.XA_XdndAware.setAtomData(window, XAtom.XA_ATOM, data, 1); ! XErrorHandlerUtil.RESTORE_XERROR_HANDLER(); ! if ((XErrorHandlerUtil.saved_error != null) && ! (XErrorHandlerUtil.saved_error.get_error_code() != XConstants.Success)) { throw new XException("Cannot write XdndAware property"); } } finally { unsafe.freeMemory(data); data = 0;
*** 203,260 **** try { Native.putLong(data, 0, XDnDConstants.XDND_PROTOCOL_VERSION); /* The proxy window must have the XdndAware set, as XDnD protocol prescribes to check the proxy window for XdndAware. */ ! XToolkit.WITH_XERROR_HANDLER(XErrorHandler.VerifyChangePropertyHandler.getInstance()); XDnDConstants.XA_XdndAware.setAtomData(newProxy, XAtom.XA_ATOM, data, 1); ! XToolkit.RESTORE_XERROR_HANDLER(); ! if (XToolkit.saved_error != null && ! XToolkit.saved_error.get_error_code() != ! XConstants.Success) { throw new XException("Cannot write XdndAware property"); } Native.putLong(data, 0, newProxy); /* The proxy window must have the XdndProxy set to point to itself.*/ ! XToolkit.WITH_XERROR_HANDLER(XErrorHandler.VerifyChangePropertyHandler.getInstance()); XDnDConstants.XA_XdndProxy.setAtomData(newProxy, XAtom.XA_WINDOW, data, 1); ! XToolkit.RESTORE_XERROR_HANDLER(); ! if (XToolkit.saved_error != null && ! XToolkit.saved_error.get_error_code() != ! XConstants.Success) { throw new XException("Cannot write XdndProxy property"); } Native.putLong(data, 0, XDnDConstants.XDND_PROTOCOL_VERSION); ! XToolkit.WITH_XERROR_HANDLER(XErrorHandler.VerifyChangePropertyHandler.getInstance()); XDnDConstants.XA_XdndAware.setAtomData(embedder, XAtom.XA_ATOM, data, 1); ! XToolkit.RESTORE_XERROR_HANDLER(); ! if (XToolkit.saved_error != null && ! XToolkit.saved_error.get_error_code() != ! XConstants.Success) { throw new XException("Cannot write XdndAware property"); } Native.putLong(data, 0, newProxy); ! XToolkit.WITH_XERROR_HANDLER(XErrorHandler.VerifyChangePropertyHandler.getInstance()); XDnDConstants.XA_XdndProxy.setAtomData(embedder, XAtom.XA_WINDOW, data, 1); ! XToolkit.RESTORE_XERROR_HANDLER(); ! if (XToolkit.saved_error != null && ! XToolkit.saved_error.get_error_code() != ! XConstants.Success) { throw new XException("Cannot write XdndProxy property"); } } finally { unsafe.freeMemory(data); data = 0; --- 203,256 ---- try { Native.putLong(data, 0, XDnDConstants.XDND_PROTOCOL_VERSION); /* The proxy window must have the XdndAware set, as XDnD protocol prescribes to check the proxy window for XdndAware. */ ! XErrorHandlerUtil.WITH_XERROR_HANDLER(XErrorHandler.VerifyChangePropertyHandler.getInstance()); XDnDConstants.XA_XdndAware.setAtomData(newProxy, XAtom.XA_ATOM, data, 1); ! XErrorHandlerUtil.RESTORE_XERROR_HANDLER(); ! if ((XErrorHandlerUtil.saved_error != null) && ! (XErrorHandlerUtil.saved_error.get_error_code() != XConstants.Success)) { throw new XException("Cannot write XdndAware property"); } Native.putLong(data, 0, newProxy); /* The proxy window must have the XdndProxy set to point to itself.*/ ! XErrorHandlerUtil.WITH_XERROR_HANDLER(XErrorHandler.VerifyChangePropertyHandler.getInstance()); XDnDConstants.XA_XdndProxy.setAtomData(newProxy, XAtom.XA_WINDOW, data, 1); ! XErrorHandlerUtil.RESTORE_XERROR_HANDLER(); ! if ((XErrorHandlerUtil.saved_error != null) && ! (XErrorHandlerUtil.saved_error.get_error_code() != XConstants.Success)) { throw new XException("Cannot write XdndProxy property"); } Native.putLong(data, 0, XDnDConstants.XDND_PROTOCOL_VERSION); ! XErrorHandlerUtil.WITH_XERROR_HANDLER(XErrorHandler.VerifyChangePropertyHandler.getInstance()); XDnDConstants.XA_XdndAware.setAtomData(embedder, XAtom.XA_ATOM, data, 1); ! XErrorHandlerUtil.RESTORE_XERROR_HANDLER(); ! if ((XErrorHandlerUtil.saved_error != null) && ! (XErrorHandlerUtil.saved_error.get_error_code() != XConstants.Success)) { throw new XException("Cannot write XdndAware property"); } Native.putLong(data, 0, newProxy); ! XErrorHandlerUtil.WITH_XERROR_HANDLER(XErrorHandler.VerifyChangePropertyHandler.getInstance()); XDnDConstants.XA_XdndProxy.setAtomData(embedder, XAtom.XA_WINDOW, data, 1); ! XErrorHandlerUtil.RESTORE_XERROR_HANDLER(); ! if ((XErrorHandlerUtil.saved_error != null) && ! (XErrorHandlerUtil.saved_error.get_error_code() != XConstants.Success)) { throw new XException("Cannot write XdndProxy property"); } } finally { unsafe.freeMemory(data); data = 0;
*** 276,306 **** long data = Native.allocateLongArray(1); try { Native.putLong(data, 0, entry.getVersion()); ! XToolkit.WITH_XERROR_HANDLER(XErrorHandler.VerifyChangePropertyHandler.getInstance()); XDnDConstants.XA_XdndAware.setAtomData(embedder, XAtom.XA_ATOM, data, 1); ! XToolkit.RESTORE_XERROR_HANDLER(); ! if (XToolkit.saved_error != null && ! XToolkit.saved_error.get_error_code() != ! XConstants.Success) { throw new XException("Cannot write XdndAware property"); } Native.putLong(data, 0, (int)entry.getProxy()); ! XToolkit.WITH_XERROR_HANDLER(XErrorHandler.VerifyChangePropertyHandler.getInstance()); XDnDConstants.XA_XdndProxy.setAtomData(embedder, XAtom.XA_WINDOW, data, 1); ! XToolkit.RESTORE_XERROR_HANDLER(); ! if (XToolkit.saved_error != null && ! XToolkit.saved_error.get_error_code() != ! XConstants.Success) { throw new XException("Cannot write XdndProxy property"); } } finally { unsafe.freeMemory(data); data = 0; --- 272,300 ---- long data = Native.allocateLongArray(1); try { Native.putLong(data, 0, entry.getVersion()); ! XErrorHandlerUtil.WITH_XERROR_HANDLER(XErrorHandler.VerifyChangePropertyHandler.getInstance()); XDnDConstants.XA_XdndAware.setAtomData(embedder, XAtom.XA_ATOM, data, 1); ! XErrorHandlerUtil.RESTORE_XERROR_HANDLER(); ! if ((XErrorHandlerUtil.saved_error != null) && ! (XErrorHandlerUtil.saved_error.get_error_code() != XConstants.Success)) { throw new XException("Cannot write XdndAware property"); } Native.putLong(data, 0, (int)entry.getProxy()); ! XErrorHandlerUtil.WITH_XERROR_HANDLER(XErrorHandler.VerifyChangePropertyHandler.getInstance()); XDnDConstants.XA_XdndProxy.setAtomData(embedder, XAtom.XA_WINDOW, data, 1); ! XErrorHandlerUtil.RESTORE_XERROR_HANDLER(); ! if ((XErrorHandlerUtil.saved_error != null) && ! (XErrorHandlerUtil.saved_error.get_error_code() != XConstants.Success)) { throw new XException("Cannot write XdndProxy property"); } } finally { unsafe.freeMemory(data); data = 0;
*** 539,574 **** * Select for StructureNotifyMask to receive DestroyNotify in case of source * crash. */ XWindowAttributes wattr = new XWindowAttributes(); try { ! XToolkit.WITH_XERROR_HANDLER(XErrorHandler.IgnoreBadWindowHandler.getInstance()); int status = XlibWrapper.XGetWindowAttributes(XToolkit.getDisplay(), source_win, wattr.pData); ! XToolkit.RESTORE_XERROR_HANDLER(); ! if (status == 0 || ! (XToolkit.saved_error != null && ! XToolkit.saved_error.get_error_code() != XConstants.Success)) { throw new XException("XGetWindowAttributes failed"); } source_win_mask = wattr.get_your_event_mask(); } finally { wattr.dispose(); } ! XToolkit.WITH_XERROR_HANDLER(XErrorHandler.IgnoreBadWindowHandler.getInstance()); XlibWrapper.XSelectInput(XToolkit.getDisplay(), source_win, source_win_mask | XConstants.StructureNotifyMask); ! XToolkit.RESTORE_XERROR_HANDLER(); ! if (XToolkit.saved_error != null && ! XToolkit.saved_error.get_error_code() != XConstants.Success) { throw new XException("XSelectInput failed"); } sourceWindow = source_win; sourceWindowMask = source_win_mask; --- 533,568 ---- * Select for StructureNotifyMask to receive DestroyNotify in case of source * crash. */ XWindowAttributes wattr = new XWindowAttributes(); try { ! XErrorHandlerUtil.WITH_XERROR_HANDLER(XErrorHandler.IgnoreBadWindowHandler.getInstance()); int status = XlibWrapper.XGetWindowAttributes(XToolkit.getDisplay(), source_win, wattr.pData); ! XErrorHandlerUtil.RESTORE_XERROR_HANDLER(); ! if ((status == 0) || ! ((XErrorHandlerUtil.saved_error != null) && ! (XErrorHandlerUtil.saved_error.get_error_code() != XConstants.Success))) { throw new XException("XGetWindowAttributes failed"); } source_win_mask = wattr.get_your_event_mask(); } finally { wattr.dispose(); } ! XErrorHandlerUtil.WITH_XERROR_HANDLER(XErrorHandler.IgnoreBadWindowHandler.getInstance()); XlibWrapper.XSelectInput(XToolkit.getDisplay(), source_win, source_win_mask | XConstants.StructureNotifyMask); ! XErrorHandlerUtil.RESTORE_XERROR_HANDLER(); ! if ((XErrorHandlerUtil.saved_error != null) && ! (XErrorHandlerUtil.saved_error.get_error_code() != XConstants.Success)) { throw new XException("XSelectInput failed"); } sourceWindow = source_win; sourceWindowMask = source_win_mask;
*** 961,974 **** } if (sourceWindow != 0) { XToolkit.awtLock(); try { ! XToolkit.WITH_XERROR_HANDLER(XErrorHandler.IgnoreBadWindowHandler.getInstance()); XlibWrapper.XSelectInput(XToolkit.getDisplay(), sourceWindow, sourceWindowMask); ! XToolkit.RESTORE_XERROR_HANDLER(); } finally { XToolkit.awtUnlock(); } } --- 955,968 ---- } if (sourceWindow != 0) { XToolkit.awtLock(); try { ! XErrorHandlerUtil.WITH_XERROR_HANDLER(XErrorHandler.IgnoreBadWindowHandler.getInstance()); XlibWrapper.XSelectInput(XToolkit.getDisplay(), sourceWindow, sourceWindowMask); ! XErrorHandlerUtil.RESTORE_XERROR_HANDLER(); } finally { XToolkit.awtUnlock(); } }
*** 1109,1127 **** if (wpg.getActualType() == XAtom.XA_ATOM && wpg.getActualFormat() == 32) { XToolkit.awtLock(); try { ! XToolkit.WITH_XERROR_HANDLER(XErrorHandler.VerifyChangePropertyHandler.getInstance()); XDnDConstants.XA_XdndTypeList.setAtomData(xclient.get_window(), XAtom.XA_ATOM, wpg.getData(), wpg.getNumberOfItems()); ! XToolkit.RESTORE_XERROR_HANDLER(); ! if (XToolkit.saved_error != null && ! XToolkit.saved_error.get_error_code() != XConstants.Success) { if (logger.isLoggable(PlatformLogger.WARNING)) { logger.warning("Cannot set XdndTypeList on the proxy window"); } } } finally { --- 1103,1121 ---- if (wpg.getActualType() == XAtom.XA_ATOM && wpg.getActualFormat() == 32) { XToolkit.awtLock(); try { ! XErrorHandlerUtil.WITH_XERROR_HANDLER(XErrorHandler.VerifyChangePropertyHandler.getInstance()); XDnDConstants.XA_XdndTypeList.setAtomData(xclient.get_window(), XAtom.XA_ATOM, wpg.getData(), wpg.getNumberOfItems()); ! XErrorHandlerUtil.RESTORE_XERROR_HANDLER(); ! if ((XErrorHandlerUtil.saved_error != null) && ! (XErrorHandlerUtil.saved_error.get_error_code() != XConstants.Success)) { if (logger.isLoggable(PlatformLogger.WARNING)) { logger.warning("Cannot set XdndTypeList on the proxy window"); } } } finally {