Author: mkestner
Date: 2006-02-28 14:46:45 -0500 (Tue, 28 Feb 2006)
New Revision: 57421

Modified:
   trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
   trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ListView.cs
   trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ListViewItem.cs
Log:

2006-02-28  Mike Kestner  <[EMAIL PROTECTED]>

        * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
        and set Selected instead.
        * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
        collections.


Modified: trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog        
2006-02-28 19:41:42 UTC (rev 57420)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog        
2006-02-28 19:46:45 UTC (rev 57421)
@@ -1,3 +1,10 @@
+2006-02-28  Mike Kestner  <[EMAIL PROTECTED]>
+
+       * ListView.cs: Add UpdateSelection internal method. Remove SelectItem 
+       and set Selected instead.
+       * ListViewItem.cs: Call owner.UpdateSelection to manipulate the 
+       collections.
+
 2006-02-28  Peter Dennis Bartok  <[EMAIL PROTECTED]> 
 
        * ComboBox.cs: Allow setting SelectedIndex to -1. Fixes #77665

Modified: trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ListView.cs
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ListView.cs      
2006-02-28 19:41:42 UTC (rev 57420)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ListView.cs      
2006-02-28 19:46:45 UTC (rev 57421)
@@ -911,18 +911,23 @@
                         
                }
 
-               void SelectItem (ListViewItem item)
+               internal void UpdateSelection (ListViewItem item)
                {
-                       if (!CanMultiselect && SelectedItems.Count > 0) {
-                               SelectedItems.Clear ();
-                               SelectedIndices.list.Clear ();
-                       }
+                       if (item.Selected) {
 
-                       if (!SelectedItems.Contains (item)) {
-                               SelectedItems.list.Add (item);
-                               SelectedIndices.list.Add (item.Index);
+                               if (!CanMultiselect && SelectedItems.Count > 0) 
{
+                                       SelectedItems.Clear ();
+                                       SelectedIndices.list.Clear ();
+                               }
+
+                               if (!SelectedItems.Contains (item)) {
+                                       SelectedItems.list.Add (item);
+                                       SelectedIndices.list.Add (item.Index);
+                               }
+                       } else {
+                               SelectedItems.list.Remove (item);
+                               SelectedIndices.list.Remove (item.Index);
                        }
-                       item.Selected = true;
                }
 
                private bool KeySearchString (KeyEventArgs ke)
@@ -940,7 +945,7 @@
                                if 
(CultureInfo.CurrentCulture.CompareInfo.IsPrefix (Items[i].Text, keysearch_text,
                                        CompareOptions.IgnoreCase)) {
                                        SetFocusedItem (Items [i]);
-                                       SelectItem (items [i]);
+                                       items [i].Selected = true;
                                        EnsureVisible (i);
                                        break;
                                }
@@ -1040,7 +1045,7 @@
                        }
                        
                        if (index != -1) {
-                               SelectItem (items [index]);
+                               items [index].Selected = true;
                                SetFocusedItem (items [index]);                 
        
                                EnsureVisible (index);
                        }
@@ -1136,7 +1141,7 @@
 
                        if (clicked_item != null) {
                                bool changed = !clicked_item.Selected;
-                               SelectItem (clicked_item);
+                               clicked_item.Selected = true;;
                                
                                // Only Raise the event if the selected item 
has changed
                                if (changed)
@@ -1169,7 +1174,7 @@
                        ListViewItem item = this.GetItemAt (hit.X, hit.Y);
 
                        if (item != null) {
-                               SelectItem (item);
+                               item.Selected = true;
                                // Raise the event
                                this.OnSelectedIndexChanged (new EventArgs ());
                        }

Modified: 
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ListViewItem.cs
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ListViewItem.cs  
2006-02-28 19:41:42 UTC (rev 57420)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ListViewItem.cs  
2006-02-28 19:46:45 UTC (rev 57421)
@@ -273,8 +273,10 @@
 
                                selected = value;
 
-                               if (owner != null)
+                               if (owner != null) {
+                                       owner.UpdateSelection (this);
                                        Layout ();
+                               }
                                Invalidate ();
                        }
                }

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

Reply via email to