e_policy: added code handling toast popup 27/99527/2
authorDoyoun Kang <doyoun.kang@samsung.com>
Wed, 23 Nov 2016 07:39:14 +0000 (16:39 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Wed, 23 Nov 2016 07:45:27 +0000 (16:45 +0900)
Change-Id: If39714044eb3d671b16204f83a61302c87ca8e18

src/bin/e_policy.c
src/bin/e_policy.h
src/bin/e_policy_private_data.h

index f4b7192cf02765bcb74acc4888270830ab508e0a..91212e79ba266686d6dc97d7e263f18df1a5db2b 100644 (file)
@@ -3,6 +3,7 @@
 #include "e_policy_conformant.h"
 #include "e_policy_wl.h"
 #include "e_policy_visibility.h"
+#include "e_policy_private_data.h"
 
 E_Policy *e_policy = NULL;
 Eina_Hash *hash_policy_desks = NULL;
@@ -625,6 +626,16 @@ _e_policy_cb_hook_client_eval_pre_new_client(void *d EINA_UNUSED, E_Client *ec)
                evas_object_layer_set(ec->frame, E_LAYER_CLIENT_ABOVE);
           }
      }
+
+   if (e_policy_client_is_toast_popup(ec))
+     {
+        if (ec->frame)
+          {
+             if (ec->layer != E_POLICY_TOAST_POPUP_LAYER)
+               evas_object_layer_set(ec->frame, E_POLICY_TOAST_POPUP_LAYER);
+          }
+        ec->layer = E_POLICY_TOAST_POPUP_LAYER;
+     }
 }
 
 static void
@@ -1584,6 +1595,21 @@ e_policy_client_is_cbhm(E_Client *ec)
    return EINA_FALSE;
 }
 
+Eina_Bool
+e_policy_client_is_toast_popup(E_Client *ec)
+{
+   E_OBJECT_CHECK_RETURN(ec, EINA_FALSE);
+   E_OBJECT_TYPE_CHECK_RETURN(ec, E_CLIENT_TYPE, EINA_FALSE);
+
+   if (!e_util_strcmp("TOAST_POPUP", ec->icccm.class))
+     return EINA_TRUE;
+
+   if (!e_util_strcmp("toast_popup", ec->icccm.window_role))
+     return EINA_TRUE;
+
+   return EINA_FALSE;
+}
+
 Eina_Bool
 e_policy_client_is_splited(E_Client *ec)
 {
index 76c2972186a338f5071dcbf6967356464950e1ee..b337b3cc661159699608b49b6ddcac9747b465f6 100644 (file)
@@ -122,6 +122,7 @@ EINTERN Eina_Bool        e_policy_client_is_cursor(E_Client *ec);
 EINTERN Eina_Bool        e_policy_client_is_subsurface(E_Client *ec);
 EINTERN Eina_Bool        e_policy_client_is_cbhm(E_Client *ec);
 EINTERN Eina_Bool        e_policy_client_is_splited(E_Client *ec);
+EINTERN Eina_Bool        e_policy_client_is_toast_popup(E_Client *ec);
 
 EINTERN E_Policy_Softkey *e_policy_softkey_add(E_Zone *zone);
 EINTERN void              e_policy_softkey_del(E_Policy_Softkey *softkey);
index 3ac2d234119c367b3023222f5eaa32913b7539aa..389e3ff86bfc52705de1342c50d9b0715e5af249 100644 (file)
@@ -37,10 +37,10 @@ e_policy_angle_get(E_Policy_Angle_Map map)
 /* layer level - E_LAYER_CLIENT_ALERT (900) */
 # define E_POLICY_SCRSAVER_LAYER    E_LAYER_CLIENT_ALERT
 # define E_POLICY_VOLUME_LAYER      E_LAYER_CLIENT_ALERT
+# define E_POLICY_TOAST_POPUP_LAYER E_LAYER_CLIENT_ALERT
 
 /* layer level - E_LAYER_CLIENT_ALERT_LOW (850) */
 # define E_POLICY_QUICKPANEL_LAYER  E_LAYER_CLIENT_ALERT_LOW
-# define E_POLICY_TOAST_POPUP_LAYER E_LAYER_CLIENT_ALERT_LOW
 
 /* layer level - E_LAYER_CLIENT_NOTIFICATION_TOP (800) */
 /* layer level - E_LAYER_CLIENT_NOTIFICATION_HIGH (750) */