summaryrefslogtreecommitdiffstats
path: root/client/src/main
diff options
context:
space:
mode:
authorYuriy Artamonov <jreznot@users.noreply.github.com>2019-03-29 12:58:05 +0400
committerAnastasia Smirnova <anasmi@utu.fi>2019-03-29 10:58:05 +0200
commit47711930328c045fa97aa77054dcf2db05d5fe28 (patch)
treead9fe37badc06aadccb940eba9448b201b443f42 /client/src/main
parent339499164cfddaa9bd45b588c451f18374ad3ceb (diff)
downloadvaadin-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.java4
-rw-r--r--client/src/main/java/com/vaadin/client/ui/VSlider.java13
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);