From 3e3dfac4e06969bee99deca1f625650d56bf507f Mon Sep 17 00:00:00 2001 From: Evil Eye Date: Sun, 23 Feb 2025 10:48:13 +0100 Subject: [PATCH] Don't create a scrollbar that cannot be scrolled --- CHANGELOG.md | 1 + apps/openmw/mwgui/dialogue.cpp | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 512315ade0..3cf83459cd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -228,6 +228,7 @@ Bug #8252: Plugin dependencies are not required to be loaded Bug #8295: Post-processing chain is case-sensitive Bug #8299: Crash while smoothing landscape + Bug #8364: Crash when clicking scrollbar without handle (divide by zero) Feature #1415: Infinite fall failsafe Feature #2566: Handle NAM9 records for manual cell references Feature #3501: OpenMW-CS: Instance Editing - Shortcuts for axial locking diff --git a/apps/openmw/mwgui/dialogue.cpp b/apps/openmw/mwgui/dialogue.cpp index 6f154bb134..e14c400978 100644 --- a/apps/openmw/mwgui/dialogue.cpp +++ b/apps/openmw/mwgui/dialogue.cpp @@ -666,7 +666,8 @@ namespace MWGui else if (scrollbar) { mHistory->setSize(MyGUI::IntSize(mHistory->getWidth(), book->getSize().second)); - size_t range = book->getSize().second - viewHeight; + // Scroll range should be >= 2 to enable scrolling and prevent a crash + size_t range = std::max(book->getSize().second - viewHeight, size_t(2)); mScrollBar->setScrollRange(range); mScrollBar->setScrollPosition(range - 1); mScrollBar->setTrackSize(