[NUI] fix crash with double enter in TextEditor with TextLabel
authorabdullah <abdullahhasan10@gmail.com>
Thu, 23 Sep 2021 06:05:39 +0000 (09:05 +0300)
committerdongsug-song <35130733+dongsug-song@users.noreply.github.com>
Tue, 9 Nov 2021 05:57:53 +0000 (14:57 +0900)
src/Tizen.NUI/src/public/Layouting/LayoutItem.cs

index 39ff389..9af4c67 100755 (executable)
@@ -203,10 +203,16 @@ namespace Tizen.NUI
         /// <since_tizen> 6 </since_tizen>
         public void Measure(MeasureSpecification widthMeasureSpec, MeasureSpecification heightMeasureSpec)
         {
-            OnMeasure(widthMeasureSpec, heightMeasureSpec);
-            OnMeasureIndependentChildren(widthMeasureSpec, heightMeasureSpec);
-            flags = flags | LayoutFlags.LayoutRequired;
-            flags &= ~LayoutFlags.ForceLayout;
+            bool needsLayout = NeedsLayout(widthMeasureSpec.Size.AsDecimal(), heightMeasureSpec.Size.AsDecimal(), widthMeasureSpec.Mode, heightMeasureSpec.Mode);
+
+            needsLayout = needsLayout || ((flags & LayoutFlags.ForceLayout) == LayoutFlags.ForceLayout);
+            if (needsLayout)
+            {
+                OnMeasure(widthMeasureSpec, heightMeasureSpec);
+                OnMeasureIndependentChildren(widthMeasureSpec, heightMeasureSpec);
+                flags = flags | LayoutFlags.LayoutRequired;
+                flags &= ~LayoutFlags.ForceLayout;
+            }
 
             oldWidthMeasureSpec = widthMeasureSpec;
             oldHeightMeasureSpec = heightMeasureSpec;