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