]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/tooltip.cpp
docopydocs is not needed for this script.
[wxWidgets.git] / src / msw / tooltip.cpp
index a1f1b5c0a4147a6d32651f32bd3b407f4f23c22c..17bcc3fce808980930dd1d20c83e2a37bdcd1038 100644 (file)
@@ -244,8 +244,9 @@ wxToolTip::wxToolTip(const wxString &tip)
 
 wxToolTip::~wxToolTip()
 {
-    // there is no need to Remove() this tool - it will be done automatically
-    // anyhow
+    // the tooltip has to be removed before deleting. Otherwise, if it is visible
+       // while being deleted, there will be a delay before it goes away.
+       Remove();
 }
 
 // ----------------------------------------------------------------------------
@@ -325,11 +326,19 @@ void wxToolTip::Add(WXHWND hWnd)
                 SendTooltipMessage(GetToolTipCtrl(), TTM_SETMAXTIPWIDTH,
                                    0, (void *)sz.cx);
             }
+            else
 #endif // comctl32.dll >= 4.70
+            {
+                // replace the '\n's with spaces because otherwise they appear as
+                // unprintable characters in the tooltip string
+                m_text.Replace(_T("\n"), _T(" "));
+                ti.lpszText = (wxChar *)m_text.c_str(); // const_cast
 
-            // replace the '\n's with spaces because otherwise they appear as
-            // unprintable characters in the tooltip string
-            m_text.Replace(_T("\n"), _T(" "));
+                if ( !SendTooltipMessage(GetToolTipCtrl(), TTM_ADDTOOL, 0, &ti) )
+                {
+                    wxLogDebug(_T("Failed to create the tooltip '%s'"), m_text.c_str());
+                }
+            }
         }
     }
 }