I don't like this, but add the treeview refresh hack.
[reactos.git] / reactos / dll / win32 / comctl32 / comctl32_ros.diff
index 344d972..8b0db1f 100644 (file)
@@ -1,37 +1,8 @@
-Index: commctrl.c
-===================================================================
---- commctrl.c (revision 23123)
-+++ commctrl.c (working copy)
-@@ -1620,7 +1620,7 @@
-  *
-  * Draw text with shadow.
-  */
-+int WINAPI DrawShadowText(HDC hdc, LPCWSTR pszText, UINT cch, const RECT *rect, DWORD dwFlags,
--int WINAPI DrawShadowText(HDC hdc, LPCWSTR pszText, UINT cch, RECT *rect, DWORD dwFlags,
-                           COLORREF crText, COLORREF crShadow, int ixOffset, int iyOffset)
- {
-     FIXME("(%p, %s, %d, %p, %d, 0x%08x, 0x%08x, %d, %d): stub\n", hdc, debugstr_w(pszText), cch, rect, dwFlags,
-Index: listview.c
-===================================================================
---- listview.c (revision 23123)
-+++ listview.c (working copy)
-@@ -3810,9 +3810,8 @@
-     if (himl && lvItem.iImage >= 0 && !IsRectEmpty(&rcIcon))
-     {
-         TRACE("iImage=%d\n", lvItem.iImage);
-+        ImageList_Draw(himl, lvItem.iImage, hdc, rcIcon.left, rcIcon.top,
-+                       (lvItem.state & LVIS_SELECTED) && (infoPtr->bFocus) ? ILD_SELECTED : ILD_NORMAL);
--        ImageList_DrawEx(himl, lvItem.iImage, hdc, rcIcon.left, rcIcon.top,
--                         rcIcon.right - rcIcon.left, rcIcon.bottom - rcIcon.top, infoPtr->clrBk, CLR_DEFAULT,
--                         (lvItem.state & LVIS_SELECTED) && (infoPtr->bFocus) ? ILD_SELECTED : ILD_NORMAL);
-     }
-     /* Don't bother painting item being edited */
 Index: propsheet.c
 ===================================================================
---- propsheet.c        (revision 25766)
+--- propsheet.c        (revision 38890)
 +++ propsheet.c        (working copy)
-@@ -2434,6 +2434,28 @@
+@@ -2417,6 +2417,29 @@
    return FALSE;
  }
  
@@ -56,11 +27,12 @@ Index: propsheet.c
 +
 +    return TRUE;
 +}
++
 +
  /******************************************************************************
   *            PROPSHEET_SetWizButtons
   *
-@@ -2456,17 +2478,6 @@
+@@ -2438,17 +2461,6 @@
    EnableWindow(hwndNext, FALSE);
    EnableWindow(hwndFinish, FALSE);
  
@@ -78,7 +50,7 @@ Index: propsheet.c
    if (dwFlags & PSWIZB_BACK)
      EnableWindow(hwndBack, TRUE);
  
-@@ -2496,6 +2507,32 @@
+@@ -2478,6 +2490,31 @@
    }
    else if (!(dwFlags & PSWIZB_DISABLEDFINISH))
      EnableWindow(hwndFinish, TRUE);
@@ -107,50 +79,40 @@ Index: propsheet.c
 +
 +  /* Now try to find an edit control that deserves focus */
 +  EnumChildWindows(PropSheet_GetCurrentPageHwnd(hwndDlg), EnumChildProc, 0);
-+  
  }
  
  /******************************************************************************
-@@ -3555,6 +3558,8 @@
-        * from which to switch to the next page */
-       SendMessageW(hwndTabCtrl, TCM_SETCURSEL, psInfo->active_page, 0);
-+      PROPSHEET_UnChanged(hwnd, (HWND)wParam);
-+
-       return TRUE;
-     }
 Index: tooltips.c
 ===================================================================
---- tooltips.c (revision 25790)
+--- tooltips.c (revision 38890)
 +++ tooltips.c (working copy)
-@@ -2471,7 +2471,34 @@
+@@ -2488,8 +2488,33 @@
+ static LRESULT
  TOOLTIPS_NotifyFormat (HWND hwnd, WPARAM wParam, LPARAM lParam)
  {
-     FIXME ("hwnd=%p wParam=%lx lParam=%lx\n", hwnd, wParam, lParam);
+-    FIXME ("hwnd=%p wParam=%lx lParam=%lx\n", hwnd, wParam, lParam);
 +    TOOLTIPS_INFO *infoPtr = TOOLTIPS_GetInfoPtr (hwnd);
 +    TTTOOL_INFO *toolPtr = infoPtr->tools;
 +    INT nResult;
  
-+    if (lParam == NF_QUERY)
-+    {
-+        if (toolPtr->bNotifyUnicode)
-+        {
++    TRACE("hwnd=%p wParam=%lx lParam=%lx\n", hwnd, wParam, lParam);
++
++    if (lParam == NF_QUERY) {
++        if (toolPtr->bNotifyUnicode) {
 +            return NFR_UNICODE;
 +        } else {
 +            return NFR_ANSI;
 +        }
 +    }
-+    else if (lParam == NF_REQUERY)
-+    {
++    else if (lParam == NF_REQUERY) {
 +        nResult = (INT) SendMessageW (toolPtr->hwnd, WM_NOTIFYFORMAT,
 +                    (WPARAM)hwnd, (LPARAM)NF_QUERY);
 +        if (nResult == NFR_ANSI) {
 +            toolPtr->bNotifyUnicode = FALSE;
-+        TRACE(" -- WM_NOTIFYFORMAT returns: NFR_ANSI\n");
++            TRACE(" -- WM_NOTIFYFORMAT returns: NFR_ANSI\n");
 +        } else if (nResult == NFR_UNICODE) {
 +            toolPtr->bNotifyUnicode = TRUE;
-+        TRACE(" -- WM_NOTIFYFORMAT returns: NFR_UNICODE\n");
++            TRACE(" -- WM_NOTIFYFORMAT returns: NFR_UNICODE\n");
 +        } else {
 +            TRACE (" -- WM_NOTIFYFORMAT returns: error!\n");
 +        }
@@ -161,14 +123,19 @@ Index: tooltips.c
  
 Index: treeview.c
 ===================================================================
---- treeview.c (revision 27134)
+--- treeview.c (revision 38890)
 +++ treeview.c (working copy)
-@@ -2844,8 +2844,6 @@
+@@ -2830,7 +2830,12 @@
        }
      }
  
 -    TREEVIEW_UpdateScrollBars(infoPtr);
--
++    //
++    // This is correct, but is causes and infinite loop of WM_PAINT messages, resulting
++    // in continuous painting of the scroll bar in reactos. Comment out until the real
++    // bug is found
++    // 
++    //TREEVIEW_UpdateScrollBars(infoPtr);
      if (infoPtr->cdmode & CDRF_NOTIFYPOSTPAINT)
        infoPtr->cdmode =
-           TREEVIEW_SendCustomDrawNotify(infoPtr, CDDS_POSTPAINT, hdc, rect);