提交 b67e674a 编写于 作者: S serge-rider

SQL editor shutdown fix

上级 3aa04ed7
...@@ -27,6 +27,7 @@ import org.eclipse.ui.progress.UIJob; ...@@ -27,6 +27,7 @@ import org.eclipse.ui.progress.UIJob;
import org.eclipse.ui.texteditor.ITextEditor; import org.eclipse.ui.texteditor.ITextEditor;
import org.eclipse.ui.texteditor.rulers.IContributedRulerColumn; import org.eclipse.ui.texteditor.rulers.IContributedRulerColumn;
import org.eclipse.ui.texteditor.rulers.RulerColumnDescriptor; import org.eclipse.ui.texteditor.rulers.RulerColumnDescriptor;
import org.jkiss.dbeaver.core.DBeaverCore;
import org.jkiss.dbeaver.ui.DBeaverIcons; import org.jkiss.dbeaver.ui.DBeaverIcons;
import org.jkiss.dbeaver.ui.UIIcon; import org.jkiss.dbeaver.ui.UIIcon;
import org.jkiss.utils.ArrayUtils; import org.jkiss.utils.ArrayUtils;
...@@ -85,14 +86,19 @@ public class ScriptPositionColumn extends AbstractRulerColumn implements IContri ...@@ -85,14 +86,19 @@ public class ScriptPositionColumn extends AbstractRulerColumn implements IContri
@Override @Override
public IStatus runInUIThread(IProgressMonitor monitor) public IStatus runInUIThread(IProgressMonitor monitor)
{ {
if (DBeaverCore.isClosing()) {
return Status.CANCEL_STATUS;
}
BaseTextEditor editor = (BaseTextEditor)getEditor(); BaseTextEditor editor = (BaseTextEditor)getEditor();
if (editor == null || editor.getTextViewer() == null) return Status.CANCEL_STATUS; if (editor == null || editor.getTextViewer() == null) return Status.CANCEL_STATUS;
StyledText textWidget = editor.getTextViewer().getTextWidget(); StyledText textWidget = editor.getTextViewer().getTextWidget();
if (textWidget == null || textWidget.isDisposed()) return Status.CANCEL_STATUS; if (textWidget == null || textWidget.isDisposed()) return Status.CANCEL_STATUS;
int[] newCurrentLines = editor.getCurrentLines(); if (textWidget.isVisible()) {
if (!Arrays.equals(newCurrentLines, currentLines) && textWidget.isVisible()) { int[] newCurrentLines = editor.getCurrentLines();
currentLines = newCurrentLines; if (!Arrays.equals(newCurrentLines, currentLines)) {
redraw(); currentLines = newCurrentLines;
redraw();
}
} }
if (visible) { if (visible) {
schedule(100); schedule(100);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册