Add api to get auto visibility 30/142930/2
authorHyunho Kang <hhstark.kang@samsung.com>
Tue, 8 Aug 2017 02:12:14 +0000 (11:12 +0900)
committerHyunho Kang <hhstark.kang@samsung.com>
Tue, 8 Aug 2017 04:53:58 +0000 (13:53 +0900)
- screen_connector_toolkit_evas_auto_visibility

Change-Id: I7896c097d45573f06cea2a2d8e81e53831027389
Signed-off-by: Hyunho Kang <hhstark.kang@samsung.com>
screen_connector_watcher_evas/include/screen_connector_toolkit_evas.h
screen_connector_watcher_evas/src/screen_connector_toolkit_evas.c

index 6b16d7d..31164d6 100644 (file)
@@ -114,7 +114,8 @@ int screen_connector_toolkit_evas_get_rid(Evas_Object *obj, int *resource_id);
 screen_connector_toolkit_evas_h screen_connector_toolkit_evas_add_with_win(screen_connector_toolkit_evas_ops *ops, char *id,
                screen_connector_screen_type_e type, Evas_Object *win, void *data);
 int screen_connector_toolkit_evas_is_visible(Evas_Object *obj, bool *is_visible);
-
+visibility_type screen_connector_toolkit_evas_auto_visibility(
+               screen_connector_toolkit_evas_h h);
 
 /**
  * @}
index bb9e8b4..ed3e337 100644 (file)
@@ -66,6 +66,7 @@ struct _screen_connector_toolkit_evas_h {
        struct _screen_connector_type_evas_h *type_h;
        guint resuming_timer;
        GList *viewer_visibility_list;
+       visibility_type auto_visibility;
        void *data;
 };
 
@@ -404,9 +405,11 @@ static void __obj_update_visibility(void *data, Evas *e, Evas_Object *obj, void
        }
 
        if (__obj_is_visible(toolkit_evas_h))
-               __set_visibility(toolkit_evas_h, VISIBILITY_TYPE_UNOBSCURED);
+               toolkit_evas_h->auto_visibility = VISIBILITY_TYPE_UNOBSCURED;
        else
-               __set_visibility(toolkit_evas_h, VISIBILITY_TYPE_FULLY_OBSCURED);
+               toolkit_evas_h->auto_visibility = VISIBILITY_TYPE_FULLY_OBSCURED;
+
+       __set_visibility(toolkit_evas_h, toolkit_evas_h->auto_visibility);
 }
 
 static void __rs_cb_mouse_down(void *data, Evas *e, Evas_Object *obj, void *event_info)
@@ -987,6 +990,7 @@ static void __send_visibility(gpointer key, gpointer value, gpointer user_data)
 
        LOGW("set visibility to %d", type);
        ret = __set_visibility(toolkit_evas_h, type);
+       toolkit_evas_h->auto_visibility = type;
        if (ret == -1)
                LOGE("failed to set object visibility  set %p to %d", toolkit_evas_h->img_tbm, type);
 }
@@ -1308,3 +1312,14 @@ EXPORT_API int screen_connector_toolkit_evas_unbind(screen_connector_toolkit_eva
 
        return screen_connector_toolkit_unbind(h->toolkit_h);
 }
+
+EXPORT_API visibility_type screen_connector_toolkit_evas_auto_visibility(
+               screen_connector_toolkit_evas_h h)
+{
+       if (!h) {
+               LOGE("invalid argument %p", h);
+               return -1;
+       }
+
+       return h->auto_visibility;
+}