reduce shape recalc for clients which cannot currently receive input
This commit is contained in:
parent
610c439abd
commit
28d6eecceb
|
@ -646,6 +646,8 @@ _e_comp_object_done_defer(void *data, Evas_Object *obj EINA_UNUSED, const char *
|
||||||
/* hide only after animation finishes to guarantee a full run of the animation */
|
/* hide only after animation finishes to guarantee a full run of the animation */
|
||||||
if (cw->defer_hide && (!strcmp(emission, "e,action,hide,done")))
|
if (cw->defer_hide && (!strcmp(emission, "e,action,hide,done")))
|
||||||
evas_object_hide(cw->smart_obj);
|
evas_object_hide(cw->smart_obj);
|
||||||
|
else if (!cw->animating)
|
||||||
|
e_comp_shape_queue(cw->comp);
|
||||||
}
|
}
|
||||||
|
|
||||||
/////////////////////////////////////////////
|
/////////////////////////////////////////////
|
||||||
|
@ -1970,8 +1972,11 @@ _e_comp_smart_show(Evas_Object *obj)
|
||||||
if (cw->ec->internal_elm_win && (!evas_object_visible_get(cw->ec->internal_elm_win)))
|
if (cw->ec->internal_elm_win && (!evas_object_visible_get(cw->ec->internal_elm_win)))
|
||||||
evas_object_show(cw->ec->internal_elm_win);
|
evas_object_show(cw->ec->internal_elm_win);
|
||||||
e_comp_render_queue(cw->comp);
|
e_comp_render_queue(cw->comp);
|
||||||
e_comp_shape_queue(cw->comp);
|
if (cw->ec->input_only)
|
||||||
if (cw->ec->input_only) return;
|
{
|
||||||
|
e_comp_shape_queue(cw->comp);
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (cw->ec->iconic && (!cw->ec->new_client))
|
if (cw->ec->iconic && (!cw->ec->new_client))
|
||||||
e_comp_object_signal_emit(cw->smart_obj, "e,action,uniconify", "e");
|
e_comp_object_signal_emit(cw->smart_obj, "e,action,uniconify", "e");
|
||||||
else
|
else
|
||||||
|
@ -1983,7 +1988,10 @@ _e_comp_smart_show(Evas_Object *obj)
|
||||||
}
|
}
|
||||||
/* ensure some random effect doesn't lock the client offscreen */
|
/* ensure some random effect doesn't lock the client offscreen */
|
||||||
if (!cw->animating)
|
if (!cw->animating)
|
||||||
e_comp_object_effect_set(obj, NULL);
|
{
|
||||||
|
e_comp_object_effect_set(obj, NULL);
|
||||||
|
e_comp_shape_queue(cw->comp);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -2106,7 +2114,8 @@ _e_comp_smart_resize(Evas_Object *obj, int w, int h)
|
||||||
}
|
}
|
||||||
if (!cw->visible) return;
|
if (!cw->visible) return;
|
||||||
e_comp_render_queue(cw->comp);
|
e_comp_render_queue(cw->comp);
|
||||||
e_comp_shape_queue(cw->comp);
|
if (!cw->animating)
|
||||||
|
e_comp_shape_queue(cw->comp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -3502,7 +3511,8 @@ _e_comp_object_effect_end_cb(void *data, Evas_Object *obj, const char *emission,
|
||||||
{
|
{
|
||||||
cw->comp->animating--;
|
cw->comp->animating--;
|
||||||
cw->animating--;
|
cw->animating--;
|
||||||
e_object_unref(E_OBJECT(cw->ec));
|
if (e_object_unref(E_OBJECT(cw->ec)))
|
||||||
|
e_comp_shape_queue(cw->comp);
|
||||||
}
|
}
|
||||||
|
|
||||||
end_cb = evas_object_data_get(obj, "_e_comp.end_cb");
|
end_cb = evas_object_data_get(obj, "_e_comp.end_cb");
|
||||||
|
|
Loading…
Reference in New Issue