Author: gnorton
Date: 2008-01-10 22:31:36 -0500 (Thu, 10 Jan 2008)
New Revision: 92651

Modified:
   trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
   trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUICarbon.cs
Log:
In .:
2008-01-10  Geoff Norton  <[EMAIL PROTECTED]>

        * XplatUICarbon.cs:  Clip the Graphics context to the invalid area
        tracked in the Hwnd.  Only invalidate the dirty region to the Carbon
        window manager.



Modified: trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog        
2008-01-11 03:17:41 UTC (rev 92650)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog        
2008-01-11 03:31:36 UTC (rev 92651)
@@ -1,3 +1,9 @@
+2008-01-10  Geoff Norton  <[EMAIL PROTECTED]>
+
+       * XplatUICarbon.cs:  Clip the Graphics context to the invalid area
+       tracked in the Hwnd.  Only invalidate the dirty region to the Carbon
+       window manager.
+
 2008-01-10  Jonathan Pobst  <[EMAIL PROTECTED]>
 
        * Form.cs: Enforce the Form minimum size in SetBoundsCore.  Fixed

Modified: 
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUICarbon.cs
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUICarbon.cs 
2008-01-11 03:17:41 UTC (rev 92650)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUICarbon.cs 
2008-01-11 03:31:36 UTC (rev 92651)
@@ -711,11 +711,12 @@
                                height = hwnd.height - y;
                        }
 
+                       Carbon.HIRect region = new Carbon.HIRect (x, y, width, 
height);
                        if (client) {
                                hwnd.AddInvalidArea(x, y, width, height);
                                if (!hwnd.expose_pending) {
                                        if (!hwnd.nc_expose_pending) {
-                                               HIViewSetNeedsDisplay 
(hwnd.ClientWindow, true);
+                                               HIViewSetNeedsDisplayInRect 
(hwnd.ClientWindow, ref region, true);
                                        }
                                        hwnd.expose_pending = true;
                                }
@@ -723,7 +724,7 @@
                                hwnd.AddNcInvalidArea (x, y, width, height);
                                if (!hwnd.nc_expose_pending) {
                                        if (!hwnd.expose_pending) {
-                                               HIViewSetNeedsDisplay 
(hwnd.WholeWindow, true);
+                                               HIViewSetNeedsDisplayInRect 
(hwnd.WholeWindow, ref region, true);
                                        }
                                        hwnd.nc_expose_pending = true;
                                }
@@ -1488,7 +1489,7 @@
                                }
 
                                // FIXME: Clip region is hosed
-//                             dc.Clip = clip_region;
+                               dc.Clip = clip_region;
                                paint_event = new PaintEventArgs(dc, 
hwnd.Invalid);
                                hwnd.expose_pending = false;
                                hwnd.ClearInvalidArea();
@@ -1500,7 +1501,7 @@
 
                                if (!hwnd.nc_invalid.IsEmpty) {
                                        // FIXME: Clip region is hosed
-//                                     dc.SetClip (hwnd.nc_invalid);
+                                       dc.SetClip (hwnd.nc_invalid);
                                        paint_event = new PaintEventArgs(dc, 
hwnd.nc_invalid);
                                } else {
                                        paint_event = new PaintEventArgs(dc, 
new Rectangle(0, 0, hwnd.width, hwnd.height));
@@ -2119,7 +2120,13 @@
                }
                internal override Size MinimizedWindowSize { get{ throw new 
NotImplementedException(); } }
                internal override Size MinimizedWindowSpacingSize { get{ throw 
new NotImplementedException(); } }
-               internal override Size MinimumWindowSize { get{ throw new 
NotImplementedException(); } }
+
+               internal override Size MinimumWindowSize {
+                       get {
+                               return new Size(110, 22);
+                       }
+               }
+
                internal override Size MinWindowTrackSize { get{ throw new 
NotImplementedException(); } }
                
                internal override Keys ModifierKeys {
@@ -2196,7 +2203,7 @@
                [DllImport 
("/System/Library/Frameworks/Carbon.framework/Versions/Current/Carbon")]
                extern static int HIViewSetFrame (IntPtr view_handle, ref 
Carbon.HIRect bounds);
                [DllImport 
("/System/Library/Frameworks/Carbon.framework/Versions/Current/Carbon")]
-               extern static int HIViewSetNeedsDisplay (IntPtr view_handle, 
bool needs_display);
+               extern static int HIViewSetNeedsDisplayInRect (IntPtr 
view_handle, ref Carbon.HIRect rect, bool needs_display);
                
                
[DllImport("/System/Library/Frameworks/Carbon.framework/Versions/Current/Carbon")]
                extern static void SetRect (ref Carbon.Rect r, short left, 
short top, short right, short bottom);

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to