client-side windows and XQueryTree



Hi there,

I'm the developer of Shutter (a screenshot taking application written
with gtk2-perl).
After upgrading to the latest versions of Gnome (2.28) and Gtk+ during
the last days I've discovered that the client-side window mechanism is
"breaking" some of the functionalities of Shutter.

There is a function called "Section" that allows you to capture one of
the subwindows of a foreign window by moving the mouse over it.

The "Section" function queries the window tree information by calling an
xlib function, XQueryTree. I know that before Gtk+ 2.18 most of the
widgets had a corresponding xwindow. The information about the
subwindows were used to detect them and draw a rectangle around them
that illustrated their geometry.

If I understand the changes correctly this means that the XServer no
longer knows about the subwindow hierarchy of a Gtk+ window and I can't
use the XQueryTree function any longer, right?
I know that is possible to query the children of a GDK-window, but this
works only if your own application created that window. Shutter needs to
get the children of foreign toplevel windows.

Does anyone have an idea on how this problem could be solved?
Maybe with the help of AT-SPI?
Accerciser is using it (the python bindings) to query the structure of
toplevel windows:
http://live.gnome.org/GAP/PythonATSPI

But I would love to see a solution that I can implement with perl ;-)

Thank you very much for your help. I hope I've explained everything
clearly enough.

Regards
Mario




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]