evas event handling4- fix more corner cases where bounding is bad
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>
Fri, 8 Jul 2016 00:54:33 +0000 (09:54 +0900)
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>
Fri, 8 Jul 2016 01:17:56 +0000 (10:17 +0900)
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
src/lib/evas/canvas/evas_map.c
src/lib/evas/canvas/evas_object_main.c

index b4b899b..519ece2 100644 (file)
@@ -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);
index 72d4169..852c18b 100644 (file)
@@ -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);
 }
 
index ec5b310..7c36a0a 100644 (file)
@@ -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);
 }