XForms: Problems with PostHandler

Ivan Powis (pczip@chemistry.nottingham.ac.uk)
Wed, 15 Oct 1997 18:21:47 BST

To subscribers of the xforms list from Ivan Powis <pczip@chemistry.nottingham.ac.uk> :

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/