Listview Z5
Dimitrie O. Paun
dpaun at rogers.com
Fri Oct 25 13:46:36 CDT 2002
This should fix Rein's update problems.
Silly me, I was coding to the specifications... :/
ChangeLog
Despite what the docs say, we have to invalidate the
list on WM_SETREDRAW(TRUE).
--- dlls/comctl32/listview.c.Z4 2002-10-25 11:24:19.000000000 -0400
+++ dlls/comctl32/listview.c 2002-10-25 14:44:15.000000000 -0400
@@ -1209,7 +1209,7 @@
return infoPtr->bRedraw && !infoPtr->bFirstPaint;
}
-static inline void LISTVIEW_InvalidateRect(LISTVIEW_INFO *infoPtr, const RECT*rect)
+static inline void LISTVIEW_InvalidateRect(LISTVIEW_INFO *infoPtr, const RECT* rect)
{
if(!is_redrawing(infoPtr)) return;
TRACE(" invalidating rect=%s\n", debugrect(rect));
@@ -8031,6 +8031,11 @@
*/
static LRESULT LISTVIEW_SetRedraw(LISTVIEW_INFO *infoPtr, BOOL bRedraw)
{
+ TRACE("infoPtr->bRedraw=%d, bRedraw=%d\n", infoPtr->bRedraw, bRedraw);
+
+ /* we can not use straight equality here because _any_ non-zero value is TRUE */
+ if ((infoPtr->bRedraw && bRedraw) || (!infoPtr->bRedraw && !bRedraw)) return 0;
+
infoPtr->bRedraw = bRedraw;
if(!bRedraw) return 0;
@@ -8039,6 +8044,10 @@
LISTVIEW_Arrange(infoPtr, LVA_DEFAULT);
LISTVIEW_UpdateScroll(infoPtr);
+ /* despite what the WM_SETREDRAW docs says, apps expect us
+ * to invalidate the listview here... stupid! */
+ LISTVIEW_InvalidateList(infoPtr);
+
return 0;
}
--
Dimi.
More information about the wine-patches
mailing list