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)
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
445 if (_evas_object_intercept_call(o, EVAS_OBJECT_INTERCEPT_CB_MOVE , 0, pos.x, pos.y)) 445 if (_evas_object_intercept_call(o, EVAS_OBJECT_INTERCEPT_CB_MOVE , 0, pos.x, pos.y))
446 return; 446 return;
447 447
448 efl_gfx_entity_position_set(cso->clipper, pos); 448 if (!evas_object_static_clip_get(cso->clipper))
449 efl_gfx_entity_position_set(cso->clipper, pos);
450
449 /* this skips the call to _evas_object_smart_clipped_smart_move_internal 451 /* this skips the call to _evas_object_smart_clipped_smart_move_internal
450 * since box internals will automatically recalc all the child positions 452 * since box internals will automatically recalc all the child positions
451 * at a later point 453 * at a later point