Eext_Popup: Handle object activation/deactivation on a private surface object 07/229807/3
authorGodly <godly.talias@samsung.com>
Fri, 3 Apr 2020 16:22:01 +0000 (21:52 +0530)
committerGodly <godly.talias@samsung.com>
Mon, 6 Apr 2020 07:15:52 +0000 (12:45 +0530)
Change-Id: I029a16c862aa91b595ac44b932febe15f27136ae
Signed-off-by: Godly <godly.talias@samsung.com>
src/wearable/efl_extension_popup.c

index 3461ccfccac35a254bfc2414d51644fd6323fbc0..37f28b1d4db99c5077501f2e25970c48dd3ca80c 100644 (file)
 #include "efl_extension_private.h"
 
 static const char SIGNAL_ACTIVATED[] = "rotary,activated";
+static const char SIGNAL_DEACTIVATED[] = "rotary,deactivated";
 
 static void
 _rotary_activated_cb(void *data, Evas_Object *obj, void *event_info)
 {
+   EEXT_CIRCLE_OBJECT_GET(data, circle_obj) return;
+
    eext_rotary_object_event_activated_set(data, EINA_TRUE);
+   //In private surfaces object activation will not be done in circle surface layer
+   circle_obj->is_active = EINA_TRUE;
+}
+
+static void
+_rotary_deactivated_cb(void *data, Evas_Object *obj, void *event_info)
+{
+   EEXT_CIRCLE_OBJECT_GET(data, circle_obj) return;
+
+   //In private surfaces object deactivation will not be done in circle surface layer
+   circle_obj->is_active = EINA_FALSE;
 }
 
 static void
 _eext_popup_del_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
 {
    evas_object_smart_callback_del(obj, SIGNAL_ACTIVATED, _rotary_activated_cb);
+   evas_object_smart_callback_del(obj, SIGNAL_DEACTIVATED, _rotary_activated_cb);
 }
 
 EAPI Evas_Object *
@@ -82,6 +97,7 @@ eext_popup_add(Evas_Object *parent)
      }
 
    evas_object_smart_callback_add(obj, SIGNAL_ACTIVATED, _rotary_activated_cb, circle_scr);
+   evas_object_smart_callback_add(obj, SIGNAL_DEACTIVATED, _rotary_deactivated_cb, circle_scr);
    evas_object_event_callback_add(obj, EVAS_CALLBACK_DEL, _eext_popup_del_cb, NULL);
 
    return obj;