[ElmSharp] Fix KeyUp/KeyDown event handler priority order 56/160256/1
authorSeungkeun Lee <sngn.lee@samsung.com>
Wed, 15 Nov 2017 01:38:00 +0000 (10:38 +0900)
committerSeungkeun Lee <sngn.lee@samsung.com>
Wed, 15 Nov 2017 06:44:37 +0000 (06:44 +0000)
 - Didn't register handler if not using the KeyUp / KeyDown event
 - Defer event handler registering
 - It makes possible to determine the event delivery order.

Change-Id: I08a379c601ce3bbcf19655255ec471a55153a7b8

src/ElmSharp/ElmSharp/EvasObject.cs [changed mode: 0755->0644]

old mode 100755 (executable)
new mode 100644 (file)
index 4f6eb48..819efad
@@ -213,13 +213,21 @@ namespace ElmSharp
         /// KeyUp will be triggered when key is loose
         /// </summary>
         /// <since_tizen> preview </since_tizen>
-        public event EventHandler<EvasKeyEventArgs> KeyUp;
+        public event EventHandler<EvasKeyEventArgs> KeyUp
+        {
+            add { _keyup.On += value; }
+            remove { _keyup.On -= value; }
+        }
 
         /// <summary>
         /// KeyDown will be triggered when key is preesd down
         /// </summary>
         /// <since_tizen> preview </since_tizen>
-        public event EventHandler<EvasKeyEventArgs> KeyDown;
+        public event EventHandler<EvasKeyEventArgs> KeyDown
+        {
+            add { _keydown.On += value; }
+            remove { _keydown.On -= value; }
+        }
 
         /// <summary>
         /// BackButtonPressed will be triggered when Back button is pressed
@@ -1065,8 +1073,6 @@ namespace ElmSharp
                 _resized = new EvasObjectEvent(this, EvasObjectCallbackType.Resize);
 
                 _deleted.On += (s, e) => MakeInvalidate();
-                _keydown.On += (s, e) => KeyDown?.Invoke(this, e);
-                _keyup.On += (s, e) => KeyUp?.Invoke(this, e);
             }
         }