Allow each layered image to retain its own flags (#4460)
This fixes an issue where context-menu items for zero-width emotes displayed the wrong provider.
This commit is contained in:
@@ -1076,17 +1076,20 @@ Outcome TwitchMessageBuilder::tryAppendEmote(const EmoteName &name)
|
||||
// Need to remove EmoteElement and replace with LayeredEmoteElement
|
||||
auto baseEmoteElement = this->releaseBack();
|
||||
|
||||
std::vector<EmotePtr> layers = {baseEmote, emote.get()};
|
||||
this->emplace<LayeredEmoteElement>(std::move(layers),
|
||||
baseEmoteElement->getFlags(),
|
||||
this->textColor_);
|
||||
std::vector<LayeredEmoteElement::Emote> layers = {
|
||||
{baseEmote, baseEmoteElement->getFlags()},
|
||||
{emote.get(), flags}};
|
||||
this->emplace<LayeredEmoteElement>(
|
||||
std::move(layers), baseEmoteElement->getFlags() | flags,
|
||||
this->textColor_);
|
||||
return Success;
|
||||
}
|
||||
|
||||
auto asLayered = dynamic_cast<LayeredEmoteElement *>(&this->back());
|
||||
if (asLayered)
|
||||
{
|
||||
asLayered->addEmoteLayer(emote.get());
|
||||
asLayered->addEmoteLayer({emote.get(), flags});
|
||||
asLayered->addFlags(flags);
|
||||
return Success;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user