[Mono-winforms-list] [PATCH] Invalidate non visible areas when scrolling

Carlos Alberto Cortez calberto.cortez at gmail.com
Wed Nov 7 00:12:08 EST 2007


Hey Chris,

Sorry for the late answer (spent some time fixing some other winforms
bugs).

Commnts below.

El lun, 01-10-2007 a las 22:03 -0700, Chris Toshok escribió:
> It does, but I don't think we need to add tracking of invalid areas
> which are offscreen - the whole point of the invalid area tracking is to
> track things that need to be repainted *because* they're visible.  If
> it's offscreen, we shouldn't need to do anything that complicates it. 
> 
> It seems like a better solution to just figure in the clipping by parent
> forms into the pseudo clipping we already do.  The scroll code takes
> into account that a child's view can be larger than the child (the
> AddExpose calls).  It shouldn't be too hard to figure out the *actual*
> visible rectangle of that child, if it's not already done someplace, and
> make the AddExpose calls take that into account, without the additional
> calculation (and invalidation, which will just be ignored anyway).
> 

As I can understand it, the AddExpose calls (in ScrollWindow method) are
not there to take into account the possibility of child can be larger
than its parents, but to invalidate the area not being copied when doing
the scroll. 

For example, to try this thing, I put a listview in a form, with the
listview being smaller than the form, and I still see the AddExpose
calls (from console messages indicating so).

And not, it's not being done already somewhere else. 

Taking a look at the sample at 324513  could help.

Probably I'm still missing something?

Hope this helps,
Carlos.




More information about the Mono-winforms-list mailing list