diff options
Diffstat (limited to 'sw/source/uibase/utlui/glbltree.cxx')
-rw-r--r-- | sw/source/uibase/utlui/glbltree.cxx | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/sw/source/uibase/utlui/glbltree.cxx b/sw/source/uibase/utlui/glbltree.cxx index 2f4b0a5009f6..5c5a1aa75d93 100644 --- a/sw/source/uibase/utlui/glbltree.cxx +++ b/sw/source/uibase/utlui/glbltree.cxx @@ -180,8 +180,18 @@ SwGlobalTree::SwGlobalTree(vcl::Window* pParent, const ResId& rResId) : SwGlobalTree::~SwGlobalTree() { + disposeOnce(); +} + +void SwGlobalTree::dispose() +{ delete pSwGlblDocContents; + pSwGlblDocContents = NULL; delete pDocInserter; + pDocInserter = NULL; + pDefParentWin.clear(); + aUpdateTimer.Stop(); + SvTreeListBox::dispose(); } sal_Int8 SwGlobalTree::ExecuteDrop( const ExecuteDropEvent& rEvt ) @@ -505,12 +515,12 @@ void SwGlobalTree::SelectHdl() SwNavigationPI* pNavi = GetParentWindow(); bool bReadonly = !pActiveShell || pActiveShell->GetView().GetDocShell()->IsReadOnly(); - pNavi->aGlobalToolBox.EnableItem(FN_GLOBAL_EDIT, nSelCount == 1 && !bReadonly); - pNavi->aGlobalToolBox.EnableItem(FN_GLOBAL_OPEN, nSelCount <= 1 && !bReadonly); - pNavi->aGlobalToolBox.EnableItem(FN_GLOBAL_UPDATE, GetEntryCount() > 0 && !bReadonly); - pNavi->aGlobalToolBox.EnableItem(FN_ITEM_UP, + pNavi->aGlobalToolBox->EnableItem(FN_GLOBAL_EDIT, nSelCount == 1 && !bReadonly); + pNavi->aGlobalToolBox->EnableItem(FN_GLOBAL_OPEN, nSelCount <= 1 && !bReadonly); + pNavi->aGlobalToolBox->EnableItem(FN_GLOBAL_UPDATE, GetEntryCount() > 0 && !bReadonly); + pNavi->aGlobalToolBox->EnableItem(FN_ITEM_UP, nSelCount == 1 && nAbsPos && !bReadonly); - pNavi->aGlobalToolBox.EnableItem(FN_ITEM_DOWN, + pNavi->aGlobalToolBox->EnableItem(FN_ITEM_DOWN, nSelCount == 1 && nAbsPos < GetEntryCount() - 1 && !bReadonly); } @@ -1001,7 +1011,7 @@ void SwGlobalTree::ExcecuteContextMenuAction( sal_uInt16 nSelectedPopupEntry IMPL_LINK_NOARG(SwGlobalTree, Timeout) { - if(!HasFocus() && Update( false )) + if(!IsDisposed() && !HasFocus() && Update( false )) Display(); return 0; } |