diff options
author | Yuriy Artamonov <jreznot@users.noreply.github.com> | 2019-03-29 12:58:05 +0400 |
---|---|---|
committer | Anastasia Smirnova <anasmi@utu.fi> | 2019-03-29 10:58:05 +0200 |
commit | 47711930328c045fa97aa77054dcf2db05d5fe28 (patch) | |
tree | ad9fe37badc06aadccb940eba9448b201b443f42 /client/src/main | |
parent | 339499164cfddaa9bd45b588c451f18374ad3ceb (diff) | |
download | vaadin-framework-47711930328c045fa97aa77054dcf2db05d5fe28.tar.gz vaadin-framework-47711930328c045fa97aa77054dcf2db05d5fe28.zip |
Support Firefox 65+ key down event behavior (#11503)
Fixes #11502
Diffstat (limited to 'client/src/main')
-rw-r--r-- | client/src/main/java/com/vaadin/client/ui/VMenuBar.java | 4 | ||||
-rw-r--r-- | client/src/main/java/com/vaadin/client/ui/VSlider.java | 13 |
2 files changed, 11 insertions, 6 deletions
diff --git a/client/src/main/java/com/vaadin/client/ui/VMenuBar.java b/client/src/main/java/com/vaadin/client/ui/VMenuBar.java index 2f905bd4b9..584e476850 100644 --- a/client/src/main/java/com/vaadin/client/ui/VMenuBar.java +++ b/client/src/main/java/com/vaadin/client/ui/VMenuBar.java @@ -133,11 +133,11 @@ public class VMenuBar extends FocusableFlowPanel implements addFocusHandler(this); /* - * Firefox auto-repeat works correctly only if we use a key press + * Firefox prior to v65 auto-repeat works correctly only if we use a key press * handler, other browsers handle it correctly when using a key down * handler */ - if (BrowserInfo.get().isGecko()) { + if (BrowserInfo.get().isGecko() && BrowserInfo.get().getGeckoVersion() < 65) { addKeyPressHandler(this); } else { addKeyDownHandler(this); diff --git a/client/src/main/java/com/vaadin/client/ui/VSlider.java b/client/src/main/java/com/vaadin/client/ui/VSlider.java index 8db4971f9d..de805ba423 100644 --- a/client/src/main/java/com/vaadin/client/ui/VSlider.java +++ b/client/src/main/java/com/vaadin/client/ui/VSlider.java @@ -272,10 +272,7 @@ public class VSlider extends SimpleFocusablePanel increaseValue(true); } else if (DOM.eventGetType(event) == Event.MOUSEEVENTS) { processBaseEvent(event); - } else if (BrowserInfo.get().isGecko() - && DOM.eventGetType(event) == Event.ONKEYPRESS - || !BrowserInfo.get().isGecko() - && DOM.eventGetType(event) == Event.ONKEYDOWN) { + } else if (isNavigationEvent(event)) { if (handleNavigation(event.getKeyCode(), event.getCtrlKey(), event.getShiftKey())) { @@ -302,6 +299,14 @@ public class VSlider extends SimpleFocusablePanel } } + private boolean isNavigationEvent(Event event) { + if (BrowserInfo.get().isGecko() && BrowserInfo.get().getGeckoVersion() < 65) { + return DOM.eventGetType(event) == Event.ONKEYPRESS; + } else { + return DOM.eventGetType(event) == Event.ONKEYDOWN; + } + } + private void processMouseWheelEvent(final Event event) { final int dir = DOM.eventGetMouseWheelVelocityY(event); |