summaryrefslogtreecommitdiff
path: root/vcl/source/window
diff options
context:
space:
mode:
authorVladimir Glazounov <vg@openoffice.org>2008-07-01 22:12:48 +0000
committerVladimir Glazounov <vg@openoffice.org>2008-07-01 22:12:48 +0000
commite6bad0492d2694b04b85ad7e24b83c986d71a282 (patch)
treeaf2a47f6a49262aaa1e3785c2ee2efe4b8de24d4 /vcl/source/window
parent87bbdefe14dc4eaff67e71456ba16164685f4077 (diff)
INTEGRATION: CWS aquavcl08 (1.105.34); FILE MERGED
2008/05/28 17:55:50 pl 1.105.34.1: #i89962# prevent ImplHideFocus/ImplShowFocus problem
Diffstat (limited to 'vcl/source/window')
-rw-r--r--vcl/source/window/toolbox.cxx10
1 files changed, 6 insertions, 4 deletions
diff --git a/vcl/source/window/toolbox.cxx b/vcl/source/window/toolbox.cxx
index e6ae2f4b67f5..654ff9235a74 100644
--- a/vcl/source/window/toolbox.cxx
+++ b/vcl/source/window/toolbox.cxx
@@ -7,7 +7,7 @@
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: toolbox.cxx,v $
- * $Revision: 1.106 $
+ * $Revision: 1.107 $
*
* This file is part of OpenOffice.org.
*
@@ -5954,16 +5954,18 @@ void ToolBox::ImplChangeHighlight( ImplToolItem* pItem, BOOL bNoGrabFocus )
mbChangingHighlight = TRUE;
ImplToolItem* pOldItem = NULL;
- USHORT oldPos = 0;
if ( mnHighItemId )
{
ImplHideFocus();
USHORT nPos = GetItemPos( mnHighItemId );
+ pOldItem = ImplGetItem( mnHighItemId );
+ // #i89962# ImplDrawItem can cause Invalidate/Update
+ // which will in turn ImplShowFocus again
+ // set mnHighItemId to 0 already to prevent this hen/egg problem
+ mnHighItemId = 0;
ImplDrawItem( nPos, FALSE );
ImplCallEventListeners( VCLEVENT_TOOLBOX_HIGHLIGHTOFF, reinterpret_cast< void* >( nPos ) );
- pOldItem = ImplGetItem( mnHighItemId );
- oldPos = ToolBox::ImplFindItemPos( pOldItem, mpData->m_aItems );
}
if( !bNoGrabFocus && pItem != pOldItem && pOldItem && pOldItem->mpWindow )