[Mono-winforms-list] [Patch] Invalidate non visible areas in scrolling

Jonathan Pobst monkey at jpobst.com
Mon Jan 21 20:25:06 EST 2008


I just added a public property called Hwnd.GraphicsContext that is a 
cached Graphics we keep around for measuring and such.  If you don't 
need a specific Graphics, you can just use this one.

Jon


Carlos Alberto Cortez wrote:
> Hey Chris,
> 
> Attached is an updated patch that basically incorporates all the things
> you mentioned in your last mail:
> 
> * Determines the visible rectangle, and intersects it with the required
> area (this is, we copy only the visible area).
> 	- First by determining the visible area based on its size and its
> parents.
> 	- Second, by looking for toplevel windows that intersect the window,
> and excluding that area.
> 
> * Then compute the destination rectangle, by applying the
> XAmount/YAmount values and intersecting it with the area passed to
> ScrollWindow (thus we clip it as needed). This is the way Gdk does it.
> 
> * Finally, exclude the destination rectangle from the total requested
> area, and pass it to AddExpose method.
> 
> With this patch everyting is working as expected, but I have some
> issues:
> 
> * Region needs a Graphics instance to return its Bounds, which *could*
> be expensive.
> * After taking a look at the way scrolling is done in Gdk, it *seems*
> that the Region implementation lack some of the functionality we need
> (like, returning in a simple operation the Rectangles describing the
> region).
> 
> Comments?
> 
> Carlos.
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Mono-winforms-list maillist  -  Mono-winforms-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-winforms-list



More information about the Mono-winforms-list mailing list