summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2014-07-02 11:43:45 +0100
committerCaolán McNamara <caolanm@redhat.com>2014-07-02 11:57:08 +0100
commit5a83b31acab390785505b84895359fa9fbc25ed9 (patch)
tree5980b748c690f412ce890a20fd7099a9485beb93 /vcl
parent5983675eccd9517915d8f5558c25f47c952edb24 (diff)
expose a way to drop ownership of a window from builder tree
Change-Id: I6f6bff32271ed1d6c328ba211a6b1249fda039dd
Diffstat (limited to 'vcl')
-rw-r--r--vcl/source/window/builder.cxx7
1 files changed, 6 insertions, 1 deletions
diff --git a/vcl/source/window/builder.cxx b/vcl/source/window/builder.cxx
index 98055fc65d09..e336a052b5db 100644
--- a/vcl/source/window/builder.cxx
+++ b/vcl/source/window/builder.cxx
@@ -2998,12 +2998,17 @@ void VclBuilder::delete_by_name(const OString& sID)
void VclBuilder::delete_by_window(const Window *pWindow)
{
+ drop_ownership(pWindow);
+ delete pWindow;
+}
+
+void VclBuilder::drop_ownership(const Window *pWindow)
+{
for (std::vector<WinAndId>::iterator aI = m_aChildren.begin(),
aEnd = m_aChildren.end(); aI != aEnd; ++aI)
{
if (aI->m_pWindow == pWindow)
{
- delete aI->m_pWindow;
m_aChildren.erase(aI);
break;
}