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
|