Nikolay Sivov : comctl32/listview: Don't draw wrapped focus rectangle.
Alexandre Julliard
julliard at winehq.org
Thu Apr 30 11:01:11 CDT 2009
Module: wine
Branch: master
Commit: 146209381b341e37c4bd3f821a81f4a88c5fc003
URL: http://source.winehq.org/git/wine.git/?a=commit;h=146209381b341e37c4bd3f821a81f4a88c5fc003
Author: Nikolay Sivov <bunglehead at gmail.com>
Date: Wed Apr 29 23:04:56 2009 +0400
comctl32/listview: Don't draw wrapped focus rectangle.
---
dlls/comctl32/listview.c | 11 +++++++++--
1 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/dlls/comctl32/listview.c b/dlls/comctl32/listview.c
index 901893f..bfe47a3 100644
--- a/dlls/comctl32/listview.c
+++ b/dlls/comctl32/listview.c
@@ -1412,6 +1412,13 @@ static inline BOOL LISTVIEW_GetItemW(const LISTVIEW_INFO *infoPtr, LPLVITEMW lpL
return LISTVIEW_GetItemT(infoPtr, lpLVItem, TRUE);
}
+/* used to handle collapse main item column case */
+static inline BOOL LISTVIEW_DrawFocusRect(const LISTVIEW_INFO *infoPtr, HDC hdc)
+{
+ return (infoPtr->rcFocus.left < infoPtr->rcFocus.right) ?
+ DrawFocusRect(hdc, &infoPtr->rcFocus) : FALSE;
+}
+
/* Listview invalidation functions: use _only_ these functions to invalidate */
static inline BOOL is_redrawing(const LISTVIEW_INFO *infoPtr)
@@ -1862,7 +1869,7 @@ static void LISTVIEW_ShowFocusRect(const LISTVIEW_INFO *infoPtr, BOOL fShow)
}
else
{
- DrawFocusRect(hdc, &infoPtr->rcFocus);
+ LISTVIEW_DrawFocusRect(infoPtr, hdc);
}
done:
ReleaseDC(infoPtr->hwndSelf, hdc);
@@ -4368,7 +4375,7 @@ static void LISTVIEW_Refresh(LISTVIEW_INFO *infoPtr, HDC hdc, const RECT *prcEra
/* if we have a focus rect, draw it */
if (infoPtr->bFocus)
- DrawFocusRect(hdc, &infoPtr->rcFocus);
+ LISTVIEW_DrawFocusRect(infoPtr, hdc);
}
iterator_destroy(&i);
More information about the wine-cvs
mailing list