diff options
author | Caolán McNamara <caolanm@redhat.com> | 2014-07-02 11:43:45 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2014-07-02 11:57:08 +0100 |
commit | 5a83b31acab390785505b84895359fa9fbc25ed9 (patch) | |
tree | 5980b748c690f412ce890a20fd7099a9485beb93 /vcl | |
parent | 5983675eccd9517915d8f5558c25f47c952edb24 (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.cxx | 7 |
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; } |