private void hidePopup(boolean now, @Nullable Runnable onHidden) {
    if (isShowing()) {
      if (now || hyperlinkListener == null || !closeWithDelay) {
        cellPopup.cancel();
        cellPopup = null;
        cellRect = null;

        if (onHidden != null) {
          onHidden.run();
        }
      } else if (!isClosing) {
        isClosing = true;
        popupAlarm.addRequest(() -> {
          isClosing = false;
          if (!isOverPopup) {
            hidePopup(true, onHidden);
          }
        }, Registry.intValue("ide.tooltip.initialDelay.highlighter"));
      }
    } else if (onHidden != null) {
      onHidden.run();
    }
  }
private void hidePopup(boolean now, @Nullable Runnable onHidden)