Browse Source

search box scroll fix

Laserlicht 10 months ago
parent
commit
28fd6c50c4
1 changed files with 3 additions and 3 deletions
  1. 3 3
      client/windows/GUIClasses.cpp

+ 3 - 3
client/windows/GUIClasses.cpp

@@ -1508,7 +1508,7 @@ CObjectListWindow::CObjectListWindow(const std::vector<int> & _items, std::share
 	itemsVisible = items;
 
 	init(titleWidget_, _title, _descr, searchBoxEnabled);
-	list->scrollTo(initialSelection - 4); // -4 is for centering (list have 9 elements)
+	list->scrollTo(std::min(static_cast<int>(initialSelection + 4), static_cast<int>(items.size() - 1))); // 4 is for centering (list have 9 elements)
 }
 
 CObjectListWindow::CObjectListWindow(const std::vector<std::string> & _items, std::shared_ptr<CIntObject> titleWidget_, std::string _title, std::string _descr, std::function<void(int)> Callback, size_t initialSelection, std::vector<std::shared_ptr<IImage>> images, bool searchBoxEnabled)
@@ -1528,7 +1528,7 @@ CObjectListWindow::CObjectListWindow(const std::vector<std::string> & _items, st
 	itemsVisible = items;
 
 	init(titleWidget_, _title, _descr, searchBoxEnabled);
-	list->scrollTo(initialSelection - 4); // -4 is for centering (list have 9 elements)
+	list->scrollTo(std::min(static_cast<int>(initialSelection + 4), static_cast<int>(items.size() - 1))); // 4 is for centering (list have 9 elements)
 }
 
 void CObjectListWindow::init(std::shared_ptr<CIntObject> titleWidget_, std::string _title, std::string _descr, bool searchBoxEnabled)
@@ -1653,7 +1653,7 @@ void CObjectListWindow::keyPressed(EShortcut key)
 	}
 
 	vstd::abetween<int>(sel, 0, itemsVisible.size()-1);
-	list->scrollTo(sel - 4); // -4 is for centering (list have 9 elements)
+	list->scrollTo(sel);
 	changeSelection(sel);
 }