summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlastair Poole <netstar@gmail.com>2020-03-12 16:52:41 +0000
committerAlastair Poole <netstar@gmail.com>2020-03-12 17:00:37 +0000
commitfcb48ef4022a49b147ad4daf4bb1f958d039b07a (patch)
treef6ffa1efad092b138b1efb63be267cfc98a98641
parenta004befea51e82899654cb583e03108c29a169a2 (diff)
downloadefl-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.c4
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