From b44e3157d0f25ac6a30321fca52192b3e7ee6d94 Mon Sep 17 00:00:00 2001 From: Serge Rider Date: Tue, 19 Jun 2018 16:05:50 +0300 Subject: [PATCH] IDEA project update Former-commit-id: 55b31ef5694999e6a927a802892576e72b2ce90e --- .../controls/resultset/ResultSetViewer.java | 24 ++++++++++--------- .../src/org/jkiss/dbeaver/ui/UIUtils.java | 4 ++++ 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetViewer.java b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetViewer.java index dcf62443bb..d8b7bbfe21 100644 --- a/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetViewer.java +++ b/plugins/org.jkiss.dbeaver.core/src/org/jkiss/dbeaver/ui/controls/resultset/ResultSetViewer.java @@ -1007,17 +1007,19 @@ public class ResultSetViewer extends Viewer @Override public T getAdapter(Class adapter) { - if (UIUtils.hasFocus(filtersPanel)) { - T result = filtersPanel.getAdapter(adapter); - if (result != null) { - return result; - } - } else if (UIUtils.hasFocus(panelFolder)) { - IResultSetPanel visiblePanel = getVisiblePanel(); - if (visiblePanel instanceof IAdaptable) { - T adapted = ((IAdaptable) visiblePanel).getAdapter(adapter); - if (adapted != null) { - return adapted; + if (UIUtils.isUIThread()) { + if (UIUtils.hasFocus(filtersPanel)) { + T result = filtersPanel.getAdapter(adapter); + if (result != null) { + return result; + } + } else if (UIUtils.hasFocus(panelFolder)) { + IResultSetPanel visiblePanel = getVisiblePanel(); + if (visiblePanel instanceof IAdaptable) { + T adapted = ((IAdaptable) visiblePanel).getAdapter(adapter); + if (adapted != null) { + return adapted; + } } } } diff --git a/plugins/org.jkiss.dbeaver.ui/src/org/jkiss/dbeaver/ui/UIUtils.java b/plugins/org.jkiss.dbeaver.ui/src/org/jkiss/dbeaver/ui/UIUtils.java index 38244c148d..85e1fada0a 100644 --- a/plugins/org.jkiss.dbeaver.ui/src/org/jkiss/dbeaver/ui/UIUtils.java +++ b/plugins/org.jkiss.dbeaver.ui/src/org/jkiss/dbeaver/ui/UIUtils.java @@ -1100,6 +1100,10 @@ public class UIUtils { } } + public static boolean isUIThread() { + return Display.getDefault().getThread() == Thread.currentThread(); + } + /** * Determine whether this control or any of it's child has focus * -- GitLab