From 8d545a43d51cb2f5a9686489e968de5221551478 Mon Sep 17 00:00:00 2001 From: Andrew Lanzone Date: Sat, 14 Jun 2025 13:14:32 -0700 Subject: [PATCH] Scrolll the list of quests in controller mode --- apps/openmw/mwgui/journalwindow.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/apps/openmw/mwgui/journalwindow.cpp b/apps/openmw/mwgui/journalwindow.cpp index ddfa16255c..4c2e885e4e 100644 --- a/apps/openmw/mwgui/journalwindow.cpp +++ b/apps/openmw/mwgui/journalwindow.cpp @@ -826,6 +826,18 @@ namespace mButtons[mSelectedQuest]->setTextColour(MyGUI::Colour::Black); mSelectedQuest = MWGui::wrap(mSelectedQuest - 1, mButtons.size()); mButtons[mSelectedQuest]->setTextColour(MWGui::journalHeaderColour); + + // Scroll the list to keep the active item in view + Gui::MWList* list = getWidget(QuestsList); + if (mSelectedQuest <= 3) + list->setViewOffset(0); + else + { + int offset = 0; + for (int i = 0; i < mSelectedQuest - 3; i++) + offset += mButtons[i]->getHeight() + 3; + list->setViewOffset(-offset); + } } else if (mOptionsMode) { @@ -868,6 +880,18 @@ namespace mButtons[mSelectedQuest]->setTextColour(MyGUI::Colour::Black); mSelectedQuest = MWGui::wrap(mSelectedQuest + 1, mButtons.size()); mButtons[mSelectedQuest]->setTextColour(MWGui::journalHeaderColour); + + // Scroll the list to keep the active item in view + Gui::MWList* list = getWidget(QuestsList); + if (mSelectedQuest <= 3) + list->setViewOffset(0); + else + { + int offset = 0; + for (int i = 0; i < mSelectedQuest - 3; i++) + offset += mButtons[i]->getHeight() + 3; + list->setViewOffset(-offset); + } } else if (mOptionsMode) {