From a704611705dfbf075c35a647135c507c2159b975 Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Fri, 1 Mar 2024 15:24:40 +0300 Subject: [PATCH] Fixed ability to create vertical drum picker with first chosen item. --- Telegram/SourceFiles/ui/widgets/vertical_drum_picker.cpp | 5 +++-- Telegram/SourceFiles/ui/widgets/vertical_drum_picker.h | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Telegram/SourceFiles/ui/widgets/vertical_drum_picker.cpp b/Telegram/SourceFiles/ui/widgets/vertical_drum_picker.cpp index d0cc71ca3c..58fd123eac 100644 --- a/Telegram/SourceFiles/ui/widgets/vertical_drum_picker.cpp +++ b/Telegram/SourceFiles/ui/widgets/vertical_drum_picker.cpp @@ -82,9 +82,10 @@ VerticalDrumPicker::VerticalDrumPicker( ) | rpl::start_with_next([=](const QSize &s) { _itemsVisible.count = std::ceil(float64(s.height()) / _itemHeight); _itemsVisible.centerOffset = _itemsVisible.count / 2; - if (_pendingStartIndex && _itemsVisible.count) { - _index = normalizedIndex(base::take(_pendingStartIndex) + if ((_pendingStartIndex >= 0) && _itemsVisible.count) { + _index = normalizedIndex(_pendingStartIndex - _itemsVisible.centerOffset); + _pendingStartIndex = -1; } if (!_loopData.looped) { diff --git a/Telegram/SourceFiles/ui/widgets/vertical_drum_picker.h b/Telegram/SourceFiles/ui/widgets/vertical_drum_picker.h index 802f72fbaf..4140d33977 100644 --- a/Telegram/SourceFiles/ui/widgets/vertical_drum_picker.h +++ b/Telegram/SourceFiles/ui/widgets/vertical_drum_picker.h @@ -75,7 +75,7 @@ private: PaintItemCallback _paintCallback; - int _pendingStartIndex = 0; + int _pendingStartIndex = -1; struct { int count = 0;