svx/source/accessibility/svxpixelctlaccessiblecontext.cxx | 7 ++++- svx/source/dialog/dlgctrl.cxx | 17 +++----------- 2 files changed, 9 insertions(+), 15 deletions(-)
New commits: commit 12d9ac1f773e88abd0cfa975366db16e42ae4292 Author: Caolán McNamara <caol...@redhat.com> Date: Mon May 19 11:41:14 2014 +0100 Resolves: fdo#78841 crash because parent isn't SvxTabPage regression from 60f11adb950e4f9645cc9ecb0f5af8235cc97366 Change-Id: I244dd9fba3dc8230fcac8710a1289151b25dcf6c diff --git a/svx/source/accessibility/svxpixelctlaccessiblecontext.cxx b/svx/source/accessibility/svxpixelctlaccessiblecontext.cxx index 76dd605..1d45757 100644 --- a/svx/source/accessibility/svxpixelctlaccessiblecontext.cxx +++ b/svx/source/accessibility/svxpixelctlaccessiblecontext.cxx @@ -101,7 +101,9 @@ uno::Reference< XAccessible > SvxPixelCtlAccessible::getAccessibleParent( ) throw (uno::RuntimeException, std::exception) { ::osl::MutexGuard aGuard( m_aMutex ); - return mrPixelCtl.GetParent()->GetAccessible( true ); + Window *pTabPage = getNonLayoutParent(&mrPixelCtl); + assert(pTabPage && WINDOW_TABPAGE == pTabPage->GetType()); + return pTabPage->GetAccessible( true ); } sal_Int32 SvxPixelCtlAccessible::getAccessibleIndexInParent( ) @@ -109,7 +111,8 @@ sal_Int32 SvxPixelCtlAccessible::getAccessibleIndexInParent( ) { ::osl::MutexGuard aGuard( m_aMutex ); sal_uInt16 nIdx = 0; - Window* pTabPage = mrPixelCtl.GetParent(); + Window *pTabPage = getNonLayoutParent(&mrPixelCtl); + assert(pTabPage && WINDOW_TABPAGE == pTabPage->GetType()); sal_uInt16 nChildren = pTabPage->GetChildCount(); for(nIdx = 0; nIdx < nChildren; nIdx++) if(pTabPage->GetChild( nIdx ) == &mrPixelCtl) diff --git a/svx/source/dialog/dlgctrl.cxx b/svx/source/dialog/dlgctrl.cxx index aa529f7..ffb0be2 100644 --- a/svx/source/dialog/dlgctrl.cxx +++ b/svx/source/dialog/dlgctrl.cxx @@ -264,22 +264,13 @@ void SvxRectCtl::MouseButtonDown( const MouseEvent& rMEvt ) SetActualRP( eRP ); - Window* pParent = GetParent(); - while (pParent) - { - if( WINDOW_TABPAGE == pParent->GetType() ) - { - ( (SvxTabPage*) pParent )->PointChanged( this, eRP ); - break; - } - pParent = pParent->GetParent(); - } + Window *pTabPage = getNonLayoutParent(this); + if (pTabPage && WINDOW_TABPAGE == pTabPage->GetType()) + ( (SvxTabPage*)pTabPage)->PointChanged( this, eRP ); } } } - - void SvxRectCtl::KeyInput( const KeyEvent& rKeyEvt ) { // CompletelyDisabled() added to have a disabled state for SvxRectCtl @@ -812,7 +803,7 @@ long SvxPixelCtl::ShowPosition( const Point &pt) Window *pTabPage = getNonLayoutParent(this); if (pTabPage && WINDOW_TABPAGE == pTabPage->GetType()) - ( (SvxTabPage*) GetParent() )->PointChanged( this, RP_MM ); // RectPoint ist dummy + ( (SvxTabPage*)pTabPage)->PointChanged( this, RP_MM ); // RectPoint ist dummy return GetFoucsPosIndex();
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits