ProcessMgr Release Notes
First created on: 3/20/92 4:35:54 PM

----------------------------------------------------------¥----------------------------------------------------------

3/20/92 4:36:01 PM

File: Language.h,4
Owner: Don Louv     
Project: MainProjºInterfacesºCIncludesº

File: Packages.h,21
Owner: Don Louv     
Project: MainProjºInterfacesºCIncludesº

File: Script.h,52
Owner: Don Louv     
Project: MainProjºInterfacesºCIncludesº

File: Language.p,4
Owner: Don Louv     
Project: MainProjºInterfacesºPInterfacesº

File: Packages.p,20
Owner: Don Louv     
Project: MainProjºInterfacesºPInterfacesº

File: Script.p,50
Owner: Don Louv     
Project: MainProjºInterfacesºPInterfacesº

File: MenuMgrPatches.c,9
Owner: Don Louv     
Project: MainProjºProcessMgrº

File: MenuMgr.c,8
Owner: Don Louv     
Project: MainProjºToolboxºMenuMgrº

Radar bug: #1025005

> Release notes for this change:

Moving declarations in include files for the New Inside Mac.  And updated 2 files to follow the declarations they need.

> What was tested:

Built CUBE-E.

----------------------------------------------------------¥----------------------------------------------------------
3/25/92 1:06:44 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:28:02 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.


----------------------------------------------------------¥----------------------------------------------------------
4/4/92 6:19:06 PM

File: DAHandler.c,14
Owner: Dean Yu     
Project: MainProjºProcessMgrº

Radar bug: #1019369

> Release notes for this change:

Also bugs 1015630 & 1015640.  Instead of having each DA lock and unlock the keyboard, let DA
Handler do it for them.  Now, each DA sets the keyboard to the desired state in itÕs open call, and
DA Handler will set and restore this state for each DA.

> What was tested:

Keyboard menu is set to the correct state for each desk accessory, and state is restored when a
desk accessory is switched out.

----------------------------------------------------------¥----------------------------------------------------------
4/22/92 4:50:25 PM

File: Schedule.c,17
Owner: John Harvey     
Project: MainProjºProcessMgrº

Radar bug: #1027915

> Release notes for this change:

If the an input method opens a floating window in the context of a TSM unaware application that window gets assigned to the swmdriver.  However, if the user then switches to a TSM aware application any mousedown events will be routed to the swmdriver rather than the TSM aware application.  That means that  the input method gets an A5 world that belongs to the Process Manager and not the TSM aware application.  When the input method subsequently tries to callback to the application a5 belongs to the process manager.  If the application depends on being able to access globals in its AppleEvent handlers we get some fancy crashes.  To fix this problem we make a last minute check to see if the current application is TSM aware before call SendEventToSWMDriver.  If the app is TSM aware we route the event to the application which will subsequently call TSMEvent.  The input method will then get proper A5 globals and all will be well with the world.

> What was tested:

Built the system.  Ran Kadokawa (inline aware test app) and clicked on AkikoÕs buttons.  This formerly would bus error.  DoesnÕt crash anymore.

----------------------------------------------------------¥----------------------------------------------------------
4/25/92 2:56:52 PM

File: EventMgrPatches.c,25
Owner: Yosuke Kurita     
Project: MainProjºProcessMgrº

File: Schedule.c,18
Owner: Yosuke Kurita     
Project: MainProjºProcessMgrº

Radar bug: #1027486

> Release notes for this change:

When a modal dialog is the front window, most of the applications cannot handle the
update event for another window properly.  In particular, if the ÔAbout KeyboardsÉÕ
dialog is the front, nobody can handle it.  This means that every GetNextEvent call
returns an update event until the modal dialog is dimissed.  This causes many problemsÉ
In the previous implementation, even TSM windows cannot receive update events in this
situation.  To solve this problem, move the code, which checks the update region for TSM
windows, from nexttask() in Scheduler.c to event_common() in EventMgrPatches.c.

> What was tested:

Open TSM windows and a modal dialog, move TSM windows around to generate update regions.
TSM windows get updated properly.
----------------------------------------------------------¥----------------------------------------------------------
4/29/92 5:31:53 PM

File: Schedule.c,19
Owner: Yosuke Kurita     
Project: MainProjºProcessMgrº

Radar bug: #1028427

> Release notes for this change:

Pass mouse down events to the front application when the front app is inline aware.

> What was tested:

Launch an inline aware app, then click AkikoÕs palette.  The event was sent to the front
app, instead of swm driver as expected.
----------------------------------------------------------¥----------------------------------------------------------
5/11/92 11:31:30 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/11/92 8:28:57 PM

File: Windows.h,15
Owner: John Harvey     
Project: MainProjºInterfacesºCIncludesº

File: EventMgrPatches.c,26
Owner: John Harvey     
Project: MainProjºProcessMgrº

File: Schedule.c,20
Owner: John Harvey     
Project: MainProjºProcessMgrº

Radar bug: #1029361

> Release notes for this change:

Needed to identify floating windows via the windowkind rather than the refcon.  So
started off by adding two new kinds of  windowkinds -- applicationFloatKind(6) and
systemFloatKind(7) -- in windows.h.  Then changed the routine imLayerMouseDown in the
Process Manager file Schedule.c to check the windowkind of the floating layer.  If it is
systemFloatKind and the boolean RouteEvent (plus a couple of other extra safe conditions)
is true the mousedown is sent to the swmDriver.  Otherwise, the event is sent to the
front process.  That way processes can open up the new style floating windows without
being inline aware or having to rely on the swmdriver being around.

> What was tested:

Built the system ran it with Non-TSM aware application (KeyCaps) and tested with Kadokawa
the TSM aware application from Japan.  Worked fine.
----------------------------------------------------------¥----------------------------------------------------------
5/19/92 2:10:17 PM

File: WindowMgrPatches.c,6
Owner: Yosuke Kurita     
Project: MainProjºProcessMgrº

Radar bug: #1030028

> Release notes for this change:

Remove unused code.
The only one reason why I made changes in c_initwindows is just for making the SWM
application work for TSM.  But SWM is not an application now, so these changes are no
longer necessary.

> What was tested:

Launched applications that call InitWindows trap.  They worked fine.
----------------------------------------------------------¥----------------------------------------------------------
5/21/92 11:18:12 AM

File: SegmentLoaderPatches.c,18
Owner: Greg Marriott     
Project: MainProjºProcessMgrº

Radar bug: #1030303

> Release notes for this change:

Support the new SIZE(1) resource when launching applications.  Process Manager now checks
for SIZE(1), falls back on SIZE(0), falls further back on SIZE(-1), and then gives up and
uses default values for partition sizes.  It used to start the above sequence at SIZE(0).
Also, PM syncronizes the contents of the SIZE(1) (used for 7.1 and later) and SIZE(0)
(used for pre-7.1) before launching.  This is in case someone has edited the size for the
application under 7.0 and then launched it under 7.1 (or later).

> What was tested:

I launched applications with the changes installed, setting their sizes to various
values, and verified that launching behavior is the same as under 7.0.  Then I changed
several sizes under 7.0 to see what happened when launching them with Cube-E, and
everything went as expected (i.e. the SIZE(0) changes migrated to the SIZE(1) resource as
planned).
----------------------------------------------------------¥----------------------------------------------------------
6/8/92 9:32:27 AM

File: Schedule.c,21
Owner: John Harvey     
Project: MainProjºProcessMgrº

Radar bug: #1031701 1031701

> Release notes for this change:

Removing PtInRgn from imLayerMouseDown.  This is a superfluous test since the
swapCurLayer, FindWindow, SetCurLayer sequence which immediately follows the PtInRgn test
will always do the right thing.  In addition, for the PtInRgn call to work the layer
manager will always have to maintain the structrgn state as it is maintained today.  This
assumption will break (does break?) the shuffle window manager changes done by Dave
Collins for O.C.E.


> What was tested:

Build the system ran it with Akiko.  Mousedowns in floating windows still work correctly.
----------------------------------------------------------¥----------------------------------------------------------
6/12/92 03:18:22 PM

File: Data.h,37
Owner: pete helme     
Project: MainProjºProcessMgrº

File: MemoryMgr24Patches.c,10
Owner: pete helme     
Project: MainProjºProcessMgrº

File: MemoryMgr32Patches.c,11
Owner: pete helme     
Project: MainProjºProcessMgrº

Radar bug: #1032359

> Release notes for this change:

68040 memory manager (Terror ROM) has been patched to quadword align all blocks.  The
ProcessMgr has to do this in itÕs blocks too so that itÕs consistent and also remove the
possibility of physical size of the block being > 16 bytes beyond logical end of block.
This was creating problems in 24 bit mode where some blocks were getting way too big
because of mixed alignment.


> What was tested:

Tested with Installer (which is where we found the original bug) on Quadras in 24 & 32
bit mode.  ProcessMgr heap blocks are now quad word aligned. yeah!
----------------------------------------------------------¥----------------------------------------------------------
6/22/92 4:00:23 PM

File: Schedule.c,23
Owner: Yosuke Kurita     
Project: MainProjºProcessMgrº

Radar bug: #1033306

> Release notes for this change:

A Single Click occasionally acts like ÔDouble ClickÕ in floating windows.
This is because that the imLayerMouseDown function does not remove the mouse down event
from the event queue if the event was found by OSEventAvail in fg_resched.
Change imLayerMouseDown and fg_resched to remove the mouse down event for a floating
window whenever itÕs found.

> What was tested:

Click AkikoÕs pallet.  It no longer posts an character.
----------------------------------------------------------¥----------------------------------------------------------
6/22/92 7:56:12 PM

File: Data.h,38
Owner: Dean Yu     
Project: MainProjºProcessMgrº

File: MemoryMgr24Patches.c,11
Owner: Dean Yu     
Project: MainProjºProcessMgrº

File: MemoryMgr32Patches.c,12
Owner: Dean Yu     
Project: MainProjºProcessMgrº

File: MemoryMgrPatches.c,12
Owner: Dean Yu     
Project: MainProjºProcessMgrº

Radar bug: #1033275

> Release notes for this change:

The Terror Memory Manager wants to keep memory blocks 16-byte aligned for speed.
However, the Process Manager doesnÕt do this as itÕs creating application heaps, and
allocation temporary memory.  The original change was made in a routine that assumed
that the needed size would never be larger than the size of the free block that the
memory was being chipped off of.  When the change did the quad alignment, it broke this
assumption.  This winds up trashing the Process Manager heap.  Moved the quad alignment
out one level.  In this routine, there is code which aligns memory blocks on long word
boundaries.  The quad alignment code was added here, and quad alignment is done if weÕre
running on an 040 machine, and does the old longword alignment in other cases.

> What was tested:

Excel, TeachText, etc. donÕt crash on a Quadra any more if the preferred memory size is
set to be larger than available memory.
----------------------------------------------------------¥----------------------------------------------------------
7/8/92 1:56:52 AM

File: Lomem.h,4
Owner: Greg Marriott     
Project: MainProjºProcessMgrº

File: ResourceMgrPatches.c,8
Owner: Greg Marriott     
Project: MainProjºProcessMgrº

File: ResourceOverridePatches.a,52
Owner: Greg Marriott     
Project: MainProjºToolboxºResourceMgrº

Radar bug: #1035120

> Release notes for this change:

Fix the resource manager so it wouldnÕt cause problems for the font manager when
disposing or releasing a resource being referred to in the LastFOND global.  If the file
containing the FOND was closed, or the resource released, then a dangling handle would be
left in LastFOND.  A patch to ReleaseResource now clears LastFOND if the resource being
released is also referred to in LastFOND.  A patch to CloseResFile now clears LastFOND if
the file being closed contains any fonts (FONT, NFNT, and FOND).

> What was tested:

Run the crashing case from 1035120 and verify that it doesnÕt crash any more.  Also, pop
into the debugger and watch the patches zero the low memory global when appropriate.
----------------------------------------------------------¥----------------------------------------------------------
7/20/92 8:22:15 PM

File: EventMgrPatches.c,27
Owner: Kenny S. Tung     
Project: MainProjºProcessMgrº

Radar bug: #1033230

> Release notes for this change:

MouseDown event for the TSM aware application is posted to the PseudoEvent queue (and the
original even is changed to a NULL event). This MouseDown event should have higher
precedence than the UpdateEvent when GetNextEvent() is called (IM I-245). There was a bug
in our patch to the Process Manager which didnÕt check the PseudoEvent queue when an
UpdateEvent is been generated. And therefore in this particular case, GetNextEvent() only
returns NULL event and UpdateEvent to the ModalDialog. Because there is no MouseDown
event been sent to the input method, AkikoÕs floating window cannot be dragged.
You may ask why it works without TSMTE. The answer is when a MouseDown event happens and
the application is not TSM aware, that MouseDown event gets send to the SWM driver
directly thru the _Control call.

> What was tested:

Tested with Kadokawa and we can drag AkikoÕs window now. However, we would like this
change gets more test support from SQE to make sure it is perfect.
----------------------------------------------------------¥----------------------------------------------------------
7/27/92 5:05:57 PM

File: EventMgrPatches.c,28
Owner: Dean Yu     
Project: MainProjºProcessMgrº

Radar bug: #1037295

> Release notes for this change:

In the previous change, retVal would be set to the result from GetNextPseudoEvent.  If
there is no pseudoevent, the pending update event is never processed.  This causes modal
dialogs to come up blank.  DonÕt set retVal to be the result of GetNextPseudoEvent so
that updates will be processed if there are no pseudo events.

> What was tested:

A reproducable case was found with the Curare application when trying to save a file.
The ÒAre you sure you want to replaceÓ subdialog from Standard File would come up blank.
With this change, this modal dialog is always drawn correctly.
----------------------------------------------------------¥----------------------------------------------------------
8/13/92 12:31:33 PM

File: EventMgrPatches.c,30     
Owner: Kenny S. Tung     
Project: MainProjºProcessMgrº

Radar bug: #1039646

> Release notes for this change:

PhotoShop would crash if you opened a TSM floating window.  The problem was the the
changes in event_common to support floating windows just ignored activate events, since
activate events donÕt make sense in terms of floating windows.  That meant that activate
events for floating system windows were mistakenly passed to applications.  This
apparently didnÕt matter much for must apps, but PhotoShop graps a code block out of the
windowÕs refcon and tries to jump to it.  Since the refcon of a system floater is
something very different from a ptr to a block of code, PhotoShop would crash.

This was fixed by changing event_common so that it pays attention to activate events
intended for system floating windows.  Now these are converted to nullevents, and false
is returned by event_common.

> What was tested:

Built a new system ran Photoshop, opened akiko,  moved its windows around, typed text,
etc.
----------------------------------------------------------¥----------------------------------------------------------
8/17/92 3:05:33 PM

File:	Data.c,23
		Data.h,40
		EventMgrPatches.c,31
		OSDispatch.c,15
		Schedule.c,25
		Startup.c,23
Owner: Herm‡n J. Camarena     
Project: MainProjºProcessMgrº

> Release notes for this change:

Implemented support for the "Defer Drag" feature of OCE.  All changes are conditionally compiled under MODSQUAD.

> What was tested:

Built a new system ran Claris Applications, OCE a9, Bungee finder, etc.
----------------------------------------------------------¥----------------------------------------------------------
8/26/92 3:48:09 PM

File: Aux.c,5     
Owner: Dean Yu     
Project: MainProjºProcessMgrº

File: Aux.h,3     
Owner: Dean Yu     
Project: MainProjºProcessMgrº

File: Data.h,41     
Owner: Dean Yu     
Project: MainProjºProcessMgrº

File: EventMgrPatches.c,32     
Owner: Dean Yu     
Project: MainProjºProcessMgrº

File: OSDispatch.c,16     
Owner: Dean Yu     
Project: MainProjºProcessMgrº

File: OSDispatchPrivate.h,11     
Owner: Dean Yu     
Project: MainProjºProcessMgrº

File: Processes.c,52     
Owner: Dean Yu     
Project: MainProjºProcessMgrº

File: Startup.c,24     
Owner: Dean Yu     
Project: MainProjºProcessMgrº

File: Switch.c,19     
Owner: Dean Yu     
Project: MainProjºProcessMgrº

File: SysMisc.h,13     
Owner: Dean Yu     
Project: MainProjºProcessMgrº

Radar bug: 

> Release notes for this change:

Roll in latest A/UX changes.

> What was tested:

All changes have been conditionalized for A/UX, and do not affect Cube-E or the System
build.
----------------------------------------------------------¥----------------------------------------------------------
8/26/92 4:18:20 PM

File: Data.c,24     
Owner: Dean Yu     
Project: MainProjºProcessMgrº

File: Data.h,42     
Owner: Dean Yu     
Project: MainProjºProcessMgrº

File: EventMgrPatches.c,33     
Owner: Dean Yu     
Project: MainProjºProcessMgrº

File: OSDispatch.c,17     
Owner: Dean Yu     
Project: MainProjºProcessMgrº

File: Schedule.c,26     
Owner: Dean Yu     
Project: MainProjºProcessMgrº

File: Startup.c,25     
Owner: Dean Yu     
Project: MainProjºProcessMgrº

Radar bug: 

> Release notes for this change:

Change the funky MODSQUAD conditional to be #ifdefÕs like everything else.

> What was tested:

No object code was changed at all.
----------------------------------------------------------¥----------------------------------------------------------
9/25/92 2:23:36 PM

File: DAHandler.a,4     
Owner: Dave Falkenburg     
Project: MainProjºProcessMgrº

File: DAHandler.c,16     
Owner: Dave Falkenburg     
Project: MainProjºProcessMgrº

File: MenuMgrPatches.c,10     
Owner: Dave Falkenburg     
Project: MainProjºProcessMgrº

File: ProcessMgrMisc.a,18     
Owner: Dave Falkenburg     
Project: MainProjºProcessMgrº

File: Startup.c,26     
Owner: Dave Falkenburg     
Project: MainProjºProcessMgrº

Radar bug: 

> Release notes for this change:

Eliminated MyGestalt() from DAHandler and ProcessMgr.  This ended up putting two copies
of assembly glue to call _Gestalt into the system file.  Since _Gestalt is inline glue
anyway, this was a waste of time.

> What was tested:

Built System
----------------------------------------------------------¥----------------------------------------------------------
10/27/92 6:22:14 PM

File: Switch.a,7     
Owner: Dean Yu     
Project: MainProjºProcessMgrº

File: Switch.c,21     
Owner: Dean Yu     
Project: MainProjºProcessMgrº

Radar bug: 

> Release notes for this change:

Change some BlockMoves to BlockMoveData, so the caches donÕt get flushed.

> What was tested:

Built a new Process Manager and booted with it.  On systems with BlockMoveData,
BlockMoveData is used, and the caches arenÕt flushed.  On systems without BlockMoveData,
the old BlockMove is used.
----------------------------------------------------------¥----------------------------------------------------------
