From 932ed20c4b16ed64ab474878c9c7dea977c882f9 Mon Sep 17 00:00:00 2001
From: John Preston <johnprestonmail@gmail.com>
Date: Fri, 29 Mar 2019 20:04:05 +0400
Subject: [PATCH] Refresh emoji after server responds.

---
 .../chat_helpers/emoji_suggestions_widget.cpp    | 16 +++++++++++++---
 .../chat_helpers/emoji_suggestions_widget.h      |  3 ++-
 2 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/Telegram/SourceFiles/chat_helpers/emoji_suggestions_widget.cpp b/Telegram/SourceFiles/chat_helpers/emoji_suggestions_widget.cpp
index 219d8e400..c12e27999 100644
--- a/Telegram/SourceFiles/chat_helpers/emoji_suggestions_widget.cpp
+++ b/Telegram/SourceFiles/chat_helpers/emoji_suggestions_widget.cpp
@@ -85,8 +85,8 @@ rpl::producer<QString> SuggestionsWidget::triggered() const {
 	return _triggered.events();
 }
 
-void SuggestionsWidget::showWithQuery(const QString &query) {
-	if (_query == query) {
+void SuggestionsWidget::showWithQuery(const QString &query, bool force) {
+	if (!force && (_query == query)) {
 		return;
 	}
 	_query = query;
@@ -428,6 +428,10 @@ SuggestionsController::SuggestionsController(
 	) | rpl::start_with_next([=](QString replacement) {
 		replaceCurrent(replacement);
 	}, _lifetime);
+	Core::App().emojiKeywords().refreshed(
+	) | rpl::start_with_next([=] {
+		showFromTextChange(getEmojiQuery(), true);
+	}, _lifetime);
 
 	updateForceHidden();
 
@@ -477,10 +481,16 @@ void SuggestionsController::handleTextChange() {
 
 	const auto query = getEmojiQuery();
 	if (query.isEmpty() || _textChangeAfterKeyPress) {
-		_suggestions->showWithQuery(query);
+		showFromTextChange(query);
 	}
 }
 
+void SuggestionsController::showFromTextChange(
+		const QString &query,
+		bool force) {
+	_suggestions->showWithQuery(query, force);
+}
+
 QString SuggestionsController::getEmojiQuery() {
 	if (!Global::SuggestEmoji()) {
 		return QString();
diff --git a/Telegram/SourceFiles/chat_helpers/emoji_suggestions_widget.h b/Telegram/SourceFiles/chat_helpers/emoji_suggestions_widget.h
index 808891d3f..9c781b0ea 100644
--- a/Telegram/SourceFiles/chat_helpers/emoji_suggestions_widget.h
+++ b/Telegram/SourceFiles/chat_helpers/emoji_suggestions_widget.h
@@ -21,7 +21,7 @@ class SuggestionsWidget : public TWidget {
 public:
 	SuggestionsWidget(QWidget *parent, const style::Menu &st);
 
-	void showWithQuery(const QString &query);
+	void showWithQuery(const QString &query, bool force = false);
 	void handleKeyEvent(int key);
 
 	rpl::producer<bool> toggleAnimated() const;
@@ -88,6 +88,7 @@ public:
 private:
 	void handleCursorPositionChange();
 	void handleTextChange();
+	void showFromTextChange(const QString &query, bool force = false);
 	QString getEmojiQuery();
 	void suggestionsUpdated(bool visible);
 	void updateGeometry();