]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/cshelp.cpp
assert if ShowModal() is called after a previous Show() (#1416)
[wxWidgets.git] / src / common / cshelp.cpp
index 57cea314d25c3a7544ae53c6a0c674edd75fbfbb..4a02253a002c0f1d2b2698e4c8a2bc8f0db32457 100644 (file)
 #include "wx/tipwin.h"
 #include "wx/cshelp.h"
 
-// wxUSE_MS_HTML_HELP is not defined under platforms other than MSW
-#ifndef wxUSE_MS_HTML_HELP
-    #define wxUSE_MS_HTML_HELP 0
-#endif
-
 #if wxUSE_MS_HTML_HELP
     #include "wx/msw/helpchm.h"     // for ShowContextHelpPopup
     #include "wx/utils.h"           // for wxGetMousePosition()
@@ -128,8 +123,8 @@ bool wxContextHelp::BeginContextHelp(wxWindow* win)
     wxCursor oldCursor = win->GetCursor();
     win->SetCursor(cursor);
 
-#ifdef __WXMSW__
-    //    wxSetCursor(cursor);
+#ifdef __WXMAC__
+    wxSetCursor(cursor);
 #endif
 
     m_status = false;
@@ -154,6 +149,10 @@ bool wxContextHelp::BeginContextHelp(wxWindow* win)
 
     win->SetCursor(oldCursor);
 
+#ifdef __WXMAC__
+    wxSetCursor(wxNullCursor);
+#endif
+
     if (m_status)
     {
         wxPoint pt;
@@ -389,6 +388,11 @@ void wxSimpleHelpProvider::RemoveHelp(wxWindowBase* window)
 bool wxSimpleHelpProvider::ShowHelp(wxWindowBase *window)
 {
 #if wxUSE_MS_HTML_HELP || wxUSE_TIPWINDOW
+#if wxUSE_MS_HTML_HELP
+    // m_helptextAtPoint will be reset by GetHelpTextMaybeAtPoint(), stash it
+    const wxPoint posTooltip = m_helptextAtPoint;
+#endif // wxUSE_MS_HTML_HELP
+
     const wxString text = GetHelpTextMaybeAtPoint(window);
 
     if ( !text.empty() )
@@ -398,7 +402,7 @@ bool wxSimpleHelpProvider::ShowHelp(wxWindowBase *window)
         if ( !wxCHMHelpController::ShowContextHelpPopup
                                    (
                                         text,
-                                        wxGetMousePosition(),
+                                        posTooltip,
                                         (wxWindow *)window
                                    ) )
 #endif // wxUSE_MS_HTML_HELP