[Tizen] Fix imfmanager issue and add an imfmanager sample
[platform/core/csapi/nui.git] / Tizen.NUI / src / public / ImfManager.cs
index 38d8db1..187dbb4 100755 (executable)
@@ -294,6 +294,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;
@@ -821,7 +826,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;
@@ -851,8 +856,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);
@@ -860,9 +867,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()