Allow to set again the same big reaction.
This commit is contained in:
parent
9e96126b87
commit
877b5fce00
@ -4626,7 +4626,7 @@ getMessageAvailableReactions chat_id:int53 message_id:int53 = AvailableReactions
|
|||||||
//@description Changes chosen reaction for a message
|
//@description Changes chosen reaction for a message
|
||||||
//@chat_id Identifier of the chat to which the message belongs
|
//@chat_id Identifier of the chat to which the message belongs
|
||||||
//@message_id Identifier of the message
|
//@message_id Identifier of the message
|
||||||
//@reaction Text representation of the new chosen reaction. Can be an empty string or the currently chosen reaction to remove the reaction
|
//@reaction Text representation of the new chosen reaction. Can be an empty string or the currently chosen non-big reaction to remove the reaction
|
||||||
//@is_big True, if the reaction is added with a big animation
|
//@is_big True, if the reaction is added with a big animation
|
||||||
setMessageReaction chat_id:int53 message_id:int53 reaction:string is_big:Bool = Ok;
|
setMessageReaction chat_id:int53 message_id:int53 reaction:string is_big:Bool = Ok;
|
||||||
|
|
||||||
|
@ -24135,23 +24135,22 @@ void MessagesManager::set_message_reaction(FullMessageId full_message_id, string
|
|||||||
for (auto it = m->reactions->reactions_.begin(); it != m->reactions->reactions_.end();) {
|
for (auto it = m->reactions->reactions_.begin(); it != m->reactions->reactions_.end();) {
|
||||||
auto &message_reaction = *it;
|
auto &message_reaction = *it;
|
||||||
if (message_reaction.is_chosen()) {
|
if (message_reaction.is_chosen()) {
|
||||||
if (message_reaction.get_reaction() == reaction) {
|
if (message_reaction.get_reaction() == reaction && !is_big) {
|
||||||
// double set removes reaction
|
// double set removes reaction, unless a big reaction is set
|
||||||
reaction = string();
|
reaction = string();
|
||||||
}
|
}
|
||||||
message_reaction.set_is_chosen(false, get_my_dialog_id(), can_get_added_reactions);
|
message_reaction.set_is_chosen(false, get_my_dialog_id(), can_get_added_reactions);
|
||||||
if (message_reaction.is_empty()) {
|
}
|
||||||
it = m->reactions->reactions_.erase(it);
|
if (message_reaction.get_reaction() == reaction) {
|
||||||
continue;
|
message_reaction.set_is_chosen(true, get_my_dialog_id(), can_get_added_reactions);
|
||||||
}
|
is_found = true;
|
||||||
} else {
|
|
||||||
if (message_reaction.get_reaction() == reaction) {
|
|
||||||
message_reaction.set_is_chosen(true, get_my_dialog_id(), can_get_added_reactions);
|
|
||||||
is_found = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
++it;
|
if (message_reaction.is_empty()) {
|
||||||
|
it = m->reactions->reactions_.erase(it);
|
||||||
|
} else {
|
||||||
|
++it;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pending_reactions_[full_message_id].query_count++;
|
pending_reactions_[full_message_id].query_count++;
|
||||||
|
Loading…
Reference in New Issue
Block a user