diff options
Diffstat (limited to 'svtools/source/toolpanel')
-rw-r--r-- | svtools/source/toolpanel/paneltabbar.cxx | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/svtools/source/toolpanel/paneltabbar.cxx b/svtools/source/toolpanel/paneltabbar.cxx index 37bbcf4678c2..ae4c7b4e3a3a 100644 --- a/svtools/source/toolpanel/paneltabbar.cxx +++ b/svtools/source/toolpanel/paneltabbar.cxx @@ -1098,16 +1098,21 @@ namespace svt ::boost::optional< size_t > aNewItem( m_pImpl->FindItemForPoint( i_rMouseEvent.GetPosPixel() ) ); if ( i_rMouseEvent.IsLeaveWindow() ) - aNewItem.reset(); - - if ( aOldItem != aNewItem ) + aNewItem = ::boost::optional< size_t >(); + + bool const bChanged( + ( !aOldItem && aNewItem ) + || ( aOldItem && !aNewItem ) + || ( aOldItem && aNewItem && aOldItem != aNewItem ) ) + ; + if ( bChanged ) { - if ( !!aOldItem ) + if ( aOldItem ) m_pImpl->InvalidateItem( *aOldItem ); m_pImpl->m_aHoveredItem = aNewItem; - if ( !!aNewItem ) + if ( aNewItem ) m_pImpl->InvalidateItem( *aNewItem ); } } |