private void paintSelectionOnSecondSoftWrapLineIfNecessary(int visualLine, int columnEnd, float xEnd, int y,
                                                               VisualPosition selectionStartPosition, VisualPosition selectionEndPosition) {
      if (selectionStartPosition.equals(selectionEndPosition) ||
          visualLine < selectionStartPosition.line ||
          visualLine > selectionEndPosition.line ||
          visualLine == selectionStartPosition.line && selectionStartPosition.column >= columnEnd) {
        return;
      }

      float startX = (selectionStartPosition.line == visualLine && selectionStartPosition.column > 0) ?
                     (float)myView.visualPositionToXY(selectionStartPosition).getX() : myCorrector.startX(visualLine);
      float endX = (selectionEndPosition.line == visualLine && selectionEndPosition.column < columnEnd) ?
                   (float)myView.visualPositionToXY(selectionEndPosition).getX() : xEnd;

      paintBackground(myEditor.getColorsScheme().getColor(EditorColors.SELECTION_BACKGROUND_COLOR), startX, y, endX - startX);
    }
private void paintSelectionOnSecondSoftWrapLineIfNecessary(int visualLine, int columnEnd, float xEnd, int y,
                                                               VisualPosition selectionStartPosition, VisualPosition selectionEndPosition)