<Swing Dev> Review request #3: 6852592 (revalidate() must be smarter)

Alexander Potochkin Alexander.Potochkin at Sun.COM
Thu Jul 30 12:29:13 UTC 2009


Hello Anthony

>>
>> So the code is ready to the situation when there is no validate root
>>
>> If you make Window a validate root,
>> the for loop will always find it and the logic will be changed
> 
> Yes! And that seems to be completely correct: we HAVE TO call validate() 
> on a validate root (or a top-level component - whichever we find) - no 
> matter what is the component that represents the found validate root - 
> an old-good Swing RootPane, or the top-level window. So, whichever we 
> find - we just schedule the invocation of the validate() method on that 
> component, and therefore make the hw/lw mixing-related code happy. :)

Ok

> 
> 
>> This is something to keep in mind
> 
> So I think the current code (including the rewritten version as you 
> suggest) perfectly fits to the idea of making top-level windows validate 
> roots.
> 
> 

> 
>>> That said, the invalidate() method may easily jump to the owner of a 
>>> dialog (or a window) while invalidating the hierarchy of the owned 
>>> window - which is absolutely incorrect. To make sure this never 
>>> happens, we need to stop invalidating on top-level components, hence 
>>> the need to make the Window a validate root.
>>>
>>> Sounds reasonable?
>>
>> Yep
> 
> Great! And thanks for reviewing the code! By the way, are you proposing 
> to apply the suggested chunk of code to the RepaintManager with this 
> fix, or is it going to be a separate CR?

I tend to not file extra CR's,
could you please take care of it with this fix?

RM.addInvalidComponent() and JViewport.validateView()
are only methods to be updated

Thanks!
alexp

> 
> -- 
> best regards,
> Anthony




More information about the swing-dev mailing list