src/solaris/classes/sun/awt/X11/XlibUtil.java
Print this page
*** 98,117 ****
return root == rootCandidate;
}
/**
! * Returns the bounds of the given window, in absolute coordinates
*/
! static Rectangle getWindowGeometry(long window)
{
XToolkit.awtLock();
try
{
int res = XlibWrapper.XGetGeometry(XToolkit.getDisplay(),
window,
! XlibWrapper.larg1, // root_return
XlibWrapper.larg2, // x_return
XlibWrapper.larg3, // y_return
XlibWrapper.larg4, // width_return
XlibWrapper.larg5, // height_return
XlibWrapper.larg6, // border_width_return
--- 98,146 ----
return root == rootCandidate;
}
/**
! * Returns the bounds of the given window relative to its parent.
*/
! public static Rectangle getWindowGeometry(long window) {
! XToolkit.awtLock();
! try {
! return getWindowGeometry(window, XlibWrapper.larg1);
! } finally {
! XToolkit.awtUnlock();
! }
! }
!
! /**
! * Returns the bounds of the given window relative to its parent.
! * The unsafe memory pointed to by the rootWindowBuffer will
! * contain the root window of the given window.
! * WARNING: DO NOT USE XlibWrapper.larg[2..7] as the rootWindowBuffer!
! * Only larg1 or larg8 can be used, or some other allocated memory block.
! *
! * @throws IllegalArgumentException if the rootWindowBuffer refers to
! * unsupported values.
! */
! public static Rectangle getWindowGeometry(long window, long rootWindowBuffer)
{
+ if (rootWindowBuffer == XlibWrapper.larg2 ||
+ rootWindowBuffer == XlibWrapper.larg3 ||
+ rootWindowBuffer == XlibWrapper.larg4 ||
+ rootWindowBuffer == XlibWrapper.larg5 ||
+ rootWindowBuffer == XlibWrapper.larg6 ||
+ rootWindowBuffer == XlibWrapper.larg7)
+ {
+ throw new IllegalArgumentException(
+ "The rootWindowBuffer should not refer to XlibWrapper.larg[2..7]");
+ }
XToolkit.awtLock();
try
{
int res = XlibWrapper.XGetGeometry(XToolkit.getDisplay(),
window,
! rootWindowBuffer, // root_return
XlibWrapper.larg2, // x_return
XlibWrapper.larg3, // y_return
XlibWrapper.larg4, // width_return
XlibWrapper.larg5, // height_return
XlibWrapper.larg6, // border_width_return
*** 208,218 ****
XQueryTree qt = new XQueryTree(window);
try
{
if (qt.execute() == 0)
{
! return 0;
}
else
{
return qt.get_parent();
}
--- 237,247 ----
XQueryTree qt = new XQueryTree(window);
try
{
if (qt.execute() == 0)
{
! return XConstants.None;
}
else
{
return qt.get_parent();
}