Don't update ui style elements list when updating to the same style

This commit is contained in:
Nikita Lisitsa 2022-03-11 00:48:10 +03:00
parent 4dcac2a5ac
commit 4922877431

View file

@ -56,6 +56,8 @@ namespace psemek::ui
}
std::shared_ptr<style const> element::set_style(std::shared_ptr<struct style const> st)
{
if (style_ != st)
{
if (style_)
style_->use_as_style.erase(this);
@ -64,6 +66,7 @@ namespace psemek::ui
if (style_)
style_->use_as_style.insert(this);
}
auto visitor = util::recursive([](auto && self, element * e) -> void {
e->merged_style_ = nullptr;
@ -77,6 +80,8 @@ namespace psemek::ui
}
std::shared_ptr<struct style const> element::set_own_style(std::shared_ptr<struct style const> st)
{
if (style_ != st)
{
if (style_)
style_->use_as_own_style.erase(this);
@ -85,6 +90,7 @@ namespace psemek::ui
if (style_)
style_->use_as_own_style.insert(this);
}
auto visitor = util::recursive([](auto && self, element * e) -> void {
e->merged_style_ = nullptr;