private static Point fixPopupLocation(final Component contents, final int x, final int y) {
      if (!(contents instanceof JToolTip)) return new Point(x, y);

      final PointerInfo info;
      try {
        info = MouseInfo.getPointerInfo();
      } catch (InternalError e) {
        // http://www.jetbrains.net/jira/browse/IDEADEV-21390
        // may happen under Mac OSX 10.5
        return new Point(x, y);
      }
      int deltaY = 0;

      if (info != null) {
        final Point mouse = info.getLocation();
        deltaY = mouse.y - y;
      }

      final Dimension size = contents.getPreferredSize();
      final Rectangle rec = new Rectangle(new Point(x, y), size);
      ScreenUtil.moveRectangleToFitTheScreen(rec);

      if (rec.y < y) {
        rec.y += deltaY;
      }

      return rec.getLocation();
    }
Esempio n. 2
0
  @Override
  protected void paintChildren(Graphics g) {

    autoscale();

    super.paintChildren(g);
    if (IGV.getInstance().isRulerEnabled()) {
      int start = MouseInfo.getPointerInfo().getLocation().x - getLocationOnScreen().x;
      g.setColor(Color.BLACK);
      g.drawLine(start, 0, start, getHeight());
    }
  }