# # File: TextServicesMgr Release Notes # # Contains: xxx put contents here xxx # # Written by: Kenny S. Tung and friends. # # Copyright: © 1992 by Apple Computer, Inc., all rights reserved. # # Change History (most recent first): # # <49> 8/5/92 KST Added comments for the last change. # <21> 6/11/92 KST Added a warning message for the last change. # # TextServicesMgr Release Notes First created on: 4/20/92 6:47:55 PM ----------------------------------------------------------•---------------------------------------------------------- 4/20/92 6:48:09 PM File: TSMInternalUtils.c,17 Owner: Yosuke Kurita Project: MainProj∫Toolbox∫TextServicesMgr∫ Radar bug: #1026761 > Release notes for this change: Before calling InsertMenu and DrawMenuBar, make sure that the menu handle is not NIL. Avoid HUnlocking for the disposed handle. Release note for TSMFunctions.c was not checked in becuse of an error. > What was tested: Shaio Chen’s tool, which used to crash, does not crash with this fix. ----------------------------------------------------------•---------------------------------------------------------- 5/1/92 9:17:39 AM File: TSMInternalUtils.c,19 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ Radar bug: #1028881 > Release notes for this change: If open IM for SWM’s document, set the zone to system zone so that the Component instance will not get closed when the application exits. > What was tested: If you quit any non-TSM aware app using KIM, KIM’s instance got closed. Now it does not get closed. ----------------------------------------------------------•---------------------------------------------------------- 5/1/92 11:19:25 AM File: TSMDispatch.a,30 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ File: TSMUtility.c,34 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ Radar bug: #1028301 > Release notes for this change: Since we changed SWM to a driver, RestoreTSMDialogState, TSMChangeCursor, TSMRestoreCursor calls are no longer needed and should be removed from the source code. > What was tested: Design change. ----------------------------------------------------------•---------------------------------------------------------- 5/1/92 8:48:38 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/2/92 4:53:23 PM File: TSMDispatch.a,32 Owner: Yosuke Kurita Project: MainProj∫Toolbox∫TextServicesMgr∫ Radar bug: > Release notes for this change: Fix <31>. Flush the parameter on the stack before return to a caller. > What was tested: Track code with MacsBug. ----------------------------------------------------------•---------------------------------------------------------- 5/4/92 3:35:15 PM File: TSMDispatch.a,33 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ Radar bug: #1025252 > Release notes for this change: Patched _PaintBehind. AfterDark redraws the screen with FrontWindow(), and Grayrgn. This however, does not draw input method’s floating windows. This patch will paint from IM layer if theWindow = frontwindow, and theRegion = GrayRgn. > What was tested: Both “AfterDark” and “Pyro” are working with floating windows now. ----------------------------------------------------------•---------------------------------------------------------- 5/6/92 10:10:53 AM File: TSMFunctions.c,37 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ File: TSMUtility.c,35 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ Radar bug: #1028642 > Release notes for this change: When switch from a TSM document using Akiko to another TSM document using Roman script. Akiko’s pallete is still visible. Need to do some special checking when we activate the second document in non-CJK script. > What was tested: I tried switch from DOC1 (with Akiko) to DOC2 (use Roman), Akiko’s pallete got taken down now. ----------------------------------------------------------•---------------------------------------------------------- 5/13/92 4:47:47 PM File: TSMUtility.c,37 Owner: John Harvey Project: MainProj∫Toolbox∫TextServicesMgr∫ Radar bug: > Release notes for this change: To change NewServiceWindow so that we set windowKind to identify whether a floating window belongs to an application or to the system. We use the new window kinds applicationFloatKind(6) and systemServiceKind(7). If an application opens a floating window it needs to pass kCurrentProcess as the ComponentInstance parameter. When this happens the windowKind gets set to applicationFloatKind. If the caller of new service window is anything other than kCurrentProcess the windowKind is set to systemFloatKind. > What was tested: Build the system tested the current input methods. ----------------------------------------------------------•---------------------------------------------------------- 5/14/92 6:59:19 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/18/92 3:54:28 PM File: TextServices.a,25 Owner: Kenny S. Tung Project: MainProj∫Interfaces∫AIncludes∫ File: TextServices.h,43 Owner: Kenny S. Tung Project: MainProj∫Interfaces∫CIncludes∫ File: TSMFunctions.c,38 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ Radar bug: #1029814 > Release notes for this change: NewTSMDocument didn’t check if supported type is the right type. Now it will check the number of interface type and check if the type is ‘tsvc’, if not it will return ‘tsmUnsupportedTypeErr’. Also added ‘tsmUnsupportedTypeErr’ in TextServicesMgr.[ah]. > What was tested: Tested with TSMTest tool TCS #4 and #6. ----------------------------------------------------------•---------------------------------------------------------- 5/19/92 5:17:54 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. ----------------------------------------------------------•---------------------------------------------------------- 5/20/92 12:43:23 PM File: TSMUtility.c,39 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ Radar bug: #1030422 > Release notes for this change: If we switch from SJip to KIM, and then to Akiko. Since the use old JIM flag is still set for Japanese script, Akiko did not get activated. Changed SetDefaultInputMethod to special check for this case. If the flag is true, I’ll do the following: 1. Set script flag to false, 2. Set the use_old_JIM flag to false, 3. Update the system resource file. > What was tested: Tested the input methods switching sequence SJip -> KIM -> Akiko, or SJip -> Roman -> Akiko. They all work fine. ----------------------------------------------------------•---------------------------------------------------------- 5/20/92 1:59:37 PM File: TSMDispatch.a,35 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ Radar bug: #1030447 > Release notes for this change: A boolean passed in by C compiler is 4 bytes !! When xUseInputWindow calls this routine and pass us the Boolean flag, I used MOVE.B to get the flag, which got garbage from the stack. > What was tested: Tested with Richard’s tool. work great. ----------------------------------------------------------•---------------------------------------------------------- 6/2/92 7:32:56 PM File: TSMDispatch.a,36 Owner: John Harvey Project: MainProj∫Toolbox∫TextServicesMgr∫ File: TSMFunctions.c,39 Owner: John Harvey Project: MainProj∫Toolbox∫TextServicesMgr∫ File: TSMInternalUtils.c,23 Owner: John Harvey Project: MainProj∫Toolbox∫TextServicesMgr∫ File: TSMUtility.c,41 Owner: John Harvey Project: MainProj∫Toolbox∫TextServicesMgr∫ Radar bug: #1028635,1030481,1030631,1030634,1030647 > Release notes for this change: Fixed bunch of Menu placement and drawing bugs by making input method menu system menus. Added a routine to add input method windows to the system menu by the standard method of inserting into the menulist and system menulist, calling MBDF, and finally calling InvalMenuBar (TSMInternalUtils.c) Changed TSMFunctions to call the above routine when dealing with a new input method menu. TSMDispatch was changed to have the SystemMenu patch Changed FindServiceWindow in TSMUtility to fix a crashing bug discovered while working on this (basically FindWindow crashes if MenuList is NIL) so before we call FindWindow we check the menulist. > What was tested: Built TSMInit, loaded it with New Akiko, rebooted, the menu comes up with an icon (purple pencil), and the menu works (used it to select Akiko help window). ----------------------------------------------------------•---------------------------------------------------------- 6/4/92 1:37:40 PM File: TSMInternalUtils.c,25 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ Radar bug: #1031578 > Release notes for this change: Input method’s menu showed up in the system menu when in a Roman script. We changed utDeleteMenu to make sure the menu is deleted from the system menu list if the system script does not use input method. > What was tested: Tried with Akiko in Roman system, the problem is gone. ----------------------------------------------------------•---------------------------------------------------------- 6/4/92 7:20:04 PM File: TSMDispatch.a,39 Owner: John Harvey Project: MainProj∫Toolbox∫TextServicesMgr∫ Radar bug: #1031574 > Release notes for this change: The HMGetBalloonPatch was leaving the old help window up when menus were pulled down when a floating text service window was open. To fix this we changed HMGetBalloonPatch to check the window part code for inSysWindow and inMenuBar, as well as inDesk. If it is inSysWindow, inMenuBar or inDesk, we return the correct result for HMGetBalloon (i.e. the real result returned by the real trap). Formerly, we only returned the correct result when inDesk was returned. > What was tested: Built the system ran the new system with help on and Akiko windows open. It doesn’t leave the old balloon up anymore. ----------------------------------------------------------•---------------------------------------------------------- 6/10/92 11:13:21 AM File: TSMUtility.c,42 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ Radar bug: #1031634 > Release notes for this change: We patched HMGetBalloon to call FindServiceWindow for supporting floating window. FindWindow will call MBDF when the mouse is pressed However, MBDF will call HMGetBalloon when Help is on and the mouse is pressed in the menu bar, HMGetBalloon will call MBDF because of our patch. The MBDF code lock the menulist handle on entry, but unlock it on exit. So after the HMGetBalloon call, the handle is not locked but MBDF keeps a dereferenced pointer, and ..... system will eventually crash. The fix is to save the handle state before and restore it after the FindWindow call. > What was tested: We traced in debugger. Before the fix, the handle was not locked after the FindServiceWindow call. After the fix, now it remained locked. ----------------------------------------------------------•---------------------------------------------------------- 6/10/92 2:49:57 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, 1030646 > 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. > •• Warning: This change requires a new SWM driver. To use this version of TSM, •• you need WorldScript II A18 or later. ----------------------------------------------------------•---------------------------------------------------------- 6/10/92 3:32:58 PM File: TSMDispatch.a,41 Owner: Yosuke Kurita Project: MainProj∫Toolbox∫TextServicesMgr∫ File: TSMUtility.c,44 Owner: Yosuke Kurita Project: MainProj∫Toolbox∫TextServicesMgr∫ Radar bug: #1031298 > Release notes for this change: If the default input method is the old-Japanese input method, GetDefaultInputMethod returns it even if it has not been loaded. Fixed this. > What was tested: Built LinkedPatch. Put Input methods, and take out the default one. It doesn’t crash. ----------------------------------------------------------•---------------------------------------------------------- 6/13/92 5:51:13 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/14/92 2:44:40 PM File: TSMFunctions.c,41 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ File: TSMUtility.c,46 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ Radar bug: #1032466 > Release notes for this change: Fixed the bug when running a TSM aware application in Roman primary script, select SJip and then Akiko, Akiko is not activated. > What was tested: I tried switch from Roman to SJip and then to Akiko, it works. ----------------------------------------------------------•---------------------------------------------------------- 6/16/92 3:54:03 PM File: TSMInternalUtils.c,31 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ Radar bug: #1032645 > Release notes for this change: (Roman primary) In a TSM aware application, turn UseInputWindow ON, select a script which has no input method, turn UseInputWindow OFF, change to Akiko, Select another App’s window. Althou we have Akiko’s icon but there is no pencil and can’t type in Japanese. Fixed in TSMInternalUtils.c. > What was tested: Tested with newKadokawa and TeachText. It works great. ----------------------------------------------------------•---------------------------------------------------------- 6/17/92 11:13:09 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/17/92 11:33:58 AM File: TSMFunctions.c,44 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ Radar bug: #1032643 > Release notes for this change: 1. Boot up Cube-E b5 base and a18 WS II, Akiko, Sjip, and Korea from any system. 2. Launch “NewKadokawa”. 3. Select “Akiko” from the KEYBOARDS menu. 4. Close the document window. 5. Go back to the Finder. 6. Go back to NewKadokawa. Notice that the “Pencil” menu will appear. > What was tested: Tested with the newKadokawa. It works now. ----------------------------------------------------------•---------------------------------------------------------- 6/17/92 1:24:15 PM File: TextServices.h,45 Owner: Kenny S. Tung Project: MainProj∫Interfaces∫CIncludes∫ File: TSMFunctions.c,45 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ Radar bug: #1032783 > Release notes for this change: TSMDocument refcon can not be retrieved correctly. This is because TSM is storing TSMDocument refcon in keyDirectObject parameter instead of keyAETSMDocumen > What was tested: Changed to use keyAETSMDocumen in my code. ----------------------------------------------------------•---------------------------------------------------------- 6/19/92 9:12:36 AM File: TSMDispatch.a,45 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ File: TSMInternalUtils.c,33 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ Radar bug: #1032492 > Release notes for this change: When switching input methods within the same script, need to delete the previous menu and then insert the new one. In the case when input method does not have a menu, need to make sure no previous menu left over in the menu bar. > What was tested: I installed 3 more testing Korean input method in the system (running Korean as the primary script). I can switch between them and see the correct menu displayed. When switched to KIM, no menu displayed because KIM doesn’t have menu. ----------------------------------------------------------•---------------------------------------------------------- 6/22/92 9:22:36 AM File: TextServices.h,46 Owner: Kenny S. Tung Project: MainProj∫Interfaces∫CIncludes∫ File: TSMInternalUtils.c,34 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ File: TSMUtility.c,49 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ Radar bug: #1030843 > Release notes for this change: When the current active document is nil and we switch from old input method to TSM-styled input method, need to reset the useOldJIM flag to flase. Added one new Apple Event ‘ShowHideInputWindow’ in TextServices.h header file. > What was tested: Tested with Kadokawa, switch from old to new input method works now. ----------------------------------------------------------•---------------------------------------------------------- 6/22/92 12:56:34 PM File: TSMInternalUtils.c,35 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ Radar bug: #1032492 > Release notes for this change: (For the #33 fix in TSMInternalUtils.c) When switching input methods, we need to remove the old input method’s menu from the system menulist I was using the wrong routine, I should use ‘utDeleteInputMethodsPreviousMenu’, not ‘utDeleteMenu’. > What was tested: Coding error. ----------------------------------------------------------•---------------------------------------------------------- 6/22/92 6:50:55 PM File: TSMDispatch.a,46 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ Radar bug: #1033280,1033495 > Release notes for this change: The bus error occurs in PACK 14 (Help manager) after the _FrontWindow routine has returned a null for the front window. This is because I only checked inDesk for the part code returned from FindServiceWindow, I really should check inSysWindow, and inMenu too. If the mouse is over the menu, Help Manager thinks it is over a floating window. Fixed in TSMDispatch.a. > What was tested: Homi tested with the TSMInit I built, and it is not crashing anymore. ----------------------------------------------------------•---------------------------------------------------------- 6/24/92 10:54:56 AM File: TSMInternalUtils.c,36 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ Radar bug: #1033456 > Release notes for this change: When CloseTSMAwareApplication() is called, I need to call utDeleteCleanUpTSMDocument(). Defined the routine in this file. Also when we close an input method, we better take down its pallete too. > What was tested: Shiao-Chen tested with her tool and said the problem is fixed. ----------------------------------------------------------•---------------------------------------------------------- 6/26/92 12:18:14 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. ----------------------------------------------------------•---------------------------------------------------------- 6/26/92 4:46:00 PM File: TSMDispatch.a,48 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ Radar bug: #1031142 > Release notes for this change: When the application claims not TSM aware any more, we need to clear all UseInputWindow flags so it will not be reused when another TSM aware app is launched. > What was tested: We launch Kadokawa after quitting it with UseInputWindow global flag on and it is not using input window now. ----------------------------------------------------------•---------------------------------------------------------- 6/30/92 6:12:20 PM File: TSMUtility.c,52 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ Radar bug: #1030903,1033475 > Release notes for this change: We had the agreement with the keyboard menu code that TSM will call SetScript(false) in SetDefaultInputMethod(). So I am making the change to do the right thing. > What was tested: We used to have the bug that old and new Japanese input method were not synchronized correctly. Now it works. ----------------------------------------------------------•---------------------------------------------------------- 7/1/92 9:38:55 PM File: ThingManager.c,11 Owner: John Harvey Project: MainProj∫Toolbox∫ComponentMgr∫ File: TSMInternalUtils.c,38 Owner: John Harvey Project: MainProj∫Toolbox∫TextServicesMgr∫ Radar bug: #1033507,1033505 > Release notes for this change: We put a check into the ThingManager.c that would refuse to open a component if the slop in the system heap was too low. However, I forgot that Bruce Leak told me that the thingmanager is super smart and clever and will put things into app heaps when system memory is too low. That meant that in certain situations components that should have been opened in the app heap weren’t being allowed to open because of lack of space in the system heap. So to fix this we moved the system heap check into TSM. Since input method’s are notorious memory hogs and also have to be opened in the system heap we check for system heap slop after opening one of them. If there isn’t enough space we close the input method. > What was tested: Ran the component test tools saw the attempt to open a component in the system heap fail, and then watched that component get opened in the application heap. ----------------------------------------------------------•---------------------------------------------------------- 7/2/92 2:19:32 PM File: TSMInternalUtils.c,39 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ Radar bug: #1034430 > Release notes for this change: When handling input methods, in some cases I forgot to check if the script is one of CCJK. If it is not we should not call utGetScriptIndex() because later on when accessing the array, we’ll write to memory that does not belong to us and trashes the heap. > What was tested: Tested with kadokawa and the problem is gone. ----------------------------------------------------------•---------------------------------------------------------- 7/6/92 9:29:10 AM File: TSMFunctions.c,50 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ File: TSMInternalUtils.c,40 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ File: TSMUtility.c,53 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ Radar bug: #1033507,1033505 > Release notes for this change: 1. For the fix 38 in TSMInternalUtils.c, when we close the instance, need to call HidePalleteWindows(). 2. Don’t change the tsmScript/Language if utOpenIM4Document() failed. Need to put up a notification to warn the user (the later is not done yet, waiting for the bug to get approved). 3. Clear the kIMJustSetCursor bit before the SetTextServiceCursor() call so that IM can change cursor from inside of the current input area. > What was tested: HidePalleteWindows() call is a noop if input method does not have pallete. Tested in low memory condition for case 2. Tested with Akiko for case 3. ----------------------------------------------------------•---------------------------------------------------------- 7/8/92 3:57:17 PM File: TSMFunctions.c,51 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ File: TSMInternalUtils.c,41 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ File: TSMUtility.c,54 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ Radar bug: #1033475 > Release notes for this change: 1. In SetTextServiceLanguage(), when we activate an input method, make sure we are not using old JIM. If we are, don’t activate the TSM-styled Input Method. 2. Changed the routine name utHasNoInputMethod() to utScriptIsNotCCJK() to be more descriptive. 3. If we can’t open input method because there is no IM, then don’t restore old state info. KeyBoard menu will change the script ignoring our error code. > What was tested: Tested with Akiko and SJip, the pallete doesn’t show up now. We took out the ChineseIM and switch from Akiko to Chinese, or from KIM to Chinese, they all seem to work well. ----------------------------------------------------------•---------------------------------------------------------- 7/9/92 12:00:44 PM File: TSMFunctions.c,52 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ Radar bug: #1035067 > Release notes for this change: When there is no TSM document in a TSM aware application, we call UseInputWindow(nil, true). But that fix did not check re-entrant case. So this bug happens. The fix is to check the flag, if it is already set, then we know we have been called again and just return. > What was tested: Tested with Kida-san’s new Kadokawa and the problem goes away. ----------------------------------------------------------•---------------------------------------------------------- 7/13/92 3:55:59 PM File: TSMFunctions.c,53 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ Radar bug: #1035594 > Release notes for this change: In xActivateTSMDocument(), I assumed when a TSM aware application calls ActivateTSMDocument(), the other document has been deactivated (as the ERS said). This is apparently not a wise assumption because application writer could be as dumb as me and will make mistake. (Like the one they do to produce this bug). > What was tested: Tested with Kadokawa and cannot reproduce the bug anymore. ----------------------------------------------------------•---------------------------------------------------------- 7/16/92 7:11:27 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. ----------------------------------------------------------•---------------------------------------------------------- 7/22/92 8:23:13 PM File: TSMInternalUtils.c,42 Owner: John Harvey Project: MainProj∫Toolbox∫TextServicesMgr∫ Radar bug: #1031828 > Release notes for this change: On Rubiks when tsmFinder launches a application they deactivate the Finder’s TSMDocuments. Then if a non-TSM aware calls InitMenus and then calls GetNextEvent, SWM will activate its document when it gets the accRun call from the system (as a result of the GetNextEvent call). When the swm document is activated TSM will insert the input methods menu in the menulist. The trouble with this is that if there are no menus in the list (i.e. InitMenus was called but no insertMenu yet), the FEP menu will be the only system menu in the menulist. This apparently prevents the other system menus from being added. So the eventual result is a menubar with the application menus and one silly looking pencil hanging out on the right end. We fixed this by checking to see if there are any menus in the menulist before we insert the FEP menu. Change is in utCreateSystemVersionOfMenu. > What was tested: Ran EGBridge on Rubiks with an init that contained the change. We didn’t have the pencil hanging out. ----------------------------------------------------------•---------------------------------------------------------- 7/27/92 9:09:32 AM File: TSMDispatch.a,53 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ File: TSMUtility.c,55 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ Radar bug: #1037539 > Release notes for this change: When I do a _DisposWindow on the large, obscuring window, I crash under 7.1b4. The problem is caused by the _PaintBehind patch. It calls GetFrontServiceWindow() before the Process Manager is initialized. > What was tested: In MacBugs I see it is doing the right thing. ----------------------------------------------------------•---------------------------------------------------------- 7/31/92 9:33:02 AM File: TSMInternalUtils.c,43 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ Radar bug: #1037798 > Release notes for this change: Fixed a memory leak bug in utCleanUpPreviousDoc(). The check and disposeHandle call should be executed outside of the if statement. > What was tested: Watched the code executed in the MacsBug. ----------------------------------------------------------•---------------------------------------------------------- 7/31/92 11:10:42 PM File: TSMInternalUtils.c,44 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ File: TSMUtility.c,56 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ Radar bug: #1038311 > Release notes for this change: We can’t call application to fix input area when script changes (ie., Cmd-space) because the SetTextServiceLanguage() call is issued inside of the GetOSEventPatch of the Script Manager code. When we are running inside of GetOSEvent(), the A5 points to Process Manager’s global. If we call FixTSMDocument(), input method will send Apple Event to the application, and very bad things could happen when the application accesses its globals. > What was tested: The TSMChat used to crash because of this problem, now it doesn’t. ----------------------------------------------------------•---------------------------------------------------------- 8/4/92 3:11:13 PM File: ScriptMgrKeyGetSet.a,50 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫ScriptMgr∫ File: TSMInternalUtils.c,45 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ File: TSMUtility.c,59 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ Radar bug: #1038311 > Release notes for this change: : Undo the previous fix and now set up application’s a5 in KeyScript() routine. Also clear the menu handle kept in TSM global when the last instance is closed. > What was tested: The previous fix does not call FixTSMDocument(), now it does. You can see it with a TSM aware application. Also TSMChat does not crash with this fix. ----------------------------------------------------------•---------------------------------------------------------- 8/4/92 8:42:47 PM File: TSMInternalUtils.c,47 Owner: Kenny S. Tung Project: MainProj∫Toolbox∫TextServicesMgr∫ Radar bug: #1038603, #1038606 > Release notes for this change: System crashes when Akiko’s last instance is closed because the menu handle has been disposed but TSM still keeps a copy in the global. Fixed the problem in F1C4 by clearing the handle in the TSM global. •• Note: However, the final wisdom on handling input method's menu handle is that input method should NEVER dispose the menu even when the last instance is closed. This is because multiple applications can be running each with a menu in the application's menu list. If the input method disposes the menu while in one application, it will leave its handle in other applications becomes dangling. There is no way to solve this problem other than hold the menu handle once its been created. Input method should keep the menu handle in Component's Refcon for reuse. (See Component Manager ERS for details on using the Refcon). > What was tested: Kadokawa uses to crash with Akiko B7 when quit that application, now it works fine. ----------------------------------------------------------•----------------------------------------------------------