setVerticalScrollOffset(verticalScrollOffset - vscroll, true);
scrollVertical(-vscroll, true);
void doPageUp(boolean select, int height) {	if (isSingleLine()) {		return;	}	int oldHScrollOffset = horizontalScrollOffset;	int oldColumnX = columnX;		if (isFixedLineHeight()) {		int caretLine = getCaretLine();			if (caretLine > 0) {			int lines = height / lineHeight;			int scrollLines = Math.max(1, Math.min(caretLine, lines));			caretLine -= scrollLines;			caretOffset = getOffsetAtPoint(columnX, getLinePixel(caretLine));			if (select) {				doSelection(ST.COLUMN_PREVIOUS);			}			// scroll one page up or to the top			int scrollOffset = Math.max(0, verticalScrollOffset - scrollLines * getVerticalIncrement());			if (scrollOffset < verticalScrollOffset) {				setVerticalScrollOffset(scrollOffset, true);			}		}	} else {		int oldVScrollOffset = verticalScrollOffset;		int caretY = getCaret().getLocation().y;			int vscroll = Math.min(verticalScrollOffset, height);		setVerticalScrollOffset(verticalScrollOffset - vscroll, true);		caretY -= height - (oldVScrollOffset - verticalScrollOffset);		caretOffset = getOffsetAtPoint(columnX, caretY);		setCaretLocation();		if (select) {			doSelection(ST.COLUMN_PREVIOUS);		}	}	showCaret();	int hScrollChange = oldHScrollOffset - horizontalScrollOffset;	columnX = oldColumnX + hScrollChange;}