Don't update ui style elements list when updating to the same style
This commit is contained in:
parent
4dcac2a5ac
commit
4922877431
1 changed files with 16 additions and 10 deletions
|
|
@ -56,6 +56,8 @@ namespace psemek::ui
|
||||||
}
|
}
|
||||||
|
|
||||||
std::shared_ptr<style const> element::set_style(std::shared_ptr<struct style const> st)
|
std::shared_ptr<style const> element::set_style(std::shared_ptr<struct style const> st)
|
||||||
|
{
|
||||||
|
if (style_ != st)
|
||||||
{
|
{
|
||||||
if (style_)
|
if (style_)
|
||||||
style_->use_as_style.erase(this);
|
style_->use_as_style.erase(this);
|
||||||
|
|
@ -64,6 +66,7 @@ namespace psemek::ui
|
||||||
|
|
||||||
if (style_)
|
if (style_)
|
||||||
style_->use_as_style.insert(this);
|
style_->use_as_style.insert(this);
|
||||||
|
}
|
||||||
|
|
||||||
auto visitor = util::recursive([](auto && self, element * e) -> void {
|
auto visitor = util::recursive([](auto && self, element * e) -> void {
|
||||||
e->merged_style_ = nullptr;
|
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)
|
std::shared_ptr<struct style const> element::set_own_style(std::shared_ptr<struct style const> st)
|
||||||
|
{
|
||||||
|
if (style_ != st)
|
||||||
{
|
{
|
||||||
if (style_)
|
if (style_)
|
||||||
style_->use_as_own_style.erase(this);
|
style_->use_as_own_style.erase(this);
|
||||||
|
|
@ -85,6 +90,7 @@ namespace psemek::ui
|
||||||
|
|
||||||
if (style_)
|
if (style_)
|
||||||
style_->use_as_own_style.insert(this);
|
style_->use_as_own_style.insert(this);
|
||||||
|
}
|
||||||
|
|
||||||
auto visitor = util::recursive([](auto && self, element * e) -> void {
|
auto visitor = util::recursive([](auto && self, element * e) -> void {
|
||||||
e->merged_style_ = nullptr;
|
e->merged_style_ = nullptr;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue