I have encountered buggy behaviour with xforms posthandlers. In my
application if I have two forms showing, and one of them includes a
posthandler to pop-up a oneliner (a la xyplotall demo) I find that
moving the mouse quickly between the forms generates a number of errors:
"In fl_hide_form [forms.c 800] Hiding invisible/freeed form"
and other weirdness (eg the focus shifts occasionally
between the forms, even though I have a click to focus policy and am
definitely not clicking). Eventually the app just dies (no core dump).
My posthandler code is along the lines:
case FL_ENTER:
fl_set_cursor(..); break;
case FL_MOTION:
<calc world coords of cursor>
fl_show_one_liner(..); break;
case FL_RELEASE:
<do some other stuff>
case FL_LEAVE:
fl_hide_oneliner();
fl_reset_cursor();
break;
A second oddity (with just the single main form up) is that having
clicked on the xyplot I now also get the expected FL_RELEASE event
with a reported key=0 (ie not a recognised FL_LEFT/RIGHT/MIDDLE_MOUSE value).
I never saw this behaviour with 0.86.1.
Last month Tano Fotang reported what I think is the same problem:
> Immediately mouse enters a plot area, the "hiding invisible form" errors
> appear evrywhere and program gives up the ghost a few mouse motions
> later (freeing NULL form etc).
> For now, the only solution i have is to use very long timeouts (> 1
sec)!
> Tano Fotang. xforms 0.87(.2), linux 1.2.13.
To try this and shed light on my apps problems I too took xyplotall.c,
made the following changes:
47c47
< if(ev == FL_ENTER )
--- > if(ev == FL_PUSH || ev == FL_MOUSE) 59c59 < else if(ev == FL_LEAVE)--- > else if(ev == FL_RELEASE)and get errors when the mouse is moved across the form (even if quite slowly): ..... In fl_hide_form [forms.c 800] Hiding invisible/freeed form In fl_hide_form [forms.c 800] Hiding invisible/freeed form In PutBackEvent [events.c 319] Q overflow PutBackEvent Event(12,w=0x3c00046 s=1804) Expose count=0 serial=70c In fl_hide_form [forms.c 800] Hiding invisible/freeed form In fl_hide_form [forms.c 800] Hiding invisible/freeed form In fl_hide_form [forms.c 800] Hiding invisible/freeed form In fl_hide_form [forms.c 800] Hiding invisible/freeed form In fl_hide_form [forms.c 800] Hiding invisible/freeed form In fl_hide_form [forms.c 800] Hiding invisible/freeed form In PutBackEvent [events.c 319] Q overflow PutBackEvent Event(22,w=0x3c00046 s=1861) ConfigureNotify (705,690) w=141 h=20 Non-Syn In fl_hide_form [forms.c 800] Hiding invisible/freeed form In fl_hide_form [forms.c 800] Hiding invisible/freeed form In fl_hide_form [forms.c 800] Hiding invisible/freeed form In PutBackEvent [events.c 319] Q overflow PutBackEvent Event(22,w=0x3c00046 s=1899) ConfigureNotify (705,690) w=141 h=20 Non-Syn In fl_hide_form [forms.c 800] Hiding invisible/freeed form In fl_hide_form [forms.c 800] Hiding invisible/freeed form In fl_hide_form [forms.c 800] Hiding invisible/freeed form In fl_hide_form [forms.c 800] Hiding invisible/freeed form ......
I was unable to find the status of the earlier posthandler bug report in the archive.
xforms 0.87.3; HP/UX 9.03 and 10.20; VUE, mwm window managers; HP and pc Xservers.
Ivan
-- -------------------------------------------------------------------------+ ___ ___/ _ __ / Ivan Powis TEL: +44-115-951-3467 | / / / Department of Chemistry FAX: +44-115-951-3562 | / / _/ University of Nottingham | / ___/ Nottingham NG7 2RD | / / UK | / / pczip@chem.nott.ac.uk | _______/ ____/ http://www.chem.nott.ac.uk/IP.html | -------------------------------------------------------------------------+
_________________________________________________ To unsubscribe, send the message "unsubscribe" to xforms-request@bob.usuf2.usuhs.mil or see http://bob.usuf2.usuhs.mil/mailserv/xforms.html Xforms Home Page: http://bragg.phys.uwm.edu/xforms List Archive: http://bob.usuf2.usuhs.mil/mailserv/list-archives/