mirror of
https://github.com/bancika/diy-layout-creator
synced 2026-11-10 09:12:09 +10:00
invoke later to make sure that scrolling to center is done properly
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -655,23 +655,35 @@ public class CanvasPlugin implements IPlugIn, ClipboardOwner {
|
|||||||
refreshSize();
|
refreshSize();
|
||||||
if ((Boolean) params[1]) {
|
if ((Boolean) params[1]) {
|
||||||
// Scroll to the center.
|
// Scroll to the center.
|
||||||
Rectangle visibleRect = canvasPanel.getVisibleRect();
|
final Rectangle visibleRect = canvasPanel.getVisibleRect();
|
||||||
visibleRect.setLocation((canvasPanel.getWidth() - visibleRect.width) / 2,
|
visibleRect.setLocation((canvasPanel.getWidth() - visibleRect.width) / 2,
|
||||||
(canvasPanel.getHeight() - visibleRect.height) / 2);
|
(canvasPanel.getHeight() - visibleRect.height) / 2);
|
||||||
canvasPanel.scrollRectToVisible(visibleRect);
|
SwingUtilities.invokeLater(new Runnable() {
|
||||||
canvasPanel.revalidate();
|
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
canvasPanel.scrollRectToVisible(visibleRect);
|
||||||
|
canvasPanel.revalidate();
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ZOOM_CHANGED:
|
case ZOOM_CHANGED:
|
||||||
Rectangle visibleRect = canvasPanel.getVisibleRect();
|
final Rectangle visibleRect = canvasPanel.getVisibleRect();
|
||||||
refreshSize();
|
refreshSize();
|
||||||
// Try to set the visible area to be centered with the previous
|
// Try to set the visible area to be centered with the previous
|
||||||
// one.
|
// one.
|
||||||
double zoomFactor = (Double) params[0] / zoomLevel;
|
double zoomFactor = (Double) params[0] / zoomLevel;
|
||||||
visibleRect.setBounds((int) (visibleRect.x * zoomFactor), (int) (visibleRect.y * zoomFactor),
|
visibleRect.setBounds((int) (visibleRect.x * zoomFactor), (int) (visibleRect.y * zoomFactor),
|
||||||
visibleRect.width, visibleRect.height);
|
visibleRect.width, visibleRect.height);
|
||||||
canvasPanel.scrollRectToVisible(visibleRect);
|
SwingUtilities.invokeLater(new Runnable() {
|
||||||
canvasPanel.revalidate();
|
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
canvasPanel.scrollRectToVisible(visibleRect);
|
||||||
|
canvasPanel.revalidate();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
zoomLevel = (Double) params[0];
|
zoomLevel = (Double) params[0];
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user