* XplatUIX11.cs: Apply patch from Jurek Bartuszek to fix DrawReversibleFrame
authorEveraldo Canuto <everaldo@mono-cvs.ximian.com>
Sun, 19 Aug 2007 06:57:17 +0000 (06:57 -0000)
committerEveraldo Canuto <everaldo@mono-cvs.ximian.com>
Sun, 19 Aug 2007 06:57:17 +0000 (06:57 -0000)
and DrawReversibleLine, also apply same behavior to FillReversibleRectangle.
Fixes #80877 and #79418.

2007-08-18  Everaldo Canuto  <ecanuto@novell.com>

svn path=/trunk/mcs/; revision=84365

mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIX11.cs

index 6ee70eb670603aebd546ca13c1e1d432d94e76ac..2d922694c9a8057a88569ee49b6048b8f835037b 100644 (file)
@@ -1,3 +1,9 @@
+2007-08-18  Everaldo Canuto  <ecanuto@novell.com>
+
+       * XplatUIX11.cs: Apply patch from Jurek Bartuszek to fix DrawReversibleFrame
+       and DrawReversibleLine, also apply same behavior to FillReversibleRectangle. 
+       Fixes #80877 and #79418.
+
 2007-08-18  Everaldo Canuto  <ecanuto@novell.com>
 
        * MenuAPI.cs: Fix popup menu position when the size is larger than distance 
index 97a3dc554638d6f7f1f5e24da288b1583ddecb2f..0a950e720d0cdbd4a5a2dbcf0ca61e909d086e1e 100644 (file)
@@ -3324,6 +3324,9 @@ namespace System.Windows.Forms {
 
                internal override void DrawReversibleLine(Point start, Point end, Color backColor)
                {
+                       if (backColor.GetBrightness() < 0.5)
+                               backColor = Color.FromArgb(255 - backColor.R, 255 - backColor.G, 255 - backColor.B);
+
                        IntPtr gc = GetReversibleScreenGC (backColor);
 
                        XDrawLine (DisplayHandle, RootWindow, gc, start.X, start.Y, end.X, end.Y);
@@ -3333,6 +3336,9 @@ namespace System.Windows.Forms {
 
                internal override void DrawReversibleFrame (Rectangle rectangle, Color backColor, FrameStyle style)
                {
+                       if (backColor.GetBrightness() < 0.5)
+                               backColor = Color.FromArgb(255 - backColor.R, 255 - backColor.G, 255 - backColor.B);
+
                        IntPtr gc = GetReversibleScreenGC (backColor);
 
                        if (rectangle.Width < 0) {
@@ -3367,6 +3373,9 @@ namespace System.Windows.Forms {
 
                internal override void FillReversibleRectangle (Rectangle rectangle, Color backColor) 
                {
+                       if (backColor.GetBrightness() < 0.5)
+                               backColor = Color.FromArgb(255 - backColor.R, 255 - backColor.G, 255 - backColor.B);
+
                        IntPtr gc = GetReversibleScreenGC (backColor);
 
                        if (rectangle.Width < 0) {
@@ -3382,7 +3391,8 @@ namespace System.Windows.Forms {
                        XFreeGC(DisplayHandle, gc);
                }
 
-               internal override void DrawReversibleRectangle(IntPtr handle, Rectangle rect, int line_width) {
+               internal override void DrawReversibleRectangle(IntPtr handle, Rectangle rect, int line_width)
+               {
                        IntPtr          gc;
                        Control control = Control.FromHandle(handle);