Re: XForms: fl_deavctivate_all_forms()

Steve Lamont (spl@szechuan.ucsd.edu)
Tue, 7 Jul 98 12:52:09 PDT

# To subscribers of the xforms list from spl@szechuan.ucsd.edu (Steve Lamont) :

> I have a form that goes into a wait loop while processes are finishing.
> During this time I want all key presses inside a form to be ignored.
> Right now I do something like;
>
> timedone()
> {
> fl_deactivate_all_forms();
> waitclean();
> fl_activate_all_forms();
> }

If waitclean() doesn't call fl_check_forms() or fl_do_forms(), then
the fl_deactivate_all_forms() never really gets registered with
XForms. Try doing

timedone()
{
fl_deactivate_all_forms();
waitclean();
fl_check_forms(); /* Make sure XForms really knows */
fl_activate_all_forms();
}

The reason for this is that the events may get queued up in the X
event queue while waitclean() has control. Unless you give the XForms
event loop a chance to process the events while fl_deactivate_all_forms()
is in effect, it's going to treat them as normal. Both
fl_deactivate_all_forms() and fl_activate_all_forms(), as well as
their form-specific relatives, simply set or clear flags,
respectively, in the XForms form data structure and don't do any
actual event handling.

Perhaps fl_activate_all_forms() should be changed to gobble the events
before it returns control. What say, TC?

spl
_________________________________________________
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/