Concerning the bug I reported about FOX hanging X11 by leaving the
pointer grabbed when heavily loaded, I have found the following about
the "FXChore" hang example:
- In FXWindow::grab():
- XGrabPointer(...,getApp()->event.time) is returning 2
(GrabInvalidTime) so it then tries (as an error handling step?)
- XGrabPointer(...,CurrentTime) which returns 0.
- In FXWindow::ungrab():
- Changing
XUngrabPointer(DISPLAY(getApp()),getApp()->event.time) to
XUngrabPointer(DISPLAY(getApp()),CurrentTime) prevents the problem.
(I'm not suggest this the fix.)
The docs on XUngrabPointer() say it will NOT release the pointer if the
specified time is earlier than the last-pointer-grab time or ...
I think what is happening is that with FOX way behind the XServer, the
XGrabPointer(...,CurrentTime) sets the grab time to a larger time value
than the time value of the event that FOX (eventually) is processing
when it does the XUngrabPointer(). Thus the time specified in the
XUngrabPointer() is earlier than the grab time. Therefore the pointer
is left grabbed.
What I have no explanation for at this time is just why
XGrabPointer(...,getApp()->event.time) returns GrabInvalidTime. The
docs say "If the specified time is earlier than the last-pointer-grab
time or later than the current X server time, it fails and returns
GrabInvalidTime." Since this is the first grab, the first clause
doesn't seem to apply, and since FOX seems to be using the time from
the last XEvent containing a time, the time should not be ahead of the
X server. Maybe somebody sees something I don't.
--
Hal Brand
------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing
server and web deployment.
http://p.sf.net/sfu/businessobjects_______________________________________________
Foxgui-users mailing list
Foxgui-users@...
https://lists.sourceforge.net/lists/listinfo/foxgui-users