Bug 421822 - RAP: SVG field disappears when handling a hyperlink event
https://bugs.eclipse.org/bugs/show_bug.cgi?id=421822
Returns old browser content after function call.
Change-Id: I6d6d100d9c072d4ba87c7a70f44181c536df4dfe
Reviewed-on: https://git.eclipse.org/r/19254
Tested-by: Hudson CI
Reviewed-by: Ken Lee <kle@bsiag.com>
IP-Clean: Ken Lee <kle@bsiag.com>
diff --git a/org.eclipse.scout.rt.ui.rap/.classpath b/org.eclipse.scout.rt.ui.rap/.classpath
index 0b72219..a885c94 100644
--- a/org.eclipse.scout.rt.ui.rap/.classpath
+++ b/org.eclipse.scout.rt.ui.rap/.classpath
@@ -7,6 +7,7 @@
<accessrule kind="accessible" pattern="org/eclipse/rap/rwt/internal/service/UrlParameters"/>
<accessrule kind="accessible" pattern="org/eclipse/rap/rwt/internal/service/ContextProvider"/>
<accessrule kind="accessible" pattern="org/eclipse/rap/rwt/internal/service/UISessionImpl"/>
+ <accessrule kind="accessible" pattern="org/eclipse/swt/internal/widgets/IBrowserAdapter"/>
</accessrules>
</classpathentry>
<classpathentry kind="src" path="src"/>
diff --git a/org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/ext/browser/BrowserExtension.java b/org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/ext/browser/BrowserExtension.java
index c88cab0..ffecd7e 100644
--- a/org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/ext/browser/BrowserExtension.java
+++ b/org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/ext/browser/BrowserExtension.java
@@ -24,6 +24,7 @@
import org.eclipse.scout.commons.logger.ScoutLogManager;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.browser.BrowserFunction;
+import org.eclipse.swt.internal.widgets.IBrowserAdapter;
/**
* <h3>BrowserSupport</h3> adding hyperlink callback support as in normal swt to the rwt browser
@@ -63,18 +64,19 @@
@Override
public Object function(Object[] arguments) {
String localUrl = m_hyperlinkMap.get(arguments[0]);
+ final String browserText = m_browser.getAdapter(IBrowserAdapter.class).getText();
if (localUrl == null) {
LOG.error("Hyperlink could not be activated. No url specified.");
- return null;
+ return browserText;
}
if (m_hyperlinkCallback == null) {
LOG.error("Hyperlink could not be activated. Please specify the runnable to be executed.");
- return null;
+ return browserText;
}
m_hyperlinkCallback.execute(localUrl);
- return null;
+ return browserText;
}
};
}