aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMarc Englund <marc.englund@itmill.com>2008-11-04 10:48:13 +0000
committerMarc Englund <marc.englund@itmill.com>2008-11-04 10:48:13 +0000
commit212acb2e4c4002f92a1374fd345b49ba021b3d89 (patch)
tree7fe71dc6a90df982d35c0e0dc671a9d61dd1c523 /src
parentd7b1338622dd3e9c8f5e85c10c72c2153308cada (diff)
downloadvaadin-framework-212acb2e4c4002f92a1374fd345b49ba021b3d89.tar.gz
vaadin-framework-212acb2e4c4002f92a1374fd345b49ba021b3d89.zip
Link now behaves more like regular html links, fixes #2190
svn changeset:5806/svn branch:trunk
Diffstat (limited to 'src')
-rw-r--r--src/com/itmill/toolkit/terminal/gwt/client/ui/ILink.java15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/ILink.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/ILink.java
index 3617504d74..d8cee6e466 100644
--- a/src/com/itmill/toolkit/terminal/gwt/client/ui/ILink.java
+++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/ILink.java
@@ -40,7 +40,7 @@ public class ILink extends HTML implements Paintable, ClickListener {
private Element errorIndicatorElement;
- private final Element captionElement = DOM.createSpan();
+ private final Element captionElement = DOM.createAnchor();
private Icon icon;
@@ -69,9 +69,11 @@ public class ILink extends HTML implements Paintable, ClickListener {
if (uidl.hasAttribute("name")) {
target = uidl.getStringAttribute("name");
+ captionElement.setAttribute("target", target);
}
if (uidl.hasAttribute("src")) {
src = client.translateToolkitUri(uidl.getStringAttribute("src"));
+ captionElement.setAttribute("href", src);
}
if (uidl.hasAttribute("border")) {
@@ -142,7 +144,16 @@ public class ILink extends HTML implements Paintable, ClickListener {
+ targetHeight;
}
- Window.open(src, target, features);
+ if (features.length() > 0) {
+ // if 'special features' are set, use window.open(), unless
+ // a modifier key is held (ctrl to open in new tab etc)
+ Event e = DOM.eventGetCurrentEvent();
+ if (!e.getCtrlKey() && !e.getAltKey() && !e.getShiftKey()
+ && !e.getMetaKey()) {
+ Window.open(src, target, features);
+ e.preventDefault();
+ }
+ }
}
}