[Mono-winforms-list] Double Buffering

Jonathan S. Chambers Jonathan.Chambers@ansys.com
Thu, 28 Apr 2005 20:31:28 -0400


This is a multi-part message in MIME format.

------_=_NextPart_001_01C54C52.C867F25F
Content-Type: text/plain;
	charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable

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






------_=_NextPart_001_01C54C52.C867F25F
Content-Type: text/x-patch;
	name="svn.diff"
Content-Transfer-Encoding: base64
Content-Description: svn.diff
Content-Disposition: attachment;
	filename="svn.diff"

SW5kZXg6IENvbnRyb2wuY3MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gQ29udHJvbC5jcwkocmV2aXNpb24gNDM3
NDkpCisrKyBDb250cm9sLmNzCSh3b3JraW5nIGNvcHkpCkBAIC0zMTczLDggKzMxNzMsNyBAQAog
CiAJCQkJCWlmICghbmVlZHNfcmVkcmF3KSB7CiAJCQkJCQkvLyBKdXN0IGJsaXQgdGhlIHByZXZp
b3VzIGltYWdlCi0JCQkJCQlwYWludF9ldmVudC5HcmFwaGljcy5EcmF3SW1hZ2UgKEltYWdlQnVm
ZmVyLCBwYWludF9ldmVudC5DbGlwUmVjdGFuZ2xlKTsKLQkJCQkJCW5lZWRzX3JlZHJhdyA9IGZh
bHNlOworCQkJCQkJcGFpbnRfZXZlbnQuR3JhcGhpY3MuRHJhd0ltYWdlIChJbWFnZUJ1ZmZlciwg
Q2xpZW50UmVjdGFuZ2xlKTsKIAkJCQkJCXJldHVybjsKIAkJCQkJfQogCkBAIC0zMTkwLDkgKzMx
ODksMTEgQEAKIAkJCQkJT25QYWludChwYWludF9ldmVudCk7CiAKIAkJCQkJaWYgKChjb250cm9s
X3N0eWxlICYgQ29udHJvbFN0eWxlcy5Eb3VibGVCdWZmZXIpICE9IDApIHsKLQkJCQkJCWRjLkRy
YXdJbWFnZSAoSW1hZ2VCdWZmZXIsIHBhaW50X2V2ZW50LkNsaXBSZWN0YW5nbGUpOworCQkJCQkJ
CisJCQkJCQlkYy5EcmF3SW1hZ2UgKEltYWdlQnVmZmVyLCBDbGllbnRSZWN0YW5nbGUpOwogCQkJ
CQkJcGFpbnRfZXZlbnQuU2V0R3JhcGhpY3MgKGRjKTsKIAkJCQkJfQorCQkJCQluZWVkc19yZWRy
YXcgPSBmYWxzZTsKIAogCQkJCQlYcGxhdFVJLlBhaW50RXZlbnRFbmQoSGFuZGxlKTsKIAo=

------_=_NextPart_001_01C54C52.C867F25F--