parent
0dc290c023
commit
549b412656
@ -1228,8 +1228,7 @@ class TransformLayer extends OffsetLayer {
|
|||||||
/// The [transform] and [offset] properties must be non-null before the
|
/// The [transform] and [offset] properties must be non-null before the
|
||||||
/// compositing phase of the pipeline.
|
/// compositing phase of the pipeline.
|
||||||
TransformLayer({ Matrix4 transform, Offset offset = Offset.zero })
|
TransformLayer({ Matrix4 transform, Offset offset = Offset.zero })
|
||||||
: assert(transform.storage.every((double value) => value.isFinite)),
|
: _transform = transform,
|
||||||
_transform = transform,
|
|
||||||
super(offset: offset);
|
super(offset: offset);
|
||||||
|
|
||||||
/// The matrix to apply.
|
/// The matrix to apply.
|
||||||
|
@ -2280,11 +2280,9 @@ class RenderFittedBox extends RenderProxyBox {
|
|||||||
final Rect sourceRect = _resolvedAlignment.inscribe(sizes.source, Offset.zero & childSize);
|
final Rect sourceRect = _resolvedAlignment.inscribe(sizes.source, Offset.zero & childSize);
|
||||||
final Rect destinationRect = _resolvedAlignment.inscribe(sizes.destination, Offset.zero & size);
|
final Rect destinationRect = _resolvedAlignment.inscribe(sizes.destination, Offset.zero & size);
|
||||||
_hasVisualOverflow = sourceRect.width < childSize.width || sourceRect.height < childSize.height;
|
_hasVisualOverflow = sourceRect.width < childSize.width || sourceRect.height < childSize.height;
|
||||||
assert(scaleX.isFinite && scaleY.isFinite);
|
|
||||||
_transform = Matrix4.translationValues(destinationRect.left, destinationRect.top, 0.0)
|
_transform = Matrix4.translationValues(destinationRect.left, destinationRect.top, 0.0)
|
||||||
..scale(scaleX, scaleY, 1.0)
|
..scale(scaleX, scaleY, 1.0)
|
||||||
..translate(-sourceRect.left, -sourceRect.top);
|
..translate(-sourceRect.left, -sourceRect.top);
|
||||||
assert(_transform.storage.every((double value) => value.isFinite));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2298,7 +2296,7 @@ class RenderFittedBox extends RenderProxyBox {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
void paint(PaintingContext context, Offset offset) {
|
void paint(PaintingContext context, Offset offset) {
|
||||||
if (size.isEmpty || child.size.isEmpty)
|
if (size.isEmpty)
|
||||||
return;
|
return;
|
||||||
_updatePaintData();
|
_updatePaintData();
|
||||||
if (child != null) {
|
if (child != null) {
|
||||||
|
@ -15,12 +15,11 @@ import '../flutter_test_alternative.dart';
|
|||||||
import 'rendering_tester.dart';
|
import 'rendering_tester.dart';
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
test('RenderFittedBox does not paint with empty sizes', () {
|
test('RenderFittedBox paint', () {
|
||||||
bool painted;
|
bool painted;
|
||||||
RenderFittedBox makeFittedBox(Size size) {
|
RenderFittedBox makeFittedBox() {
|
||||||
return RenderFittedBox(
|
return RenderFittedBox(
|
||||||
child: RenderCustomPaint(
|
child: RenderCustomPaint(
|
||||||
preferredSize: size,
|
|
||||||
painter: TestCallbackPainter(onPaint: () {
|
painter: TestCallbackPainter(onPaint: () {
|
||||||
painted = true;
|
painted = true;
|
||||||
}),
|
}),
|
||||||
@ -28,19 +27,13 @@ void main() {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// The RenderFittedBox paints if both its size and its child's size are nonempty.
|
|
||||||
painted = false;
|
painted = false;
|
||||||
layout(makeFittedBox(Size(1, 1)), phase: EnginePhase.paint);
|
layout(makeFittedBox(), phase: EnginePhase.paint);
|
||||||
expect(painted, equals(true));
|
expect(painted, equals(true));
|
||||||
|
|
||||||
// The RenderFittedBox should not paint if its child is empty-sized.
|
|
||||||
painted = false;
|
|
||||||
layout(makeFittedBox(Size.zero), phase: EnginePhase.paint);
|
|
||||||
expect(painted, equals(false));
|
|
||||||
|
|
||||||
// The RenderFittedBox should not paint if it is empty.
|
// The RenderFittedBox should not paint if it is empty.
|
||||||
painted = false;
|
painted = false;
|
||||||
layout(makeFittedBox(Size(1, 1)), constraints: BoxConstraints.tight(Size.zero), phase: EnginePhase.paint);
|
layout(makeFittedBox(), constraints: BoxConstraints.tight(Size.zero), phase: EnginePhase.paint);
|
||||||
expect(painted, equals(false));
|
expect(painted, equals(false));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user