The attached program demonstrates what I think is a PalmOS 3.5 bug. It's a minimal program that opens a form, adds a custom event to the queue, and pops up an alert when it sees the custom event.
However, if I set the event's data to the value 262, the program fails. It appears that something inside PalmOS wants to handle the event, because the event gets eaten, and a spurious menuCmdBarOpenEvent is generated. If I use any other value in the data then my form sees the event and pops up the alert. The program works fine under PalmOS 3.3 and 4.0. I also tried it under PalmOS 3.5.3, but it still fails. -- Dave Carrigan ([EMAIL PROTECTED]) | Yow! I was making donuts and now UNIX-Apache-Perl-Linux-Firewalls-LDAP-C-DNS | I'm on a bus! Seattle, WA, USA | http://www.rudedog.org/ | ------------------------------------------------------------------------ #include <PalmOS.h> static Boolean FormHandleEvent(EventType *e) { Boolean handled = false; FormType *frm; EventType evt; frm = FrmGetActiveForm(); switch (e->eType) { case frmOpenEvent: FrmDrawForm(frm); MemSet(&evt, sizeof(evt), 0); evt.eType = firstUserEvent; evt.data.generic.datum[0] = 262; EvtAddEventToQueue(&evt); handled = true; break; case firstUserEvent: FrmAlert(1000); handled = true; break; default: break; } return handled; } static Boolean ApplicationHandleEvent(EventType *e) { FormType *frm; UInt16 formId; Boolean handled = false; if (e->eType == frmLoadEvent) { formId = e->data.frmLoad.formID; frm = FrmInitForm(formId); FrmSetEventHandler(frm, FormHandleEvent); FrmSetActiveForm(frm); handled = true; } return handled; } UInt32 PilotMain(UInt16 cmd, void *cmdPBP, UInt16 launchFlags) { UInt16 err; EventType e; if (cmd == sysAppLaunchCmdNormalLaunch) { FrmGotoForm(1000); do { EvtGetEvent(&e, evtWaitForever); if (! SysHandleEvent (&e)) if (! MenuHandleEvent (NULL, &e, &err)) if (! ApplicationHandleEvent (&e)) FrmDispatchEvent (&e); } while (e.eType != appStopEvent); FrmCloseAllForms(); } else { return sysErrParamErr; } return 0; } ------------------------------------------------------------------------ FORM 1000 0 0 160 160 BEGIN TITLE "Main Form" END ALERT 1000 INFORMATION BEGIN TITLE "All is good" MESSAGE "Got the event; all is fine." BUTTONS "OK" END APPLICATIONICONNAME 1000 "Palm Bug" VERSION "1.0.0" -- For information on using the Palm Developer Forums, or to unsubscribe, please see http://www.palmos.com/dev/tech/support/forums/
