diff options
Diffstat (limited to 'bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java')
-rw-r--r-- | bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java b/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java index 49da7cd5a..32c935471 100644 --- a/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java +++ b/bundles/org.eclipse.compare/compare/org/eclipse/compare/contentmergeviewer/TextMergeViewer.java @@ -904,14 +904,17 @@ public class TextMergeViewer extends ContentMergeViewer implements IAdaptable { provider.removeElementStateListener(this); } // If we have a listener registered with the widget, remove it - if (fSourceViewer != null && !fSourceViewer.getSourceViewer().getTextWidget().isDisposed()) { - if (fNeedsValidation) { - fSourceViewer.getSourceViewer().getTextWidget().removeVerifyListener(this); - fNeedsValidation = false; - } - IDocument oldDoc= internalGetDocument(fSourceViewer); - if (oldDoc != null) { - oldDoc.removeDocumentListener(this); + if (fSourceViewer != null) { + StyledText textWidget = fSourceViewer.getSourceViewer().getTextWidget(); + if (textWidget != null && !textWidget.isDisposed()) { + if (fNeedsValidation) { + fSourceViewer.getSourceViewer().getTextWidget().removeVerifyListener(this); + fNeedsValidation = false; + } + IDocument oldDoc= internalGetDocument(fSourceViewer); + if (oldDoc != null) { + oldDoc.removeDocumentListener(this); + } } } clearCachedDocument(); |