[CMAKE]
[reactos.git] / dll / win32 / comctl32 / comctl32_ros.diff
index 8b0db1f..d15da08 100644 (file)
@@ -139,3 +139,111 @@ Index: treeview.c
  
      if (infoPtr->cdmode & CDRF_NOTIFYPOSTPAINT)
        infoPtr->cdmode =
+Index: listview.c
+===================================================================
+--- listview.c (revision 51320)
++++ listview.c (working copy)
+@@ -315,6 +315,7 @@
+   COLORREF clrBk;
+   COLORREF clrText;
+   COLORREF clrTextBk;
++  BOOL bDefaultBkColor;
+   /* font */
+   HFONT hDefaultFont;
+@@ -1635,8 +1636,19 @@
+ /* 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;
++    BOOL Ret = FALSE;
++
++    if (infoPtr->rcFocus.left < infoPtr->rcFocus.right)
++    {
++        DWORD dwOldBkColor, dwOldTextColor;
++
++        dwOldBkColor = SetBkColor(hdc, RGB(255, 255, 255));
++        dwOldTextColor = SetBkColor(hdc, RGB(0, 0, 0));
++        Ret = DrawFocusRect(hdc, &infoPtr->rcFocus);
++        SetBkColor(hdc, dwOldBkColor);
++        SetBkColor(hdc, dwOldTextColor);
++    }
++    return Ret;
+ }
+ /* Listview invalidation functions: use _only_ these functions to invalidate */
+@@ -5042,7 +5054,11 @@
+     /* Draw marquee rectangle if appropriate */
+     if (infoPtr->bMarqueeSelect)
++    {
++        SetBkColor(hdc, RGB(255, 255, 255));
++        SetTextColor(hdc, RGB(0, 0, 0));
+         DrawFocusRect(hdc, &infoPtr->marqueeDrawRect);
++    }
+     if (cdmode & CDRF_NOTIFYPOSTPAINT)
+       notify_postpaint(infoPtr, &nmlvcd);
+@@ -7856,6 +7872,7 @@
+ {
+     TRACE("(clrBk=%x)\n", clrBk);
++    infoPtr->bDefaultBkColor = FALSE;
+     if(infoPtr->clrBk != clrBk) {
+       if (infoPtr->clrBk != CLR_NONE) DeleteObject(infoPtr->hBkBrush);
+       infoPtr->clrBk = clrBk;
+@@ -9248,6 +9265,7 @@
+   infoPtr->clrText = CLR_DEFAULT;
+   infoPtr->clrTextBk = CLR_DEFAULT;
+   LISTVIEW_SetBkColor(infoPtr, comctl32_color.clrWindow);
++  infoPtr->bDefaultBkColor = TRUE;
+   /* set default values */
+   infoPtr->nFocusedItem = -1;
+@@ -11510,6 +11528,11 @@
+   case WM_SYSCOLORCHANGE:
+     COMCTL32_RefreshSysColors();
++    if (infoPtr->bDefaultBkColor)
++    {
++        LISTVIEW_SetBkColor(infoPtr, comctl32_color.clrWindow);
++        infoPtr->bDefaultBkColor = TRUE;
++    }
+     return 0;
+ /*    case WM_TIMER: */
+Index: rebar.c
+===================================================================
+--- rebar.c    (revision 51320)
++++ rebar.c    (working copy)
+@@ -51,7 +51,6 @@
+  *   - WM_QUERYNEWPALETTE
+  *   - WM_RBUTTONDOWN
+  *   - WM_RBUTTONUP
+- *   - WM_SYSCOLORCHANGE
+  *   - WM_VKEYTOITEM
+  *   - WM_WININICHANGE
+  *   Notifications:
+@@ -2540,10 +2539,8 @@
+     /* initialize band */
+     memset(lpBand, 0, sizeof(*lpBand));
+-    lpBand->clrFore = infoPtr->clrText == CLR_NONE ? infoPtr->clrBtnText :
+-                                                     infoPtr->clrText;
+-    lpBand->clrBack = infoPtr->clrBk == CLR_NONE ? infoPtr->clrBtnFace :
+-                                                   infoPtr->clrBk;
++    lpBand->clrFore = infoPtr->clrText;
++    lpBand->clrBack = infoPtr->clrBk;
+     lpBand->iImage = -1;
+     REBAR_CommonSetupBand(infoPtr->hwndSelf, lprbbi, lpBand);
+@@ -3793,6 +3790,8 @@
+         case WM_SYSCOLORCHANGE:
+             COMCTL32_RefreshSysColors();
++            infoPtr->clrBtnText = comctl32_color.clrBtnText;
++            infoPtr->clrBtnFace = comctl32_color.clrBtnFace;
+             return 0;
+ /*      case WM_VKEYTOITEM:     supported according to ControlSpy */