Skip to content

Commit 89a19bf

Browse files
committed
Always check if UI is still there in asyncExec()
- additionally use the display from the widget Fixes #3737
1 parent abbe191 commit 89a19bf

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

bundles/org.eclipse.ui.editors/src/org/eclipse/ui/internal/texteditor/stickyscroll/StickyScrollingControl.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -396,7 +396,7 @@ private void addSourceViewerListeners() {
396396

397397
if (sourceViewer instanceof ITextViewerExtension4 extension) {
398398
textPresentationListener = e -> {
399-
Display.getDefault().asyncExec(() -> {
399+
textWidget.getDisplay().asyncExec(() -> {
400400
if (textWidget.isDisposed() || areStickyLinesOutDated(textWidget)) {
401401
return;
402402
}
@@ -516,12 +516,15 @@ public void keyReleased(KeyEvent e) {
516516

517517
@Override
518518
public void caretMoved(CaretEvent event) {
519-
int offsetEndPosition= sourceViewer.getTextWidget().getCharCount();
519+
StyledText textWidget = sourceViewer.getTextWidget();
520+
int offsetEndPosition= textWidget.getCharCount();
520521
if (event.caretOffset == 0 || event.caretOffset == offsetEndPosition) {
521522
return;
522523
}
523-
Display.getDefault().asyncExec(() -> {
524-
StyledText textWidget= sourceViewer.getTextWidget();
524+
textWidget.getDisplay().asyncExec(() -> {
525+
if (textWidget.isDisposed()) {
526+
return;
527+
}
525528
if (!enableCaretListener || event.caretOffset > textWidget.getCharCount()) {
526529
return;
527530
}

0 commit comments

Comments
 (0)