+2007-04-02 Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+ * ListView.cs: Add a hover_pending field in ListView
+ to fire just one OnMouseHover event for each MouseEnter/MouseLeave
+ cycle (we are resetting the MouseHover logic in XplatUI
+ to handle HoverSelection). Fixes #80429.
+
2007-04-02 Jackson Harper <jackson@ximian.com>
* TextControl.cs: Make sure the attributes get set on the last
private bool label_wrap = true;
private bool multiselect = true;
private bool scrollable = true;
+ private bool hover_pending;
private readonly SelectedIndexCollection selected_indices;
private readonly SelectedListViewItemCollection selected_items;
private SortOrder sort_order = SortOrder.None;
GotFocus += new EventHandler (FocusChanged);
LostFocus += new EventHandler (FocusChanged);
MouseWheel += new MouseEventHandler(ListView_MouseWheel);
+ MouseEnter += new EventHandler (ListView_MouseEnter);
this.SetStyle (ControlStyles.UserPaint | ControlStyles.StandardClick
#if NET_2_0
private void ItemsMouseHover (object sender, EventArgs e)
{
- owner.OnMouseHover(e);
+ if (owner.hover_pending) {
+ owner.OnMouseHover (e);
+ owner.hover_pending = false;
+ }
if (Capture || !owner.HoverSelection)
return;
item_control.Invalidate (FocusedItem.Bounds);
}
+ void ListView_MouseEnter (object o, EventArgs args)
+ {
+ hover_pending = true; // Need a hover event for every Enter/Leave cycle
+ }
+
private void ListView_MouseWheel (object sender, MouseEventArgs me)
{
if (Items.Count == 0)