e_client: added visibility skip flag and set API 96/71696/5
authorMinJeong Kim <minjjj.kim@samsung.com>
Thu, 26 May 2016 09:00:05 +0000 (18:00 +0900)
committerGwanglim Lee <gl77.lee@samsung.com>
Thu, 2 Jun 2016 04:32:32 +0000 (21:32 -0700)
Change-Id: I1bd5af7e5db2bcc834687e8257ab7a8a5ce97725
Signed-off-by: MinJeong Kim <minjjj.kim@samsung.com>
src/bin/e_client.c
src/bin/e_client.h

index 88bbf3e5269169c7c657c947633e4c4252c6c03e..e85384bf305df4984662e60294e1ff92042c2a23 100644 (file)
@@ -2678,6 +2678,7 @@ _e_client_visibility_zone_calculate(E_Zone *zone)
         if (e_client_util_ignored_get(ec)) continue;
         if (ec->zone != zone) continue;
         if (!ec->frame) continue;
+        if (ec->visibility.skip) continue;
 #ifdef HAVE_WAYLAND_ONLY
         /* if ec is subsurface, skip this */
         cdata = (E_Comp_Wl_Client_Data *)ec->comp_data;
@@ -3050,6 +3051,12 @@ e_client_visibility_calculate(void)
    _e_calc_visibility = EINA_TRUE;
 }
 
+E_API void
+e_client_visibility_skip_set(E_Client *ec, Eina_Bool skip)
+{
+   ec->visibility.skip = skip;
+}
+
 E_API void
 e_client_post_raise_lower_set(E_Client *ec, Eina_Bool raise_set, Eina_Bool lower_set)
 {
@@ -3369,6 +3376,7 @@ e_client_new(E_Pixmap *cp, int first_map, int internal)
    ec->visibility.obscured = E_VISIBILITY_UNKNOWN;
    ec->visibility.opaque = -1;
    ec->visibility.changed = 0;
+   ec->visibility.skip = 0;
 
    ec->transform.zoom = 1.0;
    ec->transform.angle = 0.0;
index 44ba01f4d630554647c8f251a029753143eb69d8..a7535c30de24e4e187265f440d99ee569b747ddb 100644 (file)
@@ -674,6 +674,7 @@ struct E_Client
       int opaque;
       int obscured;
       unsigned char changed : 1;
+      Eina_Bool skip : 1;
    } visibility;
 
    struct
@@ -1004,6 +1005,7 @@ E_API Eina_Bool e_client_desk_window_profile_available_check(E_Client *ec, const
 E_API void      e_client_desk_window_profile_wait_desk_set(E_Client *ec, E_Desk *desk);
 E_API void      e_client_layout_cb_set(E_Client_Layout_Cb cb);
 E_API void      e_client_visibility_calculate(void);
+E_API void      e_client_visibility_skip_set(E_Client *ec, Eina_Bool skip);
 E_API void      e_client_post_raise_lower_set(E_Client *ec, Eina_Bool raise_set, Eina_Bool lower_set);
 E_API Eina_Bool e_client_first_mapped_get(E_Client *ec);