I don't like this, but add the treeview refresh hack.
[reactos.git] / reactos / dll / win32 / comctl32 / comctl32_ros.diff
index aa33052..8b0db1f 100644 (file)
@@ -1,24 +1,8 @@
-Index: listview.c
-===================================================================
---- listview.c (revision 23123)
-+++ listview.c (working copy)
-@@ -3777,9 +3777,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)
-@@ -2422,6 +2422,28 @@
+@@ -2417,6 +2417,29 @@
    return FALSE;
  }
  
@@ -43,11 +27,12 @@ Index: propsheet.c
 +
 +    return TRUE;
 +}
++
 +
  /******************************************************************************
   *            PROPSHEET_SetWizButtons
   *
-@@ -2444,17 +2466,6 @@
+@@ -2438,17 +2461,6 @@
    EnableWindow(hwndNext, FALSE);
    EnableWindow(hwndFinish, FALSE);
  
@@ -65,7 +50,7 @@ Index: propsheet.c
    if (dwFlags & PSWIZB_BACK)
      EnableWindow(hwndBack, TRUE);
  
-@@ -2484,6 +2495,32 @@
+@@ -2478,6 +2490,31 @@
    }
    else if (!(dwFlags & PSWIZB_DISABLEDFINISH))
      EnableWindow(hwndFinish, TRUE);
@@ -94,16 +79,63 @@ Index: propsheet.c
 +
 +  /* Now try to find an edit control that deserves focus */
 +  EnumChildWindows(PropSheet_GetCurrentPageHwnd(hwndDlg), EnumChildProc, 0);
-+  
  }
  
  /******************************************************************************
-@@ -3548,7 +3585,7 @@
+Index: tooltips.c
+===================================================================
+--- tooltips.c (revision 38890)
++++ tooltips.c (working copy)
+@@ -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);
++    TOOLTIPS_INFO *infoPtr = TOOLTIPS_GetInfoPtr (hwnd);
++    TTTOOL_INFO *toolPtr = infoPtr->tools;
++    INT nResult;
  
-       return FALSE;
-     }
--  
++    TRACE("hwnd=%p wParam=%lx lParam=%lx\n", hwnd, wParam, lParam);
 +
-     case WM_SYSCOLORCHANGE:
-       COMCTL32_RefreshSysColors();
-       return FALSE;
++    if (lParam == NF_QUERY) {
++        if (toolPtr->bNotifyUnicode) {
++            return NFR_UNICODE;
++        } else {
++            return NFR_ANSI;
++        }
++    }
++    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");
++        } else if (nResult == NFR_UNICODE) {
++            toolPtr->bNotifyUnicode = TRUE;
++            TRACE(" -- WM_NOTIFYFORMAT returns: NFR_UNICODE\n");
++        } else {
++            TRACE (" -- WM_NOTIFYFORMAT returns: error!\n");
++        }
++        return nResult;
++    }
+     return 0;
+ }
+Index: treeview.c
+===================================================================
+--- treeview.c (revision 38890)
++++ treeview.c (working copy)
+@@ -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 =