Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/comctl32/listbox.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/dlls/comctl32/listbox.c b/dlls/comctl32/listbox.c index 51f6115059..71a9c18478 100644 --- a/dlls/comctl32/listbox.c +++ b/dlls/comctl32/listbox.c @@ -490,8 +490,8 @@ static INT LISTBOX_GetItemFromPoint( const LB_DESCR *descr, INT x, INT y ) static void LISTBOX_PaintItem( LB_DESCR *descr, HDC hdc, const RECT *rect, INT index, UINT action, BOOL ignoreFocus ) { + BOOL selected = FALSE, focused; LB_ITEMDATA *item = NULL; - BOOL selected = FALSE;
if (index < descr->nb_items) { @@ -499,6 +499,8 @@ static void LISTBOX_PaintItem( LB_DESCR *descr, HDC hdc, const RECT *rect, selected = is_item_selected(descr, index); }
+ focused = !ignoreFocus && descr->focus_item == index && descr->caret_on && descr->in_focus; + if (IS_OWNERDRAW(descr)) { DRAWITEMSTRUCT dis; @@ -530,9 +532,8 @@ static void LISTBOX_PaintItem( LB_DESCR *descr, HDC hdc, const RECT *rect, dis.itemState = 0; if (selected) dis.itemState |= ODS_SELECTED; - if (!ignoreFocus && (descr->focus_item == index) && - (descr->caret_on) && - (descr->in_focus)) dis.itemState |= ODS_FOCUS; + if (focused) + dis.itemState |= ODS_FOCUS; if (!IsWindowEnabled(descr->self)) dis.itemState |= ODS_DISABLED; dis.itemData = item->data; dis.rcItem = *rect; @@ -582,9 +583,8 @@ static void LISTBOX_PaintItem( LB_DESCR *descr, HDC hdc, const RECT *rect, SetBkColor( hdc, oldBk ); SetTextColor( hdc, oldText ); } - if (!ignoreFocus && (descr->focus_item == index) && - (descr->caret_on) && - (descr->in_focus)) DrawFocusRect( hdc, rect ); + if (focused) + DrawFocusRect( hdc, rect ); } }