From e57084d5c5b8b55a4823952ba43c61a15457e369 Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Fri, 8 Jul 2016 09:54:33 +0900 Subject: [PATCH] evas event handling4- fix more corner cases where bounding is bad so smart object bounding box wasnt updated properly in several other cases. fix those other cases too by dirtying bounding box region. this continues on from: f6b3c31561276a6c7afc8fb56ae2e5363772782c 25d77bc1d24d9fd539c681fa58db976c1ca65051 9f0fd66ab818d212fa88faef316ac17625f1a2f5 this fixes T4017 @fix --- src/lib/evas/canvas/evas_clip.c | 2 ++ src/lib/evas/canvas/evas_map.c | 7 +++++-- src/lib/evas/canvas/evas_object_main.c | 2 ++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/lib/evas/canvas/evas_clip.c b/src/lib/evas/canvas/evas_clip.c index b4b899b682..519ece2985 100644 --- a/src/lib/evas/canvas/evas_clip.c +++ b/src/lib/evas/canvas/evas_clip.c @@ -377,6 +377,7 @@ _efl_canvas_object_clip_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, Evas_Ob evas_object_change(eo_clip, clip); evas_object_change(eo_obj, obj); + evas_object_update_bounding_box(eo_obj, obj, NULL); evas_object_clip_dirty(eo_obj, obj); evas_object_recalc_clippees(obj); if ((!obj->is_smart) && @@ -459,6 +460,7 @@ _efl_canvas_object_clip_unset(Eo *eo_obj, Evas_Object_Protected_Data *obj) eo_event_callback_del(old_clip->object, EO_EVENT_DEL, _clipper_del_cb, eo_obj); } + evas_object_update_bounding_box(eo_obj, obj, NULL); evas_object_change(eo_obj, obj); evas_object_clip_dirty(eo_obj, obj); evas_object_recalc_clippees(obj); diff --git a/src/lib/evas/canvas/evas_map.c b/src/lib/evas/canvas/evas_map.c index 72d41694d1..852c18b6ab 100644 --- a/src/lib/evas/canvas/evas_map.c +++ b/src/lib/evas/canvas/evas_map.c @@ -526,11 +526,11 @@ _map_map_enable_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, if (!parents) break; parents->child_has_map = EINA_TRUE; } + evas_object_update_bounding_box(eo_obj, obj, NULL); } else { - if (_evas_object_map_parent_check(obj->smart.parent)) - evas_object_update_bounding_box(eo_obj, obj, NULL); + evas_object_update_bounding_box(eo_obj, obj, NULL); } } @@ -605,6 +605,7 @@ evas_object_map_set(Evas_Object *eo_obj, const Evas_Map *map) if (!obj->map->prev.map) { + evas_object_update_bounding_box(eo_obj, obj, NULL); evas_object_mapped_clip_across_mark(eo_obj, obj); return; } @@ -614,6 +615,7 @@ evas_object_map_set(Evas_Object *eo_obj, const Evas_Map *map) if (obj->map->cur.usemap) evas_object_mapped_clip_across_mark(eo_obj, obj); } + evas_object_update_bounding_box(eo_obj, obj, NULL); return; } @@ -648,6 +650,7 @@ evas_object_map_set(Evas_Object *eo_obj, const Evas_Map *map) evas_object_mapped_clip_across_mark(eo_obj, obj); } + evas_object_update_bounding_box(eo_obj, obj, NULL); _evas_map_calc_map_geometry(eo_obj); } diff --git a/src/lib/evas/canvas/evas_object_main.c b/src/lib/evas/canvas/evas_object_main.c index ec5b3106f4..7c36a0a6e8 100644 --- a/src/lib/evas/canvas/evas_object_main.c +++ b/src/lib/evas/canvas/evas_object_main.c @@ -1428,6 +1428,7 @@ _show(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj) } } } + evas_object_update_bounding_box(eo_obj, obj, NULL); evas_object_inform_call_show(eo_obj); } @@ -1550,6 +1551,7 @@ _hide(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj) obj->mouse_in = 0; */ } + evas_object_update_bounding_box(eo_obj, obj, NULL); evas_object_inform_call_hide(eo_obj); }