From 73f1f33ba105d16a21ef87636fc90288676f6616 Mon Sep 17 00:00:00 2001 From: Aussiemon <1407091-Aussiemon@users.noreply.gitlab.com> Date: Thu, 29 Jan 2026 01:43:40 -0700 Subject: [PATCH] Fix quick-keys' spell list's D-pad / controller navigation --- apps/openmw/mwgui/quickkeysmenu.cpp | 11 ++++++++++- apps/openmw/mwgui/quickkeysmenu.hpp | 3 ++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/apps/openmw/mwgui/quickkeysmenu.cpp b/apps/openmw/mwgui/quickkeysmenu.cpp index 9ccf67d622..3cc0cd177d 100644 --- a/apps/openmw/mwgui/quickkeysmenu.cpp +++ b/apps/openmw/mwgui/quickkeysmenu.cpp @@ -228,6 +228,7 @@ namespace MWGui mMagicSelectionDialog = std::make_unique(this); } mMagicSelectionDialog->setVisible(true); + mMagicSelectionDialog->setActiveControllerWindow(true); mAssignDialog->setVisible(false); } @@ -724,7 +725,6 @@ namespace MWGui WindowModal::onOpen(); mMagicList->setModel(new SpellModel(MWMechanics::getPlayer())); - mMagicList->resetScrollbars(); } void MagicSelectionDialog::onModelIndexSelected(SpellModel::ModelIndex index) @@ -745,4 +745,13 @@ namespace MWGui return true; } + + void MagicSelectionDialog::setActiveControllerWindow(bool active) + { + if (!Settings::gui().mControllerMenus) + return; + + mMagicList->setActiveControllerWindow(active); + WindowBase::setActiveControllerWindow(active); + } } diff --git a/apps/openmw/mwgui/quickkeysmenu.hpp b/apps/openmw/mwgui/quickkeysmenu.hpp index cfb75388d7..3d1f43c4ee 100644 --- a/apps/openmw/mwgui/quickkeysmenu.hpp +++ b/apps/openmw/mwgui/quickkeysmenu.hpp @@ -107,6 +107,8 @@ namespace MWGui void onOpen() override; bool exit() override; + void setActiveControllerWindow(bool active) override; + private: MyGUI::Button* mCancelButton; SpellView* mMagicList; @@ -117,7 +119,6 @@ namespace MWGui void onModelIndexSelected(SpellModel::ModelIndex index); bool onControllerButtonEvent(const SDL_ControllerButtonEvent& arg) override; - size_t mControllerFocus = 0; }; }