Kaydet (Commit) 0943adb2 authored tarafından Caolán McNamara's avatar Caolán McNamara

Resolves: tdf#95021 crash on closing macro dialog editor

VclPtr related, dialog dtor is never called, so timer
is never stopped and timer refers to deleted parent
data

Change-Id: I804ba082817802c0017e61c6b86c5d3694995ea8
üst 0d33c288
...@@ -97,6 +97,12 @@ DialogWindow::DialogWindow(DialogWindowLayout* pParent, ScriptDocument const& rD ...@@ -97,6 +97,12 @@ DialogWindow::DialogWindow(DialogWindowLayout* pParent, ScriptDocument const& rD
SetReadOnly(true); SetReadOnly(true);
} }
void DialogWindow::dispose()
{
pEditor.reset();
BaseWindow::dispose();
}
void DialogWindow::LoseFocus() void DialogWindow::LoseFocus()
{ {
if ( IsModified() ) if ( IsModified() )
......
...@@ -57,13 +57,14 @@ class DialogWindow: public BaseWindow ...@@ -57,13 +57,14 @@ class DialogWindow: public BaseWindow
{ {
private: private:
DialogWindowLayout& rLayout; DialogWindowLayout& rLayout;
std::unique_ptr<DlgEditor> pEditor; // never nullptr std::unique_ptr<DlgEditor> pEditor;
std::unique_ptr<SfxUndoManager> pUndoMgr; // never nullptr std::unique_ptr<SfxUndoManager> pUndoMgr; // never nullptr
OUString aCurPath; OUString aCurPath;
protected: protected:
virtual void Paint(vcl::RenderContext& rRenderContext, const Rectangle& rRect) override; virtual void Paint(vcl::RenderContext& rRenderContext, const Rectangle& rRect) override;
virtual void Resize() override; virtual void Resize() override;
virtual void dispose() override;
virtual void MouseButtonDown( const MouseEvent& rMEvt ) override; virtual void MouseButtonDown( const MouseEvent& rMEvt ) override;
virtual void MouseButtonUp( const MouseEvent& rMEvt ) override; virtual void MouseButtonUp( const MouseEvent& rMEvt ) override;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment