Commit 7912e6d
authored
Updates mark needs semantics update logic for overlay portal (#151688)
OverlayPortal attaches its overlaychild's renderobject to overlay directly while keeps its semantics tree under overlayportal.
This become a problem when the `overlaychild` markNeedsSemanticsUpdate that it propagate upward the rendering tree.
This means instead of marking dirty upward to the OverlayPortal, it directly mark Overlay dirty instead and skip `OverlayPortal`.
Currently this does not pose an issue other than unnecessary rebuilds, but it become a problem when I try to optimize the semantics tree compilation flutter/flutter#150394.
After the optimization it won't rebuild semantics node unless it is marked dirty. Since the OverlayPortal widget does not get marked dirty, it won't update the subtree.1 parent 770c13b commit 7912e6d
File tree
3 files changed
+81
-6
lines changed- packages/flutter
- lib/src
- rendering
- widgets
- test/widgets
3 files changed
+81
-6
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1825 | 1825 | | |
1826 | 1826 | | |
1827 | 1827 | | |
| 1828 | + | |
| 1829 | + | |
| 1830 | + | |
| 1831 | + | |
| 1832 | + | |
| 1833 | + | |
| 1834 | + | |
| 1835 | + | |
| 1836 | + | |
1828 | 1837 | | |
1829 | 1838 | | |
1830 | 1839 | | |
| |||
3576 | 3585 | | |
3577 | 3586 | | |
3578 | 3587 | | |
| 3588 | + | |
| 3589 | + | |
| 3590 | + | |
| 3591 | + | |
| 3592 | + | |
| 3593 | + | |
| 3594 | + | |
| 3595 | + | |
| 3596 | + | |
3579 | 3597 | | |
3580 | 3598 | | |
3581 | 3599 | | |
| |||
3641 | 3659 | | |
3642 | 3660 | | |
3643 | 3661 | | |
3644 | | - | |
| 3662 | + | |
3645 | 3663 | | |
3646 | 3664 | | |
3647 | 3665 | | |
| 3666 | + | |
3648 | 3667 | | |
3649 | 3668 | | |
3650 | 3669 | | |
| |||
3653 | 3672 | | |
3654 | 3673 | | |
3655 | 3674 | | |
3656 | | - | |
| 3675 | + | |
3657 | 3676 | | |
3658 | 3677 | | |
3659 | 3678 | | |
| |||
3675 | 3694 | | |
3676 | 3695 | | |
3677 | 3696 | | |
3678 | | - | |
| 3697 | + | |
3679 | 3698 | | |
3680 | 3699 | | |
3681 | 3700 | | |
| |||
3684 | 3703 | | |
3685 | 3704 | | |
3686 | 3705 | | |
3687 | | - | |
| 3706 | + | |
3688 | 3707 | | |
3689 | 3708 | | |
3690 | 3709 | | |
| |||
3735 | 3754 | | |
3736 | 3755 | | |
3737 | 3756 | | |
3738 | | - | |
| 3757 | + | |
3739 | 3758 | | |
3740 | 3759 | | |
3741 | 3760 | | |
| |||
3816 | 3835 | | |
3817 | 3836 | | |
3818 | 3837 | | |
3819 | | - | |
| 3838 | + | |
3820 | 3839 | | |
3821 | 3840 | | |
3822 | 3841 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2152 | 2152 | | |
2153 | 2153 | | |
2154 | 2154 | | |
| 2155 | + | |
2155 | 2156 | | |
2156 | 2157 | | |
2157 | 2158 | | |
| |||
2163 | 2164 | | |
2164 | 2165 | | |
2165 | 2166 | | |
| 2167 | + | |
2166 | 2168 | | |
2167 | 2169 | | |
2168 | 2170 | | |
| |||
2270 | 2272 | | |
2271 | 2273 | | |
2272 | 2274 | | |
| 2275 | + | |
| 2276 | + | |
| 2277 | + | |
2273 | 2278 | | |
2274 | 2279 | | |
2275 | 2280 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
150 | 150 | | |
151 | 151 | | |
152 | 152 | | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
153 | 204 | | |
154 | 205 | | |
155 | 206 | | |
| |||
0 commit comments