>>I reckon there's a bug in the FrmDispatchEvent code.

>Hmmm.  I reckon there's a bug too.  I see FrmUpdateForm sets formID
>but that RedrawDisplay, when it broadcasts to forms to redraw,
>doesn't.  Thanks.

It's not only that the formID may or may not be set, but that a
FrmUpdateForm should send the frmUpdateEvent to the identified form. The
Reference for FrmDispatchEvent states that "The event is dispatched to the
current form's handler unless the form ID is specified in the event data".
This then should apply to a frmUpdateEvent as well. I reckon the following
lines should be added to FrmDispatchEvent (Form.c after line 3766 for OS
3.0):

   else if ( (eventP->eType == frmUpdateEvent) &&
             (eventP->data.frmUpdate.formID != 0) )
      frm = FrmGetFormPtr (eventP->data.frmUpdate.formID);

I've noticed that some apps (e.g. Address) call FrmUpdateForm with the
formID parameter set to zero ... mainly I guess because currently it's
ignored.

Stephen Best
Bitware Australia Pty. Ltd.

Reply via email to