summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bin/e_comp_object.c28
1 files changed, 19 insertions, 9 deletions
diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index b1a699f6d..149387dbc 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -296,6 +296,21 @@ _e_comp_object_layers_remove(E_Comp_Object *cw)
296 296
297///////////////////////////////////// 297/////////////////////////////////////
298static void 298static void
299_e_comp_object_updates_init(E_Comp_Object *cw)
300{
301 int pw, ph;
302
303 if (cw->updates) return;
304 pw = cw->ec->client.w, ph = cw->ec->client.h;
305 if ((!pw) || (!ph))
306 e_pixmap_size_get(cw->ec->pixmap, &pw, &ph);
307 cw->updates = eina_tiler_new(pw, ph);
308 if (cw->updates)
309 eina_tiler_tile_size_set(cw->updates, 1, 1);
310}
311
312
313static void
299_e_comp_object_alpha_set(E_Comp_Object *cw) 314_e_comp_object_alpha_set(E_Comp_Object *cw)
300{ 315{
301 Eina_Bool alpha = cw->ec->argb; 316 Eina_Bool alpha = cw->ec->argb;
@@ -1533,12 +1548,7 @@ _e_comp_intercept_show_helper(E_Comp_Object *cw)
1533 } 1548 }
1534 if ((!cw->updates) && (!cw->ec->input_only) && (!cw->ec->ignored)) 1549 if ((!cw->updates) && (!cw->ec->input_only) && (!cw->ec->ignored))
1535 { 1550 {
1536 int pw, ph; 1551 _e_comp_object_updates_init(cw);
1537
1538 pw = cw->ec->client.w, ph = cw->ec->client.h;
1539 if ((!pw) || (!ph))
1540 e_pixmap_size_get(cw->ec->pixmap, &pw, &ph);
1541 cw->updates = eina_tiler_new(pw, ph);
1542 if (!cw->updates) 1552 if (!cw->updates)
1543 { 1553 {
1544 cw->ec->changes.visible = !cw->ec->hidden; 1554 cw->ec->changes.visible = !cw->ec->hidden;
@@ -1547,8 +1557,6 @@ _e_comp_intercept_show_helper(E_Comp_Object *cw)
1547 return; 1557 return;
1548 } 1558 }
1549 } 1559 }
1550 if (cw->updates)
1551 eina_tiler_tile_size_set(cw->updates, 1, 1);
1552 if (cw->ec->new_client) 1560 if (cw->ec->new_client)
1553 { 1561 {
1554 /* ignore until client idler first run */ 1562 /* ignore until client idler first run */
@@ -3285,8 +3293,10 @@ e_comp_object_damage(Evas_Object *obj, int x, int y, int w, int h)
3285 Eina_Rectangle rect; 3293 Eina_Rectangle rect;
3286 API_ENTRY; 3294 API_ENTRY;
3287 3295
3288 if (cw->ec->input_only || (!cw->updates)) return; 3296 if (cw->ec->input_only) return;
3289 if (cw->nocomp) return; 3297 if (cw->nocomp) return;
3298 _e_comp_object_updates_init(cw);
3299 EINA_SAFETY_ON_NULL_RETURN(cw->updates);
3290 rect.x = x, rect.y = y; 3300 rect.x = x, rect.y = y;
3291 rect.w = w, rect.h = h; 3301 rect.w = w, rect.h = h;
3292 evas_object_smart_callback_call(obj, "damage", &rect); 3302 evas_object_smart_callback_call(obj, "damage", &rect);