Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPierre-Charles David2016-04-19 14:29:00 +0000
committerPierre-Charles David2016-04-21 07:30:05 +0000
commit7bf8c4745cb73404950e20ee6c97ad67688b019d (patch)
tree7a7a62327720b6a97e97fcd17a2ac7a30269e587
parent456cb0025ea59b19eda41c17239ea864de685f9d (diff)
downloadorg.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.java8
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);

Back to the top