evas_object_box: respect static clipper.

Check here for a static clipper else  the clipper
will move. This causes problems with very large boxes where
content will stop rendering due to the clipper moving.

Originally this wasn't meant to move but this was missed with the
API changes. It wasn't noticed as the clipper default size is
very large.

See: src/lib/evas/canvas/evas_object_smart.c.

If we exceed the 10k range content does not render due to the
move.

@fix
This commit is contained in:
Alastair Poole 2020-03-12 16:52:41 +00:00
parent a004befea5
commit fcb48ef402
1 changed files with 3 additions and 1 deletions

View File

@ -445,7 +445,9 @@ _evas_box_efl_gfx_entity_position_set(Eo *o, Evas_Object_Box_Data *_pd EINA_UNUS
if (_evas_object_intercept_call(o, EVAS_OBJECT_INTERCEPT_CB_MOVE , 0, pos.x, pos.y))
return;
efl_gfx_entity_position_set(cso->clipper, pos);
if (!evas_object_static_clip_get(cso->clipper))
efl_gfx_entity_position_set(cso->clipper, pos);
/* this skips the call to _evas_object_smart_clipped_smart_move_internal
* since box internals will automatically recalc all the child positions
* at a later point