*/
	protected Rectangle repaintSelectionInternal() {
		Rectangle area = new Rectangle();
		Insets insets = getInsets();
		Rectangle bounds = new Rectangle(insets.left, insets.top, getWidth() - (insets.left + insets.right), getHeight() - (insets.top + insets.bottom));
		int last = getLastRowToDisplay();
		List<Column> columns = mModel.getColumns();
		for (int i = getFirstRowToDisplay(); i <= last; i++) {
			Row row = mModel.getRowAtIndex(i);
			if (!mModel.isRowFiltered(row)) {
				int height = row.getHeight();
				if (height == -1) {
					height = row.getPreferredHeight(columns);
					row.setHeight(height);
				}
				if (mDrawRowDividers) {
					height++;
				}
				if (mModel.isRowSelected(row)) {
					bounds.height = height;
					repaint(bounds);
					area = Geometry.union(area, bounds);
				}
				bounds.y += height;
			}
		}
		return area;
	}