diff options
author | Vladimir Glazounov <vg@openoffice.org> | 2008-07-01 22:12:48 +0000 |
---|---|---|
committer | Vladimir Glazounov <vg@openoffice.org> | 2008-07-01 22:12:48 +0000 |
commit | e6bad0492d2694b04b85ad7e24b83c986d71a282 (patch) | |
tree | af2a47f6a49262aaa1e3785c2ee2efe4b8de24d4 /vcl | |
parent | 87bbdefe14dc4eaff67e71456ba16164685f4077 (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')
-rw-r--r-- | vcl/source/window/toolbox.cxx | 10 |
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 ) |