summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
Diffstat (limited to 'vcl')
-rw-r--r--vcl/source/control/button.cxx9
-rw-r--r--vcl/source/control/tabctrl.cxx4
-rw-r--r--vcl/source/window/accessibility.cxx2
-rw-r--r--vcl/source/window/dialog.cxx8
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();
}