Hey,
The small attached patch changes a pair of bits of the ToolTip class.
The first change is that calling SetToolTip for a control that already
shown its associated tooltip should make it visible _again_ if the mouse
pointer is inside its bounds.
The second one is that we were not updating fine the tooltip text when
SetToolTip was called for a control showing the tooltip at the moment;
it also should reset its internal timer (based on the MS behaviour).
Comments?
Carlos.
Index: ToolTip.cs
===================================================================
--- ToolTip.cs (revisión: 77422)
+++ ToolTip.cs (copia de trabajo)
@@ -121,6 +121,12 @@
base.OnPaint(pevent);
}
+ protected override void OnTextChanged (EventArgs args)
+ {
+ Invalidate ();
+ base.OnTextChanged (args);
+ }
+
protected override void Dispose(bool disposing) {
if (disposing) {
this.string_format.Dispose();
@@ -377,13 +383,17 @@
}
// if SetToolTip is called from a control and the mouse is currently over that control,
- // make sure that tooltip_window.Text gets updated
- if (caption != null && last_control == control) {
+ // make sure that tooltip_window.Text gets updated if it's being shown,
+ // or show the tooltip for it if is not
+ if (active_control == control && caption != null && state == TipState.Show) {
Size size = ThemeEngine.Current.ToolTipSize(tooltip_window, caption);
tooltip_window.Width = size.Width;
tooltip_window.Height = size.Height;
tooltip_window.Text = caption;
- }
+ timer.Stop ();
+ timer.Start ();
+ } else if (MouseInControl (control))
+ ShowTooltip (control);
}
public override string ToString() {
@@ -452,10 +462,8 @@
timer.Stop();
state = TipState.Initial;
- // if we're in the same control as before (how'd that happen?) or if we're not active, leave
- if (!is_active || (active_control == control)) {
+ if (!is_active)
return;
- }
if (!show_always) {
IContainerControl cc = last_control.GetContainerControl ();
_______________________________________________
Mono-winforms-list maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-winforms-list