diff options
2 files changed, 10 insertions, 4 deletions
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowserAdapter.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowserAdapter.java index 7c0049257..6355768d2 100644 --- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowserAdapter.java +++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowserAdapter.java @@ -23,6 +23,7 @@ public class EmbeddedBrowserAdapter implements IBrowser, IBrowserCloseListener{ private EmbeddedBrowser browser; // Thread to use in workbench mode on Windows private UIThread2 secondThread; + private String browserType; class UIThread2 extends Thread { Display d; @@ -60,12 +61,15 @@ public class EmbeddedBrowserAdapter implements IBrowser, IBrowserCloseListener{ /** * Adapter constructor. */ - public EmbeddedBrowserAdapter() { + public EmbeddedBrowserAdapter(String browserType) { + this.browserType = browserType; } public Display getBrowserDisplay() { + /* only attempt to use a second thread if the Browser's native renderer is IE */ boolean useUIThread2 = BaseHelpSystem.getMode() == BaseHelpSystem.MODE_WORKBENCH && Constants.OS_WIN32.equalsIgnoreCase(Platform.getOS()) - && !Constants.WS_WPF.equalsIgnoreCase(SWT.getPlatform()) ; + && !Constants.WS_WPF.equalsIgnoreCase(SWT.getPlatform()) + && "ie".equalsIgnoreCase(browserType); //$NON-NLS-1$ if (useUIThread2) { if (secondThread == null) { secondThread = new UIThread2(); diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowserFactory.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowserFactory.java index e604caa78..dec7f54eb 100644 --- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowserFactory.java +++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/browser/embedded/EmbeddedBrowserFactory.java @@ -25,6 +25,7 @@ public class EmbeddedBrowserFactory implements IBrowserFactory { private boolean tested = false; private boolean available = false; + private String browserType; /** * Constructor. @@ -70,7 +71,8 @@ public class EmbeddedBrowserFactory implements IBrowserFactory { tested = true; Shell sh = new Shell(); try { - new Browser(sh, SWT.NONE); + Browser browser = new Browser(sh, SWT.NONE); + browserType = browser.getBrowserType(); available = true; } catch (SWTError se) { if (se.code == SWT.ERROR_NO_HANDLES) { @@ -94,6 +96,6 @@ public class EmbeddedBrowserFactory implements IBrowserFactory { * @see IBrowserFactory#createBrowser() */ public IBrowser createBrowser() { - return new EmbeddedBrowserAdapter(); + return new EmbeddedBrowserAdapter(browserType); } } |