diff options
| author | Pierre-Charles David | 2016-04-19 14:29:00 +0000 |
|---|---|---|
| committer | Pierre-Charles David | 2016-04-21 07:30:05 +0000 |
| commit | 7bf8c4745cb73404950e20ee6c97ad67688b019d (patch) | |
| tree | 7a7a62327720b6a97e97fcd17a2ac7a30269e587 | |
| parent | 456cb0025ea59b19eda41c17239ea864de685f9d (diff) | |
| download | org.eclipse.sirius-7bf8c4745cb73404950e20ee6c97ad67688b019d.tar.gz org.eclipse.sirius-7bf8c4745cb73404950e20ee6c97ad67688b019d.tar.xz org.eclipse.sirius-7bf8c4745cb73404950e20ee6c97ad67688b019d.zip | |
[492003] Fix potential usage of already disposed Font
Bug: 492003
Change-Id: Ic733712447a91bb662c13576d54a52863fc0d967
Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
| -rw-r--r-- | plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/edit/parts/SiriusEditPartFactory.java | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/edit/parts/SiriusEditPartFactory.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/edit/parts/SiriusEditPartFactory.java index 93cebe0228..6815e4b4f9 100644 --- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/edit/parts/SiriusEditPartFactory.java +++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/internal/edit/parts/SiriusEditPartFactory.java @@ -28,6 +28,7 @@ import org.eclipse.sirius.diagram.ui.graphical.edit.part.specific.BracketEdgeEdi import org.eclipse.sirius.diagram.ui.part.SiriusVisualIDRegistry; import org.eclipse.sirius.diagram.ui.tools.api.figure.SiriusWrapLabel; import org.eclipse.swt.SWT; +import org.eclipse.swt.graphics.Font; import org.eclipse.swt.widgets.Text; /** @@ -223,8 +224,11 @@ public class SiriusEditPartFactory implements EditPartFactory { if (getWrapLabel().isTextWrapped() && getWrapLabel().getText().length() > 0) { rect.setSize(new Dimension(text.computeSize(rect.width, SWT.DEFAULT))); } else { - final int avr = FigureUtilities.getFontMetrics(text.getFont()).getAverageCharWidth(); - rect.setSize(new Dimension(text.computeSize(SWT.DEFAULT, SWT.DEFAULT)).expand(avr * 2, 0)); + Font font = text.getFont(); + if (font != null && !font.isDisposed()) { + final int avr = FigureUtilities.getFontMetrics(font).getAverageCharWidth(); + rect.setSize(new Dimension(text.computeSize(SWT.DEFAULT, SWT.DEFAULT)).expand(avr * 2, 0)); + } } if (!rect.equals(new Rectangle(text.getBounds()))) { text.setBounds(rect.x, rect.y, rect.width + 1, rect.height); |
