Author: pbartok
Date: 2006-01-17 18:21:26 -0500 (Tue, 17 Jan 2006)
New Revision: 55703

Modified:
   trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
   trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/LinkLabel.cs
Log:
2006-01-17  Peter Dennis Bartok  <[EMAIL PROTECTED]>

        * LinkLabel.cs: We need to update the hover drawing when
          leaving the control as well.



Modified: trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog        
2006-01-17 23:10:15 UTC (rev 55702)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog        
2006-01-17 23:21:26 UTC (rev 55703)
@@ -1,3 +1,8 @@
+2006-01-17  Peter Dennis Bartok  <[EMAIL PROTECTED]>
+
+       * LinkLabel.cs: We need to update the hover drawing when
+         leaving the control as well.
+
 2006-01-18  Jordi Mas i Hernandez <[EMAIL PROTECTED]>
 
        * DataGrid.cs: Clicking on non empty areas in the columns

Modified: 
trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/LinkLabel.cs
===================================================================
--- trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/LinkLabel.cs     
2006-01-17 23:10:15 UTC (rev 55702)
+++ trunk/mcs/class/Managed.Windows.Forms/System.Windows.Forms/LinkLabel.cs     
2006-01-17 23:21:26 UTC (rev 55703)
@@ -345,19 +345,17 @@
                protected override void OnMouseLeave(EventArgs e)
                {
                        if (!Enabled) return;
-
                        base.OnMouseLeave (e);
+                       UpdateHover(null);
                }
 
-               protected override void OnMouseMove (MouseEventArgs e)
-               {
-                       base.OnMouseMove (e);
-                       
-                       Link link = PointInLink (e.X, e.Y);
-                       
+               private bool UpdateHover(Link link) {
+                       bool changed;
+
+                       changed = false;
                        if (link == null) {
                                Cursor = Cursors.Default;
-                               bool changed = false;
+
                                if (link_behavior == 
LinkBehavior.HoverUnderline) {
                                        for (int i = 0; i < Links.Count; i++) {
                                                if (Links[i].Hoovered == true)  
{
@@ -365,23 +363,32 @@
                                                        Links[i].Hoovered = 
false;
                                                }
                                        }
+                               }
+                       } else {
+                               if (link_behavior == 
LinkBehavior.HoverUnderline) {
+                                       Cursor = Cursors.Hand;
 
-                                       if (changed == true)
-                                               Refresh ();
+                                       if (link.Hoovered != true) {
+                                               link.Hoovered = true;
+                                               changed = true;
+                                       }
                                }
-                               return;
                        }
-                       
-                       if (link_behavior == LinkBehavior.HoverUnderline) {
-                               if (link.Hoovered != true) {
-                                       link.Hoovered = true;
-                                       Refresh ();
-                               }
+
+                       if (changed == true) {
+                               Refresh ();
                        }
                        
-                       Cursor = Cursors.Hand;
+
+                       return changed;
                }
 
+               protected override void OnMouseMove (MouseEventArgs e)
+               {
+                       base.OnMouseMove (e);
+                       UpdateHover(PointInLink (e.X, e.Y));
+               }
+
                protected override void OnMouseUp (MouseEventArgs e)
                {
                        if (!Enabled) return;

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

Reply via email to