diff --git a/apps/openmw/mwgui/dialogue.cpp b/apps/openmw/mwgui/dialogue.cpp index 0b6648be6c..0d694a6c4d 100644 --- a/apps/openmw/mwgui/dialogue.cpp +++ b/apps/openmw/mwgui/dialogue.cpp @@ -944,21 +944,16 @@ namespace MWGui if (focused) { // Scroll the side bar to keep the active item in view - if (index <= 6) - mTopicsList->setViewOffset(0); - else + int offset = 0; + for (int i = 6; i < static_cast(index); i++) { - int offset = 0; - for (int i = 0; i < static_cast(index) - 6; i++) - { - const std::string& keyword = mTopicsList->getItemNameAt(i); - if (keyword.empty()) - offset += 18 + sVerticalPadding * 2; - else - offset += mTopicsList->getItemWidget(keyword)->getHeight() + sVerticalPadding * 2; - } - mTopicsList->setViewOffset(-offset); + const std::string& keyword = mTopicsList->getItemNameAt(i); + if (keyword.empty()) + offset += 18 + sVerticalPadding * 2; + else + offset += mTopicsList->getItemWidget(keyword)->getHeight() + sVerticalPadding * 2; } + mTopicsList->setViewOffset(-offset); } } diff --git a/apps/openmw/mwgui/journalwindow.cpp b/apps/openmw/mwgui/journalwindow.cpp index 8302f4faea..e956696221 100644 --- a/apps/openmw/mwgui/journalwindow.cpp +++ b/apps/openmw/mwgui/journalwindow.cpp @@ -971,15 +971,10 @@ namespace // Scroll the list to keep the active item in view Gui::MWList* list = getWidget(mQuestMode ? QuestsList : TopicsList); - if (mSelectedQuest <= 3) - list->setViewOffset(0); - else - { - int offset = 0; - for (int i = 0; i < static_cast(mSelectedQuest) - 3; i++) - offset += mButtons[i]->getHeight() + 3; - list->setViewOffset(-offset); - } + int offset = 0; + for (int i = 3; i < static_cast(mSelectedQuest); i++) + offset += mButtons[i]->getHeight(); + list->setViewOffset(-offset); } } };