Transient windows

Jérôme Guilmette jerome.guilmette at gmail.com
Thu Oct 2 12:18:44 PDT 2008


Hi X gurus and developers,

I just hope I'm writing to the right mailing list to ask about 
development using the X Window System, if not, please redirect me. 
Here's my situation:

I'm currently developing a software that is taking images from a 
selected X window in order to process the data and put it back in a 
different window. I'm doing a XGetImage() on a backing pixmap to avoid 
the overlapping and "out of sight" windows effects and I'm now 
interested to follow up the windows mapped from my processed window. By 
example, when I put the mouse over one of the window's buttons, a small 
window is appearing or when I slide through the window's menu, menu 
windows are mapped. Those windows are very interesting because they are 
part of the same application and my software would be incomplete without 
them.

I first thought that those windows were created by the "mother" on which 
I'm doing data processing but I discovered that  many of them are only 
mapped, like if they were previously created. After doing a XQueryTree 
on windows mapped from the processed window menu, I saw that their 
parent is in fact the root window itself. So there is no way I can tell 
that this window is in fact called by my processed window.

After yet another search, I discovered that those windows are what is 
called "transient" windows and many windows like pop-ups or dialog boxes 
are in fact transients. I still don't clearly understand the ideas 
behind the transient principle, the documentation that I've found is 
light and examples aren't many on the web or won't go too deep into the 
matter. I don't know if you have any link to suggest me, if any, I'd be 
glad.

So I would like to know if there is a way to know from any type of 
windows created from the processed window, that this window is in fact 
called from the application that is mapped on the processed window. By 
example, to know that the "File or Tools menu window" is in fact created 
by the application running on the processed window. Knowing this, I'd be 
able to take this newly mapped window, take the data and process them. 
Is this related with the transient property or to another one?

Any help or direction to documentation on the matter would be greatly 
appreciated.

Thank you very much,

Jérôme



More information about the xorg mailing list