src/solaris/classes/sun/awt/X11/XlibUtil.java
Print this page
@@ -98,20 +98,36 @@
return root == rootCandidate;
}
/**
- * Returns the bounds of the given window, in absolute coordinates
+ * Returns the bounds of the given window relative to its parent.
*/
- static Rectangle getWindowGeometry(long window)
+ 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.
+ */
+ public static Rectangle getWindowGeometry(long window, long rootWindowBuffer)
{
XToolkit.awtLock();
try
{
int res = XlibWrapper.XGetGeometry(XToolkit.getDisplay(),
window,
- XlibWrapper.larg1, // root_return
+ 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,11 +224,11 @@
XQueryTree qt = new XQueryTree(window);
try
{
if (qt.execute() == 0)
{
- return 0;
+ return XConstants.None;
}
else
{
return qt.get_parent();
}