summaryrefslogtreecommitdiff
path: root/accessibility
diff options
context:
space:
mode:
Diffstat (limited to 'accessibility')
-rw-r--r--accessibility/source/standard/vclxaccessibletoolbox.cxx8
1 files changed, 7 insertions, 1 deletions
diff --git a/accessibility/source/standard/vclxaccessibletoolbox.cxx b/accessibility/source/standard/vclxaccessibletoolbox.cxx
index 188e7772d920..c3042fbe67a4 100644
--- a/accessibility/source/standard/vclxaccessibletoolbox.cxx
+++ b/accessibility/source/standard/vclxaccessibletoolbox.cxx
@@ -430,10 +430,16 @@ void VCLXAccessibleToolBox::UpdateCustomPopupItemp_Impl( vcl::Window* pWindow, b
ToolBox* pToolBox = static_cast< ToolBox* >( GetWindow() );
if( pWindow && pToolBox )
{
+ const sal_uInt16 nDownItem = pToolBox->GetDownItemId();
+ if ( !nDownItem )
+ // Items with ItemId == 0 are not allowed in ToolBox, which means that currently no item is in down state.
+ // Moreover, running GetItemPos with 0 could find a separator item if there is any.
+ return;
+
Reference< XAccessible > xChild( pWindow->GetAccessible() );
if( xChild.is() )
{
- Reference< XAccessible > xChildItem( getAccessibleChild( static_cast< sal_Int32 >( pToolBox->GetItemPos( pToolBox->GetDownItemId() ) ) ) );
+ Reference< XAccessible > xChildItem( getAccessibleChild( static_cast< sal_Int32 >( pToolBox->GetItemPos( nDownItem ) ) ) );
VCLXAccessibleToolBoxItem* pItem = static_cast< VCLXAccessibleToolBoxItem* >( xChildItem.get() );
pItem->SetChild( xChild );