Garbage Collection using Dispose Queue method
[platform/core/uifw/dali-toolkit.git] / plugins / dali-swig / manual / csharp / KeyboardFocusManager.cs
index c02f122..4051b36 100644 (file)
@@ -1,3 +1,20 @@
+/*
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
 namespace Dali {
 
 using System;
@@ -15,10 +32,15 @@ public class KeyboardFocusManager : BaseHandle {
   }
 
   ~KeyboardFocusManager() {
-    Dispose();
+    DisposeQueue.Instance.Add(this);
   }
 
   public override void Dispose() {
+    if (!Stage.IsInstalled()) {
+      DisposeQueue.Instance.Add(this);
+      return;
+    }
+
     lock(this) {
       if (swigCPtr.Handle != global::System.IntPtr.Zero) {
         if (swigCMemOwn) {