diff options
author | Noel Grandin <noel@peralex.com> | 2015-05-26 12:42:44 +0200 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2015-05-26 16:04:58 +0100 |
commit | 3f5ce7de7cdc3d010738e4cffbe28b3b73676f5a (patch) | |
tree | 39e4f95139390cb9cebae1b6b3f205a13aea0320 /basctl | |
parent | ade3f2e4a1a22b5ab412c220db223c996473d7ef (diff) |
tdf#91575 - CRASH: when "My Macros & Dialogs Standard" window close
Change-Id: Iad4f67e78a0aa4c67f0c450e17278f873944aa23
(cherry picked from commit dbca69b975ea8b25c040f12441d70f90cf0e9ab4)
Diffstat (limited to 'basctl')
-rw-r--r-- | basctl/source/basicide/layout.cxx | 5 | ||||
-rw-r--r-- | basctl/source/basicide/layout.hxx | 5 |
2 files changed, 6 insertions, 4 deletions
diff --git a/basctl/source/basicide/layout.cxx b/basctl/source/basicide/layout.cxx index a42c99cc44ec..12ad6277055b 100644 --- a/basctl/source/basicide/layout.cxx +++ b/basctl/source/basicide/layout.cxx @@ -184,7 +184,10 @@ void Layout::SplittedSide::dispose() { aSplitter.disposeAndClear(); for (auto i = vItems.begin(); i != vItems.end(); ++i) + { i->pSplit.disposeAndClear(); + i->pWin.clear(); + } } // Add() -- adds a new window to the side (after construction) @@ -223,6 +226,8 @@ void Layout::SplittedSide::Remove (DockingWindow* pWin) if (iWin == vItems.size()) return; // remove + vItems[iWin].pSplit.disposeAndClear(); + vItems[iWin].pWin.clear(); vItems.erase(vItems.begin() + iWin); // if that was the first one, remove the first splitter line if (iWin == 0 && !vItems.empty()) diff --git a/basctl/source/basicide/layout.hxx b/basctl/source/basicide/layout.hxx index 340086656e68..6d949c737a17 100644 --- a/basctl/source/basicide/layout.hxx +++ b/basctl/source/basicide/layout.hxx @@ -61,7 +61,6 @@ protected: void Remove (DockingWindow*); bool HasSize () const { return !bFirstSize; } -protected: // Window: virtual void Resize () SAL_OVERRIDE; virtual void DataChanged (DataChangedEvent const& rDCEvt) SAL_OVERRIDE; @@ -117,12 +116,10 @@ private: VclPtr<Splitter> pSplit; }; std::vector<Item> vItems; - private: + Point MakePoint (long, long) const; Size MakeSize (long, long) const; - private: static bool IsDocking (DockingWindow const&); - private: DECL_LINK(SplitHdl, Splitter*); void CheckMarginsFor (Splitter*); void InitSplitter (Splitter&); |