From eeb3d04023a34448b98de5c4c849a116fe072c7a Mon Sep 17 00:00:00 2001 From: imaNNeoFighT Date: Tue, 11 Jul 2023 23:30:04 +0200 Subject: [PATCH] Fix Negative BarChartRodStackItem are not drawn correctly bug, #1347 --- CHANGELOG.md | 1 + lib/src/chart/bar_chart/bar_chart_painter.dart | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3434059916..e9635578fa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ ## nextVersion * **BUGFIX** (by @Anas35) Fix Tooltip not displaying when value from BackgroundBarChartRodData is less than zero. #1345. +* **BUGFIX** (by @imaNNeo) Fix Negative BarChartRodStackItem are not drawn correctly bug, #1347 ## 0.63.0 * **BUGFIX** (by @imaNNeo) Fix PieChart crash on web-renderer html by ignoring `sectionsSpace` when `Path.combine()` does not work (it's flutter engine [issue](https://github.com/flutter/flutter/issues/44572)), #955 diff --git a/lib/src/chart/bar_chart/bar_chart_painter.dart b/lib/src/chart/bar_chart/bar_chart_painter.dart index a1e84db698..106b416c00 100644 --- a/lib/src/chart/bar_chart/bar_chart_painter.dart +++ b/lib/src/chart/bar_chart/bar_chart_painter.dart @@ -401,10 +401,14 @@ class BarChartPainter extends AxisChartPainter { final stackFromY = getPixelY(stackItem.fromY, viewSize, holder); final stackToY = getPixelY(stackItem.toY, viewSize, holder); + final isNegative = stackItem.toY < stackItem.fromY; _barPaint.color = stackItem.color; + final rect = isNegative + ? Rect.fromLTRB(left, stackFromY, right, stackToY) + : Rect.fromLTRB(left, stackToY, right, stackFromY); canvasWrapper ..save() - ..clipRect(Rect.fromLTRB(left, stackToY, right, stackFromY)) + ..clipRect(rect) ..drawRRect(barRRect, _barPaint) ..restore();