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); figureHolder.add(scrollPane, BorderLayout.CENTER);
rotationSlider.setEnabled(true); rotationSlider.setEnabled(true);
scaleSelector.setEnabled(true); scaleSelector.setEnabled(true);
scrollPane.revalidate();
revalidate(); revalidate();
figureHolder.revalidate(); figureHolder.revalidate();
figure.repaint(); figure.repaint();

View File

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