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 {