summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoel Grandin <noel@peralex.com>2015-05-26 12:42:44 +0200
committerCaolán McNamara <caolanm@redhat.com>2015-05-26 16:04:58 +0100
commit3f5ce7de7cdc3d010738e4cffbe28b3b73676f5a (patch)
tree39e4f95139390cb9cebae1b6b3f205a13aea0320
parentade3f2e4a1a22b5ab412c220db223c996473d7ef (diff)
tdf#91575 - CRASH: when "My Macros & Dialogs Standard" window close
Change-Id: Iad4f67e78a0aa4c67f0c450e17278f873944aa23 (cherry picked from commit dbca69b975ea8b25c040f12441d70f90cf0e9ab4)
-rw-r--r--basctl/source/basicide/layout.cxx5
-rw-r--r--basctl/source/basicide/layout.hxx5
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&);