void (int hOffset, int vOffset) { if (myAccumulateViewportChanges) { myAccumulatedXOffset = hOffset; myAccumulatedYOffset = vOffset; return; } cancelAnimatedScrolling(false); Editor editor = mySupplier.getEditor(); boolean useAnimation; //System.out.println("myCurrentCommandStart - myLastCommandFinish = " + (myCurrentCommandStart - myLastCommandFinish)); if (!editor.getSettings().isAnimatedScrolling() || myAnimationDisabled || RemoteDesktopService.isRemoteSession()) { useAnimation = false; } else if (CommandProcessor.getInstance().getCurrentCommand() == null) { useAnimation = editor.getComponent().isShowing(); } else { VisibleEditorsTracker editorTracker = VisibleEditorsTracker.getInstance(); useAnimation = editorTracker.wasEditorVisibleOnCommandStart(editor); } cancelAnimatedScrolling(false); if (useAnimation) { //System.out.println("scrollToAnimated: " + endVOffset); int startHOffset = getHorizontalScrollOffset(); int startVOffset = getVerticalScrollOffset(); if (startHOffset == hOffset && startVOffset == vOffset) { return; } //System.out.println("startVOffset = " + startVOffset); try { myCurrentAnimationRequest = new AnimatedScrollingRunnable(startHOffset, startVOffset, hOffset, vOffset); } catch (NoAnimationRequiredException e) { _scrollHorizontally(hOffset); _scrollVertically(vOffset); } } else { _scrollHorizontally(hOffset); _scrollVertically(vOffset); } }