Ticket #3313: work around openjdk bug without introducing new ones.patch
File work around openjdk bug without introducing new ones.patch, 1.9 KB (added by , 15 years ago) |
---|
-
src/org/openstreetmap/josm/gui/MapView.java
8 8 import java.awt.Graphics; 9 9 import java.awt.Graphics2D; 10 10 import java.awt.Point; 11 import java.awt.Polygon; 12 import java.awt.Rectangle; 11 13 import java.awt.event.ComponentAdapter; 12 14 import java.awt.event.ComponentEvent; 13 15 import java.awt.event.MouseEvent; 14 16 import java.awt.event.MouseMotionListener; 17 import java.awt.geom.Area; 15 18 import java.awt.geom.GeneralPath; 16 19 import java.awt.image.BufferedImage; 17 20 import java.beans.PropertyChangeEvent; … … 365 368 366 369 // draw world borders 367 370 tempG.setColor(Color.WHITE); 368 GeneralPath path = new GeneralPath();369 371 Bounds b = getProjection().getWorldBoundsLatLon(); 370 372 double lat = b.min.lat(); 371 373 double lon = b.min.lon(); 372 374 373 375 Point p = getPoint(b.min); 374 path.moveTo(p.x, p.y); 376 377 GeneralPath path = new GeneralPath(); 375 378 379 path.moveTo(p.x, p.y); 376 380 double max = b.max.lat(); 377 381 for(; lat <= max; lat += 1.0) 378 382 { … … 398 402 path.lineTo(p.x, p.y); 399 403 } 400 404 405 int w = offscreenBuffer.getWidth(); 406 int h = offscreenBuffer.getHeight(); 407 408 // Work around OpenJDK having problems when drawing out of bounds 409 final Area border = new Area(path); 410 // Make the viewport 1px larger in every direction to prevent an 411 // additional 1px border when zooming in 412 final Area viewport = new Area(new Rectangle(-1, -1, w + 2, h + 2)); 413 border.intersect(viewport); 414 tempG.draw(border); 415 401 416 if (playHeadMarker != null) { 402 417 playHeadMarker.paint(tempG, this); 403 418 } 404 tempG.draw(path);405 419 406 420 g.drawImage(offscreenBuffer, 0, 0, null); 407 421 super.paint(g);