diff options
author | Marc Englund <marc.englund@itmill.com> | 2008-11-04 10:48:13 +0000 |
---|---|---|
committer | Marc Englund <marc.englund@itmill.com> | 2008-11-04 10:48:13 +0000 |
commit | 212acb2e4c4002f92a1374fd345b49ba021b3d89 (patch) | |
tree | 7fe71dc6a90df982d35c0e0dc671a9d61dd1c523 /src | |
parent | d7b1338622dd3e9c8f5e85c10c72c2153308cada (diff) | |
download | vaadin-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.java | 15 |
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(); + } + } } } |