Newsgroups: comp.sys.apple2.programmer Path: news.weeg.uiowa.edu!news.uiowa.edu!hobbes.physics.uiowa.edu!math.ohio-state.edu!sdd.hp.com!swrinde!elroy.jpl.nasa.gov!decwrl!olivea!apple.com!goofy.apple.com!mumbo.apple.com!gallant.apple.com!kip-86.apple.com!dlyons From: David A Lyons Subject: Standard File keyboard navigation Sender: news@gallant.apple.com Message-ID: <1993Aug4.231751.11594@gallant.apple.com> X-Useragent: Nuntius v1.1.1d27 Date: Wed, 4 Aug 1993 23:17:51 GMT X-Xxdate: Wed, 4 Aug 93 23:57:31 GMT X-Xxmessage-Id: References: Organization: Apple Computer, Inc. Lines: 33 In article Frank M. Lin, fmlin@netcom.com writes: > I forgot to save the article you wrote which discribed how to fix the > standard file dialog key navigation bug. Can you write it again? ListKey lets navigation strings accumulate even across calls that rebuild the list being navigated in, so the fix is to patch the List Manager to clear the accumulated navigation string when the list -being navigated in- gets rebuilt. Calling ListKey with a keyDown event of the Clear key (character 18, same as Control-X) will clear the prefix string. The trick is figuring out what to actually do. Patching NewList2 is a start: nuke the string -if- the control being operated on matches the control that was last passed to ListKey, implying that you need to patch ListKey to make note of what control it got fed most recently. (If some -other- list gets rebuilt, you should keep navigating. For example, in ChooseFont every key you type while navigating the family list causes the size list to get rebuilt.) But Standard File uses NewList rather than NewList2, so it doesn't pass a control handle. I haven't checked on how hard it is to correlate the List Record Pointer passed to NewList to a control handle. A completely different approach would be to make Standard File do a special ListKey call to clear the string whenever it is rebuilding the file list. (But that would only fix things for Standard File.) Dave Lyons, dlyons@apple.com Mr Tangent My opinions are my own, not Apple's.