Author: calberto
Date: 2007-08-21 14:18:55 -0400 (Tue, 21 Aug 2007)
New Revision: 84575

Modified:
   trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
   
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ListViewGroupCollection.cs
Log:
2007-08-21  Carlos Alberto Cortez <[EMAIL PROTECTED]>

        * ListViewGroupCollection.cs: Implement AddRange the right way, to
        only call Redraw on the parent one time.



Modified: trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog        
2007-08-21 18:15:13 UTC (rev 84574)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog        
2007-08-21 18:18:55 UTC (rev 84575)
@@ -1,3 +1,8 @@
+2007-08-21  Carlos Alberto Cortez <[EMAIL PROTECTED]>
+
+       * ListViewGroupCollection.cs: Implement AddRange the right way, to
+       only call Redraw on the parent one time.
+
 2007-08-21  Rolf Bjarne Kvinge <[EMAIL PROTECTED]> 
 
        * DataGridViewRowHeaderCell.cs, DataGridViewColumnHeaderCell.cs: 
Implemented

Modified: 
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ListViewGroupCollection.cs
===================================================================
--- 
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ListViewGroupCollection.cs
       2007-08-21 18:15:13 UTC (rev 84574)
+++ 
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ListViewGroupCollection.cs
       2007-08-21 18:18:55 UTC (rev 84575)
@@ -102,9 +102,7 @@
                        if (Contains(value))
                                return -1;
 
-                       CheckListViewItemsInGroup(value);
-                       value.ListViewOwner = this.list_view_owner;
-                       list.Add (value);
+                       AddGroup (value);
 
                        if (this.list_view_owner != null)
                                list_view_owner.Redraw(true);
@@ -271,20 +269,32 @@
 
                public void AddRange(ListViewGroup[] groups)
                {
-                       foreach (ListViewGroup item in groups)
-                       {
-                               Add(item);
-                       }
+                       foreach (ListViewGroup group in groups)
+                               AddGroup (group);
+
+                       if (list_view_owner != null)
+                               list_view_owner.Redraw (true);
                }
 
                public void AddRange(ListViewGroupCollection groups)
                {
-                       foreach (ListViewGroup item in groups)
-                       {
-                               Add(item);
-                       }
+                       foreach (ListViewGroup group in groups)
+                               AddGroup (group);
+
+                       if (list_view_owner != null)
+                               list_view_owner.Redraw (true);
                }
 
+               void AddGroup (ListViewGroup group)
+               {
+                       if (Contains (group))
+                               return;
+
+                       CheckListViewItemsInGroup (group);
+                       ListViewOwner = list_view_owner;
+                       list.Add (group);
+               }
+
                private void CheckListViewItemsInGroup(ListViewGroup value)
                {
                        //check for correct ListView

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

Reply via email to