C Release Notes
First created on: 3/25/92 1:06:32 PM

----------------------------------------------------------•----------------------------------------------------------

3/25/92 1:06:38 PM

File: MFPrivate.a,22
Owner: Dean Yu     
Project: MainProj∫Internal∫Asm∫

File: MFPrivate.h,24
Owner: Dean Yu     
Project: MainProj∫Internal∫C∫

File: Data.c,21
Owner: Dean Yu     
Project: MainProj∫ProcessMgr∫

File: Data.h,35
Owner: Dean Yu     
Project: MainProj∫ProcessMgr∫

File: OSDispatch.c,12
Owner: Dean Yu     
Project: MainProj∫ProcessMgr∫

Radar bug: #1024114

> Release notes for this change:

Application Assassin doesn’t work in Cube-E because it relied on hard coded offsets to Process
Manager globals.  Too bad these globals moved in Cube-E.  Since the Assassin is in the Finder in
Cube-E, provide an interface to get to these globals so that the Finder and the Process Manager
aren’t TOO incestuous.  Added PEntryFromProcessSerialNumber, which is selector $4F off of
_OSDispatch.

> What was tested:

There’s an internal routine, PEntryFromPSN which does exactly what we want.  We made a copy
of this routine and gave it a public private interface.  Changed a call to PEntryFromPSN to call the
new routine and watched it go through the dispatcher and return the same result as the original
routine.


----------------------------------------------------------•----------------------------------------------------------
3/30/92 3:27:51 PM

File: GestaltPrivateEqu.a,39
Owner: Dean Yu     
Project: MainProj∫Internal∫Asm∫

File: MFPrivate.h,25
Owner: Dean Yu     
Project: MainProj∫Internal∫C∫

File: Data.c,22
Owner: Dean Yu     
Project: MainProj∫ProcessMgr∫

File: Data.h,36
Owner: Dean Yu     
Project: MainProj∫ProcessMgr∫

File: ProcessMgrMisc.a,17
Owner: Dean Yu     
Project: MainProj∫ProcessMgr∫

File: Startup.c,21
Owner: Dean Yu     
Project: MainProj∫ProcessMgr∫

File: Switch.c,18
Owner: Dean Yu     
Project: MainProj∫ProcessMgr∫

Radar bug: #1025416

> Release notes for this change:

On each Process Manager context switch, call Skia to tell it to switch it’s globals as well.


> What was tested:

Booted new system with and without Skia.  Without Skia installed, the new code is not executed.
With Skia installed, the Skia trap is called by switch_task.


----------------------------------------------------------•----------------------------------------------------------
3/31/92 23:42:25

File: DialogsPriv.a,8
Owner: Kevin MacDonell     
Project: MainProj∫Internal∫Asm∫

File: DialogsPriv.h,6
Owner: Kevin MacDonell     
Project: MainProj∫Internal∫C∫

File: DialogsPriv.p,6
Owner: Kevin MacDonell     
Project: MainProj∫Internal∫Pascal∫

File: DialogDispatch.a,16
Owner: Kevin MacDonell     
Project: MainProj∫Toolbox∫DialogMgr∫

File: DialogMgrPatches.c,6
Owner: Kevin MacDonell     
Project: MainProj∫Toolbox∫DialogMgr∫

Radar bug: #1021993

> Release notes for this change:

Export interfaces to new Dialog Manager citation substitution routines (ParamText fixes).  These are generally useful and C3P0 will require them for 2-byte systems (in the future).

> What was tested:

MPW Tool DialogMgrTestCitations tests the functionality of these calls.


----------------------------------------------------------•----------------------------------------------------------
4/8/92 12:04:05 PM

File: ScriptEqu.a,50
Owner: Peter Edberg     
Project: MainProj∫Interfaces∫AIncludes∫

File: Script.h,60
Owner: Peter Edberg     
Project: MainProj∫Interfaces∫CIncludes∫

File: Script.p,58
Owner: Peter Edberg     
Project: MainProj∫Interfaces∫PInterfaces∫

File: ScriptPriv.a,63
Owner: Peter Edberg     
Project: MainProj∫Internal∫Asm∫

File: ScriptPriv.h,23
Owner: Peter Edberg     
Project: MainProj∫Internal∫C∫

Radar bug: #1026516

> Release notes for this change:

Many of the script manager routines that depend on a grafport (to get a font => script code that determines their operation) have an alternate form in which a script code can be passed as a parameter; this is useful when a grafport may not be available. Until now, interfaces for these alternate forms are all private (although they are already being tested for Cube-E). They are now being made public, as various people need them, including N&C and El Kabong applications. The implementation of these routines is the same standard forms; the code that handles the script code parameter is in the Script Manager dispatcher, and it strips this parameter, so by the time we reach the routines themselves, the stack setup is the same as the normal way of calling these routines.

These interfaces are: SCCharByte, SCCharType, SCFindWord, SCTransliterate, SCParseTable, SCLowerText, SCUpperText, SCStripText, SCStripUpperText.


> What was tested:

Full System file build (-e): there is no change in functionality, just moving interfaces. Pasted resulting Script Mgr patches into Cube-E 36++ and ran the system.

----------------------------------------------------------•----------------------------------------------------------
4/14/92 11:04:24 AM

File: SoundPriv.a,23
Owner: Kip Olson     
Project: MainProj∫Internal∫Asm∫

File: SoundInputPriv.h,11
Owner: Kip Olson     
Project: MainProj∫Internal∫C∫

File: SinDrvr.a,52
Owner: Kip Olson     
Project: MainProj∫Toolbox∫SoundMgr∫

File: SoundMgrPatch.a,26
Owner: Kip Olson     
Project: MainProj∫Toolbox∫SoundMgr∫

Radar bug: #1018061

> Release notes for this change:

The built-in sound input driver was allocating 12K of system heap at boot time and never
releasing it. It now only allocates this memory when the driver is opened for recording
and releases this memory when the driver is closed.

This means the built-in driver will now return memFullErr (-108) if it cannot allocate
space in the system heap during the following sound input manager routines:

SPBRecord()
SPBSetDeviceInfo() with the ‘lmet’ and ‘cont’ selectors set to 1

All other routines should work as before.

> What was tested:

Tested on Zydeco and Mac IIsi using the Sound CDEV, which puts up a nice dialog telling
you about error -108 when it occurs.
----------------------------------------------------------•----------------------------------------------------------
4/17/92 5:04:02 PM

File: SysPrivateEqu.a,56
Owner: Peter Edberg     
Project: MainProj∫Internal∫Asm∫

File: ExpandMemPriv.h,34
Owner: Peter Edberg     
Project: MainProj∫Internal∫C∫

File: InternationalPACK.a,40
Owner: Peter Edberg     
Project: MainProj∫Toolbox∫ScriptMgr∫

Radar bug: #1027387

> Release notes for this change:

Routines in the International Utilities Package - PACK 6 - sometimes call traps that move
memory. Before they do this, they are supposed to call the internal LockIt routine; if
they PACK is not already locked, this routine locks it and sets the Boolean
emItlNeedUnlock to indicate this. All routines that call LockIt are supposed to exit
through the internal routine UnlockIt, which unlocks the PACK if emItlNeedUnlock is true.

This gets tricky when one PACK 6 routine does a JSR to another. When the second routine
exits to the first routine, it would call UnlockIt, thus prematurely unlocking the
package. Before System 7, there was only one PACK 6 routine - IUGetIntl - which could be
called internally as well as externally. The unlocking problem was handled by having
separate internal and external entry points; the external entry point set a Boolean
emDirectGetIntl, and if this Boolean was not true, IUGetIntl would skip the call to
UnlockIt at exit.

System 7 changes to PACK 6 resulted in:
(1) Multiple levels of internal calls between routines (especially for Type Select), so
that keeping track of the desired lock state got hopelessly muddled, and there were
premature unlocks resulting from internal calls that unlocked PACK 6 before returning to
another PACK 6 routine.
(2) Some sorting routines not calling LockIt before calling a trap that moved memory.
(3) Some sorting routines not calling UnlockIt before exiting in certain situations.

(1) and (2) resulted in crashes. (3) resulted in PACK 6 becoming locked and staying
locked. This was the problem that the 7up fix tried to address. Unfortunately, the 7up
fixed removed the test for emDirectGetIntl at the end of IUGetIntl, which resulted in
PACK 6 becoming prematurely unlocked when GetIntl was called internally from another PACK
6 routine.

The use of emDirectGetIntl was not a good way to keep track of desired lock state anyway.
I have revamped the locking mechanism. emDirectGetIntl is renamed to emDontUnlockYet, and
is a count. This value is incremented before one PACK 6 routine makes a call to another,
and is decremented afterward. UnlockIt only unlocks the PACK if emDontUnlockYet is 0.

I also fixed the missing LockIt and UnlockIt calls.

These changes fix
- crashes resulting from PACK 6 being unlocked when calling a trap that moves memory
- problems with PACK 6 becoming locked.
It is still possible for an app to lock PACK 6; in this case PACK 6 will remain locked
until the app unlocks it. This is necessary behavior, so that apps can call PACK 6 at
interrupt time.


> What was tested:

Full build, then pasted new PACK 6 into Cube-E 41 and rebooted. Checked that PACK 6 no
longer got locked in places where it used to. Stepped through TypeSelect code (most
heavily nested internal calls) to verify proper increment/decrement of
emItlDontUnlockYet, and to verify proper lock/unlock. Wrote a test program to lock PACK
6, call some PACK 6 routines, unlock it, then call some more; verified that it was locked
when it should be and unlocked when it should be. Tried on both IIci and SE.
----------------------------------------------------------•----------------------------------------------------------
5/1/92 11:05:27 AM

File: TextServices.a,24
Owner: Kenny S. Tung     
Project: MainProj∫Interfaces∫AIncludes∫

File: TextServices.h,40
Owner: Kenny S. Tung     
Project: MainProj∫Interfaces∫CIncludes∫

File: TSMPrivate.a,20
Owner: Kenny S. Tung     
Project: MainProj∫Internal∫Asm∫

File: TSMPrivate.h,29
Owner: Kenny S. Tung     
Project: MainProj∫Internal∫C∫

Radar bug: #1028301

> Release notes for this change:

Since we changed SWM to a driver now, SetTSMDialogState, RestoreTSMDialogState, TSMChangeCursor, and TSMRestoreCursor calls are no longer needed and should be removed from the source code.

> What was tested:

This is a design change.

----------------------------------------------------------•----------------------------------------------------------
5/1/92 8:48:28 PM

File: TSMPrivate.a,21
Owner: Kenny S. Tung     
Project: MainProj∫Internal∫Asm∫

File: TSMPrivate.h,30
Owner: Kenny S. Tung     
Project: MainProj∫Internal∫C∫

File: TSMDispatch.a,31
Owner: Kenny S. Tung     
Project: MainProj∫Toolbox∫TextServicesMgr∫

File: TSMFunctions.c,36
Owner: Kenny S. Tung     
Project: MainProj∫Toolbox∫TextServicesMgr∫

Radar bug: #1027482

> Release notes for this change:

If the mouse is over a floating window and input method changed cursor on it , then don’t let other application such as Finder to change the cursor again. (Patched _SetCursor). However, IM has to set the cursor as well when it puts out a dialog. Otherwise, Finder will change it to a watch.

> What was tested:

Cursor used to flash between IM’s and Finder’s over a floating window. Now it doesn’t.

----------------------------------------------------------•----------------------------------------------------------
5/8/92 8:26:46 PM

File: ScriptPriv.h,24
Owner: Peter Edberg     
Project: MainProj∫Internal∫C∫

File: ScriptMgrExtensions.a,3
Owner: Peter Edberg     
Project: MainProj∫Toolbox∫ScriptMgr∫

File: ScriptMgrFindWord.c,5
Owner: Peter Edberg     
Project: MainProj∫Toolbox∫ScriptMgr∫

Radar bug: #1029395

> Release notes for this change:

The Roman FindScriptRun routine also handles other simple scripts such as Cyrillic. To do
this, FindScriptRun needs to figure out which characters are part of a Roman run or a
script run. The simple-minded table that it uses to figure this out did not work
correctly for “shared” characters like punctuation, spaces, etc. That is, a run of
Cyrillic letters and spaces should all be considered a Cyrillic run, while a run of Roman
letters and spaces should all be considered a Roman run; the old table forced spaces to
always be considered as only Cyrillic or only Roman.

This affects apps that use this call to separate Roman from other scripts when pasting
text from an “unstyled” window (like Teach Text or Key Caps) into a styled document like
a word processor.

To fix this, the Roman system will use a more sophisticated version of FindScriptRun that
uses a state table. It will still handle the old format as well. The state table can
handle both one-byte and two-byte characters, so it can be called from other non-simple
scripts. This will permit fixing of FindScriptRun problems in both the one-byte and
two-byte systems (see bugs #1025880, #1028131).


> What was tested:

Run pkeFindScriptTest program to call FindScriptRun for Roman font, Cyrillic font using
old-format table, and Cyrillic font using new-format state table. Step through with
MacsBug to verify expected sequence of operations, check stack balancing and register
saving. Try sequences of Cyrillic, space, and Roman to verify that space is associated
with surrounding context. Do this on both IIci and SE.
----------------------------------------------------------•----------------------------------------------------------
5/11/92 11:31:21 AM

File: SysPrivateEqu.a,58
Owner: Jeff Miller     
Project: MainProj∫Internal∫Asm∫

File: ExpandMemPriv.h,36
Owner: Jeff Miller     
Project: MainProj∫Internal∫C∫

File: Startup.c,22
Owner: Jeff Miller     
Project: MainProj∫ProcessMgr∫

Radar bug: #1029437

> Release notes for this change:

Added emProcessMgrExists to ExpandMem to indicate that booting has progressed far enough
that the Process Mgr exists, changed the Process Mgr to set this field to true after
calling MyNewGestalt(), which is where it installs its gestaltOSAttr function.  The
existence of this Gestalt function was previously how system software could tell if the
Process Mgr was up yet.

> What was tested:

Booted on an LC, verified in MacsBug that emProcessMgrExists is false early in the boot
process, and is 1 after the machine is up and running.
----------------------------------------------------------•----------------------------------------------------------
5/14/92 8:59:30 AM

File: ResourceMgrPriv.a,14
Owner: Dean Yu     
Project: MainProj∫Internal∫Asm∫

File: ResourceMgrPriv.h,10
Owner: Dean Yu     
Project: MainProj∫Internal∫C∫

File: ResourceMgrExtensions.a,48
Owner: Dean Yu     
Project: MainProj∫Toolbox∫ResourceMgr∫

Radar bug: #000000

> Release notes for this change:

OK, that’s not a real bug number.  I don’t know what the real bug number is.  But I know
I’m supposed to fix this.  The bug stated that if you added fonts to the Fonts folder,
then took them out, then added them back in, and kept doing this, eventually, the Finder
would say that you’re not allowed to add any more fonts, even though there are way less
than 128 files in the Fonts folder.  This is because the Finder decided to start closing
the font files as they got pulled out of the Fonts folder.  However, an internal count is
kept of how many font files are opene, and this count is not decremented when the Finder
closes font files, but is incremented every time a file is added to the Fonts folder.  So
the count keeps going up and up and up until it gets to 128.  Since the count is really
internal to the Fonts folder code, rather than having the Finder change this count, we
decided to have the converse call to OpenResFileUnderSystemMap which is used to open font
files.  This change adds the routine CloseResFileUnderSystemMap.  This routine closes
resource files that were opened under the system map, and if it’s a font file in the
Fonts folder, decrements the count of open font files.

> What was tested:

Added some debugging code to OpenResFileUnderSystemMap to close the files as soon as they
have been opened so I could watch CloseResFileUnderSystemMap in action.  The code works,
and the count decrements properly.  At the end of the boot sequence, no fonts were open,
and the count was 0.

----------------------------------------------------------•----------------------------------------------------------
5/14/92 4:53:33 PM

File: ScriptPriv.a,68
Owner: Peter Edberg     
Project: MainProj∫Internal∫Asm∫

File: ScriptPriv.h,25
Owner: Peter Edberg     
Project: MainProj∫Internal∫C∫

File: ScriptMgrDispatch.a,17
Owner: Peter Edberg     
Project: MainProj∫Toolbox∫ScriptMgr∫

File: ScriptMgrExtTail.a,60
Owner: Peter Edberg     
Project: MainProj∫Toolbox∫ScriptMgr∫

File: ScriptMgrInit.a,28
Owner: Peter Edberg     
Project: MainProj∫Toolbox∫ScriptMgr∫

Radar bug: #1027061

> Release notes for this change:

Added private ScriptToRange routine that returns the resource ID range for a script. The
interfaces are in ScriptPriv.a and ScriptPriv.h.

struct ScriptRange {
    short min;
    short max;
};
typedef struct ScriptRange ScriptRange;

pascal ScriptRange ScriptToRange(ScriptCode script);

Given a ScriptCode, this returns a structure containing the min and max ID range. For
Roman, this is 0 and 16383; for Japanese it is 16384 and 16895. This is needed because
several parts of the system need to know this range (e.g. Mover). Currently they
hard-code the formula that defines this range. This works for existing scripts, but for
future scripts we may not be able to continue using the same mapping formula, so these
components need to call a function that returns the range instead.


> What was tested:

Paste update ptch resources into Cube-E a8 on IIci and SE. Call this routine for Roman
and several other scripts. Verify correct results, stack balance, etc.
----------------------------------------------------------•----------------------------------------------------------
5/14/92 6:59:12 PM

File: TSMPrivate.a,22
Owner: Kenny S. Tung     
Project: MainProj∫Internal∫Asm∫

File: TSMPrivate.h,31
Owner: Kenny S. Tung     
Project: MainProj∫Internal∫C∫

File: TSMDispatch.a,34
Owner: Kenny S. Tung     
Project: MainProj∫Toolbox∫TextServicesMgr∫

Radar bug: #1025797

> Release notes for this change:

Balloon help does not work when mouse is over a floating window. It is even worse when the help is in Finder because the Balloon window falshes. Now we check if the mouse is over our floating window, we’ll open the resource file from the owner of the window and try to get the Help resource from there. (Each floating window has a Component instance in the refCon which created the window). If resource file is not open, then we use a default string provided in Balloon.r.

> What was tested:

I tested with Akiko, KIM, and my Chinese IM which has Help resource. They all work in Finder and TeachText.

----------------------------------------------------------•----------------------------------------------------------
5/19/92 9:54:32 AM

File: ScriptPriv.a,69
Owner: Peter Edberg     
Project: MainProj∫Internal∫Asm∫

File: ScriptPriv.h,26
Owner: Peter Edberg     
Project: MainProj∫Internal∫C∫

File: ScriptMgrDispatch.a,18
Owner: Peter Edberg     
Project: MainProj∫Toolbox∫ScriptMgr∫

File: ScriptMgrExtTail.a,61
Owner: Peter Edberg     
Project: MainProj∫Toolbox∫ScriptMgr∫

File: ScriptMgrInit.a,29
Owner: Peter Edberg     
Project: MainProj∫Toolbox∫ScriptMgr∫

Radar bug: #1030321

> Release notes for this change:

Need for Cube-E: The new ScriptMgr FindScriptRun code is normally invoked automatically
if new-format tables are present in a script’s itl2 resource. However, the one-byte
extension FindScriptRun also needs to make a direct call to the Script Manager’s new
FindScriptRun code. To do this, we need to add another private selector, and private
interfaces in ScriptPriv.a and ScriptPriv.h for the NFindScriptRun routine, which has the
same interface as FindScriptRun with an additional parameter which is a pointer to a
new-format FindScriptTable.

> What was tested:

Paste updated Script Mgr resources into Cube-E 47 (on IIci and SE). Use FindScriptRun
test program with Cyrillic primary; use MacsBug to alter parameters on stack to simulate
NFindScriptRun call and verify proper operation. Run a few other Script Mgr test programs
to verify that dispatch table is still correct for other routines.
----------------------------------------------------------•----------------------------------------------------------
5/19/92 5:17:43 PM

File: TSMPrivate.h,32
Owner: Kenny S. Tung     
Project: MainProj∫Internal∫C∫

File: TSMInternalUtils.c,21
Owner: Kenny S. Tung     
Project: MainProj∫Toolbox∫TextServicesMgr∫

File: TSMUtility.c,38
Owner: Kenny S. Tung     
Project: MainProj∫Toolbox∫TextServicesMgr∫

Radar bug: #1029247

> Release notes for this change:

GetDefaultInputMethod, SetDefaultInputMethod, and SetTextServiceLanguage routines should
check if user is passing the correct language code corresponding to the script code. If
it is wrong, these calls return paramErr.

> What was tested:

Tested with TSM Test.
----------------------------------------------------------•----------------------------------------------------------
6/2/92 7:37:45 PM

File: TSMPrivate.a,23
Owner: John Harvey     
Project: MainProj∫Internal∫Asm∫

File: TSMPrivate.h,33
Owner: John Harvey     
Project: MainProj∫Internal∫C∫

Radar bug: 

> Release notes for this change:

Needed to add a global variable to old the real menuID of the input methods menu.

> What was tested:

Built the init used the input method menu.  It worked.
----------------------------------------------------------•----------------------------------------------------------
6/10/92 2:49:44 PM

File: TSMPrivate.a,24
Owner: Kenny S. Tung     
Project: MainProj∫Internal∫Asm∫

File: TSMPrivate.h,35
Owner: Kenny S. Tung     
Project: MainProj∫Internal∫C∫

File: TSMDispatch.a,40
Owner: Kenny S. Tung     
Project: MainProj∫Toolbox∫TextServicesMgr∫

File: TSMFunctions.c,40
Owner: Kenny S. Tung     
Project: MainProj∫Toolbox∫TextServicesMgr∫

File: TSMInternalUtils.c,26
Owner: Kenny S. Tung     
Project: MainProj∫Toolbox∫TextServicesMgr∫

File: TSMUtility.c,43
Owner: Kenny S. Tung     
Project: MainProj∫Toolbox∫TextServicesMgr∫

Radar bug: #1031142,1030881

> Release notes for this change:

Since we removed the docID param from TSMEvent, UseInputWindow for individual document
has been broken because keydown event is routed to SWM recursively. Fix it with a TSM
global keeping track of which doc is using the input window and added a new private call
-- TSMEventFromSWM. With this new call, TSM can avoid sending events to IM when a TSM
aware application is using the Input Window. Changed many routines in TSM to keep the
state information correct.

> What was tested:

I have conducted a very thorough test with the help from Margarita S. and Shiao-Chen T.
and a test tool from John H. It is working well.
----------------------------------------------------------•----------------------------------------------------------
6/13/92 5:51:01 PM

File: TSMPrivate.h,36
Owner: Kenny S. Tung     
Project: MainProj∫Internal∫C∫

File: TSMInternalUtils.c,27
Owner: Kenny S. Tung     
Project: MainProj∫Toolbox∫TextServicesMgr∫

Radar bug: #1032463

> Release notes for this change:

Added a new routine -- utDeleteSysMenu to remove the menu from the system menulist, so
that it will not show up in other application’s menu bar. The menu is not removed from
the current application’s menulist. So it always stays with the application. Useful when
switch from a TSM aware application to Finder, we need to keep the pencil in that app’s
menu but we don’t want to see it when we launch other applications. Called by
‘utSuspendResumeApp’.

> What was tested:

Tested with Kadokawa with use input window ON, the Akiko’s pencil does not show up when
launch TeachText anymore.
----------------------------------------------------------•----------------------------------------------------------
6/17/92 11:12:54 AM

File: TSMPrivate.a,26
Owner: Kenny S. Tung     
Project: MainProj∫Internal∫Asm∫

File: TSMPrivate.h,39
Owner: Kenny S. Tung     
Project: MainProj∫Internal∫C∫

File: TSMDispatch.a,44
Owner: Kenny S. Tung     
Project: MainProj∫Toolbox∫TextServicesMgr∫

File: TSMInternalUtils.c,32
Owner: Kenny S. Tung     
Project: MainProj∫Toolbox∫TextServicesMgr∫

File: TSMUtility.c,47
Owner: Kenny S. Tung     
Project: MainProj∫Toolbox∫TextServicesMgr∫

Radar bug: #1030843

> Release notes for this change:

Balloon help in SWM’s popup menu did get cleared. The problem is because when the mouse
is over a floating window, HMGetBalloon return false. We patched PopUpMenuSelect to set a
flag so that HMGetBalloon can check and return the correct info when the mouse is over a
floating window.

> What was tested:

Tested with SWM and other popup menus, it works ok now.
----------------------------------------------------------•----------------------------------------------------------
6/26/92 12:18:01 PM

File: TSMPrivate.a,28
Owner: Kenny S. Tung     
Project: MainProj∫Internal∫Asm∫

File: TSMPrivate.h,40
Owner: Kenny S. Tung     
Project: MainProj∫Internal∫C∫

File: TSMDispatch.a,47
Owner: Kenny S. Tung     
Project: MainProj∫Toolbox∫TextServicesMgr∫

File: TSMFunctions.c,48
Owner: Kenny S. Tung     
Project: MainProj∫Toolbox∫TextServicesMgr∫

File: TSMInternalUtils.c,37
Owner: Kenny S. Tung     
Project: MainProj∫Toolbox∫TextServicesMgr∫

File: TSMUtility.c,50
Owner: Kenny S. Tung     
Project: MainProj∫Toolbox∫TextServicesMgr∫

Radar bug: #1033450,1033456,1031316

> Release notes for this change:

This fixed 3 major probelms involving:
1. After openning any dialog window in a TSM aware application which has no open window
will cause Akiko to crash if you click in its pallete. The bug is due to TSM activate the
input method when a new document is created. This deactivates any active Akiko’s instance
(a feature that I never knew). But the crashing part is actually a bug in Akiko.
2. CloseTSMAwareApplication did not call Process Manager with InlineAware(false).
3. Click the menu and move the mouse quickly over a floating window, sometimes the
Balloon is not cleaned up. The HMGetBalloon should return true if it is called inside of
MenuSelect().


> What was tested:

All the cases are tested and they are happenning any more.
----------------------------------------------------------•----------------------------------------------------------
7/8/92 4:02:16 PM

File: TSMPrivate.h,42     
Owner: Kenny S. Tung     
Project: MainProj∫Internal∫C∫

Radar bug: #1033475

> Release notes for this change:

Added a new routine utScriptIsCCJKAndNeedsIM().

> What was tested:

The new routine is used in serveral places. It fixed the bug of 1033475. When we switch
from KIM to SJip, Akiko’s pallete doesn’t show up now.
----------------------------------------------------------•----------------------------------------------------------
7/16/92 7:11:14 PM

File: TSMPrivate.a,30     
Owner: Kenny S. Tung     
Project: MainProj∫Internal∫Asm∫

File: TSMPrivate.h,43     
Owner: Kenny S. Tung     
Project: MainProj∫Internal∫C∫

File: TSMDispatch.a,51     
Owner: Kenny S. Tung     
Project: MainProj∫Toolbox∫TextServicesMgr∫

File: TSMFunctions.c,54     
Owner: Kenny S. Tung     
Project: MainProj∫Toolbox∫TextServicesMgr∫

Radar bug: #1034952

> Release notes for this change:

A cursor can not be set in SetTextServiceCursor TSM component call.
Fixed this problem in SetCursorPatch by checking if we’re inside of the TSMEvent() call.
If we are, then let the SetCursor call thru.

> What was tested:

Press the mouse and Akiko changes the cursor in the inline hole.
----------------------------------------------------------•----------------------------------------------------------
3/25/93 8:40:20 PM

File: Displays.a,1     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫AIncludes∫

File: Displays.h,1     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫CIncludes∫

File: DisplaysPriv.a,1     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫Asm∫

File: DisplaysPriv.h,1     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫C∫

File: ProcessesPriv.h,1     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫C∫

Radar bug: 

> Release notes for this change:

First checkin of Display Manager Sources

> What was tested:

Nobody depends on them yet.  They do not affect the supermario build.  One thing to watch
for is ProcessesPriv.h is the new name for MFPrivate.h on Reality and sometime,
MFPrivate.h should be purged from SuperMario.
----------------------------------------------------------•----------------------------------------------------------
3/31/93 5:00:52 PM

File: DisplaysPriv.a,2     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫Asm∫

File: MenuMgrPriv.a,2     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫Asm∫

File: DisplaysPriv.h,2     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫C∫

File: MenuMgrPriv.h,4     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫C∫

File: MainCode.Make,4     
Owner: Ian Hendry     
Project: SuperMarioProj∫Make∫

File: RISC.make,23     
Owner: Ian Hendry     
Project: SuperMarioProj∫Make∫

File: Universal.make,11     
Owner: Ian Hendry     
Project: SuperMarioProj∫Make∫

File: DisplayMgr.c,2     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫DisplayMgr∫

File: Toolbox.make,2     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫

File: WindowMgr.a,27     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫WindowMgr∫

Radar bug: 

> Release notes for this change:

Check in Display Manager to build.

Check in fix to have standardequates build follow the FastROMTraps automatically (Script
CreateStdEquAOptions parses the feature set to determine how to set the Standard equates
flags).  I added this to only to Universal.Make and RISC.make.

Display Manager is included in RISC builds and available on Universal Builds.

> What was tested:

Did full builds of Universal and PDM.
----------------------------------------------------------•----------------------------------------------------------
4/8/93 7:46:02 PM

File: Displays.a,2     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫AIncludes∫

File: Displays.h,2     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫CIncludes∫

File: Video.h,2     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫CIncludes∫

File: DisplaysPriv.h,3     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫C∫

Radar bug: 

> Release notes for this change:

Added support for mode switching to display manager and new switchMode control call to
video.h.  See release notes for Display Manager.

> What was tested:

Built and tested on PDM.
----------------------------------------------------------•----------------------------------------------------------
5/28/93 4:07:25 PM

File: Displays.a,3     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫AIncludes∫

File: Displays.h,3     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫CIncludes∫

File: DisplaysPriv.a,3     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫Asm∫

File: DisplaysPriv.h,4     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫C∫

File: DisplayMgr.a,4     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫DisplayMgr∫

File: DisplayMgr.c,5     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫DisplayMgr∫

File: DisplayMgrUtils.c,2     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫DisplayMgr∫

Radar bug: #1081805,1086363

> Release notes for this change:

Pre-alpha freeze check-in.  This code fixes the 1081805,1086363 and a number of
unreported bugs that I found while preparing for alpha.  I fixed some patches that run on
68K machines.  Several selectors have moved to the private range and so I reordered the
public ones.  In order to not confuse older version of finder and monitors, the gestalt
selector for display manager has changed from ‘udsk’ to ‘dply’.  That way new code
doesn’t see old code and old code doesn’t see new.  There was a persistent multiple
monitor bug that would (if you worked at it) crash your system.  It depended on moving
displays and then waving the cursor as the display manager rearranged the displays.  I
think I have this fixed, but I will keep an eye on it.

I also changed the interfaces a little to simplify walking ALL display (including
inactive ones).

> What was tested:

I have been building and testing with this code for some time.  I spend yesterday and
today really hammering on it on both 68K and PDM machines.  It seems to be holding up
well, but I will be continuing my testing and bug fixes.
----------------------------------------------------------•----------------------------------------------------------
6/22/93 2:54:31 AM

File: SonoraDeclVideo.r,11     
Owner: Ian Hendry     
Project: SuperMarioProj∫DeclData∫DeclVideo∫Sonora∫

File: SonoraDriver.a,14     
Owner: Ian Hendry     
Project: SuperMarioProj∫DeclData∫DeclVideo∫Sonora∫

File: Video.h,4     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫CIncludes∫

File: DisplaysPriv.h,6     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫C∫

File: DisplayMgr.a,6     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫DisplayMgr∫

File: DisplayMgr.c,8     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫DisplayMgr∫

File: DisplayMgrUtils.c,4     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫DisplayMgr∫

Radar bug: 

> Release notes for this change:

Checkin for PDM A2 engineering build on 6/22/93.  ROM timing tables now working.  I will
still need to finalize the contents of the tables with the results of a 6/23 meeting.
Display modes can be flagged as “doesn’t need confirmation”.  Monitors does not ask the
user to verify mode switches to those “safe” modes.

Driver can also return information about the connection including that ALL modes are
safe.  This is for devices that KNOW that all the modes are safe.  Saves changing decl
ROMs to include a table of timings.  I expect the portables to use this feature for
640x400 mode switches.

Also (hopefully) fixed pesky, occasional cursor-crash on mode switches.  Fix not required
for alpha.  Down side to this fix is that the cursor is reset (0, 0) on mode switches.  I
will need to figure out exactly what is going on here.

> What was tested:

Built ROM and tested on PDM.  Mode switches to 13” & 16” modes don’t require
confirmation.  Switches to VGA and 12” modes do.  Tested that “all modes safe” flag
works.  Tried and failed to reproduce cursor crash.  I now know that the mouse position
is outside of the pinrect at the time the cursor is drawn.
----------------------------------------------------------•----------------------------------------------------------
6/25/93 9:42:29 AM

File: SonoraDriver.a,15     
Owner: Ian Hendry     
Project: SuperMarioProj∫DeclData∫DeclVideo∫Sonora∫

File: Displays.a,5     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫AIncludes∫

File: Displays.h,5     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫CIncludes∫

File: DisplaysPriv.a,5     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫Asm∫

File: DisplaysPriv.h,7     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫C∫

File: DisplayMgr.c,9     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫DisplayMgr∫

Radar bug: 

> Release notes for this change:

Changed DMAddDisplay to add device to devicelist and DMRemoveDisplay to remove device
from devicelist.  Added some new calls to support DMAddDisplay, DMRemoveDisplay and smart
monitors (see header and forthcoming ERS).

Changed the display manager to clear get connection and get timing calls (rather than the
driver).  This was Mike Puckett’s suggestion.  It makes it so if you add fields, old
drivers don’t set only some of the fields.

> What was tested:

Build and tested ROM on PDM.  Mode switching still worked.  I to work with Max to be sure
that DMAddDisplay and DMRemoveDisplay work.
----------------------------------------------------------•----------------------------------------------------------
8/4/93 4:07:08 PM

File: Displays.a,6     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫AIncludes∫

File: GestaltEqu.a,19     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫AIncludes∫

File: Displays.h,6     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫CIncludes∫

File: GestaltEqu.h,18     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫CIncludes∫

File: GestaltEqu.p,10     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫PInterfaces∫

File: DisplaysPriv.a,6     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫Asm∫

File: DisplaysPriv.h,8     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫C∫

File: DisplayMgr.a,7     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫DisplayMgr∫

File: DisplayMgr.c,12     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫DisplayMgr∫

File: DisplayMgr.make,5     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫DisplayMgr∫

File: DisplayMgrUtils.c,6     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫DisplayMgr∫

Radar bug: #1101633,1098397,1101795,1101636,1102280

> Release notes for this change:

Fixed a number of compatibility bugs (1101633,1098397,1101795,1101636,1102280).

I investigated a number of strategies for compatibility when the main display
changed to a different monitor.  The problem was that there were alway incompatibilities
with some applications and/or performance penalties.

New Implementation:
Exchange the contents the old main device and the new main device so that cached handles
still behave correctly.  There is no performance penalty and (so far) no application
incompatibilities beyond those introduced by the change in size.  I dicussed all these
solutions with Kon Othmer and we both feel this is the base strategy.  The only problem
is that this implementation breaks the connection between a phsyical monitor and its
gDevice.

Rejected implementations:
  (1) changing the lo-mem MainDevice field (apps cache this value),
  (2) introducing a dummy device in the device list that MainDevice points to and
shadowing and disabling the real main device such that caching MainDevice handle works
(some apps had problems and performance suffered because QD always take the multidevice
case, and boot code assumes that all devices in the device list are active screen devices
and therefore ‘scrn’ resources are invalid if it finds an extra device),
  (3) introducing a dummy device BEFORE the device list and pointed MainDevice at it.
Fixed the boot problems and the performance hit, but broke applications that assume
MainDevice is in device list (including MicroSoft Excel).

Added compatibility model.  Conditionally compiled fixes in a separate file with some
guildlines for making sure these fixes can be turned off.  The CloseView compatilbility
fix is the only one in use.

WARNING:
WARNING:  As of this check in, you must use either Pre-Display Manager Monitors CP or
WARNING:  Psychic TV A4 Monitors CP.  The API changed slightly to clean up the interface
WARNING:  and intermediate versions will crash.
WARNING:


> What was tested:

Built and tested extension with Reality sources.  Margarita regressed most of the
existing bugs and things seemed to work.  I updated SuperMario from reality and built and
tested resolution flipping and new version of monitors on PDM.  Everything seems fine.

----------------------------------------------------------•----------------------------------------------------------
8/16/93 9:17:58 PM

File: Displays.a,7     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫AIncludes∫

File: Displays.h,7     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫CIncludes∫

File: DisplaysPriv.a,7     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫Asm∫

File: DisplaysPriv.h,10     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫C∫

File: DisplayMgr.a,9     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫DisplayMgr∫

File: DisplayMgr.c,13     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫DisplayMgr∫

File: DisplayMgrCompatibility.c,2     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫DisplayMgr∫

File: DisplayMgrUtils.c,7     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫DisplayMgr∫

Radar bug: #1099391

> Release notes for this change:

Synced to latest Reality changes.  Fixed Apple event notification bugs where applications
were getting events they did not know how to handle and were putting up error messages.
Fixed apple event notification to return pre/post information on display states.  Fixed
notification to procptrs for extensions.  Removed some preliminary data structures that
are not used in DM 1.0.  Support QuickDraw GX.

> What was tested:

Built and ran. Checked mode switches.
----------------------------------------------------------•----------------------------------------------------------
8/26/93 9:38:41 PM

File: Displays.h,8     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫CIncludes∫

File: Processes.h,2     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫CIncludes∫

File: DisplaysPriv.h,11     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫C∫

File: DisplayMgr.c,15     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫DisplayMgr∫

File: DisplayMgrUtils.c,8     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫DisplayMgr∫

Radar bug: #1108969

> Release notes for this change:

Checked in first try at making Display Manager registration calls usable before the
process manager loads.

Rearranged some defines to where they belong.  Move apple event declarations to
Displays.h and move display manager size bit to Processes.h.

Laid ground work for Res-Ind QD in AppleEvent.

> What was tested:

Built and verified ROM still worked on PDM and mode switching was working.
----------------------------------------------------------•----------------------------------------------------------
9/10/93 11:33:38 AM

File: DisplaysPriv.a,9     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫Asm∫

File: CrsrDevPriv.h,2     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫C∫

File: DisplaysPriv.h,12     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫C∫

File: DisplayMgr.a,10     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫DisplayMgr∫

File: DisplayMgr.c,18     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫DisplayMgr∫

File: DisplayMgr.make,8     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫DisplayMgr∫

File: DisplayMgrUtils.c,9     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫DisplayMgr∫

Radar bug: #1110418, 1105959

> Release notes for this change:

Fixed cursor crash and dispose monitor bugs.

> What was tested:

Built and heavily tested ROM version using A5e7.  Looking for cursor bug.
----------------------------------------------------------•----------------------------------------------------------
11/5/93 10:01:27 AM

File: Displays.a,9     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫AIncludes∫

File: Displays.h,10     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫CIncludes∫

File: Quickdraw.h,6     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫CIncludes∫

File: SysEqu.h,5     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫CIncludes∫

File: Video.h,6     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫CIncludes∫

File: DisplaysPriv.a,11     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫Asm∫

File: DisplaysPriv.h,14     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫C∫

File: DisplayMgr.a,12     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫DisplayMgr∫

File: DisplayMgr.c,20     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫DisplayMgr∫

File: DisplayMgrOverlap.c,2     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫DisplayMgr∫

File: DisplayMgrUtils.c,11     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫DisplayMgr∫

File: MenuMgr.a,20     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫MenuMgr∫

Radar bug: 

> Release notes for this change:

Rolled in Excelsior changes for PDM ROM.

> What was tested:

Built and booted a RISC ROM on coldfusion.
----------------------------------------------------------•----------------------------------------------------------
