TREEVIEW_UpdateScrollBars() now copes with an empty tree.
diff --git a/dlls/comctl32/treeview.c b/dlls/comctl32/treeview.c
index 3bf77aa..57d98c7 100644
--- a/dlls/comctl32/treeview.c
+++ b/dlls/comctl32/treeview.c
@@ -2690,14 +2690,23 @@
if (vert)
{
si.nPage = TREEVIEW_GetVisibleCount(infoPtr);
- si.nPos = infoPtr->firstVisible->visibleOrder;
- si.nMax = infoPtr->maxVisibleOrder - 1;
+ if ( si.nPage )
+ {
+ si.nPos = infoPtr->firstVisible->visibleOrder;
+ si.nMax = infoPtr->maxVisibleOrder - 1;
- SetScrollInfo(hwnd, SB_VERT, &si, TRUE);
+ SetScrollInfo(hwnd, SB_VERT, &si, TRUE);
- if (!(infoPtr->uInternalStatus & TV_VSCROLL))
- ShowScrollBar(hwnd, SB_VERT, TRUE);
- infoPtr->uInternalStatus |= TV_VSCROLL;
+ if (!(infoPtr->uInternalStatus & TV_VSCROLL))
+ ShowScrollBar(hwnd, SB_VERT, TRUE);
+ infoPtr->uInternalStatus |= TV_VSCROLL;
+ }
+ else
+ {
+ if (infoPtr->uInternalStatus & TV_VSCROLL)
+ ShowScrollBar(hwnd, SB_VERT, FALSE);
+ infoPtr->uInternalStatus &= ~TV_VSCROLL;
+ }
}
else
{