From 2a20c3092b9ded55b64bc9e8ef2d22d9aa37305a Mon Sep 17 00:00:00 2001 From: philter Date: Thu, 16 May 2024 03:00:13 +0000 Subject: [PATCH] Improvements to wrap in layout Fix a couple of small issues with Wrap in Layout functionality Diffs= 67ed7133f Improvements to wrap in layout (#7279) Co-authored-by: Philip Chung --- .rive_head | 2 +- lib/src/rive_core/layout_component.dart | 25 ++++++++++++++----------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/.rive_head b/.rive_head index 66ab93c..477b435 100644 --- a/.rive_head +++ b/.rive_head @@ -1 +1 @@ -e89250c3979e7fc78137eda9545c49d7436d1fa6 +67ed7133f0fa1f390afa1829b074fa8c686fd648 diff --git a/lib/src/rive_core/layout_component.dart b/lib/src/rive_core/layout_component.dart index 47d7e0d..f0ea2c5 100644 --- a/lib/src/rive_core/layout_component.dart +++ b/lib/src/rive_core/layout_component.dart @@ -4,6 +4,7 @@ import 'package:flutter/rendering.dart'; import 'package:rive/src/generated/layout_component_base.dart'; import 'package:rive/src/rive_core/artboard.dart'; import 'package:rive/src/rive_core/bounds_provider.dart'; +import 'package:rive/src/rive_core/component.dart'; import 'package:rive/src/rive_core/component_dirt.dart'; import 'package:rive/src/rive_core/container_component.dart'; import 'package:rive/src/rive_core/layout/layout_component_style.dart'; @@ -14,6 +15,19 @@ import 'package:rive_common/math.dart'; export 'package:rive/src/generated/layout_component_base.dart'; +extension ComponentExtension on Component { + LayoutComponent? get layoutParent { + var p = parent; + while (p != null) { + if (p is LayoutComponent) { + return p; + } + p = p.parent; + } + return artboard; + } +} + class LayoutComponent extends LayoutComponentBase { LayoutComponentStyle? _style; LayoutComponentStyle? get style => _style; @@ -31,17 +45,6 @@ class LayoutComponent extends LayoutComponentBase { final LayoutNode _layoutNode = LayoutNode.make(); LayoutNode get layoutNode => _layoutNode; - LayoutComponent? get layoutParent { - var p = parent; - while (p != null) { - if (p is LayoutComponent) { - return p; - } - p = p.parent; - } - return artboard; - } - void markLayoutNodeDirty() { _layoutNode.markDirty(); artboard?.markLayoutDirty(this);