[NUI] Register HitTest callback only if GrabTouchAfterLeave = true
authorEunki, Hong <eunkiki.hong@samsung.com>
Tue, 28 Mar 2023 02:11:06 +0000 (11:11 +0900)
committerJaehyun Cho <jaehyun0cho@gmail.com>
Tue, 28 Mar 2023 07:45:27 +0000 (16:45 +0900)
Since useless HitTest checkup function make performance down for
standard cases, Let we make we use custom callback only if
GrabTouchAfterLeave case.

Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
src/Tizen.NUI/src/public/BaseComponents/View.cs

index 9cb082e..3cc633e 100755 (executable)
@@ -209,9 +209,6 @@ namespace Tizen.NUI.BaseComponents
                 PositionUsesPivotPoint = false;
                 GrabTouchAfterLeave = defaultGrabTouchAfterLeave;
                 AllowOnlyOwnTouch = defaultAllowOnlyOwnTouch;
-
-                // TODO : Can we call this function only for required subclass?
-                RegisterHitTestCallback();
             }
 
             if (!shown)
@@ -3237,6 +3234,17 @@ namespace Tizen.NUI.BaseComponents
             set
             {
                 Object.InternalSetPropertyBool(SwigCPtr, View.Property.CaptureAllTouchAfterStart, value);
+
+                // Use custom HitTest callback only if GrabTouchAfterLeave is true.
+                if (value)
+                {
+                    RegisterHitTestCallback();
+                }
+                else
+                {
+                    UnregisterHitTestCallback();
+                }
+
                 NotifyPropertyChanged();
             }
         }