overlay-map: fix selection rectangle for non-default zoom levels
git-svn-id: https://micropolis.googlecode.com/svn/trunk/micropolis-java@763 d9718cc8-9f43-0410-858b-315f434eb58c
This commit is contained in:
parent
1e21066cf2
commit
298d789df2
1 changed files with 8 additions and 6 deletions
|
@ -386,10 +386,10 @@ public class OverlayMapView extends JComponent
|
||||||
{
|
{
|
||||||
Rectangle rawRect = cv.scrollPane.getViewport().getViewRect();
|
Rectangle rawRect = cv.scrollPane.getViewport().getViewRect();
|
||||||
return new Rectangle(
|
return new Rectangle(
|
||||||
rawRect.x * 3 / 16,
|
rawRect.x * 3 / cv.view.getTileSize(),
|
||||||
rawRect.y * 3 / 16,
|
rawRect.y * 3 / cv.view.getTileSize(),
|
||||||
rawRect.width * 3 / 16,
|
rawRect.width * 3 / cv.view.getTileSize(),
|
||||||
rawRect.height * 3 / 16
|
rawRect.height * 3 / cv.view.getTileSize()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -403,8 +403,8 @@ public class OverlayMapView extends JComponent
|
||||||
Dimension mapSize = cv.scrollPane.getViewport().getViewSize();
|
Dimension mapSize = cv.scrollPane.getViewport().getViewSize();
|
||||||
|
|
||||||
Point np = new Point(
|
Point np = new Point(
|
||||||
p.x * 16 / 3 - d.width / 2,
|
p.x * cv.view.getTileSize() / 3 - d.width / 2,
|
||||||
p.y * 16 / 3 - d.height / 2
|
p.y * cv.view.getTileSize() / 3 - d.height / 2
|
||||||
);
|
);
|
||||||
np.x = Math.max(0, Math.min(np.x, mapSize.width - d.width));
|
np.x = Math.max(0, Math.min(np.x, mapSize.width - d.width));
|
||||||
np.y = Math.max(0, Math.min(np.y, mapSize.height - d.height));
|
np.y = Math.max(0, Math.min(np.y, mapSize.height - d.height));
|
||||||
|
@ -482,10 +482,12 @@ public class OverlayMapView extends JComponent
|
||||||
|
|
||||||
class ConnectedView implements ChangeListener
|
class ConnectedView implements ChangeListener
|
||||||
{
|
{
|
||||||
|
MicropolisDrawingArea view;
|
||||||
JScrollPane scrollPane;
|
JScrollPane scrollPane;
|
||||||
|
|
||||||
ConnectedView(MicropolisDrawingArea view, JScrollPane scrollPane)
|
ConnectedView(MicropolisDrawingArea view, JScrollPane scrollPane)
|
||||||
{
|
{
|
||||||
|
this.view = view;
|
||||||
this.scrollPane = scrollPane;
|
this.scrollPane = scrollPane;
|
||||||
scrollPane.getViewport().addChangeListener(this);
|
scrollPane.getViewport().addChangeListener(this);
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue