diff options
author | Alastair Poole <netstar@gmail.com> | 2020-03-12 16:52:41 +0000 |
---|---|---|
committer | Alastair Poole <netstar@gmail.com> | 2020-03-12 17:00:37 +0000 |
commit | fcb48ef4022a49b147ad4daf4bb1f958d039b07a (patch) | |
tree | f6ffa1efad092b138b1efb63be267cfc98a98641 | |
parent | a004befea51e82899654cb583e03108c29a169a2 (diff) | |
download | efl-fcb48ef4022a49b147ad4daf4bb1f958d039b07a.tar.gz |
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
-rw-r--r-- | src/lib/evas/canvas/evas_object_box.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/lib/evas/canvas/evas_object_box.c b/src/lib/evas/canvas/evas_object_box.c index 7853ee3e10..e591bae0e5 100644 --- a/src/lib/evas/canvas/evas_object_box.c +++ b/src/lib/evas/canvas/evas_object_box.c @@ -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 |