@Override
public void onKeyPress(KeyPressEvent keyPressEvent) {
- // This is used for Firefox only, since Firefox auto-repeat
+ // This is used for Firefox prior to v65 only, since Firefox 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 (!useOldGeckoNavigation()) {
return;
}
@Override
public void onKeyDown(KeyDownEvent keyDownEvent) {
NativeEvent event = keyDownEvent.getNativeEvent();
- // This is not used for Firefox
- if (BrowserInfo.get().isGecko()) {
+ // This is not used for Firefox prior to v65
+ if (useOldGeckoNavigation()) {
return;
}
scrollBodyPanel.addScrollHandler(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 (useOldGeckoNavigation()) {
scrollBodyPanel.addKeyPressHandler(navKeyPressHandler);
} else {
scrollBodyPanel.addKeyDownHandler(navKeyDownHandler);
updateStyleNames(style, false);
}
+ private boolean useOldGeckoNavigation() {
+ return BrowserInfo.get().isGecko() && BrowserInfo.get().getGeckoVersion() < 65;
+ }
+
@Override
public void setStylePrimaryName(String style) {
updateStyleNames(style, true);