Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix bug with align start not taking into account parent padding #1484

Closed
wants to merge 5 commits into from

Commits on Dec 7, 2023

  1. Make positionAbsoluteChild the sole place that matters when determini…

    …ng absolute node's position (facebook#1481)
    
    Summary:
    
    X-link: facebook/react-native#41684
    
    Absolute nodes can be laid out by themselves and do not have to care about what is happening to their siblings. Because of this we can make `positionAbsoluteChild` the sole place where we handle this logic. Right now that is scattered around algorithm with many `if (child is absolute)` cases everywhere. This makes implementing position static a lot harder since we are relying on the CB to do all this work, not the parent.
    
    With this change the only time we set position for an absolute node and it matter (i.e. not overwritten) is in `positionAbsoluteChild`
    
    Reviewed By: NickGerleman
    
    Differential Revision: D51290723
    Joe Vilches authored and facebook-github-bot committed Dec 7, 2023
    Configuration menu
    Copy the full SHA
    5e6dd8f View commit details
    Browse the repository at this point in the history
  2. Make position static behave like position static (facebook#1482)

    Summary:
    
    X-link: facebook/react-native#41685
    
    This is the final step (that I know of) to get the core features of static working. Here we turn on all of the tests and pass down the correct owner size for the call to `calculateLayoutInternal` that is in `layoutAbsoluteChild`
    
    Reviewed By: NickGerleman
    
    Differential Revision: D51293606
    joevilches authored and facebook-github-bot committed Dec 7, 2023
    Configuration menu
    Copy the full SHA
    340a792 View commit details
    Browse the repository at this point in the history
  3. Fix issue where percentages were off of the border box, not padding b…

    …ox (facebook#1485)
    
    Summary:
    
    X-link: facebook/react-native#41686
    
    The size of the containing block is the size of the padding box of the containing node for absolute nodes. We were looking at  `containingNode->getLayout().measuredDimension(Dimension::Width)` which is the border box. So we need to subtract the border from this.
    
    Added a test that was failing before this change as well
    
    Reviewed By: NickGerleman
    
    Differential Revision: D51330526
    Joe Vilches authored and facebook-github-bot committed Dec 7, 2023
    Configuration menu
    Copy the full SHA
    e74e6bd View commit details
    Browse the repository at this point in the history
  4. Relayout test for containing block changing size (facebook#1483)

    Summary:
    
    This test is for ensuring caching does not break layout when a CB changes. No changes were needed to get this passing it just works this way with the implementation we chose earlier.
    
    Reviewed By: NickGerleman
    
    Differential Revision: D51333812
    Joe Vilches authored and facebook-github-bot committed Dec 7, 2023
    Configuration menu
    Copy the full SHA
    5e8bc3b View commit details
    Browse the repository at this point in the history
  5. Fix bug with align start not taking into account parent padding (face…

    …book#1484)
    
    Summary:
    
    X-link: facebook/react-native#41687
    
    Tsia. Added test and accounted for parent padding
    
    Reviewed By: NickGerleman
    
    Differential Revision: D51374086
    Joe Vilches authored and facebook-github-bot committed Dec 7, 2023
    Configuration menu
    Copy the full SHA
    215d8ff View commit details
    Browse the repository at this point in the history