horizontalScrollOffset += pixels; int oldColumnX = columnX - pixels; setCaretLocation();  columnX = oldColumnX;
scroll(pixels, 0); return true;
void scrollHorizontal(int pixels) {	if (pixels == 0) {		return;	}	Rectangle clientArea = getClientArea();	if (pixels > 0) {		int sourceX = leftMargin + pixels;		int scrollWidth = clientArea.width - sourceX - rightMargin;		int scrollHeight = clientArea.height - topMargin - bottomMargin;		scroll(			leftMargin, topMargin, 						// destination x, y			sourceX, topMargin,							// source x, y			scrollWidth, scrollHeight, true);		if (sourceX > scrollWidth) {			// redraw from end of scrolled area to beginning of scroll 			// invalidated area			super.redraw(				leftMargin + scrollWidth, topMargin, 				pixels - scrollWidth, scrollHeight, true);		}	} else {		int destinationX = leftMargin - pixels;		int scrollWidth = clientArea.width - destinationX - rightMargin;		int scrollHeight = clientArea.height - topMargin - bottomMargin;		scroll(			destinationX, topMargin,					// destination x, y			leftMargin, topMargin,						// source x, y			scrollWidth, scrollHeight, true);		if (destinationX > scrollWidth) {			// redraw from end of scroll invalidated area to scroll 			// destination			super.redraw(				leftMargin + scrollWidth, topMargin, 				-pixels - scrollWidth, scrollHeight, true);			}	}	horizontalScrollOffset += pixels;	int oldColumnX = columnX - pixels;	setCaretLocation();	// restore the original horizontal caret index	columnX = oldColumnX;}