summaryrefslogtreecommitdiffstats
path: root/client
diff options
context:
space:
mode:
authorAnastasia Smirnova <anasmi@utu.fi>2019-02-25 11:49:20 +0200
committerSun Zhe <31067185+ZheSun88@users.noreply.github.com>2019-02-25 11:49:20 +0200
commit6cc773fb7c717328fbce7255fa419581b7609a92 (patch)
treeb133c3d03fb2be689bcf25a53759ad47c3934891 /client
parent19f839154e49c487ff9d156e962acb4df889a553 (diff)
downloadvaadin-framework-6cc773fb7c717328fbce7255fa419581b7609a92.tar.gz
vaadin-framework-6cc773fb7c717328fbce7255fa419581b7609a92.zip
Ensure pop-up is not opened, when tabbing out fast from Combobox (#11436)
Checking that no prior Combobox behavior is broken * Cleaning-up the code Adding UI test * Adding TestBench test
Diffstat (limited to 'client')
-rw-r--r--client/src/main/java/com/vaadin/client/ui/VComboBox.java13
1 files changed, 9 insertions, 4 deletions
diff --git a/client/src/main/java/com/vaadin/client/ui/VComboBox.java b/client/src/main/java/com/vaadin/client/ui/VComboBox.java
index f80927ec1d..6ddb2cd29a 100644
--- a/client/src/main/java/com/vaadin/client/ui/VComboBox.java
+++ b/client/src/main/java/com/vaadin/client/ui/VComboBox.java
@@ -1454,7 +1454,8 @@ public class VComboBox extends Composite implements Field, KeyDownHandler,
if (!waitingForFilteringResponse && suggestionPopup.isAttached()) {
showPopup = true;
}
- if (showPopup) {
+ // Don't show popup, if is not focused
+ if (showPopup && focused) {
suggestionPopup.showSuggestions(currentPage);
}
@@ -1750,7 +1751,8 @@ public class VComboBox extends Composite implements Field, KeyDownHandler,
/** For internal use only. May be removed or replaced in the future. */
public boolean focused = false;
-
+ /** For internal use only. May be removed or replaced in the future. */
+ public boolean noKeyDownEvents = true;
/**
* If set to false, the component should not allow entering text to the
* field even for filtering.
@@ -2198,6 +2200,7 @@ public class VComboBox extends Composite implements Field, KeyDownHandler,
return;
}
+ noKeyDownEvents = false;
if (suggestionPopup.isAttached()) {
if (enableDebug) {
debug("Keycode " + keyCode + " target is popup");
@@ -2307,7 +2310,8 @@ public class VComboBox extends Composite implements Field, KeyDownHandler,
// queue this, may be cancelled by selection
int selectedIndex = suggestionPopup.menu.getSelectedIndex();
- if (!allowNewItems && selectedIndex != -1) {
+ if (!allowNewItems && selectedIndex != -1
+ && !currentSuggestions.isEmpty()) {
onSuggestionSelected(currentSuggestions.get(selectedIndex));
} else {
dataReceivedHandler.reactOnInputWhenReady(tb.getText());
@@ -2371,7 +2375,7 @@ public class VComboBox extends Composite implements Field, KeyDownHandler,
// NOP
break;
default:
- if (textInputEnabled) {
+ if (textInputEnabled && !noKeyDownEvents) {
// when filtering, we always want to see the results on the
// first page first.
filterOptions(0);
@@ -2514,6 +2518,7 @@ public class VComboBox extends Composite implements Field, KeyDownHandler,
return;
}
+ noKeyDownEvents = true;
focused = true;
updatePlaceholder();
addStyleDependentName("focus");