diff options
author | Noel Grandin <noel@peralex.com> | 2015-05-26 12:42:44 +0200 |
---|---|---|
committer | Noel Grandin <noel@peralex.com> | 2015-05-26 12:42:56 +0200 |
commit | dbca69b975ea8b25c040f12441d70f90cf0e9ab4 (patch) | |
tree | 7f5377dafaa526b515cbf30a606155ee6478b382 /basctl | |
parent | 26092f54865645722aeed596af62d20918aa2046 (diff) |
tdf#91575 - CRASH: when "My Macros & Dialogs Standard" window close
Change-Id: Iad4f67e78a0aa4c67f0c450e17278f873944aa23
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&); |