Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!psuvax1!vu-vlsi!cbmvax!higgin From: higgin@cbmvax.UUCP (Paul Higginbottom SALES) Newsgroups: comp.sys.amiga Subject: Re: Gadget ID codes? Message-ID: <2551@cbmvax.UUCP> Date: Tue, 20-Oct-87 14:39:42 EDT Article-I.D.: cbmvax.2551 Posted: Tue Oct 20 14:39:42 1987 Date-Received: Thu, 22-Oct-87 03:05:56 EDT References: <31230@sun.uucp> Organization: Commodore Technology, West Chester, PA Lines: 43 in article <31230@sun.uucp>, cmcmanis%pepper@Sun.COM (Chuck McManis) says: > If you have gadgets in the requester your > loop looks something like : > > done = FALSE; > do { > Wait(mywindow->UserPort->mpSigBit); > im = (struct IntuiMessage *)GetMsg(mywindow->UserPort); > if (im == NULL) continue; > class = im->Class; > address = im->Iadress; > x = im->MouseX; > y = im->MouseY; > ReplyMsg(im); > switch (classe) { . . > } > } while (! done); I don't think loops like this should not assume one signal per message. You may get out of sync this way and not get/reply all the message. A 'better' way is: done = FALSE; do { Wait(mywindow->UserPort->mp_SigBit); while ((im=(struct IntuiMessage *)GetMsg(mywindow->UserPort))!=NULL) { class = im->Class; address = im->Iadress; x = im->MouseX; y = im->MouseY; ReplyMsg(im); switch (class) { . . } } } while (!done); Not trying to split hairs Chuck... well, maybe I am. :-) Paul.