diff options
Diffstat (limited to 'vcl/source/control')
-rw-r--r-- | vcl/source/control/button.cxx | 9 | ||||
-rw-r--r-- | vcl/source/control/tabctrl.cxx | 4 |
2 files changed, 6 insertions, 7 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(); } |