From f7e3641c04db1d4abf38467ab8e487bfc48eaca8 Mon Sep 17 00:00:00 2001 From: Laserlicht <13953785+Laserlicht@users.noreply.github.com> Date: Sat, 12 Oct 2024 23:21:26 +0200 Subject: [PATCH] fix shortcut bug; add center of selected item --- client/windows/GUIClasses.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/client/windows/GUIClasses.cpp b/client/windows/GUIClasses.cpp index 7727afd56..d6ceea6bf 100644 --- a/client/windows/GUIClasses.cpp +++ b/client/windows/GUIClasses.cpp @@ -1487,6 +1487,9 @@ CObjectListWindow::CObjectListWindow(const std::vector & _items, std::share images(images) { OBJECT_CONSTRUCTION; + + addUsedEvents(KEYBOARD); + items.reserve(_items.size()); for(int id : _items) @@ -1494,7 +1497,7 @@ CObjectListWindow::CObjectListWindow(const std::vector & _items, std::share itemsVisible = items; init(titleWidget_, _title, _descr, searchBoxEnabled); - list->scrollTo(initialSelection); + list->scrollTo(initialSelection - 4); // -4 is for centering (list have 9 elements) } CObjectListWindow::CObjectListWindow(const std::vector & _items, std::shared_ptr titleWidget_, std::string _title, std::string _descr, std::function Callback, size_t initialSelection, std::vector> images, bool searchBoxEnabled) @@ -1504,6 +1507,9 @@ CObjectListWindow::CObjectListWindow(const std::vector & _items, st images(images) { OBJECT_CONSTRUCTION; + + addUsedEvents(KEYBOARD); + items.reserve(_items.size()); for(size_t i=0; i<_items.size(); i++) @@ -1511,7 +1517,7 @@ CObjectListWindow::CObjectListWindow(const std::vector & _items, st itemsVisible = items; init(titleWidget_, _title, _descr, searchBoxEnabled); - list->scrollTo(initialSelection); + list->scrollTo(initialSelection - 4); // -4 is for centering (list have 9 elements) } void CObjectListWindow::init(std::shared_ptr titleWidget_, std::string _title, std::string _descr, bool searchBoxEnabled) @@ -1636,7 +1642,7 @@ void CObjectListWindow::keyPressed(EShortcut key) } vstd::abetween(sel, 0, itemsVisible.size()-1); - list->scrollTo(sel); + list->scrollTo(sel - 4); // -4 is for centering (list have 9 elements) changeSelection(sel); }