if (canvas_vis)
{
- if (calc_region || skip_rot_pending_show)
+ if ((calc_region || skip_rot_pending_show) &&
+ (!ec->visibility.force_obscured))
{
it = eina_tiler_iterator_new(t);
EINA_ITERATOR_FOREACH(it, _r)
/* It prevents unwanted iconification of the top visible window
* while showing an window with rotation mode.
*/
- if (!skip_rot_pending_show)
+ if ((!skip_rot_pending_show) || (ec->visibility.force_obscured))
{
/* obscured case */
if (ec->visibility.obscured != E_VISIBILITY_FULLY_OBSCURED)
/* do nothing */
return;
}
+
+E_API void
+e_client_visibility_force_obscured_set(E_Client *ec, Eina_Bool set)
+{
+ EINA_SAFETY_ON_NULL_RETURN(ec);
+
+ ELOGF("TZVIS", "VIS_FORCE_OBSCURED :%d", ec->pixmap, ec, set);
+
+ ec->visibility.force_obscured = set;
+ e_client_visibility_calculate();
+}
int obscured;
unsigned char changed : 1;
Eina_Bool skip : 1;
+ Eina_Bool force_obscured : 1;
} visibility;
struct
E_API void e_remember_del(void *rem); /* TODO: should be removed */
+E_API void e_client_visibility_force_obscured_set(E_Client *ec, Eina_Bool set);
+
/**
* Move window to coordinates that do not account client decorations yet.
*
ELOGF("TZPOL", "ACTIVATE", ec->pixmap, ec);
- if ((!starting) && (!ec->focused))
+ if ((!starting) && (!ec->focused) && (!ec->visibility.force_obscured))
{
if (!e_policy_visibility_client_activate(ec))
{
EINA_SAFETY_ON_NULL_RETURN(ec);
EINA_SAFETY_ON_NULL_RETURN(ec->frame);
+ if (ec->visibility.force_obscured)
+ {
+ ec->exp_iconify.by_client = 0;
+ return;
+ }
+
if (e_policy_visibility_client_uniconify(ec, 1))
return;