diff options
Diffstat (limited to 'src/lib/evas')
-rw-r--r-- | src/lib/evas/canvas/evas_object_main.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/lib/evas/canvas/evas_object_main.c b/src/lib/evas/canvas/evas_object_main.c index e0f02da945..69e2fcf219 100644 --- a/src/lib/evas/canvas/evas_object_main.c +++ b/src/lib/evas/canvas/evas_object_main.c | |||
@@ -364,11 +364,29 @@ evas_object_clip_recalc_do(Evas_Object_Protected_Data *obj, Evas_Object_Protecte | |||
364 | int cx, cy, cw, ch, cr, cg, cb, ca; | 364 | int cx, cy, cw, ch, cr, cg, cb, ca; |
365 | int nx, ny, nw, nh, nr, ng, nb, na; | 365 | int nx, ny, nw, nh, nr, ng, nb, na; |
366 | Eina_Bool cvis, nvis; | 366 | Eina_Bool cvis, nvis; |
367 | Evas_Public_Data *e; | ||
367 | 368 | ||
368 | evas_object_coords_recalc(obj->object, obj); | 369 | evas_object_coords_recalc(obj->object, obj); |
369 | 370 | ||
370 | if (EINA_UNLIKELY((!!obj->map) && (obj->map->cur.map) && (obj->map->cur.usemap))) | 371 | if (EINA_UNLIKELY((!!obj->map) && (obj->map->cur.map) && (obj->map->cur.usemap))) |
371 | { | 372 | { |
373 | e = obj->layer->evas; | ||
374 | if (!evas_object_is_active(obj->object, obj) && | ||
375 | ((obj->map->cur.map->normal_geometry.x + | ||
376 | obj->map->cur.map->normal_geometry.w <= 0) || | ||
377 | (obj->map->cur.map->normal_geometry.y + | ||
378 | obj->map->cur.map->normal_geometry.h <= 0) || | ||
379 | (obj->map->cur.map->normal_geometry.x >= e->output.w) || | ||
380 | obj->map->cur.map->normal_geometry.y >= e->output.h)) | ||
381 | { | ||
382 | /* out of screen, but need to calc map geometry to update cache */ | ||
383 | cy = obj->map->cur.map->normal_geometry.y; | ||
384 | cx = obj->map->cur.map->normal_geometry.x; | ||
385 | cw = obj->cur->geometry.w; | ||
386 | ch = obj->cur->geometry.h; | ||
387 | evas_object_map_update(obj->object, cx, cy, cw, ch, cw, ch); | ||
388 | } | ||
389 | |||
372 | cx = obj->map->cur.map->normal_geometry.x; | 390 | cx = obj->map->cur.map->normal_geometry.x; |
373 | cy = obj->map->cur.map->normal_geometry.y; | 391 | cy = obj->map->cur.map->normal_geometry.y; |
374 | cw = obj->map->cur.map->normal_geometry.w; | 392 | cw = obj->map->cur.map->normal_geometry.w; |