Skip to content

Commit 09401f0

Browse files
authored
Merge pull request #934 from happyhua/master
fix on issue 932, better handling on key down/up event.
2 parents a40c6e0 + a2b1fc7 commit 09401f0

File tree

1 file changed

+18
-18
lines changed

1 file changed

+18
-18
lines changed

gwt-material/src/main/java/gwt/material/design/client/ui/MaterialSearch.java

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ public void onKeyUp(KeyUpEvent event) {
181181
reset(obj.getKeyword());
182182
});
183183
// If matches add to search result container and object to temp searches
184-
if (obj.getKeyword().toLowerCase().contains(keyword)) {
184+
if (match(obj, keyword)) {
185185
searchResultPanel.add(link);
186186
tempSearches.add(obj);
187187
}
@@ -211,25 +211,21 @@ public void onKeyUp(KeyUpEvent event) {
211211

212212
// Selection logic using key down event to navigate the search results
213213
int totalItems = searchResultPanel.getWidgetCount();
214-
if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_DOWN) {
215-
if (curSel >= totalItems) {
216-
setCurSel(getCurSel());
217-
applyHighlightedItem((MaterialLink) searchResultPanel.getWidget(curSel - 1));
218-
} else {
219-
setCurSel(getCurSel() + 1);
220-
applyHighlightedItem((MaterialLink) searchResultPanel.getWidget(curSel));
214+
if (totalItems > 0) {
215+
if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_DOWN) {
216+
if (++curSel >= totalItems)
217+
curSel = 0;
218+
219+
applyHighlightedItem((MaterialLink) searchResultPanel.getWidget(curSel));
221220
}
222-
}
223221

224-
// Selection logic using key up event to navigate the search results
225-
if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_UP) {
226-
if (curSel <= -1) {
227-
setCurSel(-1);
228-
applyHighlightedItem((MaterialLink) searchResultPanel.getWidget(curSel));
229-
} else {
230-
setCurSel(getCurSel() - 1);
231-
applyHighlightedItem((MaterialLink) searchResultPanel.getWidget(curSel));
232-
}
222+
// Selection logic using key up event to navigate the search results
223+
if (event.getNativeEvent().getKeyCode() == KeyCodes.KEY_UP) {
224+
if (--curSel < 0)
225+
curSel = totalItems - 1;
226+
227+
applyHighlightedItem((MaterialLink) searchResultPanel.getWidget(curSel));
228+
}
233229
}
234230
}
235231

@@ -244,6 +240,10 @@ private void reset(String keyword) {
244240
}));
245241
}
246242

243+
protected boolean match(SearchObject obj, String keyword) {
244+
return obj.getKeyword().toLowerCase().contains(keyword);
245+
}
246+
247247
@Override
248248
protected void onUnload() {
249249
super.onUnload();

0 commit comments

Comments
 (0)