[NUI] Fix to check IsPaddingHandledByNative for Padding getter
authorJaehyun Cho <jae_hyun.cho@samsung.com>
Wed, 26 Mar 2025 05:34:15 +0000 (14:34 +0900)
committerdongsug-song <35130733+dongsug-song@users.noreply.github.com>
Thu, 27 Mar 2025 00:43:29 +0000 (09:43 +0900)
If a view.Layout.IsPaddingHandledByNative is true, then the
view.Padding setter sets view.Padding instead of view.Layout.Padding.
Because the padding is applied by DALi instead of NUI Layout.

In the same way, view.Padding getter gets view.Padding instead of
view.Layout.Padding if view.Layout.IsPaddingHandledByNative is true.

src/Tizen.NUI/src/public/BaseComponents/View.cs

index 3fdca0ae81f1cd0557e3bcf4557316e857b68615..9ce2bd8e8b73ab53b6d8c1e4b754d79973c34f72 100755 (executable)
@@ -4939,23 +4939,20 @@ namespace Tizen.NUI.BaseComponents
 
         private Extents GetInternalPadding()
         {
-            if ((internalPadding == null) || (Layout != null))
+            if (internalPadding == null || (Layout != null && !Layout.IsPaddingHandledByNative()))
             {
                 ushort start = 0, end = 0, top = 0, bottom = 0;
-                if (Layout != null)
+                if (Layout != null && !Layout.IsPaddingHandledByNative() && Layout.Padding != null)
                 {
-                    if (Layout.Padding != null)
-                    {
-                        start = Layout.Padding.Start;
-                        end = Layout.Padding.End;
-                        top = Layout.Padding.Top;
-                        bottom = Layout.Padding.Bottom;
-                    }
+                    start = Layout.Padding.Start;
+                    end = Layout.Padding.End;
+                    top = Layout.Padding.Top;
+                    bottom = Layout.Padding.Bottom;
                 }
                 internalPadding = new Extents(OnPaddingChanged, start, end, top, bottom);
             }
 
-            if (Layout == null)
+            if (Layout == null || Layout.IsPaddingHandledByNative())
             {
                 var tmp = Object.GetProperty(SwigCPtr, Property.PADDING);
                 tmp?.Get(internalPadding);