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 {