We add the hide_by_request flag in the E_Client_Private.
This flag is set when the enlightenment receives the tizen_policy_hide request and
unset when the tizen_policy_show request is received.
If this flag is set, the enlightenment does not map the window even if a buffer attach occurs.
Change-Id: Ib646c3cd6d3874ee3bf4f8ff46dc1e02fcdf872a
struct wl_signal stick;
struct wl_signal unstick;
} events;
+
+ Eina_Bool hide_by_request;
};
static int _e_client_hooks_delete = 0;
///////////////////////////////////////
+EINTERN void e_client_hide_by_request_set(E_Client *ec, Eina_Bool set)
+{
+ API_ENTRY;
+ priv->hide_by_request = set;
+}
+
+EINTERN Eina_Bool e_client_hide_by_request_get(E_Client *ec)
+{
+ API_ENTRY_VAL(EINA_FALSE);
+ return priv->hide_by_request;
+}
+
EINTERN void
e_client_urgent_set(E_Client *ec, Eina_Bool urgent)
{
E_API void e_client_iconified_type_set(E_Client *ec, E_Iconified_Type type);
EINTERN E_Iconified_Type e_client_iconified_type_get(E_Client *ec);
E_API Eina_Bool e_client_is_iconified_by_client(E_Client *ec);
+EINTERN void e_client_hide_by_request_set(E_Client *ec, Eina_Bool set);
+EINTERN Eina_Bool e_client_hide_by_request_get(E_Client *ec);
EINTERN void e_client_urgent_set(E_Client *ec, Eina_Bool urgent);
EINTERN void e_client_stick(E_Client *ec);
EINTERN void e_client_unstick(E_Client *ec);
}
/* map or unmap ec */
- if (!e_pixmap_usable_get(ec->pixmap))
+ Eina_Bool pixmap_usable = e_pixmap_usable_get(ec->pixmap);
+ Eina_Bool hide_by_request = e_client_hide_by_request_get(ec);
+ if (!pixmap_usable || hide_by_request)
{
/* unmap ec */
if (cdata->mapped)
{
+ if (hide_by_request)
+ ELOGF("COMP", "Currenlty hide_by_request state. pixmap_usable:%d", ec, pixmap_usable);
+
if ((cdata->shell.surface) &&
(cdata->shell.unmap))
{
e_comp_wl_subsurface_restack_bg_rectangle(topmost);
}
- if (!e_pixmap_usable_get(ec->pixmap))
+ Eina_Bool pixmap_usable = e_pixmap_usable_get(ec->pixmap);
+ Eina_Bool hide_by_request = e_client_hide_by_request_get(ec);
+ if (!pixmap_usable || hide_by_request)
{
if (ec->comp_data->mapped)
{
+ if (hide_by_request)
+ ELOGF("COMP", "Currenlty hide_by_request state2. pixmap_usable:%d", ec, pixmap_usable);
+
if ((ec->comp_data->shell.surface) && (ec->comp_data->shell.unmap))
{
ELOGF("COMP", "Try to unmap2. Call shell.unmap.", ec);
EINA_SAFETY_ON_NULL_RETURN(ec->frame);
ELOGF("TZPOL", "Prepare SHOW (wait for buffer attach)", ec);
+ e_client_hide_by_request_set(ec, EINA_FALSE);
cdata = e_client_cdata_get(ec);
if (cdata && !cdata->mapped)
EINA_SAFETY_ON_NULL_RETURN(ec->frame);
ELOGF("TZPOL", "Prepare HIDE (wait for NULL buffer attach)", ec);
+ e_client_hide_by_request_set(ec, EINA_TRUE);
}
static void