forked from enlightenment/efl
evas - fixed side effect caused by f4d24e962d
since the map_changed is reset right after the map is updated, it could not decide to redraw the map surface properly. now map_update() returns the value to redraw the map surface properly.
This commit is contained in:
parent
8dc6adbf9c
commit
a76e751eb4
|
@ -1217,7 +1217,11 @@ evas_map_util_clockwise_get(Evas_Map *m)
|
|||
return EINA_FALSE;
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
/****************************************************************************/
|
||||
/* If the return value is true, the map surface should be redrawn. */
|
||||
/****************************************************************************/
|
||||
Eina_Bool
|
||||
evas_object_map_update(Evas_Object *eo_obj,
|
||||
int x, int y,
|
||||
int imagew, int imageh,
|
||||
|
@ -1227,7 +1231,7 @@ evas_object_map_update(Evas_Object *eo_obj,
|
|||
const Evas_Map_Point *p, *p_end;
|
||||
RGBA_Map_Point *pts, *pt;
|
||||
|
||||
if (!obj) return;
|
||||
if (!obj) return EINA_FALSE;
|
||||
if (obj->map->spans)
|
||||
{
|
||||
if (obj->map->spans->x != x || obj->map->spans->y != y ||
|
||||
|
@ -1240,7 +1244,7 @@ evas_object_map_update(Evas_Object *eo_obj,
|
|||
obj->changed_map = EINA_TRUE;
|
||||
}
|
||||
|
||||
if (!obj->changed_map) return;
|
||||
if (!obj->changed_map) return EINA_FALSE;
|
||||
|
||||
if (obj->map->cur.map && obj->map->spans && obj->map->cur.map->count != obj->map->spans->count)
|
||||
{
|
||||
|
@ -1264,7 +1268,7 @@ evas_object_map_update(Evas_Object *eo_obj,
|
|||
EINA_COW_WRITE_END(evas_object_map_cow, obj->map, map_write);
|
||||
}
|
||||
|
||||
if (!obj->map->spans) return;
|
||||
if (!obj->map->spans) return EINA_FALSE;
|
||||
|
||||
EINA_COW_WRITE_BEGIN(evas_object_map_cow, obj->map, Evas_Object_Map_Data, map_write)
|
||||
{
|
||||
|
@ -1319,4 +1323,6 @@ evas_object_map_update(Evas_Object *eo_obj,
|
|||
// Request engine to update it's point
|
||||
|
||||
obj->changed_map = EINA_FALSE;
|
||||
|
||||
return obj->changed_pchange;
|
||||
}
|
||||
|
|
|
@ -1227,7 +1227,8 @@ evas_render_mapped(Evas_Public_Data *e, Evas_Object *eo_obj,
|
|||
RD(" }\n");
|
||||
return clean_them;
|
||||
}
|
||||
evas_object_map_update(eo_obj, off_x, off_y, sw, sh, sw, sh);
|
||||
|
||||
changed = evas_object_map_update(eo_obj, off_x, off_y, sw, sh, sw, sh);
|
||||
|
||||
if (obj->map->surface)
|
||||
{
|
||||
|
|
|
@ -1262,7 +1262,7 @@ void evas_render_object_recalc(Evas_Object *obj);
|
|||
|
||||
Eina_Bool evas_map_inside_get(const Evas_Map *m, Evas_Coord x, Evas_Coord y);
|
||||
Eina_Bool evas_map_coords_get(const Evas_Map *m, Evas_Coord x, Evas_Coord y, Evas_Coord *mx, Evas_Coord *my, int grab);
|
||||
void evas_object_map_update(Evas_Object *obj, int x, int y, int imagew, int imageh, int uvw, int uvh);
|
||||
Eina_Bool evas_object_map_update(Evas_Object *obj, int x, int y, int imagew, int imageh, int uvw, int uvh);
|
||||
|
||||
Eina_List *evas_module_engine_list(void);
|
||||
|
||||
|
|
Loading…
Reference in New Issue