[Mono-dev] problem: Invalidate does not propagate correctly invalidation to nested controls (+patch)

matteo tesser matteo.tesser at gmail.com
Thu Dec 17 17:19:28 EST 2009

I noticed that both mono 2.6 and mono 2.4.3 introduce a problem in
windows.form apps (in  all versions linuxes and os x) : In some
situations, invalidate and subsequent painting is not propagated
correctly to nested controls.

The problem is due to the following change in the Control.Refresh method.

The old version called Control.Refresh method recursively for all
child controls . The new version  changes strategy and - correctly -
call Update  method  telling to invalidate  childrend  controls too.

The problem is in the implementation of method Control.Invalidate .  I
noticed that in mono 2.6 (2.4.3), when a control contains more than
one level of nested controls, only first level controls are

I think that method invalidate,  when InvalidateChildren parameter is
true, should propagate recursively the invalidation  to all nested

I send  you a patch, which corrects the problem in the apps I'm working.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: recursive_invalidate.diff
Type: text/x-patch
Size: 635 bytes
Desc: not available
Url : http://lists.ximian.com/pipermail/mono-devel-list/attachments/20091217/48ccafe1/attachment.bin 

More information about the Mono-devel-list mailing list