Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in
Toggle navigation
F
Front-End
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
abdullh.alsoleman
Front-End
Commits
24abe59f
Unverified
Commit
24abe59f
authored
Oct 09, 2020
by
Matej Knopp
Committed by
GitHub
Oct 09, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Provide oldLayer where possible (#67320)
parent
cba84d51
Changes
16
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
96 additions
and
23 deletions
+96
-23
switch.dart
packages/flutter/lib/src/cupertino/switch.dart
+4
-2
text_selection.dart
packages/flutter/lib/src/cupertino/text_selection.dart
+3
-1
input_decorator.dart
packages/flutter/lib/src/material/input_decorator.dart
+6
-1
animated_size.dart
packages/flutter/lib/src/rendering/animated_size.dart
+6
-1
editable.dart
packages/flutter/lib/src/rendering/editable.dart
+8
-3
flex.dart
packages/flutter/lib/src/rendering/flex.dart
+6
-1
flow.dart
packages/flutter/lib/src/rendering/flow.dart
+6
-1
list_wheel_viewport.dart
packages/flutter/lib/src/rendering/list_wheel_viewport.dart
+6
-1
platform_view.dart
packages/flutter/lib/src/rendering/platform_view.dart
+5
-2
rotated_box.dart
packages/flutter/lib/src/rendering/rotated_box.dart
+9
-2
shifted_box.dart
packages/flutter/lib/src/rendering/shifted_box.dart
+6
-1
stack.dart
packages/flutter/lib/src/rendering/stack.dart
+6
-1
viewport.dart
packages/flutter/lib/src/rendering/viewport.dart
+6
-1
wrap.dart
packages/flutter/lib/src/rendering/wrap.dart
+9
-3
overlay.dart
packages/flutter/lib/src/widgets/overlay.dart
+5
-1
single_child_scroll_view.dart
...ges/flutter/lib/src/widgets/single_child_scroll_view.dart
+5
-1
No files found.
packages/flutter/lib/src/cupertino/switch.dart
View file @
24abe59f
...
...
@@ -524,11 +524,13 @@ class _RenderCupertinoSwitch extends RenderConstrainedBox {
thumbCenterY
+
CupertinoThumbPainter
.
radius
,
);
context
.
pushClipRRect
(
needsCompositing
,
Offset
.
zero
,
thumbBounds
,
trackRRect
,
(
PaintingContext
innerContext
,
Offset
offset
)
{
_clipRRectLayer
=
context
.
pushClipRRect
(
needsCompositing
,
Offset
.
zero
,
thumbBounds
,
trackRRect
,
(
PaintingContext
innerContext
,
Offset
offset
)
{
const
CupertinoThumbPainter
.
switchThumb
().
paint
(
innerContext
.
canvas
,
thumbBounds
);
});
}
,
oldLayer:
_clipRRectLayer
);
}
ClipRRectLayer
?
_clipRRectLayer
;
@override
void
debugFillProperties
(
DiagnosticPropertiesBuilder
description
)
{
super
.
debugFillProperties
(
description
);
...
...
packages/flutter/lib/src/cupertino/text_selection.dart
View file @
24abe59f
...
...
@@ -371,15 +371,17 @@ class _ToolbarRenderBox extends RenderShiftedBox {
}
final
_ToolbarParentData
childParentData
=
child
!.
parentData
!
as
_ToolbarParentData
;
context
.
pushClipPath
(
_clipPathLayer
=
context
.
pushClipPath
(
needsCompositing
,
offset
+
childParentData
.
offset
,
Offset
.
zero
&
child
!.
size
,
_clipPath
(),
(
PaintingContext
innerContext
,
Offset
innerOffset
)
=>
innerContext
.
paintChild
(
child
!,
innerOffset
),
oldLayer:
_clipPathLayer
);
}
ClipPathLayer
?
_clipPathLayer
;
Paint
?
_debugPaint
;
@override
...
...
packages/flutter/lib/src/material/input_decorator.dart
View file @
24abe59f
...
...
@@ -1474,7 +1474,10 @@ class _RenderDecoration extends RenderBox {
_labelTransform
=
Matrix4
.
identity
()
..
translate
(
dx
,
labelOffset
.
dy
+
dy
)
..
scale
(
scale
);
context
.
pushTransform
(
needsCompositing
,
offset
,
_labelTransform
!,
_paintLabel
);
_transformLayer
=
context
.
pushTransform
(
needsCompositing
,
offset
,
_labelTransform
!,
_paintLabel
,
oldLayer:
_transformLayer
);
}
else
{
_transformLayer
=
null
;
}
doPaint
(
icon
);
...
...
@@ -1488,6 +1491,8 @@ class _RenderDecoration extends RenderBox {
doPaint
(
counter
);
}
TransformLayer
?
_transformLayer
;
@override
bool
hitTestSelf
(
Offset
position
)
=>
true
;
...
...
packages/flutter/lib/src/rendering/animated_size.dart
View file @
24abe59f
...
...
@@ -7,6 +7,7 @@ import 'package:flutter/foundation.dart';
import
'package:flutter/scheduler.dart'
;
import
'box.dart'
;
import
'layer.dart'
;
import
'object.dart'
;
import
'shifted_box.dart'
;
...
...
@@ -294,9 +295,13 @@ class RenderAnimatedSize extends RenderAligningShiftedBox {
void
paint
(
PaintingContext
context
,
Offset
offset
)
{
if
(
child
!=
null
&&
_hasVisualOverflow
&&
clipBehavior
!=
Clip
.
none
)
{
final
Rect
rect
=
Offset
.
zero
&
size
;
context
.
pushClipRect
(
needsCompositing
,
offset
,
rect
,
super
.
paint
,
clipBehavior:
clipBehavior
);
_clipRectLayer
=
context
.
pushClipRect
(
needsCompositing
,
offset
,
rect
,
super
.
paint
,
clipBehavior:
clipBehavior
,
oldLayer:
_clipRectLayer
);
}
else
{
_clipRectLayer
=
null
;
super
.
paint
(
context
,
offset
);
}
}
ClipRectLayer
?
_clipRectLayer
;
}
packages/flutter/lib/src/rendering/editable.dart
View file @
24abe59f
...
...
@@ -2287,13 +2287,18 @@ class RenderEditable extends RenderBox with RelayoutWhenSystemFontsChangeMixin {
@override
void
paint
(
PaintingContext
context
,
Offset
offset
)
{
_layoutText
(
minWidth:
constraints
.
minWidth
,
maxWidth:
constraints
.
maxWidth
);
if
(
_hasVisualOverflow
&&
clipBehavior
!=
Clip
.
none
)
context
.
pushClipRect
(
needsCompositing
,
offset
,
Offset
.
zero
&
size
,
_paintContents
,
clipBehavior:
clipBehavior
);
else
if
(
_hasVisualOverflow
&&
clipBehavior
!=
Clip
.
none
)
{
_clipRectLayer
=
context
.
pushClipRect
(
needsCompositing
,
offset
,
Offset
.
zero
&
size
,
_paintContents
,
clipBehavior:
clipBehavior
,
oldLayer:
_clipRectLayer
);
}
else
{
_clipRectLayer
=
null
;
_paintContents
(
context
,
offset
);
}
_paintHandleLayers
(
context
,
getEndpointsForSelection
(
selection
!));
}
ClipRectLayer
?
_clipRectLayer
;
@override
Rect
?
describeApproximatePaintClip
(
RenderObject
child
)
=>
_hasVisualOverflow
?
Offset
.
zero
&
size
:
null
;
...
...
packages/flutter/lib/src/rendering/flex.dart
View file @
24abe59f
...
...
@@ -8,6 +8,7 @@ import 'package:flutter/foundation.dart';
import
'box.dart'
;
import
'debug_overflow_indicator.dart'
;
import
'layer.dart'
;
import
'object.dart'
;
/// How the child is inscribed into the available space.
...
...
@@ -977,10 +978,12 @@ class RenderFlex extends RenderBox with ContainerRenderObjectMixin<RenderBox, Fl
return
;
if
(
clipBehavior
==
Clip
.
none
)
{
_clipRectLayer
=
null
;
defaultPaint
(
context
,
offset
);
}
else
{
// We have overflow and the clipBehavior isn't none. Clip it.
context
.
pushClipRect
(
needsCompositing
,
offset
,
Offset
.
zero
&
size
,
defaultPaint
,
clipBehavior:
clipBehavior
);
_clipRectLayer
=
context
.
pushClipRect
(
needsCompositing
,
offset
,
Offset
.
zero
&
size
,
defaultPaint
,
clipBehavior:
clipBehavior
,
oldLayer:
_clipRectLayer
);
}
assert
(()
{
...
...
@@ -1026,6 +1029,8 @@ class RenderFlex extends RenderBox with ContainerRenderObjectMixin<RenderBox, Fl
}());
}
ClipRectLayer
?
_clipRectLayer
;
@override
Rect
?
describeApproximatePaintClip
(
RenderObject
child
)
=>
_hasOverflow
?
Offset
.
zero
&
size
:
null
;
...
...
packages/flutter/lib/src/rendering/flow.dart
View file @
24abe59f
...
...
@@ -8,6 +8,7 @@ import 'package:flutter/foundation.dart';
import
'package:vector_math/vector_math_64.dart'
;
import
'box.dart'
;
import
'layer.dart'
;
import
'object.dart'
;
/// A context in which a [FlowDelegate] paints.
...
...
@@ -383,12 +384,16 @@ class RenderFlow extends RenderBox
@override
void
paint
(
PaintingContext
context
,
Offset
offset
)
{
if
(
clipBehavior
==
Clip
.
none
)
{
_clipRectLayer
=
null
;
_paintWithDelegate
(
context
,
offset
);
}
else
{
context
.
pushClipRect
(
needsCompositing
,
offset
,
Offset
.
zero
&
size
,
_paintWithDelegate
,
clipBehavior:
clipBehavior
);
_clipRectLayer
=
context
.
pushClipRect
(
needsCompositing
,
offset
,
Offset
.
zero
&
size
,
_paintWithDelegate
,
clipBehavior:
clipBehavior
,
oldLayer:
_clipRectLayer
);
}
}
ClipRectLayer
?
_clipRectLayer
;
@override
bool
hitTestChildren
(
BoxHitTestResult
result
,
{
required
Offset
position
})
{
final
List
<
RenderBox
>
children
=
getChildrenAsList
();
...
...
packages/flutter/lib/src/rendering/list_wheel_viewport.dart
View file @
24abe59f
...
...
@@ -8,6 +8,7 @@ import 'package:flutter/animation.dart';
import
'package:vector_math/vector_math_64.dart'
show
Matrix4
;
import
'box.dart'
;
import
'layer.dart'
;
import
'object.dart'
;
import
'viewport.dart'
;
import
'viewport_offset.dart'
;
...
...
@@ -784,19 +785,23 @@ class RenderListWheelViewport
void
paint
(
PaintingContext
context
,
Offset
offset
)
{
if
(
childCount
>
0
)
{
if
(
_shouldClipAtCurrentOffset
()
&&
clipBehavior
!=
Clip
.
none
)
{
context
.
pushClipRect
(
_clipRectLayer
=
context
.
pushClipRect
(
needsCompositing
,
offset
,
Offset
.
zero
&
size
,
_paintVisibleChildren
,
clipBehavior:
clipBehavior
,
oldLayer:
_clipRectLayer
,
);
}
else
{
_clipRectLayer
=
null
;
_paintVisibleChildren
(
context
,
offset
);
}
}
}
ClipRectLayer
?
_clipRectLayer
;
/// Paints all children visible in the current viewport.
void
_paintVisibleChildren
(
PaintingContext
context
,
Offset
offset
)
{
RenderBox
?
childToPaint
=
firstChild
;
...
...
packages/flutter/lib/src/rendering/platform_view.dart
View file @
24abe59f
...
...
@@ -206,13 +206,16 @@ class RenderAndroidView extends RenderBox with _PlatformViewGestureMixin {
// Clip the texture if it's going to paint out of the bounds of the renter box
// (see comment in _paintTexture for an explanation of when this happens).
if
((
size
.
width
<
_currentAndroidViewSize
.
width
||
size
.
height
<
_currentAndroidViewSize
.
height
)
&&
clipBehavior
!=
Clip
.
none
)
{
context
.
pushClipRect
(
true
,
offset
,
offset
&
size
,
_paintTexture
,
clipBehavior:
clipBehavior
);
_clipRectLayer
=
context
.
pushClipRect
(
true
,
offset
,
offset
&
size
,
_paintTexture
,
clipBehavior:
clipBehavior
,
oldLayer:
_clipRectLayer
);
return
;
}
_clipRectLayer
=
null
;
_paintTexture
(
context
,
offset
);
}
ClipRectLayer
?
_clipRectLayer
;
void
_paintTexture
(
PaintingContext
context
,
Offset
offset
)
{
// As resizing the Android view happens asynchronously we don't know exactly when is a
// texture frame with the new size is ready for consumption.
...
...
packages/flutter/lib/src/rendering/rotated_box.dart
View file @
24abe59f
...
...
@@ -9,6 +9,7 @@ import 'package:flutter/painting.dart';
import
'package:vector_math/vector_math_64.dart'
;
import
'box.dart'
;
import
'layer.dart'
;
import
'object.dart'
;
const
double
_kQuarterTurnsInRadians
=
math
.
pi
/
2.0
;
...
...
@@ -108,10 +109,16 @@ class RenderRotatedBox extends RenderBox with RenderObjectWithChildMixin<RenderB
@override
void
paint
(
PaintingContext
context
,
Offset
offset
)
{
if
(
child
!=
null
)
context
.
pushTransform
(
needsCompositing
,
offset
,
_paintTransform
!,
_paintChild
);
if
(
child
!=
null
)
{
_transformLayer
=
context
.
pushTransform
(
needsCompositing
,
offset
,
_paintTransform
!,
_paintChild
,
oldLayer:
_transformLayer
);
}
else
{
_transformLayer
=
null
;
}
}
TransformLayer
?
_transformLayer
;
@override
void
applyPaintTransform
(
RenderBox
child
,
Matrix4
transform
)
{
if
(
_paintTransform
!=
null
)
...
...
packages/flutter/lib/src/rendering/shifted_box.dart
View file @
24abe59f
...
...
@@ -9,6 +9,7 @@ import 'package:flutter/foundation.dart';
import
'box.dart'
;
import
'debug.dart'
;
import
'debug_overflow_indicator.dart'
;
import
'layer.dart'
;
import
'object.dart'
;
import
'stack.dart'
show
RelativeRect
;
...
...
@@ -712,10 +713,12 @@ class RenderUnconstrainedBox extends RenderAligningShiftedBox with DebugOverflow
}
if
(
clipBehavior
==
Clip
.
none
)
{
_clipRectLayer
=
null
;
super
.
paint
(
context
,
offset
);
}
else
{
// We have overflow and the clipBehavior isn't none. Clip it.
context
.
pushClipRect
(
needsCompositing
,
offset
,
Offset
.
zero
&
size
,
super
.
paint
,
clipBehavior:
clipBehavior
);
_clipRectLayer
=
context
.
pushClipRect
(
needsCompositing
,
offset
,
Offset
.
zero
&
size
,
super
.
paint
,
clipBehavior:
clipBehavior
,
oldLayer:
_clipRectLayer
);
}
// Display the overflow indicator.
...
...
@@ -725,6 +728,8 @@ class RenderUnconstrainedBox extends RenderAligningShiftedBox with DebugOverflow
}());
}
ClipRectLayer
?
_clipRectLayer
;
@override
Rect
?
describeApproximatePaintClip
(
RenderObject
child
)
{
return
_isOverflowing
?
Offset
.
zero
&
size
:
null
;
...
...
packages/flutter/lib/src/rendering/stack.dart
View file @
24abe59f
...
...
@@ -8,6 +8,7 @@ import 'dart:ui' show lerpDouble, hashValues;
import
'package:flutter/foundation.dart'
;
import
'box.dart'
;
import
'layer.dart'
;
import
'object.dart'
;
/// An immutable 2D, axis-aligned, floating-point rectangle whose coordinates
...
...
@@ -613,12 +614,16 @@ class RenderStack extends RenderBox
@override
void
paint
(
PaintingContext
context
,
Offset
offset
)
{
if
(
clipBehavior
!=
Clip
.
none
&&
_hasVisualOverflow
)
{
context
.
pushClipRect
(
needsCompositing
,
offset
,
Offset
.
zero
&
size
,
paintStack
,
clipBehavior:
clipBehavior
);
_clipRectLayer
=
context
.
pushClipRect
(
needsCompositing
,
offset
,
Offset
.
zero
&
size
,
paintStack
,
clipBehavior:
clipBehavior
,
oldLayer:
_clipRectLayer
);
}
else
{
_clipRectLayer
=
null
;
paintStack
(
context
,
offset
);
}
}
ClipRectLayer
?
_clipRectLayer
;
@override
Rect
?
describeApproximatePaintClip
(
RenderObject
child
)
=>
_hasVisualOverflow
?
Offset
.
zero
&
size
:
null
;
...
...
packages/flutter/lib/src/rendering/viewport.dart
View file @
24abe59f
...
...
@@ -11,6 +11,7 @@ import 'package:flutter/semantics.dart';
import
'package:vector_math/vector_math_64.dart'
;
import
'box.dart'
;
import
'layer.dart'
;
import
'object.dart'
;
import
'sliver.dart'
;
import
'viewport_offset.dart'
;
...
...
@@ -629,12 +630,16 @@ abstract class RenderViewportBase<ParentDataClass extends ContainerParentDataMix
if
(
firstChild
==
null
)
return
;
if
(
hasVisualOverflow
&&
clipBehavior
!=
Clip
.
none
)
{
context
.
pushClipRect
(
needsCompositing
,
offset
,
Offset
.
zero
&
size
,
_paintContents
,
clipBehavior:
clipBehavior
);
_clipRectLayer
=
context
.
pushClipRect
(
needsCompositing
,
offset
,
Offset
.
zero
&
size
,
_paintContents
,
clipBehavior:
clipBehavior
,
oldLayer:
_clipRectLayer
);
}
else
{
_clipRectLayer
=
null
;
_paintContents
(
context
,
offset
);
}
}
ClipRectLayer
?
_clipRectLayer
;
void
_paintContents
(
PaintingContext
context
,
Offset
offset
)
{
for
(
final
RenderSliver
child
in
childrenInPaintOrder
)
{
if
(
child
.
geometry
!.
visible
)
...
...
packages/flutter/lib/src/rendering/wrap.dart
View file @
24abe59f
...
...
@@ -5,6 +5,7 @@
import
'dart:math'
as
math
;
import
'box.dart'
;
import
'layer.dart'
;
import
'object.dart'
;
/// How [Wrap] should align objects.
...
...
@@ -763,12 +764,17 @@ class RenderWrap extends RenderBox
void
paint
(
PaintingContext
context
,
Offset
offset
)
{
// TODO(ianh): move the debug flex overflow paint logic somewhere common so
// it can be reused here
if
(
_hasVisualOverflow
&&
clipBehavior
!=
Clip
.
none
)
context
.
pushClipRect
(
needsCompositing
,
offset
,
Offset
.
zero
&
size
,
defaultPaint
,
clipBehavior:
clipBehavior
);
else
if
(
_hasVisualOverflow
&&
clipBehavior
!=
Clip
.
none
)
{
_clipRectLayer
=
context
.
pushClipRect
(
needsCompositing
,
offset
,
Offset
.
zero
&
size
,
defaultPaint
,
clipBehavior:
clipBehavior
,
oldLayer:
_clipRectLayer
);
}
else
{
_clipRectLayer
=
null
;
defaultPaint
(
context
,
offset
);
}
}
ClipRectLayer
?
_clipRectLayer
;
@override
void
debugFillProperties
(
DiagnosticPropertiesBuilder
properties
)
{
super
.
debugFillProperties
(
properties
);
...
...
packages/flutter/lib/src/widgets/overlay.dart
View file @
24abe59f
...
...
@@ -756,12 +756,16 @@ class _RenderTheatre extends RenderBox with ContainerRenderObjectMixin<RenderBox
@override
void
paint
(
PaintingContext
context
,
Offset
offset
)
{
if
(
_hasVisualOverflow
&&
clipBehavior
!=
Clip
.
none
)
{
context
.
pushClipRect
(
needsCompositing
,
offset
,
Offset
.
zero
&
size
,
paintStack
,
clipBehavior:
clipBehavior
);
_clipRectLayer
=
context
.
pushClipRect
(
needsCompositing
,
offset
,
Offset
.
zero
&
size
,
paintStack
,
clipBehavior:
clipBehavior
,
oldLayer:
_clipRectLayer
);
}
else
{
_clipRectLayer
=
null
;
paintStack
(
context
,
offset
);
}
}
ClipRectLayer
?
_clipRectLayer
;
@override
void
visitChildrenForSemantics
(
RenderObjectVisitor
visitor
)
{
RenderBox
?
child
=
_firstOnstageChild
;
...
...
packages/flutter/lib/src/widgets/single_child_scroll_view.dart
View file @
24abe59f
...
...
@@ -583,13 +583,17 @@ class _RenderSingleChildViewport extends RenderBox with RenderObjectWithChildMix
}
if
(
_shouldClipAtPaintOffset
(
paintOffset
)
&&
clipBehavior
!=
Clip
.
none
)
{
context
.
pushClipRect
(
needsCompositing
,
offset
,
Offset
.
zero
&
size
,
paintContents
,
clipBehavior:
clipBehavior
);
_clipRectLayer
=
context
.
pushClipRect
(
needsCompositing
,
offset
,
Offset
.
zero
&
size
,
paintContents
,
clipBehavior:
clipBehavior
,
oldLayer:
_clipRectLayer
);
}
else
{
_clipRectLayer
=
null
;
paintContents
(
context
,
offset
);
}
}
}
ClipRectLayer
?
_clipRectLayer
;
@override
void
applyPaintTransform
(
RenderBox
child
,
Matrix4
transform
)
{
final
Offset
paintOffset
=
_paintOffset
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment