[Tizen] Fix imfmanager issue and add an imfmanager sample
authorxb.teng <xb.teng@samsung.com>
Tue, 25 Jul 2017 15:31:46 +0000 (23:31 +0800)
committerdongsug.song <dongsug.song@samsung.com>
Tue, 25 Jul 2017 08:11:23 +0000 (17:11 +0900)
Change-Id: I1beec6fcb7512568c3e5b4244eff7d8268bac4dc

src/Tizen.NUI/src/public/ImfManager.cs

index 1868cc3..9304124 100755 (executable)
@@ -264,6 +264,11 @@ namespace Tizen.NUI
             private global::System.Runtime.InteropServices.HandleRef swigCPtr;
             protected bool swigCMemOwn;
 
+            internal IntPtr GetImfCallbackDataPtr()
+            {
+                return (IntPtr)swigCPtr;
+            }
+
             internal ImfCallbackData(global::System.IntPtr cPtr, bool cMemoryOwn)
             {
                 swigCMemOwn = cMemoryOwn;
@@ -791,7 +796,7 @@ namespace Tizen.NUI
             }
         }
 
-        private delegate ImfCallbackData ImfManagerEventReceivedEventCallbackType(global::System.IntPtr imfManager, global::System.IntPtr imfEventData);
+        private delegate global::System.IntPtr ImfManagerEventReceivedEventCallbackType(global::System.IntPtr imfManager, global::System.IntPtr imfEventData);
         private ImfManagerEventReceivedEventCallbackType _imfManagerEventReceivedEventCallback;
 
         private event EventHandlerWithReturnType<object, ImfManagerEventReceivedEventArgs, ImfCallbackData> _imfManagerEventReceivedEventHandler;
@@ -821,8 +826,10 @@ namespace Tizen.NUI
             }
         }
 
-        private ImfCallbackData OnImfManagerEventReceived(global::System.IntPtr imfManager, global::System.IntPtr imfEventData)
+        private global::System.IntPtr OnImfManagerEventReceived(global::System.IntPtr imfManager, global::System.IntPtr imfEventData)
         {
+            ImfCallbackData imfCallbackData = null;
+
             ImfManagerEventReceivedEventArgs e = new ImfManagerEventReceivedEventArgs();
 
             e.ImfManager = ImfManager.GetImfManagerFromPtr(imfManager);
@@ -830,9 +837,16 @@ namespace Tizen.NUI
 
             if (_imfManagerEventReceivedEventHandler != null)
             {
-                return _imfManagerEventReceivedEventHandler(this, e);
+                imfCallbackData = _imfManagerEventReceivedEventHandler(this, e);
+            }
+            if (imfCallbackData != null)
+            {
+                return imfCallbackData.GetImfCallbackDataPtr();
+            }
+            else
+            {
+                return new ImfCallbackData().GetImfCallbackDataPtr();
             }
-            return null;
         }
 
         internal ImfEventSignalType EventReceivedSignal()