Index: trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/MapPaintSettings.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/MapPaintSettings.java	(revision 9075)
+++ trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/MapPaintSettings.java	(revision 9076)
@@ -117,5 +117,5 @@
         unclosedAreaHighlight = Main.pref.getBoolean("draw.unclosed_area_partial_fill_highlight", false);
         unclosedAreaHighlightWidth = Main.pref.getDouble("draw.unclosed_area_partial_fill_highlight.width", 80);
-        partialFillThreshold = Main.pref.getDouble("draw.area.partial_fill_threshold", 50);
+        partialFillThreshold = Main.pref.getDouble("draw.area.partial_fill_threshold", 70);
     }
 
Index: trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java	(revision 9075)
+++ trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java	(revision 9076)
@@ -288,4 +288,5 @@
 
     private double circum;
+    private double scale;
 
     private MapPaintSettings paintSettings;
@@ -630,5 +631,5 @@
                         AreaAndPerimeter ap = pd.getAreaAndPerimeter();
                         // if partial fill would only leave a small gap in the center ...
-                        if (ap.getPerimeter() * extent * circum / 100 > partialFillThreshold / 100 * ap.getArea()) {
+                        if (ap.getPerimeter() * extent * scale > partialFillThreshold / 100 * ap.getArea()) {
                             // ... turn it off and fill completely
                             extent = null;
@@ -660,5 +661,5 @@
             AreaAndPerimeter ap = Geometry.getAreaAndPerimeter(w.getNodes());
             // if partial fill would only leave a small gap in the center ...
-            if (ap.getPerimeter() * extent * circum / 100 > partialFillThreshold / 100 * ap.getArea()) {
+            if (ap.getPerimeter() * extent * scale > partialFillThreshold / 100 * ap.getArea()) {
                 // ... turn it off and fill completely
                 extent = null;
@@ -1513,4 +1514,5 @@
 
         circum = nc.getDist100Pixel();
+        scale = nc.getScale();
 
         leftHandTraffic = Main.pref.getBoolean("mappaint.lefthandtraffic", false);
Index: trunk/src/org/openstreetmap/josm/gui/NavigatableComponent.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/NavigatableComponent.java	(revision 9075)
+++ trunk/src/org/openstreetmap/josm/gui/NavigatableComponent.java	(revision 9076)
@@ -215,6 +215,9 @@
 
     /**
-     * @return Returns the center point. A copy is returned, so users cannot
-     *      change the center by accessing the return value. Use zoomTo instead.
+     * Returns the current center of the viewport.
+     * 
+     * (Use {@link #zoomTo(EastNorth)} to the change the center.)
+     * 
+     * @return the current center of the viewport
      */
     public EastNorth getCenter() {
@@ -222,4 +225,11 @@
     }
 
+    /**
+     * Returns the current scale.
+     * 
+     * In east/north units per pixel.
+     * 
+     * @return the current scale
+     */
     public double getScale() {
         return scale;
