forked from enlightenment/efl
Revert "Revert "canvas vg: fix up a regression error by file_load(),""
This reverts commit fd01eec0f5
.
This commit is contained in:
parent
deb0756e60
commit
44145cd1d4
|
@ -244,6 +244,37 @@ _efl_canvas_vg_object_viewbox_align_get(const Eo *obj EINA_UNUSED, Efl_Canvas_Vg
|
||||||
if (align_y) *align_y = pd->align_y;
|
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
|
EOLIAN static Eina_Error
|
||||||
_efl_canvas_vg_object_efl_file_load(Eo *eo_obj, Efl_Canvas_Vg_Object_Data *pd)
|
_efl_canvas_vg_object_efl_file_load(Eo *eo_obj, Efl_Canvas_Vg_Object_Data *pd)
|
||||||
{
|
{
|
||||||
|
@ -255,16 +286,13 @@ _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 Eina_File *file = efl_file_mmap_get(eo_obj);
|
||||||
const char *key = efl_file_key_get(eo_obj);
|
const char *key = efl_file_key_get(eo_obj);
|
||||||
Vg_Cache_Entry *old_entry;
|
|
||||||
Evas_Object_Protected_Data *obj;
|
Evas_Object_Protected_Data *obj;
|
||||||
|
|
||||||
obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
|
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,
|
pd->vg_entry = evas_cache_vg_entry_create(file, key,
|
||||||
obj->cur->geometry.w,
|
obj->cur->geometry.w,
|
||||||
obj->cur->geometry.h);
|
obj->cur->geometry.h);
|
||||||
evas_object_change(eo_obj, obj);
|
evas_object_change(eo_obj, obj);
|
||||||
evas_cache_vg_entry_del(old_entry);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -84,6 +84,7 @@ class @beta Efl.Canvas.Vg.Object extends Efl.Canvas.Object implements Efl.File,
|
||||||
Efl.Object.destructor;
|
Efl.Object.destructor;
|
||||||
Efl.File.load;
|
Efl.File.load;
|
||||||
Efl.File.unload;
|
Efl.File.unload;
|
||||||
|
Efl.File.file { set; }
|
||||||
Efl.File_Save.save;
|
Efl.File_Save.save;
|
||||||
Efl.Gfx.Frame_Controller.animated { get; }
|
Efl.Gfx.Frame_Controller.animated { get; }
|
||||||
Efl.Gfx.Frame_Controller.frame { get; set; }
|
Efl.Gfx.Frame_Controller.frame { get; set; }
|
||||||
|
|
Loading…
Reference in New Issue