Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Keller2015-04-10 15:06:07 +0000
committerMarkus Keller2015-04-10 15:06:07 +0000
commite1874b7906bcf1b0f6ce3e77b1648052831f8929 (patch)
tree9b3ca85e316240efdf144daea00d3af23b32ee07 /org.eclipse.debug.ui
parent04dd5241860b779818f0b3d2f268c4a81c13ccb4 (diff)
downloadeclipse.platform.debug-e1874b7906bcf1b0f6ce3e77b1648052831f8929.tar.gz
eclipse.platform.debug-e1874b7906bcf1b0f6ce3e77b1648052831f8929.tar.xz
eclipse.platform.debug-e1874b7906bcf1b0f6ce3e77b1648052831f8929.zip
Bug 462274: Invalid thread access from DebugUIPreferenceInitializer
Diffstat (limited to 'org.eclipse.debug.ui')
-rw-r--r--org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DebugUIPreferenceInitializer.java46
1 files changed, 29 insertions, 17 deletions
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DebugUIPreferenceInitializer.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DebugUIPreferenceInitializer.java
index bd23a5443..771fd7945 100644
--- a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DebugUIPreferenceInitializer.java
+++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/DebugUIPreferenceInitializer.java
@@ -20,6 +20,7 @@ import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.preference.PreferenceConverter;
import org.eclipse.jface.resource.ColorRegistry;
import org.eclipse.swt.graphics.RGB;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.PlatformUI;
public class DebugUIPreferenceInitializer extends AbstractPreferenceInitializer {
@@ -203,22 +204,33 @@ public class DebugUIPreferenceInitializer extends AbstractPreferenceInitializer
}
}
- public static void setThemeBasedPreferences(IPreferenceStore store, boolean fireEvent) {
- ColorRegistry registry= null;
- if (PlatformUI.isWorkbenchRunning())
- registry= PlatformUI.getWorkbench().getThemeManager().getCurrentTheme().getColorRegistry();
-
- setDefault(store,
- IDebugPreferenceConstants.CONSOLE_BAKGROUND_COLOR,
- findRGB(registry, IInternalDebugUIConstants.THEME_CONSOLE_COLOR_BACKGROUND, new RGB(255, 255, 255)), fireEvent);
- setDefault(store,
- IDebugPreferenceConstants.CONSOLE_SYS_OUT_COLOR,
- findRGB(registry, IInternalDebugUIConstants.THEME_CONSOLE_COLOR_STD_OUT, new RGB(0, 0, 0)), fireEvent);
- setDefault(store,
- IDebugPreferenceConstants.CONSOLE_SYS_IN_COLOR,
- findRGB(registry, IInternalDebugUIConstants.THEME_CONSOLE_COLOR_STD_IN, new RGB(0, 200, 125)), fireEvent);
- setDefault(store,
- IDebugPreferenceConstants.CONSOLE_SYS_ERR_COLOR,
- findRGB(registry, IInternalDebugUIConstants.THEME_CONSOLE_COLOR_STD_ERR, new RGB(255, 0, 0)), fireEvent);
+ public static void setThemeBasedPreferences(final IPreferenceStore store, final boolean fireEvent) {
+ Display display= PlatformUI.getWorkbench().getDisplay();
+ Runnable runnable= new Runnable() {
+ @Override
+ public void run() {
+ ColorRegistry registry= null;
+ if (PlatformUI.isWorkbenchRunning()) {
+ registry= PlatformUI.getWorkbench().getThemeManager().getCurrentTheme().getColorRegistry();
+ }
+ setDefault(store,
+ IDebugPreferenceConstants.CONSOLE_BAKGROUND_COLOR,
+ findRGB(registry, IInternalDebugUIConstants.THEME_CONSOLE_COLOR_BACKGROUND, new RGB(255, 255, 255)), fireEvent);
+ setDefault(store,
+ IDebugPreferenceConstants.CONSOLE_SYS_OUT_COLOR,
+ findRGB(registry, IInternalDebugUIConstants.THEME_CONSOLE_COLOR_STD_OUT, new RGB(0, 0, 0)), fireEvent);
+ setDefault(store,
+ IDebugPreferenceConstants.CONSOLE_SYS_IN_COLOR,
+ findRGB(registry, IInternalDebugUIConstants.THEME_CONSOLE_COLOR_STD_IN, new RGB(0, 200, 125)), fireEvent);
+ setDefault(store,
+ IDebugPreferenceConstants.CONSOLE_SYS_ERR_COLOR,
+ findRGB(registry, IInternalDebugUIConstants.THEME_CONSOLE_COLOR_STD_ERR, new RGB(255, 0, 0)), fireEvent);
+ }
+ };
+ if (display.getThread() == Thread.currentThread()) {
+ runnable.run();
+ } else {
+ display.asyncExec(runnable);
+ }
}
}

Back to the top