[Mono-winforms-list] Double Buffering

Jonathan S. Chambers Jonathan.Chambers@ansys.com
Tue, 3 May 2005 15:38:42 -0400


Anyone take a look at this patch? I'm planning on checking in some
updates to the propertygrid, and this patch would cause redrawing of the
control to work correctly.

Thanks,
Jonathan

-----Original Message-----
From: mono-winforms-list-admin@lists.ximian.com
[mailto:mono-winforms-list-admin@lists.ximian.com] On Behalf Of Jonathan
S. Chambers
Sent: Thursday, April 28, 2005 8:52 PM
To: Jonathan S. Chambers; mono-winforms-list@lists.ximian.com
Subject: RE: [Mono-winforms-list] Double Buffering

Sorry about the message flurry. XplatUI.PaintEventEnd(Handle) wasn't
being called in quick repainting logic.

Thanks,
Jonathan


-----Original Message-----
From:	mono-winforms-list-admin@lists.ximian.com on behalf of Jonathan
S. Chambers
Sent:	Thu 4/28/2005 8:40 PM
To:	Jonathan S. Chambers; mono-winforms-list@lists.ximian.com
Cc:=09
Subject:	RE: [Mono-winforms-list] Double Buffering
The first patch is valid. The second is not. The logic looks like it
still needs fixed (when should needs_redraw be set to false), but my
solution does not seem to be working...




-----Original Message-----
From:	mono-winforms-list-admin@lists.ximian.com on behalf of Jonathan
S. Chambers
Sent:	Thu 4/28/2005 8:31 PM
To:	Jonathan S. Chambers; mono-winforms-list@lists.ximian.com
Cc:=09
Subject:	RE: [Mono-winforms-list] Double Buffering
Also, the setting of 'needs_redraw =3D false' (line 3181) should be =
moved
outside of the if block. Notice that it can never actually get inside
the if block, since that is the only place needs_redraw is set to false.

- Jonathan


-----Original Message-----
From:	mono-winforms-list-admin@lists.ximian.com on behalf of Jonathan
S. Chambers
Sent:	Thu 4/28/2005 8:21 PM
To:	mono-winforms-list@lists.ximian.com
Cc:=09
Subject:	[Mono-winforms-list] Double Buffering
      I noticed that support for double buffering has been included in
Control.cs. This is nice, except that I think the two calls to DrawImage
(lines 3177 and 3195) should pass ClientRectangle as the second
parameter, rather than ClipRectangle of the paint event args. According
to MS documentation, and actual behavior,  "The image represented by the
image object is scaled to the dimensions of the rect rectangle."=20
      Thus with the code as is, the code as is draws the ImageBuffer to
the ClipRectangle. When the clip rectangle is the entire control, this
makes sense. However, when the clip rectangle is just part of the
control (like when a partially obstructing window is removed) the whole
control is drawn to the clip area. (I can send an image if anyone wants
to see).=20

Thanks,
Jonathan








_______________________________________________
Mono-winforms-list maillist  -  Mono-winforms-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-winforms-list