private void queueShow(
      final JComponent c,
      final MouseEvent me,
      final boolean toCenter,
      int shift,
      int posChangeX,
      int posChangeY) {
    final IdeTooltip tooltip =
        new IdeTooltip(c, me.getPoint(), null, new Object()) {
          @Override
          protected boolean beforeShow() {
            myCurrentEvent = me;

            if (!c.isShowing()) return false;

            String text = c.getToolTipText(myCurrentEvent);
            if (text == null || text.trim().isEmpty()) return false;

            JLayeredPane layeredPane = IJSwingUtilities.findParentOfType(c, JLayeredPane.class);

            final JEditorPane pane =
                initPane(text, new HintHint(me).setAwtTooltip(true), layeredPane);
            final Wrapper wrapper = new Wrapper(pane);
            setTipComponent(wrapper);
            return true;
          }
        }.setToCenter(toCenter)
            .setCalloutShift(shift)
            .setPositionChangeShift(posChangeX, posChangeY)
            .setLayer(Balloon.Layer.top);

    show(tooltip, false);
  }