diff --git a/src/dusk/ui/graphics_tuner.cpp b/src/dusk/ui/graphics_tuner.cpp index 188f0911c5..4f68d4a078 100644 --- a/src/dusk/ui/graphics_tuner.cpp +++ b/src/dusk/ui/graphics_tuner.cpp @@ -195,8 +195,7 @@ Rml::String format_graphics_setting_value(GraphicsOption option, int value) { GraphicsTuner::GraphicsTuner(GraphicsTunerProps props, bool prelaunch) : Document(kDocumentSource), mOption(props.option), mValueMin(props.valueMin), - mValueMax(props.valueMax), mDefaultValue(props.defaultValue), mPrelaunch(prelaunch) -{ + mValueMax(props.valueMax), mDefaultValue(props.defaultValue), mPrelaunch(prelaunch) { if (mDocument == nullptr) { return; } @@ -208,7 +207,7 @@ GraphicsTuner::GraphicsTuner(GraphicsTunerProps props, bool prelaunch) description->SetInnerRML(escape(props.helpText)); } if (auto* carouselParent = mDocument->GetElementById("carousel-container")) { - add_component(carouselParent, + mCarousel = &add_component(carouselParent, SteppedCarousel::Props{ .min = mValueMin, .max = mValueMax, @@ -283,6 +282,10 @@ bool GraphicsTuner::handle_nav_command(Rml::Event& event, NavCommand cmd) { return true; } + if (mCarousel && mCarousel->handle_nav_command(cmd)) { + return true; + } + return mPrelaunch ? false : Document::handle_nav_command(event, cmd); } diff --git a/src/dusk/ui/graphics_tuner.hpp b/src/dusk/ui/graphics_tuner.hpp index b020db1128..254aada22b 100644 --- a/src/dusk/ui/graphics_tuner.hpp +++ b/src/dusk/ui/graphics_tuner.hpp @@ -28,9 +28,9 @@ public: bool focus() override; void update() override; + bool handle_nav_command(NavCommand cmd); private: - bool handle_nav_command(NavCommand cmd); void apply(int value); Props mProps; @@ -86,6 +86,7 @@ private: int mValueMax = 0; int mDefaultValue = 0; std::vector > mComponents; + SteppedCarousel* mCarousel; Rml::Element* mRoot; bool mPrelaunch; };