diff --git a/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java b/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java
index f5e8a95..3b99149 100644
a
|
b
|
public class StyledMapRenderer extends AbstractMapRenderer {
|
702 | 702 | Font defaultFont = g.getFont(); |
703 | 703 | g.setFont(text.font); |
704 | 704 | |
705 | | int x = (int) (p.getInViewX() + text.xOffset); |
706 | | int y = (int) (p.getInViewY() + text.yOffset); |
| 705 | int x = (int) (Math.round(p.getInViewX()) + text.xOffset); |
| 706 | int y = (int) (Math.round(p.getInViewY()) + text.yOffset); |
707 | 707 | /** |
708 | 708 | * |
709 | 709 | * left-above __center-above___ right-above |
… |
… |
public class StyledMapRenderer extends AbstractMapRenderer {
|
889 | 889 | temporaryGraphics.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha)); |
890 | 890 | } |
891 | 891 | |
892 | | double x = p.getInViewX(); |
893 | | double y = p.getInViewY(); |
| 892 | double x = Math.round(p.getInViewX()); |
| 893 | double y = Math.round(p.getInViewY()); |
894 | 894 | temporaryGraphics.translate(x, y); |
895 | 895 | temporaryGraphics.rotate(theta); |
896 | 896 | int drawX = -w/2 + img.offsetX; |
diff --git a/src/org/openstreetmap/josm/gui/MapViewState.java b/src/org/openstreetmap/josm/gui/MapViewState.java
index 49d1ad5..693989f 100644
a
|
b
|
public final class MapViewState {
|
218 | 218 | } |
219 | 219 | |
220 | 220 | /** |
| 221 | * Gets the center of the view, rounded to a pixel coordinate |
| 222 | * @return The center position. |
| 223 | */ |
| 224 | public MapViewPoint getCenterAtPixel() { |
| 225 | return getForView(viewWidth / 2, viewHeight / 2); |
| 226 | } |
| 227 | |
| 228 | /** |
221 | 229 | * Gets the width of the view on the Screen; |
222 | 230 | * @return The width of the view component in screen pixel. |
223 | 231 | */ |
diff --git a/src/org/openstreetmap/josm/gui/NavigatableComponent.java b/src/org/openstreetmap/josm/gui/NavigatableComponent.java
index 1c3af2e..416fe0b 100644
a
|
b
|
public class NavigatableComponent extends JComponent implements Helpful {
|
293 | 293 | * Zoom in current view. Use configured zoom step and scaling settings. |
294 | 294 | */ |
295 | 295 | public void zoomIn() { |
296 | | zoomTo(getCenter(), scaleZoomIn()); |
| 296 | zoomTo(state.getCenterAtPixel().getEastNorth(), scaleZoomIn()); |
297 | 297 | } |
298 | 298 | |
299 | 299 | /** |
300 | 300 | * Zoom out current view. Use configured zoom step and scaling settings. |
301 | 301 | */ |
302 | 302 | public void zoomOut() { |
303 | | zoomTo(getCenter(), scaleZoomOut()); |
| 303 | zoomTo(state.getCenterAtPixel().getEastNorth(), scaleZoomOut()); |
304 | 304 | } |
305 | 305 | |
306 | 306 | /** |
… |
… |
public class NavigatableComponent extends JComponent implements Helpful {
|
407 | 407 | * @return the current center of the viewport |
408 | 408 | */ |
409 | 409 | public EastNorth getCenter() { |
410 | | return state.getCenter().getEastNorth(); |
| 410 | return state.getCenterAtPixel().getEastNorth(); |
411 | 411 | } |
412 | 412 | |
413 | 413 | /** |
… |
… |
public class NavigatableComponent extends JComponent implements Helpful {
|
607 | 607 | private void zoomNoUndoTo(EastNorth newCenter, double newScale, boolean initial) { |
608 | 608 | if (!newCenter.equals(getCenter())) { |
609 | 609 | EastNorth oldCenter = getCenter(); |
610 | | state = state.usingCenter(newCenter); |
| 610 | state = state.movedTo(state.getCenterAtPixel(), newCenter); |
611 | 611 | if (!initial) { |
612 | 612 | firePropertyChange(PROPNAME_CENTER, oldCenter, newCenter); |
613 | 613 | } |
… |
… |
public class NavigatableComponent extends JComponent implements Helpful {
|
616 | 616 | double oldScale = getScale(); |
617 | 617 | state = state.usingScale(newScale); |
618 | 618 | // temporary. Zoom logic needs to be moved. |
619 | | state = state.movedTo(state.getCenter(), newCenter); |
| 619 | state = state.movedTo(state.getCenterAtPixel(), newCenter); |
620 | 620 | if (!initial) { |
621 | 621 | firePropertyChange(PROPNAME_SCALE, oldScale, newScale); |
622 | 622 | } |