return EINA_FALSE;
}
+static Eina_Bool
+_e_vis_client_norender_need(E_Client *ec)
+{
+ if (!ec) return EINA_TRUE;
+ if (!ec->icccm.name) return EINA_TRUE;
+
+ if (!e_util_strcmp(ec->icccm.name, "DimWindow") ||
+ !e_util_strcmp(ec->icccm.name, "MaskWindow"))
+ return EINA_FALSE;
+
+ return EINA_TRUE;
+}
+
static Eina_Bool
_e_vis_job_add(E_Vis_Client *vc, E_Vis_Job_Type type, Ecore_Task_Cb timeout_func)
{
(job->type == E_VIS_JOB_TYPE_HIDE) ||
(job->type == E_VIS_JOB_TYPE_ICONIFY) ||
(job->type == E_VIS_JOB_TYPE_LAYER_LOWER))
- e_comp_canvas_norender_push_except_video();
+ {
+ if (_e_vis_client_norender_need(vc->ec))
+ e_comp_canvas_norender_push_except_video();
+ }
return EINA_TRUE;
}
(job->type == E_VIS_JOB_TYPE_HIDE) ||
(job->type == E_VIS_JOB_TYPE_ICONIFY) ||
(job->type == E_VIS_JOB_TYPE_LAYER_LOWER))
- e_comp_canvas_norender_pop_except_video();
+ {
+ if (_e_vis_client_norender_need(job->vc->ec))
+ e_comp_canvas_norender_pop_except_video();
+ }
VS_INF(job->vc->ec, "FREE JOB:%p, type:%d", job, job->type);
E_FREE_FUNC(job->timer, ecore_timer_del);
(job->type == E_VIS_JOB_TYPE_HIDE) ||
(job->type == E_VIS_JOB_TYPE_ICONIFY) ||
(job->type == E_VIS_JOB_TYPE_LAYER_LOWER))
- e_comp_canvas_norender_pop_except_video();
+ {
+ if (_e_vis_client_norender_need(job->vc->ec))
+ e_comp_canvas_norender_pop_except_video();
+ }
goto end;
}
ec->exp_iconify.not_raise = 0;
break;
case E_VIS_JOB_TYPE_LOWER:
- e_comp_canvas_norender_pop_except_video();
+ if (_e_vis_client_norender_need(ec))
+ e_comp_canvas_norender_pop_except_video();
+
if (ec)
{
e_client_lower(ec);
}
break;
case E_VIS_JOB_TYPE_HIDE:
- e_comp_canvas_norender_pop_except_video();
+ if (_e_vis_client_norender_need(ec))
+ e_comp_canvas_norender_pop_except_video();
+
if (ec) evas_object_hide(ec->frame);
break;
case E_VIS_JOB_TYPE_LAYER_LOWER:
- e_comp_canvas_norender_pop_except_video();
+ if (_e_vis_client_norender_need(ec))
+ e_comp_canvas_norender_pop_except_video();
+
if (vc) e_client_layer_set(ec, vc->layer);
break;
case E_VIS_JOB_TYPE_ICONIFY:
- e_comp_canvas_norender_pop_except_video();
+ if (_e_vis_client_norender_need(ec))
+ e_comp_canvas_norender_pop_except_video();
+
e_client_iconify(ec);
break;
case E_VIS_JOB_TYPE_SHOW: