@@ -861,31 +861,41 @@ class RenderTableViewport extends RenderTwoDimensionalViewport {
861
861
)! ;
862
862
863
863
Rect getColumnRect (bool consumePadding) {
864
+ final ({double leading, double trailing}) offsetCorrection =
865
+ axisDirectionIsReversed (verticalAxisDirection)
866
+ ? (
867
+ leading: leadingCell.size.height,
868
+ trailing: trailingCell.size.height,
869
+ )
870
+ : (leading: 0.0 , trailing: 0.0 );
871
+
864
872
return Rect .fromPoints (
865
873
parentDataOf (leadingCell).paintOffset! +
866
874
offset -
867
875
Offset (
868
876
consumePadding ? columnSpan.padding.leading : 0.0 ,
869
- rowSpan.padding.leading,
877
+ rowSpan.padding.leading - offsetCorrection.leading ,
870
878
),
871
879
parentDataOf (trailingCell).paintOffset! +
872
880
offset +
873
881
Offset (trailingCell.size.width, trailingCell.size.height) +
874
882
Offset (
875
883
consumePadding ? columnSpan.padding.trailing : 0.0 ,
876
- rowSpan.padding.trailing,
884
+ rowSpan.padding.trailing - offsetCorrection.trailing ,
877
885
),
878
886
);
879
887
}
880
888
881
889
if (columnSpan.backgroundDecoration != null ) {
882
890
final Rect rect = getColumnRect (
883
- columnSpan.backgroundDecoration! .consumeSpanPadding);
891
+ columnSpan.backgroundDecoration! .consumeSpanPadding,
892
+ );
884
893
backgroundColumns[rect] = columnSpan.backgroundDecoration! ;
885
894
}
886
895
if (columnSpan.foregroundDecoration != null ) {
887
896
final Rect rect = getColumnRect (
888
- columnSpan.foregroundDecoration! .consumeSpanPadding);
897
+ columnSpan.foregroundDecoration! .consumeSpanPadding,
898
+ );
889
899
foregroundColumns[rect] = columnSpan.foregroundDecoration! ;
890
900
}
891
901
}
@@ -910,18 +920,25 @@ class RenderTableViewport extends RenderTwoDimensionalViewport {
910
920
)! ;
911
921
912
922
Rect getRowRect (bool consumePadding) {
923
+ final ({double leading, double trailing}) offsetCorrection =
924
+ axisDirectionIsReversed (horizontalAxisDirection)
925
+ ? (
926
+ leading: leadingCell.size.width,
927
+ trailing: trailingCell.size.width,
928
+ )
929
+ : (leading: 0.0 , trailing: 0.0 );
913
930
return Rect .fromPoints (
914
931
parentDataOf (leadingCell).paintOffset! +
915
932
offset -
916
933
Offset (
917
- columnSpan.padding.leading,
934
+ columnSpan.padding.leading - offsetCorrection.leading ,
918
935
consumePadding ? rowSpan.padding.leading : 0.0 ,
919
936
),
920
937
parentDataOf (trailingCell).paintOffset! +
921
938
offset +
922
939
Offset (trailingCell.size.width, trailingCell.size.height) +
923
940
Offset (
924
- columnSpan.padding.leading,
941
+ columnSpan.padding.leading - offsetCorrection.trailing ,
925
942
consumePadding ? rowSpan.padding.trailing : 0.0 ,
926
943
),
927
944
);
0 commit comments