From 224de038389b2c3bcda15c317735669f38b13996 Mon Sep 17 00:00:00 2001 From: levlam Date: Sat, 13 Jan 2018 01:21:46 +0300 Subject: [PATCH] Fix updating of chat draft message faster than once a second. GitOrigin-RevId: d792fefd43c9ddfc91dc0af16c7bc107eacb38ad --- td/telegram/MessagesManager.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp index b0d9cfb26..3d6681e6a 100644 --- a/td/telegram/MessagesManager.cpp +++ b/td/telegram/MessagesManager.cpp @@ -18251,21 +18251,24 @@ bool MessagesManager::update_dialog_draft_message(Dialog *d, unique_ptrdraft_message == nullptr || d->draft_message->date < draft_message->date) { - if (d->draft_message != nullptr && d->draft_message->reply_to_message_id == draft_message->reply_to_message_id && - d->draft_message->input_message_text == draft_message->input_message_text) { + if (d->draft_message != nullptr && d->draft_message->reply_to_message_id == draft_message->reply_to_message_id && + d->draft_message->input_message_text == draft_message->input_message_text) { + if (d->draft_message->date < draft_message->date) { if (need_update_dialog_pos) { update_dialog_pos(d, false, "update_dialog_draft_message 2"); } d->draft_message->date = draft_message->date; - } else { + return true; + } + } else { + if (!from_update || d->draft_message == nullptr || d->draft_message->date <= draft_message->date) { d->draft_message = std::move(draft_message); if (need_update_dialog_pos) { update_dialog_pos(d, false, "update_dialog_draft_message 3", false); } send_update_chat_draft_message(d); + return true; } - return true; } } return false;