From: dongsug-song <35130733+dongsug-song@users.noreply.github.com>
Date: Mon, 10 Dec 2018 00:36:08 +0000 (+0900)
Subject: [NUI] Disconnect all native signals of Window class when application is terminated...
X-Git-Tag: accepted/tizen/5.0/unified/20181211.064526~1^2
X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b28705c18c0de1300d43550b9ec28f2a1080b3c2;p=platform%2Fcore%2Fcsapi%2Ftizenfx.git
[NUI] Disconnect all native signals of Window class when application is terminated (#600)
---
diff --git a/src/Tizen.NUI/src/internal/Application.cs b/src/Tizen.NUI/src/internal/Application.cs
index 77085bc..b6b777b 100755
--- a/src/Tizen.NUI/src/internal/Application.cs
+++ b/src/Tizen.NUI/src/internal/Application.cs
@@ -1002,6 +1002,8 @@ namespace Tizen.NUI
e.Application = this;
_applicationTerminateEventHandler.Invoke(this, e);
}
+
+ Window.Instance.DisconnectNativeSignals();
}
/**
diff --git a/src/Tizen.NUI/src/public/Window.cs b/src/Tizen.NUI/src/public/Window.cs
index a470427..948990e 100755
--- a/src/Tizen.NUI/src/public/Window.cs
+++ b/src/Tizen.NUI/src/public/Window.cs
@@ -1789,5 +1789,63 @@ namespace Tizen.NUI
}
}
+ ///
+ /// Disconnect all native signals
+ ///
+ /// 5
+ internal void DisconnectNativeSignals()
+ {
+ if( _windowFocusChangedEventCallback != null )
+ {
+ WindowFocusChangedSignal().Disconnect(_windowFocusChangedEventCallback);
+ }
+
+ if( _rootLayerTouchDataCallback != null )
+ {
+ TouchDataSignal().Disconnect(_rootLayerTouchDataCallback);
+ }
+
+ if( _wheelEventCallback != null )
+ {
+ StageWheelEventSignal().Disconnect(_wheelEventCallback);
+ }
+
+ if( _stageKeyCallbackDelegate != null )
+ {
+ KeyEventSignal().Disconnect(_stageKeyCallbackDelegate);
+ }
+
+ if( _stageEventProcessingFinishedEventCallbackDelegate != null )
+ {
+ EventProcessingFinishedSignal().Disconnect(_stageEventProcessingFinishedEventCallbackDelegate);
+ }
+
+ if( _stageContextLostEventCallbackDelegate != null )
+ {
+ ContextLostSignal().Disconnect(_stageContextLostEventCallbackDelegate);
+ }
+
+ if( _stageContextRegainedEventCallbackDelegate != null )
+ {
+ ContextRegainedSignal().Disconnect(_stageContextRegainedEventCallbackDelegate);
+ }
+
+ if( _stageSceneCreatedEventCallbackDelegate != null )
+ {
+ SceneCreatedSignal().Disconnect(_stageSceneCreatedEventCallbackDelegate);
+ }
+
+ if( _windowResizedEventCallback != null )
+ {
+ ResizedSignal().Disconnect(_windowResizedEventCallback);
+ }
+
+ if( _windowFocusChangedEventCallback2 != null )
+ {
+ WindowFocusChangedSignal().Disconnect(_windowFocusChangedEventCallback2);
+ }
+
+ }
+
}
}