From d1d598adc70b91e11db34947b437a165c8a3085a Mon Sep 17 00:00:00 2001 From: Alexei Kotov Date: Sun, 2 Nov 2025 08:26:54 +0300 Subject: [PATCH] Hide the cursor in spell lists when controller tooltips are on (#8770) --- apps/openmw/mwgui/spellbuyingwindow.cpp | 3 +++ apps/openmw/mwgui/spellcreationdialog.cpp | 8 ++++++-- apps/openmw/mwgui/spellview.cpp | 3 +++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/apps/openmw/mwgui/spellbuyingwindow.cpp b/apps/openmw/mwgui/spellbuyingwindow.cpp index 0b9e5e3391..962a12fb21 100644 --- a/apps/openmw/mwgui/spellbuyingwindow.cpp +++ b/apps/openmw/mwgui/spellbuyingwindow.cpp @@ -240,6 +240,7 @@ namespace MWGui else if (arg.button == SDL_CONTROLLER_BUTTON_B) { onCancelButtonClicked(mCancelButton); + return true; } else if (arg.button == SDL_CONTROLLER_BUTTON_RIGHTSTICK) { @@ -271,6 +272,8 @@ namespace MWGui else return true; + winMgr->setCursorVisible(!winMgr->getControllerTooltipVisible()); + if (mControllerFocus < mSpellButtons.size()) { // Scroll the list to keep the active item in view diff --git a/apps/openmw/mwgui/spellcreationdialog.cpp b/apps/openmw/mwgui/spellcreationdialog.cpp index c471c036e3..dc3cbce4f4 100644 --- a/apps/openmw/mwgui/spellcreationdialog.cpp +++ b/apps/openmw/mwgui/spellcreationdialog.cpp @@ -847,10 +847,12 @@ namespace MWGui mAvailableFocus = 0; mEffectFocus = 0; mRightColumn = false; - if (mAvailableButtons.size() > 0) + if (!mAvailableButtons.empty()) { + MWBase::WindowManager& winMgr = *MWBase::Environment::get().getWindowManager(); + winMgr.setCursorVisible(!winMgr.getControllerTooltipVisible()); mAvailableButtons[0]->setStateSelected(true); - if (MWBase::Environment::get().getWindowManager()->getControllerTooltipVisible()) + if (winMgr.getControllerTooltipVisible()) MWBase::Environment::get().getInputManager()->warpMouseToWidget(mAvailableButtons[0]); } } @@ -1117,6 +1119,8 @@ namespace MWGui else return true; + winMgr->setCursorVisible(!winMgr->getControllerTooltipVisible()); + // Scroll the list to keep the active item in view if (mAvailableFocus <= 5) mAvailableEffectsList->setViewOffset(0); diff --git a/apps/openmw/mwgui/spellview.cpp b/apps/openmw/mwgui/spellview.cpp index de18b25248..16650d2118 100644 --- a/apps/openmw/mwgui/spellview.cpp +++ b/apps/openmw/mwgui/spellview.cpp @@ -417,6 +417,9 @@ namespace MWGui void SpellView::updateControllerFocus(size_t prevFocus, size_t newFocus) { + MWBase::Environment::get().getWindowManager()->setCursorVisible( + !MWBase::Environment::get().getWindowManager()->getControllerTooltipVisible()); + if (mButtons.empty()) return;