From 4e6a2b2dd4333c93404aa2e398f202e714babb60 Mon Sep 17 00:00:00 2001 From: Dongsug Song Date: Thu, 18 Mar 2021 18:30:46 +0900 Subject: [PATCH] Revert "[NUI] Clean up View's Events" This reverts commit c0df2f273c77d7655df2d9c15d005a72d71431d7. --- src/Tizen.NUI/src/public/BaseComponents/View.cs | 3 +- .../src/public/BaseComponents/ViewEvent.cs | 171 ++++++--------------- .../src/public/BaseComponents/ViewInternal.cs | 106 ++++++------- 3 files changed, 92 insertions(+), 188 deletions(-) diff --git a/src/Tizen.NUI/src/public/BaseComponents/View.cs b/src/Tizen.NUI/src/public/BaseComponents/View.cs index 80e0854..116982b 100755 --- a/src/Tizen.NUI/src/public/BaseComponents/View.cs +++ b/src/Tizen.NUI/src/public/BaseComponents/View.cs @@ -102,8 +102,7 @@ namespace Tizen.NUI.BaseComponents } onWindowSendEventCallback = SendViewAddedEventToWindow; - onWindowSendSignal = this.OnWindowSignal(); - onWindowSendSignal?.Connect(onWindowSendEventCallback); + this.OnWindowSignal().Connect(onWindowSendEventCallback); if (!shown) { diff --git a/src/Tizen.NUI/src/public/BaseComponents/ViewEvent.cs b/src/Tizen.NUI/src/public/BaseComponents/ViewEvent.cs index 1860ee3..861d37b 100755 --- a/src/Tizen.NUI/src/public/BaseComponents/ViewEvent.cs +++ b/src/Tizen.NUI/src/public/BaseComponents/ViewEvent.cs @@ -91,22 +91,6 @@ namespace Tizen.NUI.BaseComponents [UnmanagedFunctionPointer(CallingConvention.StdCall)] private delegate void LayoutDirectionChangedEventCallbackType(IntPtr data, ViewLayoutDirectionType type); - private ViewSignal offWindowSignal; - private WheelSignal wheelEventSignal; - private ControlKeySignal keyEventSignal; - private TouchDataSignal interceptTouchSignal; - private TouchDataSignal touchSignal; - private HoverSignal hoveredSignal; - private ViewVisibilityChangedSignal visibilityChangedSignal; - private KeyInputFocusSignal keyInputFocusGainedSignal; - private KeyInputFocusSignal keyInputFocusLostSignal; - private ViewSignal onRelayoutSignal; - private ViewSignal onWindowSignal; - private ViewLayoutDirectionChangedSignal layoutDirectionChangedSignal; - private ViewSignal resourcesLoadedSignal; - private ViewSignal backgroundResourcesLoadedSignal; - private ViewSignal onWindowSendSignal; - /// /// Event when a child is removed. /// @@ -130,8 +114,7 @@ namespace Tizen.NUI.BaseComponents if (keyInputFocusGainedEventHandler == null) { keyInputFocusGainedCallback = OnKeyInputFocusGained; - keyInputFocusGainedSignal = this.KeyInputFocusGainedSignal(); - keyInputFocusGainedSignal?.Connect(keyInputFocusGainedCallback); + this.KeyInputFocusGainedSignal().Connect(keyInputFocusGainedCallback); } keyInputFocusGainedEventHandler += value; @@ -141,12 +124,9 @@ namespace Tizen.NUI.BaseComponents { keyInputFocusGainedEventHandler -= value; - if (keyInputFocusGainedEventHandler == null && keyInputFocusGainedSignal?.Empty() == false) + if (keyInputFocusGainedEventHandler == null && KeyInputFocusGainedSignal().Empty() == false) { - keyInputFocusGainedSignal?.Disconnect(keyInputFocusGainedCallback); - keyInputFocusGainedSignal?.Dispose(); - keyInputFocusGainedSignal = null; - keyInputFocusGainedCallback = null; + this.KeyInputFocusGainedSignal().Disconnect(keyInputFocusGainedCallback); } } } @@ -163,8 +143,7 @@ namespace Tizen.NUI.BaseComponents if (keyInputFocusLostEventHandler == null) { keyInputFocusLostCallback = OnKeyInputFocusLost; - keyInputFocusLostSignal = this.KeyInputFocusLostSignal(); - keyInputFocusLostSignal?.Connect(keyInputFocusLostCallback); + this.KeyInputFocusLostSignal().Connect(keyInputFocusLostCallback); } keyInputFocusLostEventHandler += value; @@ -174,12 +153,9 @@ namespace Tizen.NUI.BaseComponents { keyInputFocusLostEventHandler -= value; - if (keyInputFocusLostEventHandler == null && keyInputFocusLostSignal?.Empty() == false) + if (keyInputFocusLostEventHandler == null && KeyInputFocusLostSignal().Empty() == false) { - keyInputFocusLostSignal?.Disconnect(keyInputFocusLostCallback); - keyInputFocusLostSignal?.Dispose(); - keyInputFocusLostSignal = null; - keyInputFocusLostCallback = null; + this.KeyInputFocusLostSignal().Disconnect(keyInputFocusLostCallback); } } } @@ -196,8 +172,7 @@ namespace Tizen.NUI.BaseComponents if (keyEventHandler == null) { keyCallback = OnKeyEvent; - keyEventSignal = this.KeyEventSignal(); - keyEventSignal?.Connect(keyCallback); + this.KeyEventSignal().Connect(keyCallback); } keyEventHandler += value; @@ -207,12 +182,9 @@ namespace Tizen.NUI.BaseComponents { keyEventHandler -= value; - if (keyEventHandler == null && keyEventSignal?.Empty() == false) + if (keyEventHandler == null && KeyEventSignal().Empty() == false) { - keyEventSignal?.Disconnect(keyCallback); - keyEventSignal?.Dispose(); - keyEventSignal = null; - keyCallback = null; + this.KeyEventSignal().Disconnect(keyCallback); } } } @@ -229,8 +201,7 @@ namespace Tizen.NUI.BaseComponents if (onRelayoutEventHandler == null) { onRelayoutEventCallback = OnRelayout; - onRelayoutSignal = this.OnRelayoutSignal(); - onRelayoutSignal?.Connect(onRelayoutEventCallback); + this.OnRelayoutSignal().Connect(onRelayoutEventCallback); } onRelayoutEventHandler += value; @@ -240,13 +211,12 @@ namespace Tizen.NUI.BaseComponents { onRelayoutEventHandler -= value; - if (onRelayoutEventHandler == null && onRelayoutSignal?.Empty() == false) + if (onRelayoutEventHandler == null && OnRelayoutSignal().Empty() == false) { - onRelayoutSignal?.Disconnect(onRelayoutEventCallback); - onRelayoutSignal?.Dispose(); - onRelayoutSignal = null; + this.OnRelayoutSignal().Disconnect(onRelayoutEventCallback); onRelayoutEventCallback = null; } + } } @@ -264,8 +234,7 @@ namespace Tizen.NUI.BaseComponents if (interceptTouchDataEventHandler == null) { interceptTouchDataCallback = OnInterceptTouch; - interceptTouchSignal = this.InterceptTouchSignal(); - interceptTouchSignal?.Connect(interceptTouchDataCallback); + this.InterceptTouchSignal().Connect(interceptTouchDataCallback); } interceptTouchDataEventHandler += value; @@ -275,12 +244,9 @@ namespace Tizen.NUI.BaseComponents { interceptTouchDataEventHandler -= value; - if (interceptTouchDataEventHandler == null && interceptTouchSignal?.Empty() == false) + if (interceptTouchDataEventHandler == null && InterceptTouchSignal().Empty() == false) { - interceptTouchSignal?.Disconnect(interceptTouchDataCallback); - interceptTouchSignal?.Dispose(); - interceptTouchSignal = null; - interceptTouchDataCallback = null; + this.InterceptTouchSignal().Disconnect(interceptTouchDataCallback); } } } @@ -310,8 +276,7 @@ namespace Tizen.NUI.BaseComponents if (touchDataEventHandler == null) { touchDataCallback = OnTouch; - touchSignal = this.TouchSignal(); - touchSignal?.Connect(touchDataCallback); + this.TouchSignal().Connect(touchDataCallback); } touchDataEventHandler += value; @@ -321,12 +286,9 @@ namespace Tizen.NUI.BaseComponents { touchDataEventHandler -= value; - if (touchDataEventHandler == null && touchSignal?.Empty() == false) + if (touchDataEventHandler == null && TouchSignal().Empty() == false) { - touchSignal?.Disconnect(touchDataCallback); - touchSignal?.Dispose(); - touchSignal = null; - touchDataCallback = null; + this.TouchSignal().Disconnect(touchDataCallback); } } } @@ -343,8 +305,7 @@ namespace Tizen.NUI.BaseComponents if (hoverEventHandler == null) { hoverEventCallback = OnHoverEvent; - hoveredSignal = this.HoveredSignal(); - hoveredSignal?.Connect(hoverEventCallback); + this.HoveredSignal().Connect(hoverEventCallback); } hoverEventHandler += value; @@ -354,13 +315,11 @@ namespace Tizen.NUI.BaseComponents { hoverEventHandler -= value; - if (hoverEventHandler == null && hoveredSignal?.Empty() == false) + if (hoverEventHandler == null && HoveredSignal().Empty() == false) { - hoveredSignal?.Disconnect(hoverEventCallback); - hoveredSignal?.Dispose(); - hoveredSignal = null; - hoverEventCallback = null; + this.HoveredSignal().Disconnect(hoverEventCallback); } + } } @@ -376,10 +335,8 @@ namespace Tizen.NUI.BaseComponents if (wheelEventHandler == null) { wheelEventCallback = OnWheelEvent; - wheelEventSignal = this.WheelEventSignal(); - wheelEventSignal?.Connect(wheelEventCallback); + this.WheelEventSignal().Connect(wheelEventCallback); } - wheelEventHandler += value; if (WindowWheelEventHandler == null) @@ -392,13 +349,9 @@ namespace Tizen.NUI.BaseComponents remove { wheelEventHandler -= value; - - if (wheelEventHandler == null && wheelEventSignal?.Empty() == false) + if (wheelEventHandler == null && WheelEventSignal().Empty() == false) { - wheelEventSignal?.Disconnect(wheelEventCallback); - wheelEventSignal?.Dispose(); - wheelEventSignal = null; - wheelEventCallback = null; + this.WheelEventSignal().Disconnect(wheelEventCallback); } WindowWheelEventHandler -= value; @@ -421,8 +374,7 @@ namespace Tizen.NUI.BaseComponents if (onWindowEventHandler == null) { onWindowEventCallback = OnWindow; - onWindowSignal = this.OnWindowSignal(); - onWindowSignal?.Connect(onWindowEventCallback); + this.OnWindowSignal().Connect(onWindowEventCallback); } onWindowEventHandler += value; @@ -432,11 +384,9 @@ namespace Tizen.NUI.BaseComponents { onWindowEventHandler -= value; - if (onWindowEventHandler == null && onWindowSignal?.Empty() == false) + if (onWindowEventHandler == null && OnWindowSignal().Empty() == false) { - onWindowSignal?.Disconnect(onWindowEventCallback); - onWindowSignal?.Dispose(); - onWindowSignal = null; + this.OnWindowSignal().Disconnect(onWindowEventCallback); onWindowEventCallback = null; } } @@ -454,8 +404,7 @@ namespace Tizen.NUI.BaseComponents if (offWindowEventHandler == null) { offWindowEventCallback = OffWindow; - offWindowSignal = this.OffWindowSignal(); - offWindowSignal?.Connect(offWindowEventCallback); + this.OffWindowSignal().Connect(offWindowEventCallback); } offWindowEventHandler += value; @@ -465,11 +414,9 @@ namespace Tizen.NUI.BaseComponents { offWindowEventHandler -= value; - if (offWindowEventHandler == null && offWindowSignal?.Empty() == false) + if (offWindowEventHandler == null && OffWindowSignal().Empty() == false) { - offWindowSignal?.Disconnect(offWindowEventCallback); - offWindowSignal.Dispose(); - offWindowSignal = null; + this.OffWindowSignal().Disconnect(offWindowEventCallback); offWindowEventCallback = null; } } @@ -487,8 +434,7 @@ namespace Tizen.NUI.BaseComponents if (visibilityChangedEventHandler == null) { visibilityChangedEventCallback = OnVisibilityChanged; - visibilityChangedSignal = this.VisibilityChangedSignal(this); - visibilityChangedSignal?.Connect(visibilityChangedEventCallback); + VisibilityChangedSignal(this).Connect(visibilityChangedEventCallback); } visibilityChangedEventHandler += value; @@ -498,12 +444,9 @@ namespace Tizen.NUI.BaseComponents { visibilityChangedEventHandler -= value; - if (visibilityChangedEventHandler == null && visibilityChangedSignal?.Empty() == false) + if (visibilityChangedEventHandler == null && VisibilityChangedSignal(this).Empty() == false) { - visibilityChangedSignal?.Disconnect(visibilityChangedEventCallback); - visibilityChangedSignal?.Dispose(); - visibilityChangedSignal = null; - visibilityChangedEventCallback = null; + VisibilityChangedSignal(this).Disconnect(visibilityChangedEventCallback); } } } @@ -520,8 +463,7 @@ namespace Tizen.NUI.BaseComponents if (layoutDirectionChangedEventHandler == null) { layoutDirectionChangedEventCallback = OnLayoutDirectionChanged; - layoutDirectionChangedSignal = this.LayoutDirectionChangedSignal(this); - layoutDirectionChangedSignal?.Connect(layoutDirectionChangedEventCallback); + LayoutDirectionChangedSignal(this).Connect(layoutDirectionChangedEventCallback); } layoutDirectionChangedEventHandler += value; @@ -531,12 +473,9 @@ namespace Tizen.NUI.BaseComponents { layoutDirectionChangedEventHandler -= value; - if (layoutDirectionChangedEventHandler == null && layoutDirectionChangedSignal?.Empty() == false) + if (layoutDirectionChangedEventHandler == null && LayoutDirectionChangedSignal(this).Empty() == false) { - layoutDirectionChangedSignal?.Disconnect(layoutDirectionChangedEventCallback); - layoutDirectionChangedSignal?.Dispose(); - layoutDirectionChangedSignal = null; - layoutDirectionChangedEventCallback = null; + LayoutDirectionChangedSignal(this).Disconnect(layoutDirectionChangedEventCallback); } } } @@ -553,8 +492,7 @@ namespace Tizen.NUI.BaseComponents if (resourcesLoadedEventHandler == null) { ResourcesLoadedCallback = OnResourcesLoaded; - resourcesLoadedSignal = this.ResourcesLoadedSignal(); - resourcesLoadedSignal?.Connect(ResourcesLoadedCallback); + this.ResourcesLoadedSignal().Connect(ResourcesLoadedCallback); } resourcesLoadedEventHandler += value; @@ -564,11 +502,9 @@ namespace Tizen.NUI.BaseComponents { resourcesLoadedEventHandler -= value; - if (resourcesLoadedEventHandler == null && resourcesLoadedSignal?.Empty() == false) + if (resourcesLoadedEventHandler == null && ResourcesLoadedSignal().Empty() == false) { - resourcesLoadedSignal?.Disconnect(ResourcesLoadedCallback); - resourcesLoadedSignal?.Dispose(); - resourcesLoadedSignal = null; + this.ResourcesLoadedSignal().Disconnect(ResourcesLoadedCallback); ResourcesLoadedCallback = null; } } @@ -613,8 +549,7 @@ namespace Tizen.NUI.BaseComponents if (backgroundResourceLoadedEventHandler == null) { backgroundResourceLoadedCallback = OnBackgroundResourceLoaded; - backgroundResourcesLoadedSignal = this.ResourcesLoadedSignal(); - backgroundResourcesLoadedSignal?.Connect(backgroundResourceLoadedCallback); + this.ResourcesLoadedSignal().Connect(backgroundResourceLoadedCallback); } backgroundResourceLoadedEventHandler += value; @@ -623,11 +558,9 @@ namespace Tizen.NUI.BaseComponents { backgroundResourceLoadedEventHandler -= value; - if (backgroundResourceLoadedEventHandler == null && backgroundResourcesLoadedSignal?.Empty() == false) + if (backgroundResourceLoadedEventHandler == null && ResourcesLoadedSignal().Empty() == false) { - backgroundResourcesLoadedSignal?.Disconnect(backgroundResourceLoadedCallback); - backgroundResourcesLoadedSignal?.Dispose(); - backgroundResourcesLoadedSignal = null; + this.ResourcesLoadedSignal().Disconnect(backgroundResourceLoadedCallback); backgroundResourceLoadedCallback = null; } } @@ -756,15 +689,11 @@ namespace Tizen.NUI.BaseComponents } else if (width != null && height == null) { - Vector2 minSize = this.GetMinimumSize(); - MinimumSize = new Size2D((int)width, (int)(minSize.Height)); - minSize.Dispose(); + MinimumSize = new Size2D((int)width, (int)this.GetMinimumSize().Height); } else if (width == null && height != null) { - Vector2 minSize = this.GetMinimumSize(); - MinimumSize = new Size2D((int)(minSize.Width), (int)height); - minSize.Dispose(); + MinimumSize = new Size2D((int)this.GetMinimumSize().Width, (int)height); } else { @@ -780,15 +709,11 @@ namespace Tizen.NUI.BaseComponents } else if (width != null && height == null) { - Vector2 maxSize = this.GetMaximumSize(); - MaximumSize = new Size2D((int)width, (int)(maxSize.Height)); - maxSize.Dispose(); + MaximumSize = new Size2D((int)width, (int)this.GetMaximumSize().Height); } else if (width == null && height != null) { - Vector2 maxSize = this.GetMaximumSize(); - MaximumSize = new Size2D((int)(maxSize.Width), (int)height); - maxSize.Dispose(); + MaximumSize = new Size2D((int)this.GetMaximumSize().Width, (int)height); } else { diff --git a/src/Tizen.NUI/src/public/BaseComponents/ViewInternal.cs b/src/Tizen.NUI/src/public/BaseComponents/ViewInternal.cs index 9df410d..a448d26 100755 --- a/src/Tizen.NUI/src/public/BaseComponents/ViewInternal.cs +++ b/src/Tizen.NUI/src/public/BaseComponents/ViewInternal.cs @@ -1125,7 +1125,10 @@ namespace Tizen.NUI.BaseComponents //Release your own unmanaged resources here. //You should not access any managed member here except static instance. //because the execution order of Finalizes is non-deterministic. - DisConnectFromSignals(); + if (this != null) + { + DisConnectFromSignals(); + } foreach (View view in Children) { @@ -1198,34 +1201,33 @@ namespace Tizen.NUI.BaseComponents if (onRelayoutEventCallback != null) { - onRelayoutSignal?.Disconnect(onRelayoutEventCallback); - onRelayoutSignal?.Dispose(); - onRelayoutSignal = null; + ViewSignal signal = this.OnRelayoutSignal(); + signal?.Disconnect(onRelayoutEventCallback); + signal?.Dispose(); onRelayoutEventCallback = null; } if (offWindowEventCallback != null) { - offWindowSignal?.Disconnect(offWindowEventCallback); - offWindowSignal?.Dispose(); - offWindowSignal = null; + ViewSignal signal = this.OffWindowSignal(); + signal?.Disconnect(offWindowEventCallback); + signal?.Dispose(); offWindowEventCallback = null; } if (onWindowEventCallback != null) { - onWindowSignal?.Disconnect(onWindowEventCallback); - onWindowSignal?.Dispose(); - onWindowSignal = null; + ViewSignal signal = this.OnWindowSignal(); + signal?.Disconnect(onWindowEventCallback); + signal?.Dispose(); onWindowEventCallback = null; } if (wheelEventCallback != null) { - wheelEventSignal?.Disconnect(wheelEventCallback); - wheelEventSignal?.Dispose(); - wheelEventSignal = null; - wheelEventCallback = null; + WheelSignal signal = this.WheelEventSignal(); + signal?.Disconnect(wheelEventCallback); + signal?.Dispose(); } if (WindowWheelEventHandler != null) @@ -1235,92 +1237,70 @@ namespace Tizen.NUI.BaseComponents if (hoverEventCallback != null) { - hoveredSignal?.Disconnect(hoverEventCallback); - hoveredSignal?.Dispose(); - hoveredSignal = null; - hoverEventCallback = null; + HoverSignal signal = this.HoveredSignal(); + signal?.Disconnect(hoverEventCallback); + signal?.Dispose(); } if (interceptTouchDataCallback != null) { - interceptTouchSignal?.Disconnect(interceptTouchDataCallback); - interceptTouchSignal?.Dispose(); - interceptTouchSignal = null; - interceptTouchDataCallback = null; + TouchDataSignal signal = this.InterceptTouchSignal(); + signal?.Disconnect(interceptTouchDataCallback); + signal?.Dispose(); } if (touchDataCallback != null) { - touchSignal?.Disconnect(touchDataCallback); - touchSignal?.Dispose(); - touchSignal = null; - touchDataCallback = null; + TouchDataSignal signal = this.TouchSignal(); + signal?.Disconnect(touchDataCallback); + signal?.Dispose(); } if (ResourcesLoadedCallback != null) { - resourcesLoadedSignal?.Disconnect(ResourcesLoadedCallback); - resourcesLoadedSignal?.Dispose(); - resourcesLoadedSignal = null; + ViewSignal signal = this.ResourcesLoadedSignal(); + signal?.Disconnect(ResourcesLoadedCallback); + signal?.Dispose(); ResourcesLoadedCallback = null; } if (keyCallback != null) { - keyEventSignal?.Disconnect(keyCallback); - keyEventSignal?.Dispose(); - keyEventSignal = null; - keyCallback = null; + ControlKeySignal signal = this.KeyEventSignal(); + signal?.Disconnect(keyCallback); + signal?.Dispose(); } if (keyInputFocusLostCallback != null) { - keyInputFocusLostSignal?.Disconnect(keyInputFocusLostCallback); - keyInputFocusLostSignal?.Dispose(); - keyInputFocusLostSignal = null; - keyInputFocusLostCallback = null; + KeyInputFocusSignal signal = this.KeyInputFocusLostSignal(); + signal?.Disconnect(keyInputFocusLostCallback); + signal?.Dispose(); } if (keyInputFocusGainedCallback != null) { - keyInputFocusGainedSignal?.Disconnect(keyInputFocusGainedCallback); - keyInputFocusGainedSignal?.Dispose(); - keyInputFocusGainedSignal = null; - keyInputFocusGainedCallback = null; + KeyInputFocusSignal signal = this.KeyInputFocusGainedSignal(); + signal?.Disconnect(keyInputFocusGainedCallback); + signal?.Dispose(); } if (backgroundResourceLoadedCallback != null) { - backgroundResourcesLoadedSignal?.Disconnect(backgroundResourceLoadedCallback); - backgroundResourcesLoadedSignal?.Dispose(); - backgroundResourcesLoadedSignal = null; + ViewSignal signal = this.ResourcesLoadedSignal(); + signal?.Disconnect(backgroundResourceLoadedCallback); + signal?.Dispose(); backgroundResourceLoadedCallback = null; } if (onWindowSendEventCallback != null) { - onWindowSendSignal?.Disconnect(onWindowSendEventCallback); - onWindowSendSignal?.Dispose(); - onWindowSendSignal = null; + ViewSignal signal = this.OnWindowSignal(); + signal?.Disconnect(onWindowSendEventCallback); + signal?.Dispose(); onWindowSendEventCallback = null; } - if (visibilityChangedEventCallback != null) - { - visibilityChangedSignal?.Disconnect(visibilityChangedEventCallback); - visibilityChangedSignal?.Dispose(); - visibilityChangedSignal = null; - visibilityChangedEventCallback = null; - } - - if (layoutDirectionChangedEventCallback != null) - { - layoutDirectionChangedSignal?.Disconnect(layoutDirectionChangedEventCallback); - layoutDirectionChangedSignal?.Dispose(); - layoutDirectionChangedSignal = null; - layoutDirectionChangedEventCallback = null; - } - // BaseHandle CPtr is used in Registry and there is danger of deletion if we keep using it here. // Restore current CPtr. SwigCPtr = currentCPtr; -- 2.7.4