From a4376a76f06668e5293b350695546a7969b33b77 Mon Sep 17 00:00:00 2001 From: Bruno Windels Date: Mon, 2 Sep 2019 11:25:29 +0200 Subject: [PATCH] only pass keyboard to autocomplete when it has selections otherwise if tab is pressed, try to tab complete the last word --- src/components/views/rooms/BasicMessageComposer.js | 2 +- src/editor/autocomplete.js | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/components/views/rooms/BasicMessageComposer.js b/src/components/views/rooms/BasicMessageComposer.js index d55e9acc86..ec1fd3d276 100644 --- a/src/components/views/rooms/BasicMessageComposer.js +++ b/src/components/views/rooms/BasicMessageComposer.js @@ -265,7 +265,7 @@ export default class BasicMessageEditor extends React.Component { handled = true; // autocomplete or enter to send below shouldn't have any modifier keys pressed. } else if (!(event.metaKey || event.altKey || event.shiftKey)) { - if (model.autoComplete) { + if (model.autoComplete && model.autoComplete.hasCompletions()) { const autoComplete = model.autoComplete; switch (event.key) { case "ArrowUp": diff --git a/src/editor/autocomplete.js b/src/editor/autocomplete.js index 79a69c07a6..a4cbc1cec8 100644 --- a/src/editor/autocomplete.js +++ b/src/editor/autocomplete.js @@ -41,6 +41,11 @@ export default class AutocompleteWrapperModel { return this._getAutocompleterComponent().hasSelection(); } + hasCompletions() { + const ac = this._getAutocompleterComponent(); + return ac && ac.countCompletions() > 0; + } + onEnter() { this._updateCallback({close: true}); }