X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/04db5c3f8f9dbf65ca81198ca1a6bbcbaa7a4a03..6a44bffd1ac68163e4c1cfe8aa8fe4f7f98a02e7:/src/html/winpars.cpp diff --git a/src/html/winpars.cpp b/src/html/winpars.cpp index 479401d392..796489d850 100644 --- a/src/html/winpars.cpp +++ b/src/html/winpars.cpp @@ -180,14 +180,32 @@ wxObject* wxHtmlWinParser::GetProduct() return top; } -bool wxHtmlWinParser::CanOpenURL(const wxString& url) const +wxFSFile *wxHtmlWinParser::OpenURL(wxHtmlURLType type, + const wxString& url) const { // FIXME - normalize the URL to full path before passing to // OnOpeningURL!! if ( m_Window ) - return m_Window->OnOpeningURL(url); - else - return TRUE; + { + wxString myurl(url); + wxHtmlOpeningStatus status; + for (;;) + { + wxString redirect; + status = m_Window->OnOpeningURL(type, myurl, &redirect); + if ( status != wxHTML_REDIRECT ) + break; + + myurl = redirect; + } + + if ( status == wxHTML_BLOCK ) + return NULL; + + return GetFS()->OpenFile(myurl); + } + + return wxHtmlParser::OpenURL(type, url); } void wxHtmlWinParser::AddText(const wxChar* txt)