diff --git a/layout/generic/nsGfxScrollFrame.cpp b/layout/generic/nsGfxScrollFrame.cpp index 8b4b37d3c6fd..4e4ef538dd56 100644 --- a/layout/generic/nsGfxScrollFrame.cpp +++ b/layout/generic/nsGfxScrollFrame.cpp @@ -2396,9 +2396,10 @@ nsGfxScrollFrameInner::LayoutScrollbars(nsBoxLayoutState& aState, nscoord curPosX, curPosY; scrollable->GetScrollPosition(curPosX, curPosY); // Scrollbars assume zero is the minimum position, so translate for them. - SetCoordAttribute(mVScrollbarBox, nsXULAtoms::curpos, curPosY - minY); SetScrollbarEnabled(mVScrollbarBox, maxY - minY); SetCoordAttribute(mVScrollbarBox, nsXULAtoms::maxpos, maxY - minY); + // Set curpos after maxpos since it could be clamped based on maxpos. + SetCoordAttribute(mVScrollbarBox, nsXULAtoms::curpos, curPosY - minY); SetCoordAttribute(mVScrollbarBox, nsXULAtoms::pageincrement, nscoord(aScrollArea.height - fontHeight)); SetCoordAttribute(mVScrollbarBox, nsXULAtoms::increment, fontHeight); @@ -2416,9 +2417,10 @@ nsGfxScrollFrameInner::LayoutScrollbars(nsBoxLayoutState& aState, nscoord curPosX, curPosY; scrollable->GetScrollPosition(curPosX, curPosY); // Scrollbars assume zero is the minimum position, so translate for them. - SetCoordAttribute(mHScrollbarBox, nsXULAtoms::curpos, curPosX - minX); SetScrollbarEnabled(mHScrollbarBox, maxX - minX); SetCoordAttribute(mHScrollbarBox, nsXULAtoms::maxpos, maxX - minX); + // Set curpos after maxpos since it could be clamped based on maxpos. + SetCoordAttribute(mHScrollbarBox, nsXULAtoms::curpos, curPosX - minX); SetCoordAttribute(mHScrollbarBox, nsXULAtoms::pageincrement, nscoord(float(aScrollArea.width)*0.8)); SetCoordAttribute(mHScrollbarBox, nsXULAtoms::increment, 10*mOnePixel);