/**
   * Internal draw request handler.
   *
   * @param gc Graphics context to update.
   */
  private final void handleDrawRequest(final GC gc) {
    if (mBracketPosition.isDeleted) {
      return;
    }

    int length = mBracketPosition.getLength();
    if (length < 1) {
      return;
    }

    int offset = mBracketPosition.getOffset();
    IRegion region = mSourceViewer.getVisibleRegion();

    if (region.getOffset() <= offset
        && region.getOffset() + region.getLength() >= offset + length) {
      offset -= region.getOffset();
      draw(gc, offset, 1);
    }
  }