Skip to content

Commit

Permalink
Fixes #48
Browse files Browse the repository at this point in the history
The real fix for this issue.  The previous fix didn't always work.
  • Loading branch information
matthewhorridge committed Sep 11, 2013
1 parent f315da0 commit 8988cca
Showing 1 changed file with 12 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ public void requestSuggestions(Request request, Callback callback) {

private SuggestOracle delegateSuggestOracle = EMPTY_SUGGEST_ORACLE;

private String lastSelection = "";


interface ExpandingTextBoxImplUiBinder extends UiBinder<HTMLPanel, ExpandingTextBoxImpl> {

Expand Down Expand Up @@ -83,22 +85,30 @@ public void onKeyDown(KeyDownEvent event) {
event.preventDefault();
acceptKeyHandler.handleAcceptKey();
}
else if (event.getNativeKeyCode() == KeyCodes.KEY_ENTER && mode == ExpandingTextBoxMode.MULTI_LINE && (event.isControlKeyDown() || suggestBox.isSuggestionListShowing())) {
else if(event.getNativeKeyCode() == KeyCodes.KEY_ENTER && mode == ExpandingTextBoxMode.MULTI_LINE && isCurrentTextAutoCompleted(textArea)) {
event.preventDefault();
}
else if (event.getNativeKeyCode() == KeyCodes.KEY_ENTER && mode == ExpandingTextBoxMode.MULTI_LINE && event.isControlKeyDown()) {
event.preventDefault();
acceptKeyHandler.handleAcceptKey();
}
doPreElements(mode == ExpandingTextBoxMode.MULTI_LINE && event.getNativeKeyCode() == KeyCodes.KEY_ENTER && !event.isControlKeyDown());
doPreElements(mode == ExpandingTextBoxMode.MULTI_LINE && event.getNativeKeyCode() == KeyCodes.KEY_ENTER && (!event.isControlKeyDown() && !isCurrentTextAutoCompleted(textArea)));
}
});
// Regain the focus after the suggest box closes (doesn't seem to happen by default here).
suggestBox.addSelectionHandler(new SelectionHandler<SuggestOracle.Suggestion>() {
@Override
public void onSelection(SelectionEvent<SuggestOracle.Suggestion> event) {
textArea.setFocus(true);
lastSelection = event.getSelectedItem().getReplacementString();
}
});
}

private boolean isCurrentTextAutoCompleted(TextArea textArea) {
return textArea.getText().equals(lastSelection);
}

@Override
public void setAcceptKeyHandler(AcceptKeyHandler acceptKeyHandler) {
this.acceptKeyHandler = checkNotNull(acceptKeyHandler);
Expand Down

0 comments on commit 8988cca

Please sign in to comment.