From e04931b248aa4d0070c71d7bc5ede88ebb4f35e3 Mon Sep 17 00:00:00 2001 From: Denis Anisimov Date: Sun, 7 Sep 2014 21:06:59 +0300 Subject: Pass (x,y) coordinates for button click triggered via keyboard (#12650). Change-Id: I24363d34f7007650fc66f9b85d7e22a4ab10bb6b --- client/src/com/vaadin/client/ui/VButton.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'client') 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); } -- cgit v1.2.3