From 6e04ed5ef2c79b115e0312e8bc372af51c9bad6c Mon Sep 17 00:00:00 2001 From: Jonathan Pobst Date: Fri, 10 Aug 2007 14:31:27 +0000 Subject: [PATCH] 2007-08-10 Jonathan Pobst [Backport of r83821] * ToolTip.cs: Hide the tooltip if the control is clicked to match MS behavior. [Fixes bug #82348] svn path=/branches/mono-1-2-5/mcs/; revision=83823 --- .../System.Windows.Forms/ChangeLog | 5 +++++ .../System.Windows.Forms/ToolTip.cs | 13 +++++++++++++ 2 files changed, 18 insertions(+) diff --git a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog index c3bb62a0cafeb..3473aca240e64 100644 --- a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog +++ b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog @@ -1,3 +1,8 @@ +2007-08-10 Jonathan Pobst + [Backport of r83821] + * ToolTip.cs: Hide the tooltip if the control is clicked to match MS behavior. + [Fixes bug #82348] + 2007-08-02 Rolf Bjarne Kvinge [ Backport selected parts of r82743, fixes #82234] diff --git a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ToolTip.cs b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ToolTip.cs index c010d16f8765c..63b81ffaaf519 100644 --- a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ToolTip.cs +++ b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ToolTip.cs @@ -390,6 +390,7 @@ public string GetToolTip (Control control) control.MouseEnter += new EventHandler(control_MouseEnter); control.MouseMove += new MouseEventHandler(control_MouseMove); control.MouseLeave += new EventHandler(control_MouseLeave); + control.MouseDown += new MouseEventHandler (control_MouseDown); controls.Add(control); } @@ -549,6 +550,18 @@ private void control_MouseLeave(object sender, EventArgs e) Hide (sender as Control); } + + void control_MouseDown (object sender, MouseEventArgs e) + { + timer.Stop(); + + active_control = null; + tooltip_window.Visible = false; + + if (last_control == sender) + last_control = null; + } + private void Hide (Control sender) { timer.Stop();