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