wxHtmlHelpWindow: Fix contents panel syncing with view.

Simply opened page notification code. Fix it to really highlight the
page currently visible, instead of the previous one.

Fixes #14320.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71665 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík
2012-06-06 17:18:15 +00:00
parent 7af4648f66
commit 432d207e1c

View File

@@ -120,15 +120,13 @@ public:
SetStandardFonts(); SetStandardFonts();
} }
void OnLink(wxHtmlLinkEvent& ev) virtual bool LoadPage(const wxString& location)
{ {
const wxMouseEvent *e = ev.GetLinkInfo().GetEvent(); if ( !wxHtmlWindow::LoadPage(location) )
if (e == NULL || e->LeftUp()) return false;
m_Window->NotifyPageChanged();
// skip the event so that normal processing (i.e. following the link) m_Window->NotifyPageChanged();
// is done: return true;
ev.Skip();
} }
// Returns full location with anchor (helper) // Returns full location with anchor (helper)
@@ -150,13 +148,8 @@ private:
wxHtmlHelpWindow *m_Window; wxHtmlHelpWindow *m_Window;
wxDECLARE_NO_COPY_CLASS(wxHtmlHelpHtmlWindow); wxDECLARE_NO_COPY_CLASS(wxHtmlHelpHtmlWindow);
DECLARE_EVENT_TABLE()
}; };
BEGIN_EVENT_TABLE(wxHtmlHelpHtmlWindow, wxHtmlWindow)
EVT_HTML_LINK_CLICKED(wxID_ANY, wxHtmlHelpHtmlWindow::OnLink)
END_EVENT_TABLE()
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
// wxHtmlHelpWindow::m_mergedIndex // wxHtmlHelpWindow::m_mergedIndex
@@ -716,7 +709,6 @@ bool wxHtmlHelpWindow::Display(const wxString& x)
if (!url.empty()) if (!url.empty())
{ {
m_HtmlWin->LoadPage(url); m_HtmlWin->LoadPage(url);
NotifyPageChanged();
return true; return true;
} }
@@ -729,7 +721,6 @@ bool wxHtmlHelpWindow::Display(const int id)
if (!url.empty()) if (!url.empty())
{ {
m_HtmlWin->LoadPage(url); m_HtmlWin->LoadPage(url);
NotifyPageChanged();
return true; return true;
} }
@@ -792,7 +783,6 @@ void wxHtmlHelpWindow::DisplayIndexItem(const wxHtmlHelpMergedIndexItem *it)
if (!it->items[0]->page.empty()) if (!it->items[0]->page.empty())
{ {
m_HtmlWin->LoadPage(it->items[0]->GetFullPath()); m_HtmlWin->LoadPage(it->items[0]->GetFullPath());
NotifyPageChanged();
} }
} }
else else
@@ -829,7 +819,6 @@ void wxHtmlHelpWindow::DisplayIndexItem(const wxHtmlHelpMergedIndexItem *it)
if (dlg.ShowModal() == wxID_OK) if (dlg.ShowModal() == wxID_OK)
{ {
m_HtmlWin->LoadPage(it->items[dlg.GetSelection()]->GetFullPath()); m_HtmlWin->LoadPage(it->items[dlg.GetSelection()]->GetFullPath());
NotifyPageChanged();
} }
} }
} }
@@ -938,7 +927,6 @@ bool wxHtmlHelpWindow::KeywordSearch(const wxString& keyword,
if (it) if (it)
{ {
m_HtmlWin->LoadPage(it->GetFullPath()); m_HtmlWin->LoadPage(it->GetFullPath());
NotifyPageChanged();
} }
break; break;
} }
@@ -1406,12 +1394,10 @@ void wxHtmlHelpWindow::OnToolbar(wxCommandEvent& event)
{ {
case wxID_HTML_BACK : case wxID_HTML_BACK :
m_HtmlWin->HistoryBack(); m_HtmlWin->HistoryBack();
NotifyPageChanged();
break; break;
case wxID_HTML_FORWARD : case wxID_HTML_FORWARD :
m_HtmlWin->HistoryForward(); m_HtmlWin->HistoryForward();
NotifyPageChanged();
break; break;
case wxID_HTML_UP : case wxID_HTML_UP :
@@ -1427,7 +1413,6 @@ void wxHtmlHelpWindow::OnToolbar(wxCommandEvent& event)
if (!it.page.empty()) if (!it.page.empty())
{ {
m_HtmlWin->LoadPage(it.GetFullPath()); m_HtmlWin->LoadPage(it.GetFullPath());
NotifyPageChanged();
} }
} }
} }
@@ -1456,10 +1441,7 @@ void wxHtmlHelpWindow::OnToolbar(wxCommandEvent& event)
if (ind >= 0) if (ind >= 0)
{ {
if (!it->page.empty()) if (!it->page.empty())
{
m_HtmlWin->LoadPage(it->GetFullPath()); m_HtmlWin->LoadPage(it->GetFullPath());
NotifyPageChanged();
}
} }
} }
} }
@@ -1481,10 +1463,7 @@ void wxHtmlHelpWindow::OnToolbar(wxCommandEvent& event)
while (contents[idx].GetFullPath() == page) idx++; while (contents[idx].GetFullPath() == page) idx++;
if (!contents[idx].page.empty()) if (!contents[idx].page.empty())
{
m_HtmlWin->LoadPage(contents[idx].GetFullPath()); m_HtmlWin->LoadPage(contents[idx].GetFullPath());
NotifyPageChanged();
}
} }
} }
break; break;
@@ -1749,7 +1728,6 @@ void wxHtmlHelpWindow::OnSearchSel(wxCommandEvent& WXUNUSED(event))
{ {
if (!it->page.empty()) if (!it->page.empty())
m_HtmlWin->LoadPage(it->GetFullPath()); m_HtmlWin->LoadPage(it->GetFullPath());
NotifyPageChanged();
} }
} }
@@ -1768,7 +1746,6 @@ void wxHtmlHelpWindow::OnBookmarksSel(wxCommandEvent& WXUNUSED(event))
if (!str.empty() && str != _("(bookmarks)") && idx != wxNOT_FOUND) if (!str.empty() && str != _("(bookmarks)") && idx != wxNOT_FOUND)
{ {
m_HtmlWin->LoadPage(m_BookmarksPages[(size_t)idx]); m_HtmlWin->LoadPage(m_BookmarksPages[(size_t)idx]);
NotifyPageChanged();
} }
} }