The gtk+ and XConfigureEvent



Hello,

I am writing a X Window program based directly on Xlib. This program
need to trace the positions of other windows. This program seems worked
very well with the most X Apps which are based directly on Xlib. However,
I suddently found that it will fault to the X Apps which are based on
gtk+.

I looked into this problem for a while, and I found that the gtk+ based
X Apps will not emit the XConfigureEvent when its window moved. More
explicitly, if in my program I have the following codes:

	Window client_win;

	/* get the client_win which I want to monitor by some ways. */
	XSelectInput(display, client_win, StructureNotifyMask);

	/* event loop */
	while (1) {
	    XNextEvent(display, &event);
	    if (XFilterEvent(&event, None) == True)
		continue;

	    switch (event.type) {
	    case Expose:
		....
	    case ConfigureNotify:
		....
	    case DestroyNotify:
		....
	    }
	}

then I will have the ability to monitor the position of the window of
client_win, i.e., everytime when the client_win calls XMoveWindow() or
XMoveResizeWindow(), it will emit the XConfigureEvent and will be captured
by my program. This is the X11R6 standard. However, I found that somehow
the gtk+ based X App does not follow this standard. :-(((

So, my question is: Is this the spec or feature of gtk+? Or just a simple
bug of gtk+? Will gtk+ follow this standard? If gtk+ will NEVER follow
this standard, how could I write a 3rd party program to trace the
positions of the gtk+ based X Apps?

Thank you very much for your reply. :-))


Best Regards,

T.H.Hsieh



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