From e577257ec41bb104882f0964d82116cfc3c70e4e Mon Sep 17 00:00:00 2001 From: Andrew Lanzone Date: Fri, 4 Jul 2025 23:06:05 -0700 Subject: [PATCH] Make topic padding a const and use it when scrolling dialog topics --- apps/openmw/mwgui/dialogue.cpp | 13 +++++-------- apps/openmw/mwgui/dialogue.hpp | 3 +++ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/apps/openmw/mwgui/dialogue.cpp b/apps/openmw/mwgui/dialogue.cpp index b3f83f3771..0b6648be6c 100644 --- a/apps/openmw/mwgui/dialogue.cpp +++ b/apps/openmw/mwgui/dialogue.cpp @@ -653,13 +653,10 @@ namespace MWGui if (mTopicsList->getItemCount() > 0) mTopicsList->addSeparator(); - // Morrowind uses 3 px invisible borders for padding topics - constexpr int verticalPadding = 3; - for (const auto& keyword : mKeywords) { std::string topicId = Misc::StringUtils::lowerCase(keyword); - mTopicsList->addItem(keyword, verticalPadding); + mTopicsList->addItem(keyword, sVerticalPadding); auto t = std::make_unique(keyword); mKeywordSearch.seed(topicId, intptr_t(t.get())); @@ -947,18 +944,18 @@ namespace MWGui if (focused) { // Scroll the side bar to keep the active item in view - if (index <= 8) + if (index <= 6) mTopicsList->setViewOffset(0); else { int offset = 0; - for (int i = 0; i < static_cast(index) - 8; i++) + for (int i = 0; i < static_cast(index) - 6; i++) { const std::string& keyword = mTopicsList->getItemNameAt(i); if (keyword.empty()) - offset += 21; + offset += 18 + sVerticalPadding * 2; else - offset += mTopicsList->getItemWidget(keyword)->getHeight() + 3; + offset += mTopicsList->getItemWidget(keyword)->getHeight() + sVerticalPadding * 2; } mTopicsList->setViewOffset(-offset); } diff --git a/apps/openmw/mwgui/dialogue.hpp b/apps/openmw/mwgui/dialogue.hpp index 6f03076e92..90f1c3eaaf 100644 --- a/apps/openmw/mwgui/dialogue.hpp +++ b/apps/openmw/mwgui/dialogue.hpp @@ -226,6 +226,9 @@ namespace MWGui MyGUI::IntSize mCurrentWindowSize; + // Morrowind uses 3 px invisible borders for padding topics + static const int sVerticalPadding = 3; + std::unique_ptr mCallback; std::unique_ptr mGreetingCallback;