From ded3f135bb333cbffaa1c0e23f051965ba730fe2 Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Fri, 29 Sep 2023 15:46:10 +0300 Subject: [PATCH] Improved casting of limits for std::distance in stack linear chart view. --- Telegram/SourceFiles/statistics/chart_widget.cpp | 4 +++- .../SourceFiles/statistics/view/stack_linear_chart_view.cpp | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Telegram/SourceFiles/statistics/chart_widget.cpp b/Telegram/SourceFiles/statistics/chart_widget.cpp index e2b4a3d6c..37cd28044 100644 --- a/Telegram/SourceFiles/statistics/chart_widget.cpp +++ b/Telegram/SourceFiles/statistics/chart_widget.cpp @@ -401,7 +401,9 @@ void ChartWidget::Footer::moveCenter( void ChartWidget::Footer::moveSide(bool left, float64 x) { const auto w = float64(st::statisticsChartFooterSideWidth); const auto mid = float64(st::statisticsChartFooterBetweenSide); - if (left) { + if (_width < (2 * w + mid)) { + return; + } else if (left) { const auto min = std::clamp(x, 0., _rightSide.min - w - mid); _leftSide = Limits{ .min = min, .max = min + w }; } else if (!left) { diff --git a/Telegram/SourceFiles/statistics/view/stack_linear_chart_view.cpp b/Telegram/SourceFiles/statistics/view/stack_linear_chart_view.cpp index a4bfa7934..1f3df8257 100644 --- a/Telegram/SourceFiles/statistics/view/stack_linear_chart_view.cpp +++ b/Telegram/SourceFiles/statistics/view/stack_linear_chart_view.cpp @@ -905,8 +905,8 @@ int StackLinearChartView::findXIndexByPosition( const auto nearestXPercentageIt = ((right) > (left)) ? (it - 1) : it; return std::clamp( std::distance(begin(chartData.xPercentage), nearestXPercentageIt), - long(localStart), - long(localEnd)); + std::ptrdiff_t(localStart), + std::ptrdiff_t(localEnd)); } AbstractChartView::HeightLimits StackLinearChartView::heightLimits(