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; } wxHtmlHelpController* GetController() const { return m_helpController; }
/// Sets the help controller associated with the window. /// Sets the help controller associated with the window.
void SetController(wxHtmlHelpController* controller) { m_helpController = controller; } void SetController(wxHtmlHelpController* controller);
/// Returns the help window. /// Returns the help window.
wxHtmlHelpWindow* GetHelpWindow() const { return m_HtmlHelpWin; } wxHtmlHelpWindow* GetHelpWindow() const { return m_HtmlHelpWin; }

View File

@@ -92,6 +92,7 @@ void wxHtmlHelpController::OnCloseFrame(wxCloseEvent& evt)
OnQuit(); OnQuit();
if ( m_helpWindow )
m_helpWindow->SetController(NULL); m_helpWindow->SetController(NULL);
m_helpWindow = NULL; m_helpWindow = NULL;
m_helpDialog = NULL; m_helpDialog = NULL;

View File

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

View File

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