diff --git a/es-app/src/views/GamelistView.cpp b/es-app/src/views/GamelistView.cpp index 2e86443a0..1fd3da2cd 100644 --- a/es-app/src/views/GamelistView.cpp +++ b/es-app/src/views/GamelistView.cpp @@ -352,6 +352,8 @@ void GamelistView::onThemeChanged(const std::shared_ptr& theme) else if (element.second.type == "helpsystem") { mHelpComponents.emplace_back(std::make_unique()); mHelpComponents.back()->applyTheme(theme, "gamelist", element.first, ALL); + if (mHelpComponents.back()->getHelpComponentScope() == HelpComponentScope::NONE) + mHelpComponents.pop_back(); } } } diff --git a/es-app/src/views/SystemView.cpp b/es-app/src/views/SystemView.cpp index 0cafbb11c..629b1f5df 100644 --- a/es-app/src/views/SystemView.cpp +++ b/es-app/src/views/SystemView.cpp @@ -726,6 +726,10 @@ void SystemView::populate() elements.helpComponents.emplace_back(std::make_unique()); elements.helpComponents.back()->applyTheme(theme, "system", element.first, ThemeFlags::ALL); + if (elements.helpComponents.back()->getHelpComponentScope() == + HelpComponentScope::NONE) { + elements.helpComponents.pop_back(); + } } } } diff --git a/es-core/src/GuiComponent.h b/es-core/src/GuiComponent.h index a87ceb149..d9cccff26 100644 --- a/es-core/src/GuiComponent.h +++ b/es-core/src/GuiComponent.h @@ -68,7 +68,8 @@ enum class Stationary { enum class HelpComponentScope { SHARED, VIEW, - MENU + MENU, + NONE }; class GuiComponent diff --git a/es-core/src/components/HelpComponent.cpp b/es-core/src/components/HelpComponent.cpp index cdbdfec87..c5617c5a1 100644 --- a/es-core/src/components/HelpComponent.cpp +++ b/es-core/src/components/HelpComponent.cpp @@ -270,6 +270,11 @@ void HelpComponent::applyTheme(const std::shared_ptr& theme, if (!elem) return; + if (elem->has("scope") && elem->get("scope") == "none") { + mHelpComponentScope = HelpComponentScope::NONE; + return; + } + if (elem->has("pos")) mStylePosition = elem->get("pos") * glm::vec2 {Renderer::getScreenWidth(), Renderer::getScreenHeight()};