verticalScrollOffset += pixels;
boolean scrollVertical(int pixels, boolean adjustScrollBar) {	if (pixels == 0) {		return false;	}	ScrollBar verticalBar = getVerticalBar();	if (verticalBar != null && adjustScrollBar) {		verticalBar.setSelection(getVerticalScrollOffset() + pixels);	}	if (verticalScrollOffset != -1) {		int scrollWidth = clientAreaWidth - leftMargin - rightMargin;		if (pixels > 0) {			int sourceY = topMargin + pixels;			int scrollHeight = clientAreaHeight - sourceY - bottomMargin;			if (scrollHeight > 0) {				scroll(leftMargin, topMargin, leftMargin, sourceY, scrollWidth, scrollHeight, true);			}			if (sourceY > scrollHeight) {				int redrawY = Math.max(0, topMargin + scrollHeight);				int redrawHeight = Math.min(clientAreaHeight, pixels - scrollHeight);				super.redraw(leftMargin, redrawY, scrollWidth, redrawHeight, true);			}		} else {			int destinationY = topMargin - pixels;			int scrollHeight = clientAreaHeight - destinationY - bottomMargin;			if (scrollHeight > 0) {				scroll(leftMargin, destinationY, leftMargin, topMargin, scrollWidth, scrollHeight, true);			}			if (destinationY > scrollHeight) {				int redrawY = Math.max(0, topMargin + scrollHeight);				int redrawHeight = Math.min(clientAreaHeight, -pixels - scrollHeight);				super.redraw(leftMargin, redrawY, scrollWidth, redrawHeight, true);			}		}		verticalScrollOffset += pixels;		calculateTopIndex(pixels);	} else {		calculateTopIndex(pixels);		super.redraw();	}	int oldColumnX = columnX;	setCaretLocation();	columnX = oldColumnX;	return true;}