fry@math.harvard.edu (David Fry) (03/24/91)
I'm trying to rig the jGNEFilter so I can have my own windows working in SuperCard along with SuperCard itself, just like HyperCard 2.0. One problem I've noticed is that the jGNEFilter is not receiving update events for my windows when SuperCard is not the foreground application. The result is you can drag a Finder window (for instance) over top one of my windows and my window doesn't redraw itself. Yes, the jGNEFilter is still being called, but not with any update events. For the gurus: does anyone know off hand if this is a standard MultiFinder thing, or is SuperCard playing with my windows unknowingly when it is switched out by MF? I can force a redraw when SuperCard returns, but it's sort of sloppy. Thanks in advance David Fry fry@math.harvard.EDU Department of Mathematics fry@huma1.bitnet Harvard University ...!harvard!huma1!fry Cambridge, MA 02138
mandel@vax.anes.tulane.edu (Jeff E Mandel MD MS) (03/25/91)
In article <6121@husc6.harvard.edu>, fry@math.harvard.edu (David Fry) writes: > >I'm trying to rig the jGNEFilter so I can have my own windows working >in SuperCard along with SuperCard itself, just like HyperCard 2.0. >One problem I've noticed is that the jGNEFilter is not receiving >update events for my windows when SuperCard is not the foreground >application. The result is you can drag a Finder window (for >instance) over top one of my windows and my window doesn't redraw >itself. Yes, the jGNEFilter is still being called, but not with any >update events. > >For the gurus: does anyone know off hand if this is a standard >MultiFinder thing, or is SuperCard playing with my windows >unknowingly when it is switched out by MF? I can force a redraw when >SuperCard returns, but it's sort of sloppy. > I'm not sure I'm a guru; generally, when I hit the ceiling it's on a ballistic trajectory rather than by slow levitation, but here goes... As I recall (I don't have all my manuals at home), Multifinder has two levels of context switch; major and minor. Major is used for a full context switch, i.e. you moused in an inactive application's window and it is being brought to the foreground, where as minor is for update and activate events. Now this is where my memory gets hazy, but it seems to me that minor switches do not result in all the low memory globals being copied back in from where they are stored when you get switched out. Since your GNEFilter runs only by virtue of being present in the low memory global, the value simply isn't there when you get the update event and SuperCard is in the background. Sigh, Extreme disheartenment (OK, I've been watching Mork and Mindy on Nickleodeon. I only do it to make my two year old happy ;-) ). Is there a workaround? Nothing that you can do from within SuperCard (unless you know the format of the Multifinder store for low memory globals and want to go and patch each application's jGNEFilter). Basically, it takes an INIT which loads your GNEFilter into the system heap and either patches the GetNextEvent/WaitNextEvent traps or installs the jGNEFilter pointer early, before Multifinder develops illusions about what the contents of low memory should be. Bummer. I wouldn't even look at it unless I had two weeks to burn. Of course I could be totally wrong about this, but, then, who hasn't? Jeff E Mandel MD MS Asst. Professor of Anesthesiology Tulane University School of Medicine New Orleans, LA mandel@vax.anes.tulane.edu