diff options
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/source/control/button.cxx | 9 | ||||
-rw-r--r-- | vcl/source/control/tabctrl.cxx | 4 | ||||
-rw-r--r-- | vcl/source/window/accessibility.cxx | 2 | ||||
-rw-r--r-- | vcl/source/window/dialog.cxx | 8 |
4 files changed, 12 insertions, 11 deletions
diff --git a/vcl/source/control/button.cxx b/vcl/source/control/button.cxx index 1fffd4809750..7861656edf90 100644 --- a/vcl/source/control/button.cxx +++ b/vcl/source/control/button.cxx @@ -96,13 +96,11 @@ Button::Button( WindowType nType ) : Button::~Button() { dispose(); + delete mpButtonData; } void Button::dispose() { - delete mpButtonData; - mpButtonData = NULL; - Control::dispose(); } @@ -543,7 +541,7 @@ sal_uInt16& Button::ImplGetButtonState() sal_uInt16 Button::ImplGetButtonState() const { - return mpButtonData->mnButtonState; + return mpButtonData ? mpButtonData->mnButtonState : 0; } void Button::ImplSetSymbolAlign( SymbolAlign eAlign ) @@ -1588,7 +1586,8 @@ void PushButton::SetPressed( bool bPressed ) void PushButton::EndSelection() { EndTracking( ENDTRACK_CANCEL ); - if ( ImplGetButtonState() & BUTTON_DRAW_PRESSED ) + if ( !IsDisposed() && + ImplGetButtonState() & BUTTON_DRAW_PRESSED ) { ImplGetButtonState() &= ~BUTTON_DRAW_PRESSED; if ( !mbPressed ) diff --git a/vcl/source/control/tabctrl.cxx b/vcl/source/control/tabctrl.cxx index 73987a1aafc8..4a89c0f33ca5 100644 --- a/vcl/source/control/tabctrl.cxx +++ b/vcl/source/control/tabctrl.cxx @@ -206,9 +206,9 @@ void TabControl::dispose() // delete TabCtrl data if ( mpTabCtrlData ) { - if( mpTabCtrlData->mpListBox ) - delete mpTabCtrlData->mpListBox; + delete mpTabCtrlData->mpListBox; delete mpTabCtrlData; + mpTabCtrlData = NULL; } Control::dispose(); } diff --git a/vcl/source/window/accessibility.cxx b/vcl/source/window/accessibility.cxx index fc3dc74d009d..ca8865618834 100644 --- a/vcl/source/window/accessibility.cxx +++ b/vcl/source/window/accessibility.cxx @@ -136,6 +136,8 @@ namespace vcl { return pChild->GetAccessible(); } */ + if ( !mpWindowImpl ) + return css::uno::Reference< css::accessibility::XAccessible >(); if ( !mpWindowImpl->mxAccessible.is() && bCreate ) mpWindowImpl->mxAccessible = CreateAccessible(); diff --git a/vcl/source/window/dialog.cxx b/vcl/source/window/dialog.cxx index 9975c9710558..b34a451cc450 100644 --- a/vcl/source/window/dialog.cxx +++ b/vcl/source/window/dialog.cxx @@ -347,8 +347,8 @@ void Dialog::ImplInitDialogData() mbOldSaveBack = false; mbInClose = false; mbModalMode = false; - mpContentArea.disposeAndClear(); - mpActionArea.disposeAndClear(); + mpContentArea.clear(); + mpActionArea.clear(); mnMousePositioned = 0; mpDialogImpl = new DialogImpl; } @@ -551,8 +551,8 @@ void Dialog::dispose() { delete mpDialogImpl; mpDialogImpl = NULL; - mpActionArea.disposeAndClear(); - mpContentArea.disposeAndClear(); + mpActionArea.clear(); + mpContentArea.clear(); SystemWindow::dispose(); } |