Fix some recent bugs with emoji autocomplete #1133
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
remove_emoji_list
is executed multiple times on click, even if emoji popup is closed.This happens because
this.remove_emoji_list.bind(this)
creates a new function every time, andwindow.removeEventListener('click', this.bound_remove_emoji_list)
is trying to unassign a different function and silently fails to do so. The fix is to create a bound function and use it to assign and unassign a click-listener, so thataddEventListener
andremoveEventListener
are operating on exactly the same function.Previously if you entered a typo (like
winn
), emoji popup was closed, but as soon as you removed the secondn
it reappeared with suggestions likewink
. Now it doesn't reappear, so you have to remove everything and start from scratch. This happenned because when nothing is matched, previously emoji popup was only closed, but then code was changed to actually remove the popup./cc @gregor