From 1fc40aa21177d2ca47976046b5fc8b11db65c10c Mon Sep 17 00:00:00 2001 From: obligaron Date: Thu, 6 Jan 2022 17:29:46 +0100 Subject: [PATCH] DiabloUI: Fix Handling of UiFlags::NeedsNextElement --- Source/DiabloUI/diabloui.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Source/DiabloUI/diabloui.cpp b/Source/DiabloUI/diabloui.cpp index d2b53d6c3..a4b5558ac 100644 --- a/Source/DiabloUI/diabloui.cpp +++ b/Source/DiabloUI/diabloui.cpp @@ -142,6 +142,8 @@ void UiInitList(void (*fnFocus)(int value), void (*fnSelect)(int value), void (* SelectedItemMax = std::max(uiList->m_vecItems.size() - 1, static_cast(0)); ListViewportSize = uiList->viewportSize; gUiList = uiList; + if (selectedItem <= SelectedItemMax && HasAnyOf(uiList->GetItem(selectedItem)->uiFlags, UiFlags::NeedsNextElement)) + AdjustListOffset(selectedItem + 1); } else if (item->IsType(UiType::Scrollbar)) { uiScrollbar = static_cast(item.get()); } @@ -214,11 +216,9 @@ void UiFocus(std::size_t itemIndex, bool checkUp, bool ignoreItemsWraps = false) pItem = gUiList->GetItem(itemIndex); } - if (HasAnyOf(pItem->uiFlags, UiFlags::NeedsNextElement)) { + if (HasAnyOf(pItem->uiFlags, UiFlags::NeedsNextElement)) AdjustListOffset(itemIndex + 1); - } else { - AdjustListOffset(itemIndex); - } + AdjustListOffset(itemIndex); SelectedItem = itemIndex;