Optimize Moved event handler
authorSeungkeun Lee <sngn.lee@samsung.com>
Wed, 19 Apr 2017 07:30:53 +0000 (16:30 +0900)
committerKangho Hur <kangho.hur@samsung.com>
Mon, 10 Jul 2017 02:11:23 +0000 (11:11 +0900)
 - Only enable Moved event handler when enabled transformation feature

Change-Id: I2fe9f1c041290af1bde5783a47fcb0bc7ac13bd0

Xamarin.Forms.Platform.Tizen/Renderers/VisualElementRenderer.cs

index 37e2a03..a103abf 100644 (file)
@@ -45,6 +45,7 @@ namespace Xamarin.Forms.Platform.Tizen
                HashSet<string> _batchedProperties = new HashSet<string>();
 
                int _layoutCallback = 0;
+               bool _movedCallbackEnabled = false;
 
                /// <summary>
                /// Default constructor.
@@ -426,7 +427,10 @@ namespace Xamarin.Forms.Platform.Tizen
                {
                        if (NativeView != null)
                        {
-                               NativeView.Moved -= OnMoved;
+                               if (_movedCallbackEnabled)
+                               {
+                                       NativeView.Moved -= OnMoved;
+                               }
                                NativeView.Deleted -= NativeViewDeleted;
                        }
 
@@ -442,7 +446,10 @@ namespace Xamarin.Forms.Platform.Tizen
                        if (NativeView != null)
                        {
                                NativeView.Deleted += NativeViewDeleted;
-                               NativeView.Moved += OnMoved;
+                               if (_movedCallbackEnabled)
+                               {
+                                       NativeView.Moved += OnMoved;
+                               }
                        }
 
                        widget = NativeView as Widget;
@@ -1002,6 +1009,19 @@ namespace Xamarin.Forms.Platform.Tizen
                        if (changed)
                        {
                                NativeView.EvasMap = map;
+                               if (!_movedCallbackEnabled)
+                               {
+                                       _movedCallbackEnabled = true;
+                                       NativeView.Moved += OnMoved;
+                               }
+                       }
+                       else
+                       {
+                               if (_movedCallbackEnabled)
+                               {
+                                       _movedCallbackEnabled = false;
+                                       NativeView.Moved -= OnMoved;
+                               }
                        }
                }
                EFocusDirection ConvertToNativeFocusDirection(string direction) {