diff --git a/data/images/Makefile.am b/data/images/Makefile.am
index 55fb33d7c..cbf4153a4 100644
--- a/data/images/Makefile.am
+++ b/data/images/Makefile.am
@@ -5,6 +5,7 @@ enlightenment.png \
test.png \
test.jpg \
test.edj \
+test.svg \
lang-bg_BG.png \
lang-ca_ES.png \
lang-cs_CZ.png \
diff --git a/data/images/test.svg b/data/images/test.svg
new file mode 100644
index 000000000..268b7399b
--- /dev/null
+++ b/data/images/test.svg
@@ -0,0 +1,74 @@
+
+
diff --git a/src/bin/e_main.c b/src/bin/e_main.c
index 11616d9de..6268dd7d0 100644
--- a/src/bin/e_main.c
+++ b/src/bin/e_main.c
@@ -83,7 +83,6 @@ static Eina_Bool _e_main_cb_eet_cacheburst_end(void *data __UNUSED__);
static Eina_Bool _e_main_cb_startup_fake_end(void *data __UNUSED__);
static void _e_main_desk_save(void);
static void _e_main_desk_restore(E_Manager *man, E_Container *con);
-static void _e_main_test_svg_loader(void);
/* local subsystem globals */
#define MAX_LEVEL 64
@@ -723,7 +722,7 @@ main(int argc, char **argv)
"loader support.\n"));
_e_main_shutdown(-1);
}
-
+
e_prefix_data_concat_static(buf, "data/images/test.edj");
evas_object_image_file_set(im, buf, "images/0");
if (evas_object_image_load_error_get(im) != EVAS_LOAD_ERROR_NONE)
@@ -749,6 +748,36 @@ main(int argc, char **argv)
}
}
+ e_init_status_set(_("Check SVG Support"));
+ TS("svg");
+ {
+ Ecore_Evas *ee;
+ Evas_Object *im;
+ char buf[PATH_MAX];
+
+ ee = ecore_evas_buffer_new(1, 1);
+ if (!ee)
+ {
+ e_error_message_show(_("Enlightenment found Evas can't create a buffer canvas. Please check\n"
+ "Evas has Software Buffer engine support.\n"));
+ _e_main_shutdown(-1);
+ }
+ e_canvas_add(ee);
+ im = evas_object_image_add(ecore_evas_get(ee));
+
+ e_prefix_data_concat_static(buf, "data/images/test.svg");
+ evas_object_image_file_set(im, buf, NULL);
+ if (evas_object_image_load_error_get(im) == EVAS_LOAD_ERROR_NONE)
+ {
+ efreet_icon_extension_add(".svg");
+ /* prefer png over svg */
+ efreet_icon_extension_add(".png");
+ }
+ evas_object_del(im);
+ e_canvas_del(ee);
+ ecore_evas_free(ee);
+ }
+
e_init_status_set(_("Setup Screens"));
TS("screens");
/* manage the root window */
@@ -811,7 +840,6 @@ main(int argc, char **argv)
*list = eina_list_prepend(*list, (void *)eina_stringshare_add(buf));
}
}
- _e_main_test_svg_loader();
efreet_icon_extension_add(".edj");
TS("efreet paths done");
@@ -1689,34 +1717,3 @@ _e_main_desk_restore(E_Manager *man, E_Container *con)
e_desk_show(desk);
}
}
-
-static void
-_e_main_test_svg_loader(void)
-{
- Evas_Imaging_Image *tmp;
- char file[] = "/tmp/e17-1341234234.svg";
- FILE *fp = fopen(file, "w");
- if (!fp) return;
-
- fputs(""
- "", fp);
- fclose(fp);
-
- tmp = evas_imaging_image_load (file, NULL);
- ecore_file_remove(file);
-
- if (tmp)
- {
- evas_imaging_image_free(tmp);
- efreet_icon_extension_add(".svg");
- /* prefer png over svg */
- efreet_icon_extension_add(".png");
- }
-}
diff --git a/src/bin/e_utils.c b/src/bin/e_utils.c
index 5c7b8079b..3256d4c45 100644
--- a/src/bin/e_utils.c
+++ b/src/bin/e_utils.c
@@ -1239,7 +1239,8 @@ e_util_image_import(const char *image_path, const char *edje_path, const char *e
{
static const char *tmpdir = NULL;
E_Util_Image_Import_Handle *handle;
- Evas_Imaging_Image *img;
+ Ecore_Evas *ee;
+ Evas_Object *img;
int fd, w, h;
const char *escaped_file;
char cmd[PATH_MAX * 2], tmpn[PATH_MAX];
@@ -1249,15 +1250,17 @@ e_util_image_import(const char *image_path, const char *edje_path, const char *e
if (!edje_path) return NULL;
if (!edje_group) return NULL;
if (!cb) return NULL;
-
- img = evas_imaging_image_load(image_path, NULL);
- if (!img)
+ ee = ecore_evas_buffer_new(1, 1);
+ img = evas_object_image_add(ecore_evas_get(ee));
+ evas_object_image_file_set(img, image_path, NULL);
+ if (evas_object_image_load_error_get(img) != EVAS_LOAD_ERROR_NONE)
{
+ ecore_evas_free(ee);
printf("Error loading image '%s'\n", image_path);
return NULL;
}
- evas_imaging_image_size_get(img, &w, &h);
- evas_imaging_image_free(img);
+ evas_object_image_size_get(img, &w, &h);
+ ecore_evas_free(ee);
if (!tmpdir)
{