Changeset 15596 in josm for trunk


Ignore:
Timestamp:
2019-12-17T18:28:25+01:00 (4 years ago)
Author:
stoecker
Message:

scroll full distance for smooth scrolling, don't stop early (causing back/forth flicker), zoom directly when only 1 step needed

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/NavigatableComponent.java

    r15518 r15596  
    741741        private final EastNorth oldCenter = getCenter();
    742742        private final EastNorth finalNewCenter;
    743         private final double frames;
     743        private final long frames;
    744744        private final long sleepTime;
    745745
    746         SmoothScrollThread(EastNorth newCenter, double frameNum, int fps) {
     746        SmoothScrollThread(EastNorth newCenter, long frameNum, int fps) {
    747747            super("smooth-scroller");
    748748            finalNewCenter = newCenter;
     
    755755            try {
    756756                for (int i = 0; i < frames && !doStop; i++) {
    757                     zoomTo(oldCenter.interpolate(finalNewCenter, (i+1) / frames));
     757                    zoomTo(oldCenter.interpolate(finalNewCenter, (1.0+i) / frames));
    758758                    Thread.sleep(sleepTime);
    759759                }
     
    799799                zoomTo(newCenter);
    800800            } else {
    801                 new SmoothScrollThread(newCenter, milliseconds * fps / 1000, fps).start();
     801                long frames = Math.round(milliseconds * fps / 1000);
     802                if(frames < 1)
     803                    zoomTo(newCenter);
     804                else
     805                    new SmoothScrollThread(newCenter, frames, fps).start();
    802806            }
    803807        }
Note: See TracChangeset for help on using the changeset viewer.