v398l78e@ubvmsd.cc.buffalo.edu (William E de Roo) (04/17/91)
Can anyone explain this to me &/or suggest a fix? I am intercepting characters typed into a field, using a keyDown handler. My goal is to know when text is the field is deleted (i.e., when backspace is pressed), and when it is replaced (i.e., when the user makes a selection, then types 'over' it). The problem arises when I pass the keyDown message on so that Hyper- Card can actually do the typing as usual. Whenever I backspace or replace text, my handler notes which line(s) are affected so I can do some other things later (on idle); then I pass (or send -- same problem) keyDown on. The problem is that HyperCard doesn't update the whole screen area of the field after it does the delete/replacement, so I get half-lines, duplicate lines, and phantom lines on the screen that aren't really there. I tried adding statements like lock & unlock screen, go to this card, and choose browse tool, but these all lose the insertion point in the field, and I don't want to interrupt the user's typing. I have run the stack sans inits, so I know an init conflict isn't the issue. It's a HyperCard 2.0 stack, by the way. Any ideas? -- Bill De Roo