From 02dbdccf0dff5b5eb234a029ea2199ef2a3739cb Mon Sep 17 00:00:00 2001 From: lisyarus Date: Wed, 30 Mar 2022 09:52:33 +0300 Subject: [PATCH] Re-issue ui hint if hint string changed --- libs/ui/source/controller.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libs/ui/source/controller.cpp b/libs/ui/source/controller.cpp index 54b011e7..df2243e4 100644 --- a/libs/ui/source/controller.cpp +++ b/libs/ui/source/controller.cpp @@ -61,7 +61,7 @@ namespace psemek::ui float hint_timer = 0.f; util::function on_hint; element * hinted_element = nullptr; - bool hint_called = false; + std::optional hint_called = std::nullopt; impl(async::event_loop * loop); @@ -201,7 +201,7 @@ namespace psemek::ui if (impl().hint_called && impl().on_hint) impl().on_hint(nullptr); impl().hint_timer = 0.f; - impl().hint_called = false; + impl().hint_called = std::nullopt; } impl().hinted_element = new_hinted_element; @@ -227,14 +227,14 @@ namespace psemek::ui { impl().update(dt); - if (impl().hinted_element && !impl().hint_called) + if (impl().hinted_element && (!impl().hint_called || *impl().hint_called != *impl().hinted_element->hint())) { impl().hint_timer += dt; if (impl().hint_timer >= impl().hint_delay) { if (impl().on_hint) impl().on_hint(impl().hinted_element); - impl().hint_called = true; + impl().hint_called = *impl().hinted_element->hint(); } } }