diff options
author | Denis Anisimov <denis@vaadin.com> | 2014-09-07 21:06:59 +0300 |
---|---|---|
committer | Denis Anisimov <denis@vaadin.com> | 2014-09-08 08:47:39 +0300 |
commit | e04931b248aa4d0070c71d7bc5ede88ebb4f35e3 (patch) | |
tree | 5323cdba44b1cc18a55a69f63d47ad498dc9d3d3 /client | |
parent | ab17dd711cc3b5200b61b5fd81de81de44c17979 (diff) | |
download | vaadin-framework-e04931b248aa4d0070c71d7bc5ede88ebb4f35e3.tar.gz vaadin-framework-e04931b248aa4d0070c71d7bc5ede88ebb4f35e3.zip |
Pass (x,y) coordinates for button click triggered via keyboard (#12650).
Change-Id: I24363d34f7007650fc66f9b85d7e22a4ab10bb6b
Diffstat (limited to 'client')
-rw-r--r-- | client/src/com/vaadin/client/ui/VButton.java | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/client/src/com/vaadin/client/ui/VButton.java b/client/src/com/vaadin/client/ui/VButton.java index 7dfb5c7c86..2e5494ec18 100644 --- a/client/src/com/vaadin/client/ui/VButton.java +++ b/client/src/com/vaadin/client/ui/VButton.java @@ -351,9 +351,16 @@ public class VButton extends FocusWidget implements ClickHandler { disallowNextClick = false; - // Mouse coordinates are not always available (e.g., when the click is + // Screen coordinates are not always available (e.g., when the click is // caused by a keyboard event). - NativeEvent evt = Document.get().createClickEvent(1, 0, 0, 0, 0, false, + // Set (x,y) client coordinates to the middle of the button + int x = getElement().getAbsoluteLeft() - getElement().getScrollLeft() + - getElement().getOwnerDocument().getScrollLeft() + + Util.getRequiredWidth(getElement()) / 2; + int y = getElement().getAbsoluteTop() - getElement().getScrollTop() + - getElement().getOwnerDocument().getScrollTop() + + Util.getRequiredHeight(getElement()) / 2; + NativeEvent evt = Document.get().createClickEvent(1, 0, 0, x, y, false, false, false, false); getElement().dispatchEvent(evt); } |