forked from enlightenment/efl
Revert "canvas vg: fix up a regression error by file_load(),"
This reverts commit d696a12ac7
.
This commit is contained in:
parent
d696a12ac7
commit
fd01eec0f5
|
@ -244,37 +244,6 @@ _efl_canvas_vg_object_viewbox_align_get(const Eo *obj EINA_UNUSED, Efl_Canvas_Vg
|
|||
if (align_y) *align_y = pd->align_y;
|
||||
}
|
||||
|
||||
EOLIAN static Eina_Error
|
||||
_efl_canvas_vg_object_efl_file_file_set(Eo *eo_obj, Efl_Canvas_Vg_Object_Data *pd EINA_UNUSED, const char *file)
|
||||
{
|
||||
/* Careful: delete previous vg entry.
|
||||
When a new efl file is set, ex-file will be invalid.
|
||||
Since vg cache hashes all file entries,
|
||||
we must remove it from vg cache before we lost file handle. */
|
||||
if (efl_file_loaded_get(eo_obj))
|
||||
{
|
||||
const char *pname = efl_file_get(eo_obj);
|
||||
int pl = pname ? strlen(pname) : 0;
|
||||
int cl = file ? strlen(file) : 0;
|
||||
|
||||
if ((pl != cl) || strcmp(pname, file))
|
||||
{
|
||||
Evas_Object_Protected_Data *obj;
|
||||
obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
|
||||
evas_cache_vg_entry_del(pd->vg_entry);
|
||||
evas_object_change(eo_obj, obj);
|
||||
pd->vg_entry = NULL;
|
||||
evas_object_change(eo_obj, obj);
|
||||
}
|
||||
}
|
||||
|
||||
Eina_Error err;
|
||||
err = efl_file_set(efl_super(eo_obj, MY_CLASS), file);
|
||||
if (err) return err;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
EOLIAN static Eina_Error
|
||||
_efl_canvas_vg_object_efl_file_load(Eo *eo_obj, Efl_Canvas_Vg_Object_Data *pd)
|
||||
{
|
||||
|
@ -286,14 +255,17 @@ _efl_canvas_vg_object_efl_file_load(Eo *eo_obj, Efl_Canvas_Vg_Object_Data *pd)
|
|||
|
||||
const Eina_File *file = efl_file_mmap_get(eo_obj);
|
||||
const char *key = efl_file_key_get(eo_obj);
|
||||
Vg_Cache_Entry *old_entry;
|
||||
Evas_Object_Protected_Data *obj;
|
||||
|
||||
obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
|
||||
old_entry = pd->vg_entry;
|
||||
pd->vg_entry = evas_cache_vg_entry_create(file, key,
|
||||
obj->cur->geometry.w,
|
||||
obj->cur->geometry.h,
|
||||
EINA_TRUE);
|
||||
evas_object_change(eo_obj, obj);
|
||||
evas_cache_vg_entry_del(old_entry);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -305,6 +277,7 @@ _efl_canvas_vg_object_efl_file_unload(Eo *eo_obj, Efl_Canvas_Vg_Object_Data *pd)
|
|||
obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
|
||||
evas_cache_vg_entry_del(pd->vg_entry);
|
||||
evas_object_change(eo_obj, obj);
|
||||
eina_stringshare_del(pd->key);
|
||||
pd->vg_entry = NULL;
|
||||
}
|
||||
|
||||
|
|
|
@ -84,7 +84,6 @@ class @beta Efl.Canvas.Vg.Object extends Efl.Canvas.Object implements Efl.File,
|
|||
Efl.Object.destructor;
|
||||
Efl.File.load;
|
||||
Efl.File.unload;
|
||||
Efl.File.file { set; }
|
||||
Efl.File_Save.save;
|
||||
Efl.Gfx.Frame_Controller.animated { get; }
|
||||
Efl.Gfx.Frame_Controller.frame { get; set; }
|
||||
|
|
|
@ -51,6 +51,8 @@ struct _Efl_Canvas_Vg_Object_Data
|
|||
double align_x, align_y;
|
||||
Efl_Canvas_Vg_Fill_Mode fill_mode;
|
||||
int frame_idx;
|
||||
Eina_File *file;
|
||||
Eina_Stringshare *key;
|
||||
int cached_frame_idx;
|
||||
|
||||
Eina_Bool changed : 1;
|
||||
|
|
Loading…
Reference in New Issue