From a7e49e41d369eb709ca7d43ed815175dd4395307 Mon Sep 17 00:00:00 2001 From: Ted John Date: Fri, 4 Dec 2020 17:56:20 +0000 Subject: [PATCH] Fix #13510: [Plugin] list view scroll resets when items is set. --- distribution/changelog.txt | 1 + src/openrct2-ui/scripting/CustomListView.cpp | 15 ++++++--------- src/openrct2-ui/scripting/CustomListView.h | 1 - 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/distribution/changelog.txt b/distribution/changelog.txt index bbfc14c06c..ff20550a57 100644 --- a/distribution/changelog.txt +++ b/distribution/changelog.txt @@ -17,6 +17,7 @@ - Fix: [#13469] Exception thrown from plugin in context.subscribe. - Fix: [#13477] Plug-in widget tooltips do not work. - Fix: [#13489] Mechanics continue heading to inspect broken down rides. +- Fix: [#13510] [Plugin] list view scroll resets when items is set. - Improved: [#12917] Changed peep movement so that they stay more spread out over the full width of single tile paths. - Removed: [#13423] Built-in explode guests cheat (replaced by plug-in). diff --git a/src/openrct2-ui/scripting/CustomListView.cpp b/src/openrct2-ui/scripting/CustomListView.cpp index 26ac757086..48e1cf0083 100644 --- a/src/openrct2-ui/scripting/CustomListView.cpp +++ b/src/openrct2-ui/scripting/CustomListView.cpp @@ -226,7 +226,8 @@ void CustomListView::SetScrollbars(ScrollbarType value, bool initialising) else widget->content = 0; } - RefreshScroll(); + WindowInitScrollWidgets(ParentWindow); + Invalidate(); } } @@ -243,7 +244,8 @@ void CustomListView::SetColumns(const std::vector& columns, bool SortItems(0, ColumnSortOrder::None); if (!initialising) { - RefreshScroll(); + window_update_scroll_widgets(ParentWindow); + Invalidate(); } } @@ -270,7 +272,8 @@ void CustomListView::SetItems(std::vector&& items, bool initialisi SortItems(0, ColumnSortOrder::None); if (!initialising) { - RefreshScroll(); + window_update_scroll_widgets(ParentWindow); + Invalidate(); } } @@ -726,12 +729,6 @@ std::optional CustomListView::GetItemIndexAt(const ScreenCoordsXY& po return result; } -void CustomListView::RefreshScroll() -{ - WindowInitScrollWidgets(ParentWindow); - Invalidate(); -} - rct_widget* CustomListView::GetWidget() const { size_t scrollIndex = 0; diff --git a/src/openrct2-ui/scripting/CustomListView.h b/src/openrct2-ui/scripting/CustomListView.h index d6f2c83ba5..0266d2b436 100644 --- a/src/openrct2-ui/scripting/CustomListView.h +++ b/src/openrct2-ui/scripting/CustomListView.h @@ -145,7 +145,6 @@ namespace OpenRCT2::Ui::Windows rct_drawpixelinfo* dpi, const ScreenCoordsXY& pos, const ScreenSize& size, const char* text, bool isHighlighted) const; std::optional GetItemIndexAt(const ScreenCoordsXY& pos); - void RefreshScroll(); rct_widget* GetWidget() const; void Invalidate(); };