From 3ebc379270d1019ed30da5f6db80b480f7136021 Mon Sep 17 00:00:00 2001 From: "dongsug.song" Date: Tue, 25 Jul 2017 11:05:25 +0900 Subject: [PATCH] [Tizen] Temporary Fix to return the Layer as a View when Parent is a Layer. This reverts commit 4dd97de9109fd7fde6951110d937681df086ab6e. Conflicts: Tizen.NUI/src/public/BaseHandle.cs Change-Id: Ic8d99215c4752c2841380570e37d04dfbfead24f --- Tizen.NUI/src/public/BaseComponents/View.cs | 22 +++++++++++++++++++++- Tizen.NUI/src/public/BaseHandle.cs | 11 ++++++++--- 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/Tizen.NUI/src/public/BaseComponents/View.cs b/Tizen.NUI/src/public/BaseComponents/View.cs index 7c51b00..2e38f1f 100755 --- a/Tizen.NUI/src/public/BaseComponents/View.cs +++ b/Tizen.NUI/src/public/BaseComponents/View.cs @@ -2123,7 +2123,7 @@ namespace Tizen.NUI.BaseComponents return ret; } - internal View GetParent() + /*internal View GetParent() { View ret; IntPtr cPtr = NDalicPINVOKE.Actor_GetParent(swigCPtr); @@ -2142,6 +2142,26 @@ namespace Tizen.NUI.BaseComponents if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve(); return ret; + }*/ + + internal View GetParent() + { + View ret; + IntPtr cPtr = NDalicPINVOKE.Actor_GetParent(swigCPtr); + + BaseHandle basehandle = Registry.GetManagedBaseHandleFromNativePtr(cPtr); + + if(basehandle is Layer) + { + View ret2 = new View(cPtr,false); + return ret2; + } + + ret = basehandle as View; + + if (NDalicPINVOKE.SWIGPendingException.Pending) + throw NDalicPINVOKE.SWIGPendingException.Retrieve(); + return ret; } internal void SetParentOrigin(Vector3 origin) diff --git a/Tizen.NUI/src/public/BaseHandle.cs b/Tizen.NUI/src/public/BaseHandle.cs index 69d904e..3088fb7 100755 --- a/Tizen.NUI/src/public/BaseHandle.cs +++ b/Tizen.NUI/src/public/BaseHandle.cs @@ -26,6 +26,7 @@ namespace Tizen.NUI internal BaseHandle(global::System.IntPtr cPtr, bool cMemoryOwn) { _registerMe = swigCMemOwn = cMemoryOwn; + swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr); // using copy constructor to create another native handle so Registry.Unregister works fine. @@ -41,18 +42,22 @@ namespace Tizen.NUI internal BaseHandle(global::System.IntPtr cPtr) { _registerMe = swigCMemOwn = true; + swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr); // using copy constructor to create another native handle so Registry.Unregister works fine. swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, NDalicPINVOKE.new_BaseHandle__SWIG_2(swigCPtr)); - // Register this instance of BaseHandle in the registry. - Registry.Register(this); + if (_registerMe) + { + // Register this instance of BaseHandle in the registry. + Registry.Register(this); + } } internal BaseHandle(global::System.IntPtr cPtr) { - swigCMemOwn = true; + _registerMe = swigCMemOwn = true; swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr); // Register this instance of BaseHandle in the registry. -- 2.7.4