* XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
authorJackson Harper <jackson@novell.com>
Sat, 19 Nov 2005 21:18:50 +0000 (21:18 -0000)
committerJackson Harper <jackson@novell.com>
Sat, 19 Nov 2005 21:18:50 +0000 (21:18 -0000)
(just like on windows).

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

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

index 88b85497c2fd32604c6db1ed75e5da12d5631e1c..c126d607ba77cdf08fd4a66ae15d25c677b4c78b 100644 (file)
@@ -1,3 +1,8 @@
+2005-11-19  Jackson Harper  <jackson@ximian.com>
+
+       * XplatUIX11.cs: Create an HGRN of the invalid area for WM_NCPAINT
+       (just like on windows).
+
 2005-11-19  Jackson Harper  <jackson@ximian.com>
 
        * MdiChildContext.cs: Handle all the buttons ourselves. We can't
index 2418bf6012fd3178606eb3ec8c2fe3d740a86e09..c0b8eac8f3728254b887bda9de48dac3bd6e1a21 100644 (file)
@@ -2755,7 +2755,12 @@ namespace System.Windows.Forms {
                                                #if DriverDebugExtra
                                                        Console.WriteLine("GetMessage(): Window {0:X} Exposed non-client area {1},{2} {3}x{4}", hwnd.client_window.ToInt32(), xevent.ExposeEvent.x, xevent.ExposeEvent.y, xevent.ExposeEvent.width, xevent.ExposeEvent.height);
                                                #endif
+
+                                               Rectangle rect = new Rectangle (xevent.ExposeEvent.x, xevent.ExposeEvent.y, xevent.ExposeEvent.width, xevent.ExposeEvent.height);
+                                               Region region = new Region (rect);
+                                               IntPtr hrgn = region.GetHrgn (null); // Graphics object isn't needed
                                                msg.message = Msg.WM_NCPAINT;
+                                               msg.wParam = hrgn;
                                                hwnd.nc_expose_pending = false;
                                                break;
                                        }