[Mono-winforms-list] [Patch] Invalidate non visible areas in scrolling
Geoff Norton
gnorton at novell.com
Mon Jan 21 20:35:21 EST 2008
Jon,
You implemented this as:
if (bmp_g == null) {
bmp = new Bitmap (1, 1,
System.Drawing.Imaging.PixelFormat.Format32bppArgb);
bmp_g = Graphics.FromImage
(bmp);
}
We should likely switch this to
if (bmp_g == null) {
bmp_g = Graphics.FromHwnd (IntPtr.Zero);
}
(and rename bmp_g to root_g or some such).
Our implementation currently wont matter for this for things like dpi;
but device independent scaling int he future will likely work better
in the latter case.
Thoughts?
-g
ps> I just commited the support today for mac/x11 support of that Hwnd
case
On 21-Jan-08, at 8:25 PM, Jonathan Pobst wrote:
> 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
>
> _______________________________________________
> 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