diff --git a/Telegram/SourceFiles/chat_helpers/emoji_suggestions_widget.cpp b/Telegram/SourceFiles/chat_helpers/emoji_suggestions_widget.cpp index c6592c2bf..d6ea9012a 100644 --- a/Telegram/SourceFiles/chat_helpers/emoji_suggestions_widget.cpp +++ b/Telegram/SourceFiles/chat_helpers/emoji_suggestions_widget.cpp @@ -219,9 +219,7 @@ void SuggestionsWidget::keyPressEvent(QKeyEvent *e) { void SuggestionsWidget::handleKeyEvent(int key) { if (key == Qt::Key_Enter || key == Qt::Key_Return || key == Qt::Key_Tab) { - if (_selected >= 0 && _selected < _rows.size()) { - triggered.notify(_rows[_selected].replacement(), true); - } + triggerSelectedRow(); return; } if ((key != Qt::Key_Up && key != Qt::Key_Down) || _rows.size() < 1) { @@ -333,11 +331,21 @@ void SuggestionsWidget::mouseReleaseEvent(QMouseEvent *e) { _rows[pressed].ripple()->lastStop(); } if (pressed == _selected) { - triggered.notify(_rows[_selected].replacement(), true); + triggerRow(_rows[_selected]); } } } +void SuggestionsWidget::triggerSelectedRow() { + if (_selected >= 0 && _selected < _rows.size()) { + triggerRow(_rows[_selected]); + } +} + +void SuggestionsWidget::triggerRow(const Row &row) { + triggered.notify(row.emoji()->text(), true); +} + void SuggestionsWidget::enterEventHook(QEvent *e) { auto mouse = QCursor::pos(); if (!rect().marginsRemoved(QMargins(0, _st->skip, 0, _st->skip)).contains(mapFromGlobal(mouse))) { @@ -454,7 +462,7 @@ void SuggestionsController::replaceCurrent(const QString &replacement) { _suggestions->showWithQuery(QString()); } else { cursor.setPosition(cursor.position() - suggestion.size(), QTextCursor::KeepAnchor); - cursor.insertText(replacement + ' '); + cursor.insertText(replacement); } auto emojiText = GetSuggestionEmoji(QStringToUTF16(replacement)); diff --git a/Telegram/SourceFiles/chat_helpers/emoji_suggestions_widget.h b/Telegram/SourceFiles/chat_helpers/emoji_suggestions_widget.h index d83a19868..0dd53f671 100644 --- a/Telegram/SourceFiles/chat_helpers/emoji_suggestions_widget.h +++ b/Telegram/SourceFiles/chat_helpers/emoji_suggestions_widget.h @@ -62,6 +62,8 @@ private: int itemTop(int index); void updateItem(int index); void updateSelection(QPoint globalPosition); + void triggerSelectedRow(); + void triggerRow(const Row &row); gsl::not_null _st;