fixed crash in wxHtmlHelpController if the help window is still open

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52471 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Václav Slavík 2008-03-13 23:42:57 +00:00
parent 4cbfec1580
commit 664d172947
4 changed files with 15 additions and 3 deletions

View File

@ -88,7 +88,7 @@ public:
wxHtmlHelpController* GetController() const { return m_helpController; }
/// Sets the help controller associated with the window.
void SetController(wxHtmlHelpController* controller) { m_helpController = controller; }
void SetController(wxHtmlHelpController* controller);
/// Returns the help window.
wxHtmlHelpWindow* GetHelpWindow() const { return m_HtmlHelpWin; }

View File

@ -87,12 +87,13 @@ void wxHtmlHelpController::OnCloseFrame(wxCloseEvent& evt)
{
if (m_Config)
WriteCustomization(m_Config, m_ConfigRoot);
evt.Skip();
OnQuit();
m_helpWindow->SetController(NULL);
if ( m_helpWindow )
m_helpWindow->SetController(NULL);
m_helpWindow = NULL;
m_helpDialog = NULL;
m_helpFrame = NULL;

View File

@ -85,12 +85,20 @@ void wxHtmlHelpFrame::Init(wxHtmlHelpData* data)
m_helpController = (wxHtmlHelpController*) NULL;
}
void wxHtmlHelpFrame::SetController(wxHtmlHelpController* controller)
{
m_helpController = controller;
if ( m_HtmlHelpWin )
m_HtmlHelpWin->SetController(controller);
}
// Create: builds the GUI components.
bool wxHtmlHelpFrame::Create(wxWindow* parent, wxWindowID id,
const wxString& WXUNUSED(title), int style,
wxConfigBase *config, const wxString& rootpath)
{
m_HtmlHelpWin = new wxHtmlHelpWindow(m_Data);
m_HtmlHelpWin->SetController(m_helpController);
if ( config)
m_HtmlHelpWin->UseConfig(config, rootpath);

View File

@ -592,6 +592,9 @@ bool wxHtmlHelpWindow::Create(wxWindow* parent, wxWindowID id,
wxHtmlHelpWindow::~wxHtmlHelpWindow()
{
if ( m_helpController )
m_helpController->SetHelpWindow(NULL);
delete m_mergedIndex;
// PopEventHandler(); // wxhtmlhelpcontroller (not any more!)