The Puzzle Page

Bob Arning arning at charm.net
Thu Dec 14 23:35:57 UTC 2000


On Thu, 14 Dec 2000 14:45:59 -0800 "Raab, Andreas" <Andreas.Raab at disney.com> wrote:
>Dan wrote:
>> >>2.  Open any two browsers.  Click first in one, then the 
>> other.  Note that the entire window gets repainted not once 
>> but twice.  Fix this.
>> 
>> ... and Bob replied...
>> >Hmm... AFAICT the double draw happens when you click on the 
>> second window in the title bar and you have the right 
>> preferences set and you leave the mouse down long enough and  
>> etc.. so that the window is actually picked up. 
>
>Not quite. Try the following: Click on the browser and KEEP THE MOUSE
>PRESSED. The first redraw obviously happens through SysWindow>>activate
>(which is fine). Now let go the mouse button. The second redraw happens in
>response to #mouseEnter: (showing the scrollbar etc). Which - in a way - is
>fine too.

Here is a variation on that:

- I clicked on an inactive SystemWindow to bring it to the front and kept the mouse down
- the window drew with the debugging flash
- I waited a bit and then released the mouse and it drew again.

This is the stack trace:

SystemWindow(Morph)>>invalidRect:from:
SystemWindow(Morph)>>invalidRect:
SystemWindow(Morph)>>changed
SystemWindow(Morph)>>stopSteppingSelector:
SystemWindow(Morph)>>handleMouseUp:
MouseButtonEvent>>sentTo:
SystemWindow(Morph)>>handleEvent:
SystemWindow(Morph)>>handleFocusEvent:
HandMorph>>sendFocusEvent:to:
HandMorph>>sendEvent:focus:
HandMorph>>handleEvent:
HandMorph>>processEvents

I'm not sure why a mouse up should cause a morph to redraw.

Cheers,
Bob





More information about the Squeak-dev mailing list