if (y < topLeft.y + SCROLL_MARGIN) {  topLeft.y = y - SCROLL_MARGIN; needScroll = true; } else if (y > botRight.y - SCROLL_MARGIN) {  topLeft.y = y - d.height + SCROLL_MARGIN; needScroll = true; } player.desktopScrollPane.setScrollPosition(topLeft.x, topLeft.y);
  private void scrollToPoint(int x, int y) {    boolean needScroll = false;    if (player.desktopScrollPane == null)      return;    Dimension d = player.desktopScrollPane.getSize();    Point topLeft = player.desktopScrollPane.getScrollPosition();    Point botRight = new Point(topLeft.x + d.width, topLeft.y + d.height);    if (x < topLeft.x + SCROLL_MARGIN) {      // shift left      topLeft.x = x - SCROLL_MARGIN;      needScroll = true;    } else if (x > botRight.x - SCROLL_MARGIN) {      // shift right      topLeft.x = x - d.width + SCROLL_MARGIN;      needScroll = true;    }    if (y < topLeft.y + SCROLL_MARGIN) {      // shift up      topLeft.y = y - SCROLL_MARGIN;      needScroll = true;    } else if (y > botRight.y - SCROLL_MARGIN) {      // shift down      topLeft.y = y - d.height + SCROLL_MARGIN;      needScroll = true;    }    player.desktopScrollPane.setScrollPosition(topLeft.x, topLeft.y);  }