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();