From b011f4fd612646e7732414376bd68f537e2a0903 Mon Sep 17 00:00:00 2001 From: "huiyu.eun" Date: Tue, 9 Feb 2021 13:16:31 +0900 Subject: [PATCH] [NUI] Change LayoutController process Register a callback when Layout is first used. Signed-off-by: huiyu.eun --- src/Tizen.NUI/src/internal/Layouting/LayoutController.cs | 15 ++++++++++++--- src/Tizen.NUI/src/public/BaseComponents/ViewInternal.cs | 1 + 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/Tizen.NUI/src/internal/Layouting/LayoutController.cs b/src/Tizen.NUI/src/internal/Layouting/LayoutController.cs index 06fde1c..2cdaab3 100755 --- a/src/Tizen.NUI/src/internal/Layouting/LayoutController.cs +++ b/src/Tizen.NUI/src/internal/Layouting/LayoutController.cs @@ -52,9 +52,6 @@ namespace Tizen.NUI public LayoutController(Window window) : this(Interop.LayoutController.LayoutController_New(), true) { _window = window; - _instance = new Callback(Process); - Interop.LayoutController.LayoutController_SetCallback(swigCPtr, _instance); - _layoutTransitionDataQueue = new List(); } @@ -108,6 +105,18 @@ namespace Tizen.NUI public bool OverrideCoreAnimation {get;set;} = false; /// + /// Create and set process callback + /// + internal void CreateProcessCallback() + { + if (_instance == null) + { + _instance = new Callback(Process); + Interop.LayoutController.LayoutController_SetCallback(SwigCPtr, _instance); + } + } + + /// /// Add transition data for a LayoutItem to the transition stack. /// /// Transition data for a LayoutItem. diff --git a/src/Tizen.NUI/src/public/BaseComponents/ViewInternal.cs b/src/Tizen.NUI/src/public/BaseComponents/ViewInternal.cs index 59f1f58..e60aaa0 100755 --- a/src/Tizen.NUI/src/public/BaseComponents/ViewInternal.cs +++ b/src/Tizen.NUI/src/public/BaseComponents/ViewInternal.cs @@ -109,6 +109,7 @@ namespace Tizen.NUI.BaseComponents internal void SetLayout(LayoutItem layout) { + Window.Instance.LayoutController.CreateProcessCallback(); _layout = layout; _layout?.AttachToOwner(this); _layout?.RequestLayout(); -- 2.7.4