[comp.sys.mac] Possible Bugs in Think C 3.0

frankng@basser.oz (Frank Ng) (10/10/88)

Here are 2 (possible) problems in Think C v3.0 (I won't call them bugs
since they may or may not be):

1) The Debugger.

Every time I interrupt my program to get to the Debugger, it changes
the windowKind field of my program's windows to userKind.

This is a wrong assumption on the Debugger's part, IM-I page 276
states:

	"UserKind represents a window created directly by application
	calls to the Window Manager; for such windows the application can
	in fact set the window class to any value greater than 8 if desired"

I use the windowKind field to differentiate between windows owned by
different modules in my application.  At least they could have
documented this *feature* in the manual!

(I use the window's refCon for other things, so don't tell me to use
it instead)

2) PopUpMenuSelect

I don't know whether this is a bug in the MacTraps library or in the
the Mac II ROMs Menu Manager.

I am writing a MDEF for a popup menu.  When the MDEF gets called with
a message of hPopUpMsg (3), the coordinates of hitPt (top left of
PopUpItem) are passed to the MDEF the wrong way around.  That is, the
right-hand word of the Point contains the vertical coordinate, and the
left-hand word contains the horizontal coordinate.

Could someone please verify these happenings?

-- 
Frank Ng			ACSnet:	frankng@basser.oz
Department of Computer Science	ARPA:	frankng%basser.oz@uunet.uu.net
University of Sydney NSW 2006	UUCP:	uunet!munnari!basser.oz!frankng
AUSTRALIA

jwhitnell@cup.portal.com (Jerry Geronimo Whitnell) (10/15/88)

frankng@basser.oz (Frank Ng) writes...
|
|1) The Debugger.
|
|Every time I interrupt my program to get to the Debugger, it changes
|the windowKind field of my program's windows to userKind.

Yep, that's a bug.  I've tripped over it too.  The reason it changes has
to do with MultiFinder, but it should report the correct value in the
data window.  The work-around is to go into TMON and look at windowKind there.
Another field that gets changed is updateRgn.  If you're updateRgn is not
empty, when you break into the Debugger, it saves away the updateRgn and
clears it.  When you start up it restores the updateRgn.  Again this is
to protect you from a "feature" of MultiFinder.

--
Jerry Whitnell
jwhitnell@cup.portal.com
..!sun!cup.portal.com!jwhitnell