ensure clients are visible before triggering shape/render queue

This commit is contained in:
Mike Blumenkrantz 2014-12-07 17:15:56 -05:00
parent 029104921d
commit 3e50ac6e27
1 changed files with 11 additions and 3 deletions

View File

@ -970,8 +970,11 @@ _e_comp_intercept_layer_set(void *data, Evas_Object *obj, int layer)
{
E_Client *ec;
e_comp_shape_queue(cw->comp);
e_comp_render_queue(cw->comp);
if (cw->visible)
{
e_comp_shape_queue(cw->comp);
e_comp_render_queue(cw->comp);
}
ec = e_client_above_get(cw->ec);
if (ec && (evas_object_layer_get(ec->frame) != evas_object_layer_get(obj)))
{
@ -1041,6 +1044,7 @@ _e_comp_intercept_layer_set(void *data, Evas_Object *obj, int layer)
/* can't stack a client above its own layer marker */
CRI("STACKING ERROR!!!");
}
if (!cw->visible) return;
e_comp_render_queue(cw->comp);
e_comp_shape_queue(cw->comp);
}
@ -1144,6 +1148,7 @@ _e_comp_intercept_stack_helper(E_Comp_Object *cw, Evas_Object *stack, E_Comp_Obj
}
if (cw->ec->new_client || (!ecstack) || (ecstack->frame != o))
evas_object_data_del(cw->smart_obj, "client_restack");
if (!cw->visible) return;
e_comp_render_queue(cw->comp);
e_comp_shape_queue(cw->comp);
}
@ -1185,6 +1190,7 @@ _e_comp_intercept_lower(void *data, Evas_Object *obj)
evas_object_data_set(obj, "client_restack", (void*)1);
evas_object_lower(obj);
evas_object_data_del(obj, "client_restack");
if (!cw->visible) return;
e_comp_render_queue(cw->comp);
e_comp_shape_queue(cw->comp);
}
@ -1217,6 +1223,7 @@ _e_comp_intercept_raise(void *data, Evas_Object *obj)
if (e_client_focus_track_enabled())
e_client_raise_latest_set(cw->ec); //modify raise list if necessary
}
if (!cw->visible) return;
e_comp_render_queue(cw->comp);
e_comp_shape_queue(cw->comp);
}
@ -2043,7 +2050,7 @@ _e_comp_smart_move(Evas_Object *obj, int x, int y)
if (cw->input_obj)
evas_object_geometry_set(cw->input_obj, cw->x + cw->input_rect.x, cw->y + cw->input_rect.y, cw->input_rect.w, cw->input_rect.h);
/* this gets called once during setup to init coords offscreen and guarantee first move */
if (cw->comp)
if (cw->comp && cw->visible)
e_comp_shape_queue(cw->comp);
}
@ -2096,6 +2103,7 @@ _e_comp_smart_resize(Evas_Object *obj, int w, int h)
{
evas_object_resize(cw->effect_obj, w, h);
}
if (!cw->visible) return;
e_comp_render_queue(cw->comp);
e_comp_shape_queue(cw->comp);
}