Merge pull request #616 from wolsen/issue-615-high-cpu

Don't revalidate/repaint component in Ruler.updateSize()
This commit is contained in:
Daniel Williams 2020-04-05 14:36:13 -04:00 committed by GitHub
commit 43f51afc6e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 15 deletions

View File

@ -260,6 +260,7 @@ public class RocketPanel extends JPanel implements TreeSelectionListener, Change
figureHolder.add(scrollPane, BorderLayout.CENTER);
rotationSlider.setEnabled(true);
scaleSelector.setEnabled(true);
scrollPane.revalidate();
revalidate();
figureHolder.revalidate();
figure.repaint();

View File

@ -258,7 +258,7 @@ public class ScaleScrollPane extends JScrollPane
//////////////// The view port rulers ////////////////
private class Ruler extends JComponent {
private class Ruler extends JComponent implements ChangeListener {
public static final int HORIZONTAL = 0;
public static final int VERTICAL = 1;
@ -266,26 +266,23 @@ public class ScaleScrollPane extends JScrollPane
public Ruler(int orientation) {
this.orientation = orientation;
rulerUnit.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
updateSize();
Ruler.this.repaint();
}
});
rulerUnit.addChangeListener(this);
}
@Override
public void stateChanged(ChangeEvent e) {
updateSize();
repaint();
}
private void updateSize() {
if (orientation == HORIZONTAL) {
Ruler.this.setMinimumSize(new Dimension(component.getWidth() + 10, RULER_SIZE));
Ruler.this.setPreferredSize(new Dimension(component.getWidth() + 10, RULER_SIZE));
setMinimumSize(new Dimension(component.getWidth() + 10, RULER_SIZE));
setPreferredSize(new Dimension(component.getWidth() + 10, RULER_SIZE));
} else {
Ruler.this.setMinimumSize(new Dimension(RULER_SIZE, component.getHeight() + 10));
Ruler.this.setPreferredSize(new Dimension(RULER_SIZE, component.getHeight() + 10));
setMinimumSize(new Dimension(RULER_SIZE, component.getHeight() + 10));
setPreferredSize(new Dimension(RULER_SIZE, component.getHeight() + 10));
}
revalidate();
repaint();
}
private double fromPx(final int px) {