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); + } + + } + } }