[EGIT] [core/efl] master 01/01: eina vpath - improve docs and add app.tmp and usr.tmp vpaths too
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=411e140eaf9f51b9018e089d42ec1c8a8b5419ed commit 411e140eaf9f51b9018e089d42ec1c8a8b5419ed Author: Carsten Haitzler (Rasterman)Date: Fri Feb 23 16:26:30 2018 +0900 eina vpath - improve docs and add app.tmp and usr.tmp vpaths too definitely kaes the docs better with lots of sample paths and some indication of what these may map to in real life. --- src/lib/efreet/efreet.c | 1 + src/lib/eina/eina_internal.h | 1 + src/lib/eina/eina_vpath.c| 18 + src/lib/eina/eina_vpath.h| 90 4 files changed, 88 insertions(+), 22 deletions(-) diff --git a/src/lib/efreet/efreet.c b/src/lib/efreet/efreet.c index eb29b55f72..9c22d6386a 100644 --- a/src/lib/efreet/efreet.c +++ b/src/lib/efreet/efreet.c @@ -86,6 +86,7 @@ _efreet_efreet_app_interface_set(void) // not set or empty, a default equal to $HOME/.local/share should be // used. ENV_HOME_SET("XDG_DATA_HOME", ".local/share", data); + ENV_HOME_SET("XDG_TMP_HOME", ".local/tmp", tmp); // $XDG_CONFIG_HOME defines the base directory relative to which user // specific configuration files should be stored. If $XDG_CONFIG_HOME // is either not set or empty, a default equal to $HOME/.config should diff --git a/src/lib/eina/eina_internal.h b/src/lib/eina/eina_internal.h index 0c5adbb1cd..9324118c91 100644 --- a/src/lib/eina/eina_internal.h +++ b/src/lib/eina/eina_internal.h @@ -59,6 +59,7 @@ struct _Eina_Vpath_Interface_User const char *config; const char *cache; const char *run; + const char *tmp; }; /** diff --git a/src/lib/eina/eina_vpath.c b/src/lib/eina/eina_vpath.c index cb9ff972bb..9a31d74c58 100644 --- a/src/lib/eina/eina_vpath.c +++ b/src/lib/eina/eina_vpath.c @@ -35,7 +35,7 @@ _eina_vpath_data_get(const char *key) } -static char* +static char * _fallback_runtime_dir(const char *home) { char buf[PATH_MAX]; @@ -109,7 +109,7 @@ _fallback_runtime_dir(const char *home) return strdup(buf); } -static char* +static char * _fallback_home_dir() { char buf[PATH_MAX]; @@ -178,7 +178,7 @@ eina_vpath_shutdown(void) return EINA_TRUE; } -EAPI char* +EAPI char * eina_vpath_resolve(const char* path) { // XXX: implement parse of path then look up in hash if not just create @@ -306,14 +306,17 @@ eina_vpath_interface_app_set(const char *app_domain, Eina_Prefix *app_pfx) _eina_vpath_data_add("app.data", eina_prefix_data_get(app_pfx)); _eina_vpath_data_add("app.locale", eina_prefix_locale_get(app_pfx)); snprintf(buf, sizeof(buf), "%s/%s", -_eina_vpath_data_get("config"), app_domain); +_eina_vpath_data_get("usr.config"), app_domain); _eina_vpath_data_add("app.config", buf); snprintf(buf, sizeof(buf), "%s/%s", -_eina_vpath_data_get("cache"), app_domain); +_eina_vpath_data_get("usr.cache"), app_domain); _eina_vpath_data_add("app.cache", buf); snprintf(buf, sizeof(buf), "%s/%s", -_eina_vpath_data_get("data"), app_domain); +_eina_vpath_data_get("usr.data"), app_domain); _eina_vpath_data_add("app.local", buf); + snprintf(buf, sizeof(buf), "%s/%s", +_eina_vpath_data_get("usr.tmp"), app_domain); + _eina_vpath_data_add("app.tmp", buf); } EAPI void @@ -342,8 +345,9 @@ eina_vpath_interface_user_set(Eina_Vpath_Interface_User *user) ADD(config); ADD(cache); ADD(run); + ADD(tmp); #undef ADD if (free_run) - free((char*)user->run); + free((char *)user->run); } diff --git a/src/lib/eina/eina_vpath.h b/src/lib/eina/eina_vpath.h index 7927b4ad0b..36d1b595a4 100644 --- a/src/lib/eina/eina_vpath.h +++ b/src/lib/eina/eina_vpath.h @@ -3,29 +3,89 @@ #include "eina_prefix.h" -/* - * Eina_vpath - * eina vpath is a path that can be prefixed with a virtual path. +/** + * Eina vpath is a path that can be prefixed with a virtual path. * - * A virutla path can either start with (::) that indicates a virtual path, OR normal with / or ./ or ../ or ~ - * The char sequence in between (: and :) are used as key to lookup the real value. - * The key has to be set by a interface before, otherwise you will get a error. + * A virutal path can either start with (::) that indicates a virtual + * path with as the location, OR a normal path with / or a realative + * path like ./ or ../ or even shell common locatiors like ~/ or ~username/ + * + * The string between (: and :) is used as key to lookup the real value. + * The key has to be set by an interface before, otherwise you will get an + * error. + * + * Sample paths: + * + * ~/myfiles/file.png + * ~bob/dir/file.txt + * /path/to/file.cfg + * ./file/relative/path.txt + * file/relative/path.txt + * (:tmp:)/some-temp-file/file.txt + * (:home:)/myfiles/file.png + * + *
[EGIT] [core/efl] master 01/01: eina: Change assert_ptr_null to asset_ptr_eq(null)
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=bda5a0dd4ab730ddb3fbab90a38cdf33a807ae53 commit bda5a0dd4ab730ddb3fbab90a38cdf33a807ae53 Author: Lauro MouraDate: Thu Feb 22 20:37:11 2018 -0300 eina: Change assert_ptr_null to asset_ptr_eq(null) Summary: Again, ptr_null/nonnull were added in check 0.11, while we depend on 0.9.10. Test Plan: Run make check Reviewers: marcelhollerbach, cedric, felipealmeida Reviewed By: felipealmeida Differential Revision: https://phab.enlightenment.org/D5820 --- src/tests/eina/eina_test_vpath.c | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/tests/eina/eina_test_vpath.c b/src/tests/eina/eina_test_vpath.c index b09d2d5c9a..92e93a6f75 100644 --- a/src/tests/eina/eina_test_vpath.c +++ b/src/tests/eina/eina_test_vpath.c @@ -36,11 +36,11 @@ START_TEST(eina_test_vpath_invalid) ret = eina_init(); ck_assert_int_ne(ret, 0); - ck_assert_ptr_null(eina_vpath_resolve("(:asdfasdfafasdf")); - ck_assert_ptr_null(eina_vpath_resolve("(:missing_slash:)")); - ck_assert_ptr_null(eina_vpath_resolve("(:")); - ck_assert_ptr_null(eina_vpath_resolve("(:home:)")); - ck_assert_ptr_null(eina_vpath_resolve("(:wrong_meta_key:)/")); + ck_assert_ptr_eq(eina_vpath_resolve("(:asdfasdfafasdf"), NULL); + ck_assert_ptr_eq(eina_vpath_resolve("(:missing_slash:)"), NULL); + ck_assert_ptr_eq(eina_vpath_resolve("(:"), NULL); + ck_assert_ptr_eq(eina_vpath_resolve("(:home:)"), NULL); + ck_assert_ptr_eq(eina_vpath_resolve("(:wrong_meta_key:)/"), NULL); ret = eina_shutdown(); } --
[EGIT] [core/efl] master 01/01: mono: Whitelist some interfaces and classes
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=2fc4c91917ae303604092457d636bd0fce49724c commit 2fc4c91917ae303604092457d636bd0fce49724c Author: Lauro MouraDate: Thu Feb 22 20:22:51 2018 -0300 mono: Whitelist some interfaces and classes Summary: Among them, IO interfaces are needed by the new efl.Task. Test Plan: Run make check Reviewers: felipealmeida Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D5821 --- src/Makefile_Efl_Mono.am | 9 + 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/Makefile_Efl_Mono.am b/src/Makefile_Efl_Mono.am index de3b331e62..9344fbda2f 100644 --- a/src/Makefile_Efl_Mono.am +++ b/src/Makefile_Efl_Mono.am @@ -125,17 +125,10 @@ lib/evas/canvas/efl_vg_shape.eo.cs efl_eolian_blacklisted_files = \ lib/efl/interfaces/efl_io_buffer.eo.cs \ -lib/efl/interfaces/efl_io_closer.eo.cs \ lib/efl/interfaces/efl_io_positioner.eo.cs \ lib/efl/interfaces/efl_io_queue.eo.cs \ -lib/efl/interfaces/efl_io_reader.eo.cs \ lib/efl/interfaces/efl_io_sizer.eo.cs \ -lib/efl/interfaces/efl_io_writer.eo.cs \ -lib/efl/interfaces/efl_gfx_buffer.eo.cs \ -lib/efl/interfaces/efl_gfx_shape.eo.cs \ -lib/efl/interfaces/efl_gfx_gradient.eo.cs \ -lib/efl/interfaces/efl_gfx_gradient_linear.eo.cs \ -lib/efl/interfaces/efl_gfx_gradient_radial.eo.cs +lib/efl/interfaces/efl_gfx_buffer.eo.cs ecore_eolian_blacklisted_files = \ lib/ecore/efl_io_closer_fd.eo.cs \ --
[EGIT] [core/efl] master 05/05: eina: make eina_vpath_interface_app_set an internal function.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=d57b9a7d14afdc71f4da8265f7dac49deaf6a8c5 commit d57b9a7d14afdc71f4da8265f7dac49deaf6a8c5 Author: Cedric BailDate: Thu Feb 22 15:26:28 2018 -0800 eina: make eina_vpath_interface_app_set an internal function. I am wondering if this one shouldn't even be a private one and directly used by eina_prefix. --- src/lib/eina/eina_internal.h | 19 +++ src/lib/eina/eina_vpath.h | 17 - src/lib/elementary/elm_main.c | 5 - 3 files changed, 23 insertions(+), 18 deletions(-) diff --git a/src/lib/eina/eina_internal.h b/src/lib/eina/eina_internal.h index 79ec98a7bd..0c5adbb1cd 100644 --- a/src/lib/eina/eina_internal.h +++ b/src/lib/eina/eina_internal.h @@ -41,6 +41,8 @@ # endif #endif +#include "eina_prefix.h" + typedef struct _Eina_Vpath_Interface_User Eina_Vpath_Interface_User; struct _Eina_Vpath_Interface_User @@ -69,6 +71,23 @@ struct _Eina_Vpath_Interface_User EAPI void __eina_promise_cancel_all(void); /** + * Make the app specific paths accessable as virtual path + * + * This will create : + * - app.dir + * - app.bin + * - app.lib + * - app.data + * - app.locale + * - app.config + * - app.cache + * - app.local + * + * If you do NOT call this api the virtual paths for app.* will be unset + */ +EAPI void eina_vpath_interface_app_set(const char *app_name, Eina_Prefix *p); + +/** * Create the desktop specific vpaths * * The virtual paths will be named usr. diff --git a/src/lib/eina/eina_vpath.h b/src/lib/eina/eina_vpath.h index c279018cf1..7927b4ad0b 100644 --- a/src/lib/eina/eina_vpath.h +++ b/src/lib/eina/eina_vpath.h @@ -20,23 +20,6 @@ */ typedef const char* Eina_Vpath; -/** - * Make the app specific paths accessable as virtual path - * - * This will create : - * - app.dir - * - app.bin - * - app.lib - * - app.data - * - app.locale - * - app.config - * - app.cache - * - app.local - * - * If you do NOT call this api the virtual paths for app.* will be unset - */ -EAPI void eina_vpath_interface_app_set(const char *app_name, Eina_Prefix *p); - /* * Translate a virtual path into a normal path. * diff --git a/src/lib/elementary/elm_main.c b/src/lib/elementary/elm_main.c index 007e886c7f..646b2ee474 100644 --- a/src/lib/elementary/elm_main.c +++ b/src/lib/elementary/elm_main.c @@ -17,8 +17,11 @@ #include #include -#include "elm_priv.h" + +#include "eina_internal.h" #include "ecore_internal.h" + +#include "elm_priv.h" #include "elm_interface_scrollable.h" //we need those for legacy compatible code --
[EGIT] [core/efl] master 02/05: edje: silence warning due to vpath change.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=288284585b38a668d1be1c69bc7523ecb7d98019 commit 288284585b38a668d1be1c69bc7523ecb7d98019 Author: Cedric BailDate: Thu Feb 22 14:55:55 2018 -0800 edje: silence warning due to vpath change. --- src/lib/edje/edje_load.c | 7 --- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/lib/edje/edje_load.c b/src/lib/edje/edje_load.c index 6c749bcdb6..76964dd0d0 100644 --- a/src/lib/edje/edje_load.c +++ b/src/lib/edje/edje_load.c @@ -260,15 +260,16 @@ edje_file_collection_list(const char *file) { Eina_File *f; Eina_List *lst; + char *tmp; if ((!file) || (!*file)) return NULL; - file = eina_vpath_resolve(file); - f = eina_file_open(file, EINA_FALSE); + tmp = eina_vpath_resolve(file); + f = eina_file_open(tmp, EINA_FALSE); lst = edje_mmap_collection_list(f); eina_file_close(f); - free(file); + free(tmp); return lst; } --
[EGIT] [core/efl] master 03/05: efl: fix warning due to vpath change.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=16f604f4690e09eff4cdd6169ef936d99dbf58c4 commit 16f604f4690e09eff4cdd6169ef936d99dbf58c4 Author: Cedric BailDate: Thu Feb 22 14:56:31 2018 -0800 efl: fix warning due to vpath change. --- src/lib/efl/interfaces/efl_file.c | 12 +++- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/lib/efl/interfaces/efl_file.c b/src/lib/efl/interfaces/efl_file.c index 65060d858d..9f0be2e8a1 100644 --- a/src/lib/efl/interfaces/efl_file.c +++ b/src/lib/efl/interfaces/efl_file.c @@ -13,19 +13,21 @@ struct _Efl_File_Data static Eina_Bool _efl_file_file_set(Eo *obj, Efl_File_Data *pd, const char *file, const char *key) { + char *tmp = NULL; Eina_File *f = NULL; Eina_Bool r = EINA_FALSE; pd->error = EFL_IMAGE_LOAD_ERROR_DOES_NOT_EXIST; - if (file) + tmp = (char*)(file); + if (tmp) { -file = eina_vpath_resolve(file); +tmp = eina_vpath_resolve(tmp); } - if (file) + if (tmp) { -f = eina_file_open(file, EINA_FALSE); +f = eina_file_open(tmp, EINA_FALSE); if (!f) goto on_error; } @@ -36,7 +38,7 @@ _efl_file_file_set(Eo *obj, Efl_File_Data *pd, const char *file, const char *key on_error: - free(file); + free(tmp); return r; } --
[EGIT] [core/efl] master 04/05: eina: make eina_vpath_interface_user_set an internal API.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b575c416769bcab0eabaf7a68cc8129f81199606 commit b575c416769bcab0eabaf7a68cc8129f81199606 Author: Cedric BailDate: Thu Feb 22 14:57:36 2018 -0800 eina: make eina_vpath_interface_user_set an internal API. --- src/lib/efreet/efreet.c | 2 ++ src/lib/eina/eina_internal.h | 27 +++ src/lib/eina/eina_vpath.c| 1 + src/lib/eina/eina_vpath.h| 26 -- 4 files changed, 30 insertions(+), 26 deletions(-) diff --git a/src/lib/efreet/efreet.c b/src/lib/efreet/efreet.c index 1acbdbd8d7..eb29b55f72 100644 --- a/src/lib/efreet/efreet.c +++ b/src/lib/efreet/efreet.c @@ -10,6 +10,8 @@ #include #include +#include "eina_internal.h" + /* define macros and variable for using the eina logging system */ #define EFREET_MODULE_LOG_DOM /* no logging in this file */ diff --git a/src/lib/eina/eina_internal.h b/src/lib/eina/eina_internal.h index b5bdbad414..79ec98a7bd 100644 --- a/src/lib/eina/eina_internal.h +++ b/src/lib/eina/eina_internal.h @@ -41,6 +41,24 @@ # endif #endif +typedef struct _Eina_Vpath_Interface_User Eina_Vpath_Interface_User; + +struct _Eina_Vpath_Interface_User +{ + const char *desktop; + const char *documents; + const char *downloads; + const char *music; + const char *pictures; + const char *pub; + const char *templates; + const char *videos; + const char *data; + const char *config; + const char *cache; + const char *run; +}; + /** * @brief Cancels all pending promise/futures. * @@ -50,6 +68,15 @@ */ EAPI void __eina_promise_cancel_all(void); +/** + * Create the desktop specific vpaths + * + * The virtual paths will be named usr. + * + * If you do NOT call this api the virtual paths for usr.* will be unset. + */ +EAPI void eina_vpath_interface_user_set(Eina_Vpath_Interface_User *user); + #undef EAPI #define EAPI diff --git a/src/lib/eina/eina_vpath.c b/src/lib/eina/eina_vpath.c index e744265955..cb9ff972bb 100644 --- a/src/lib/eina/eina_vpath.c +++ b/src/lib/eina/eina_vpath.c @@ -1,5 +1,6 @@ #include +#include "eina_internal.h" #include "eina_private.h" static Eina_Hash *vpath_data = NULL; diff --git a/src/lib/eina/eina_vpath.h b/src/lib/eina/eina_vpath.h index 40adffeca1..c279018cf1 100644 --- a/src/lib/eina/eina_vpath.h +++ b/src/lib/eina/eina_vpath.h @@ -20,23 +20,6 @@ */ typedef const char* Eina_Vpath; - -typedef struct -{ - const char *desktop; - const char *documents; - const char *downloads; - const char *music; - const char *pictures; - const char *pub; - const char *templates; - const char *videos; - const char *data; - const char *config; - const char *cache; - const char *run; -} Eina_Vpath_Interface_User; - /** * Make the app specific paths accessable as virtual path * @@ -54,15 +37,6 @@ typedef struct */ EAPI void eina_vpath_interface_app_set(const char *app_name, Eina_Prefix *p); -/** - * Create the desktop specific vpaths - * - * The virtual paths will be named usr. - * - * If you do NOT call this api the virtual paths for usr.* will be unset. - */ -EAPI void eina_vpath_interface_user_set(Eina_Vpath_Interface_User *user); - /* * Translate a virtual path into a normal path. * --
[EGIT] [core/efl] master 01/05: emotion: silence warning due to vpath change.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=a7c402b501bef8e1b72b80727662bcd2c654f3f1 commit a7c402b501bef8e1b72b80727662bcd2c654f3f1 Author: Cedric BailDate: Thu Feb 22 14:55:31 2018 -0800 emotion: silence warning due to vpath change. --- src/lib/emotion/emotion_smart.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/emotion/emotion_smart.c b/src/lib/emotion/emotion_smart.c index 7e33a90a67..d84e5a1bd9 100644 --- a/src/lib/emotion/emotion_smart.c +++ b/src/lib/emotion/emotion_smart.c @@ -362,7 +362,7 @@ _efl_canvas_video_efl_file_file_set(Eo *obj EINA_UNUSED, Efl_Canvas_Video_Data * sd->video.h = 0; if ((file) && (file[0] != 0)) { -const char *file2 = NULL; +char *file2 = NULL; eina_stringshare_replace(>file, file); emotion_engine_instance_file_close(sd->engine_instance); --
[EGIT] [core/enlightenment] master 01/01: set E_GADGET_ANCHOR env var corresponding to the gadget sites anchor
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=f57cd82beb406adb90cdd0068647cd1bc57449f1 commit f57cd82beb406adb90cdd0068647cd1bc57449f1 Author: Mike BlumenkrantzDate: Thu Feb 22 17:08:42 2018 -0500 set E_GADGET_ANCHOR env var corresponding to the gadget sites anchor this value can change without destroying the gadget, but it can be helpful to have this data available during initial setup --- src/bin/e_gadget_runner.c | 43 --- 1 file changed, 36 insertions(+), 7 deletions(-) diff --git a/src/bin/e_gadget_runner.c b/src/bin/e_gadget_runner.c index 390e3eba9..cec75af4d 100644 --- a/src/bin/e_gadget_runner.c +++ b/src/bin/e_gadget_runner.c @@ -35,6 +35,7 @@ typedef struct Tooltip typedef struct Instance { E_Gadget_Site_Orient orient; + E_Gadget_Site_Anchor anchor; Evas_Object *box; Evas_Object *obj; Ecore_Exe *exe; @@ -114,6 +115,34 @@ runner_run(Instance *inst) e_util_env_set("E_GADGET_ORIENTATION", "Vertical"); break; } + if (inst->anchor) + { +if (inst->anchor & E_GADGET_SITE_ANCHOR_TOP) + { + if (inst->anchor & E_GADGET_SITE_ANCHOR_LEFT) + e_util_env_set("E_GADGET_ANCHOR", "Top,Left"); + else if (inst->anchor & E_GADGET_SITE_ANCHOR_RIGHT) + e_util_env_set("E_GADGET_ANCHOR", "Top,Right"); + else + e_util_env_set("E_GADGET_ANCHOR", "Top"); + } +else if (inst->anchor & E_GADGET_SITE_ANCHOR_BOTTOM) + { + if (inst->anchor & E_GADGET_SITE_ANCHOR_LEFT) + e_util_env_set("E_GADGET_ANCHOR", "Bottom,Left"); + else if (inst->anchor & E_GADGET_SITE_ANCHOR_RIGHT) + e_util_env_set("E_GADGET_ANCHOR", "Bottom,Right"); + else + e_util_env_set("E_GADGET_ANCHOR", "Bottom"); + } +else + { + if (inst->anchor & E_GADGET_SITE_ANCHOR_LEFT) + e_util_env_set("E_GADGET_ANCHOR", "Left"); + else if (inst->anchor & E_GADGET_SITE_ANCHOR_RIGHT) + e_util_env_set("E_GADGET_ANCHOR", "Right"); + } + } e_util_env_set("E_GADGET_ID", buf); unshare(CLONE_NEWPID); @@ -122,12 +151,14 @@ runner_run(Instance *inst) setns(ns_fd, CLONE_NEWPID); + e_util_env_set("E_GADGET_ANCHOR", NULL); e_util_env_set("E_GADGET_ORIENTATION", NULL); e_util_env_set("E_GADGET_ID", NULL); e_util_env_set("LD_PRELOAD", preload); free(preload); eina_hash_free_buckets(inst->allowed_pids); pid = ecore_exe_pid_get(inst->exe); + ecore_exe_data_set(inst->exe, inst); eina_hash_add(inst->allowed_pids, , (void*)1); } @@ -372,8 +403,9 @@ static void runner_site_anchor(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { Instance *inst = data; + inst->anchor = e_gadget_site_anchor_get(obj); if (inst->gadget_resource) - e_gadget_send_gadget_anchor(inst->gadget_resource, e_gadget_site_anchor_get(obj)); + e_gadget_send_gadget_anchor(inst->gadget_resource, inst->anchor); } static void @@ -417,12 +449,14 @@ runner_created(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { Instance *inst = data; if (inst->box != event_info) return; + inst->anchor = e_gadget_site_anchor_get(obj); e_gadget_configure_cb_set(inst->box, runner_gadget_configure); evas_object_smart_callback_del_full(obj, "gadget_created", runner_created, data); if (e_gadget_site_is_desklock(obj)) evas_object_show(inst->obj); else if (!e_desklock_state_get()) evas_object_show(inst->obj); + runner_run(inst); } @@ -861,8 +895,6 @@ gadget_create(Evas_Object *parent, Config_Item *ci, int *id, E_Gadget_Site_Orien evas_object_smart_callback_add(parent, "gadget_removed", runner_removed, inst); evas_object_smart_callback_add(parent, "gadget_site_anchor", runner_site_anchor, inst); evas_object_smart_callback_add(parent, "gadget_site_gravity", runner_site_gravity, inst); - runner_run(inst); - ecore_exe_data_set(inst->exe, inst); inst->base.obj = inst->box = elm_box_add(e_comp->elm); evas_object_data_set(inst->box, "runner", inst); evas_object_smart_callback_add(inst->box, "gadget_menu", runner_menu, inst); @@ -904,10 +936,7 @@ runner_exe_del(void *d EINA_UNUSED, int t EINA_UNUSED, Ecore_Exe_Event_Del *ev) if (ev->exit_code == 255) //exec error e_gadget_del(inst->box); else - { - runner_run(inst); - ecore_exe_data_set(inst->exe, inst); - } + runner_run(inst); break; case EXIT_MODE_DELETE: e_gadget_del(inst->box); --
[EGIT] [website/www-content] master 01/01: Wiki page e16 changed with summary [] by Pavel Sanda
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=c8a56985067bcf2ea50b7bfd28d118252f996add commit c8a56985067bcf2ea50b7bfd28d118252f996add Author: Pavel SandaDate: Thu Feb 22 13:56:37 2018 -0800 Wiki page e16 changed with summary [] by Pavel Sanda --- pages/e16.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/e16.txt b/pages/e16.txt index d0198678a..770cb69f6 100644 --- a/pages/e16.txt +++ b/pages/e16.txt @@ -3,7 +3,7 @@ {{page>incl:start-shortcuts}} About E16 -E16 is predecessor of the current E22 Enlightenment Window Manager, which is rather complete rewrite than incremental update of E16. Although most of the current development focus goes to E22, E16 is still under independent active development and some users prefer it to E22. In this sense E16 will keep it's name while incrementing the versions from 1.0.0 unlike the mainstream Enlightenment manager, which is likely going to increment it's E-suffix number. This page should summarize the li [...] +E16 is predecessor of the current E22 Enlightenment Window Manager, which is rather complete rewrite than incremental update of E16. Although most of the current development focus goes to E22, E16 is still under independent active development and some users prefer it to E22. In this sense E16 will keep its name while incrementing the versions from 1.0.0 unlike the mainstream Enlightenment manager, which is likely going to increment its E-suffix number. This page should summarize the link [...] Download --
[EGIT] [website/www-content] master 01/01: Wiki page e16 changed with summary [] by Pavel Sanda
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=b990052041ba521bcc86b4667bf77541add76f71 commit b990052041ba521bcc86b4667bf77541add76f71 Author: Pavel SandaDate: Thu Feb 22 13:55:13 2018 -0800 Wiki page e16 changed with summary [] by Pavel Sanda --- pages/e16.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/e16.txt b/pages/e16.txt index a3696e2a0..d0198678a 100644 --- a/pages/e16.txt +++ b/pages/e16.txt @@ -3,7 +3,7 @@ {{page>incl:start-shortcuts}} About E16 -E16 is predecessor of the current E22 Enlightenment Window Manager. Although most of the current development focus goes to E22, E16 is still under active development and some users prefer it to E22. This page should summarize the links related to E16. +E16 is predecessor of the current E22 Enlightenment Window Manager, which is rather complete rewrite than incremental update of E16. Although most of the current development focus goes to E22, E16 is still under independent active development and some users prefer it to E22. In this sense E16 will keep it's name while incrementing the versions from 1.0.0 unlike the mainstream Enlightenment manager, which is likely going to increment it's E-suffix number. This page should summarize the li [...] Download --
[EGIT] [website/www-content] master 01/01: Wiki page download-e16 changed with summary [] by Pavel Sanda
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=401ef66c832d986dbf96da8a0aec307ce8ff7a0f commit 401ef66c832d986dbf96da8a0aec307ce8ff7a0f Author: Pavel SandaDate: Thu Feb 22 13:37:52 2018 -0800 Wiki page download-e16 changed with summary [] by Pavel Sanda --- pages/download-e16.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/download-e16.txt b/pages/download-e16.txt index a046667d1..772fb95e9 100644 --- a/pages/download-e16.txt +++ b/pages/download-e16.txt @@ -1,4 +1,4 @@ -=== Enlightenment DR16 === +=== Download Enlightenment E16 === The latest version of DR16 is 1.0.18, released on April 16th, 2017. Packages for the current, and previous, releases of DR16, --
[EGIT] [website/www-content] master 01/01: Wiki page e16 changed with summary [] by Pavel Sanda
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=506979f9e2c9996178e3ff22023160f74696a538 commit 506979f9e2c9996178e3ff22023160f74696a538 Author: Pavel SandaDate: Thu Feb 22 13:34:17 2018 -0800 Wiki page e16 changed with summary [] by Pavel Sanda --- pages/e16.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/e16.txt b/pages/e16.txt index 0e19b7cc3..a3696e2a0 100644 --- a/pages/e16.txt +++ b/pages/e16.txt @@ -1,4 +1,4 @@ -~~Title: E16~~ +~~Title: Enlightenment E16~~ {{page>incl:start-shortcuts}} --
[EGIT] [website/www-content] master 01/01: Wiki page download-e16 changed with summary [] by Pavel Sanda
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=d8779b0ead601f113af6bcabd972b3c0ae3bc5c8 commit d8779b0ead601f113af6bcabd972b3c0ae3bc5c8 Author: Pavel SandaDate: Thu Feb 22 13:34:20 2018 -0800 Wiki page download-e16 changed with summary [] by Pavel Sanda --- pages/download-e16.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/pages/download-e16.txt b/pages/download-e16.txt index 9a7bb71e1..a046667d1 100644 --- a/pages/download-e16.txt +++ b/pages/download-e16.txt @@ -1,6 +1,5 @@ === Enlightenment DR16 === -Some people still like to use our legacy WM codebase and it is still maintained. The latest version of DR16 is 1.0.18, released on April 16th, 2017. Packages for the current, and previous, releases of DR16, core themes, epplets, e16menuedit, e16keyedit, and imlib2 can be found --
[EGIT] [core/enlightenment] master 04/04: add info about gadget bindings to editor, make editor movable
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=52e713147770d063597578cab0bc6fe7bf546827 commit 52e713147770d063597578cab0bc6fe7bf546827 Author: Mike BlumenkrantzDate: Thu Feb 22 16:19:34 2018 -0500 add info about gadget bindings to editor, make editor movable ref T6341 --- src/bin/e_gadget.c | 149 + 1 file changed, 149 insertions(+) diff --git a/src/bin/e_gadget.c b/src/bin/e_gadget.c index fa6b8c0d5..b5e1b57df 100644 --- a/src/bin/e_gadget.c +++ b/src/bin/e_gadget.c @@ -3111,12 +3111,161 @@ _gadget_moved() added = 1; } +static Eina_List *desktop_editor_move_handlers; +static Evas_Point desktop_editor_move_point; +static E_Zone *desktop_editor_move_zone; + +static void +_desktop_editor_mouse_up_job(void *d) +{ + evas_object_repeat_events_set(d, 1); +} + +static Eina_Bool +_desktop_editor_mouse_up(void *d, int t EINA_UNUSED, Ecore_Event_Mouse_Button *ev) +{ + E_FREE_LIST(desktop_editor_move_handlers, ecore_event_handler_del); + evas_object_pointer_mode_set(d, EVAS_OBJECT_POINTER_MODE_NOGRAB); + ecore_job_add(_desktop_editor_mouse_up_job, d); + return ECORE_CALLBACK_RENEW; +} + +static Eina_Bool +_desktop_editor_mouse_move(void *d EINA_UNUSED, int t EINA_UNUSED, Ecore_Event_Mouse_Move *ev) +{ + int x, y, w, h; + int nx, ny; + + evas_object_geometry_get(desktop_editor, , , , ); + nx = x + ev->x - desktop_editor_move_point.x; + ny = y + ev->y - desktop_editor_move_point.y; + desktop_editor_move_point.x = ev->x; + desktop_editor_move_point.y = ev->y; + if (!E_CONTAINS(desktop_editor_move_zone->x, desktop_editor_move_zone->y, desktop_editor_move_zone->w, desktop_editor_move_zone->h, + nx, ny, w, h)) + { +if (nx < desktop_editor_move_zone->x) nx = desktop_editor_move_zone->x; +if (ny < desktop_editor_move_zone->y) ny = desktop_editor_move_zone->y; +if (nx + w > desktop_editor_move_zone->x + desktop_editor_move_zone->w) + nx = desktop_editor_move_zone->x + desktop_editor_move_zone->w - w; +if (ny + h > desktop_editor_move_zone->y + desktop_editor_move_zone->h) + ny = desktop_editor_move_zone->y + desktop_editor_move_zone->h - h; + } + evas_object_move(desktop_editor, nx, ny); + return ECORE_CALLBACK_RENEW; +} + +static void +_desktop_editor_mouse_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info) +{ + Evas_Event_Mouse_Down *ev = event_info; + uintptr_t button = (uintptr_t)(uintptr_t*)data; + uintptr_t modifiers = button % 1; + int i; + const char *names[] = + { + "Shift", + "Control", + "Alt", + "Win", + "AltGr", + }; + + button = (button - modifiers) / 1; + if (button != (unsigned int)ev->button) return; + for (i = 0; modifiers && i < 5; i++) + { +if (!(modifiers & (1 << i))) continue; +if (evas_key_modifier_is_set(ev->modifiers, names[i])) + modifiers &= ~(1 << i); + } + if (modifiers) return; + desktop_editor_move_point.x = ev->output.x; + desktop_editor_move_point.y = ev->output.y; + desktop_editor_move_zone = e_comp_object_util_zone_get(obj); + evas_object_pointer_mode_set(obj, EVAS_OBJECT_POINTER_MODE_NOGRAB_NO_REPEAT_UPDOWN); + evas_object_repeat_events_set(obj, 0); + E_LIST_HANDLER_APPEND(desktop_editor_move_handlers, ECORE_EVENT_MOUSE_MOVE, _desktop_editor_mouse_move, obj); + E_LIST_HANDLER_APPEND(desktop_editor_move_handlers, ECORE_EVENT_MOUSE_BUTTON_UP, _desktop_editor_mouse_up, obj); +} + +static void +_desktop_editor_restack(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED) +{ + evas_object_layer_set(data, evas_object_layer_get(obj)); +} + +static void +_desktop_editor_moveresize(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED) +{ + int x, y, w, h; + + evas_object_geometry_get(obj, , , , ); + evas_object_geometry_set(data, x, y, w, h); +} + +static void +_desktop_editor_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + evas_object_del(data); + E_FREE_LIST(desktop_editor_move_handlers, ecore_event_handler_del); +} + +static void +_desktop_editor_visibility(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED) +{ + if (evas_object_visible_get(obj)) + { +evas_object_show(data); +evas_object_pointer_mode_set(data, EVAS_OBJECT_POINTER_MODE_NOGRAB); + } + else + { +evas_object_hide(data); +evas_object_pointer_mode_set(data, EVAS_OBJECT_POINTER_MODE_NOGRAB_NO_REPEAT_UPDOWN); + } +} + static void _desktop_editor_text_add(void) { Evas_Object *txt, *tb, *popup = e_comp_object_util_get(desktop_editor); + unsigned int button, modifiers; + char *hotkeys; + hotkeys =
[EGIT] [core/enlightenment] master 03/04: always unset pass_events on desktop editor when it is shown
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=7156ed8c38804ca479737d7e856b30238d94ce35 commit 7156ed8c38804ca479737d7e856b30238d94ce35 Author: Mike BlumenkrantzDate: Thu Feb 22 16:18:46 2018 -0500 always unset pass_events on desktop editor when it is shown fixes some cases where the editor could not be interacted with after it was hidden during gadget placement --- src/bin/e_gadget.c | 8 1 file changed, 8 insertions(+) diff --git a/src/bin/e_gadget.c b/src/bin/e_gadget.c index 6643ccc16..fa6b8c0d5 100644 --- a/src/bin/e_gadget.c +++ b/src/bin/e_gadget.c @@ -2970,6 +2970,13 @@ e_gadget_editor_add(Evas_Object *parent, Evas_Object *site) return list; } +static void +_editor_show(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED) +{ + if (obj == desktop_editor) + evas_object_pass_events_set(desktop_editor, 0); +} + E_API Evas_Object * e_gadget_site_edit(Evas_Object *site) { @@ -3012,6 +3019,7 @@ e_gadget_site_edit(Evas_Object *site) comp_object = e_comp_object_util_add(popup, E_COMP_OBJECT_TYPE_NONE); evas_object_layer_set(comp_object, E_LAYER_POPUP); evas_object_show(comp_object); + evas_object_event_callback_add(comp_object, EVAS_CALLBACK_SHOW, _editor_show, NULL); evas_object_resize(comp_object, zone->w / 2, zone->h / 2); e_comp_object_util_center_on_zone(comp_object, zone); --
[EGIT] [core/enlightenment] master 01/04: add e_binding function to return printable string of modifiers for mouse binding
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=fd4a942906b49302fd86b3a1721600d667ddb29b commit fd4a942906b49302fd86b3a1721600d667ddb29b Author: Mike BlumenkrantzDate: Thu Feb 22 16:16:38 2018 -0500 add e_binding function to return printable string of modifiers for mouse binding --- src/bin/e_bindings.c | 61 +++- src/bin/e_bindings.h | 1 + 2 files changed, 61 insertions(+), 1 deletion(-) diff --git a/src/bin/e_bindings.c b/src/bin/e_bindings.c index e9d6a6797..810b7a00b 100644 --- a/src/bin/e_bindings.c +++ b/src/bin/e_bindings.c @@ -455,6 +455,66 @@ e_bindings_mouse_button_find(E_Binding_Context ctxt, E_Binding_Event_Mouse_Butto return act; } +E_API char * +e_bindings_mouse_action_modifiers_text_generate(E_Binding_Context ctxt, const char *action, unsigned int *modifiers, unsigned int *button) +{ + Eina_Strbuf *sbuf; + Eina_Bool shift; + Eina_Bool ctrl; + Eina_Bool alt; + Eina_Bool win; + Eina_Bool altgr; + static const char *names[] = + { + "Shift", + "Control", + "Alt", + "Win", + "AltGr", + }; + + struct + { + Eina_Bool *val; + const char *name; + } keys[5]; + unsigned int current, i; + Eina_Bool found = EINA_FALSE; + Eina_List *l; + char *ret; + E_Config_Binding_Mouse *ebm; + + keys[0].val = + keys[1].val = + keys[2].val = + keys[3].val = + keys[4].val = + + EINA_LIST_FOREACH(e_bindings->mouse_bindings, l, ebm) + if ((ebm->context == (int)ctxt) && eina_streq(ebm->action, action)) + { + current = ebm->modifiers; + if (modifiers) *modifiers = current; + if (button) *button = ebm->button; + found = EINA_TRUE; + break; + } + if (!found) return NULL; + sbuf = eina_strbuf_new(); + for (i = 0; i < 5; i++) + { +keys[i].name = names[i]; +*keys[i].val = (current & (1 << i)); +if (!*keys[i].val) continue; +if (eina_strbuf_length_get(sbuf)) + eina_strbuf_append_char(sbuf, '+'); +eina_strbuf_append_printf(sbuf, "%s", _(keys[i].name)); + } + ret = eina_strbuf_string_steal(sbuf); + eina_strbuf_free(sbuf); + return ret; +} + E_API E_Action * e_bindings_mouse_down_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Binding_Event_Mouse_Button *ev) { @@ -1523,4 +1583,3 @@ _e_bindings_edge_cb_timer(void *data) return ECORE_CALLBACK_CANCEL; } - diff --git a/src/bin/e_bindings.h b/src/bin/e_bindings.h index 0bc9892a1..043118cbf 100644 --- a/src/bin/e_bindings.h +++ b/src/bin/e_bindings.h @@ -152,6 +152,7 @@ E_API E_Action *e_bindings_mouse_down_ecore_event_handle(E_Binding_Context ctx E_API E_Action *e_bindings_mouse_up_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Binding_Event_Mouse_Button *ev); E_API E_Action *e_bindings_mouse_up_evas_event_handle(E_Binding_Context ctxt, E_Object *obj, Evas_Event_Mouse_Up *ev); E_API E_Action *e_bindings_mouse_up_ecore_event_handle(E_Binding_Context ctxt, E_Object *obj, Ecore_Event_Mouse_Button *ev); +E_API char *e_bindings_mouse_action_modifiers_text_generate(E_Binding_Context ctxt, const char *action, unsigned int *modifiers, unsigned int *button); E_API voide_bindings_key_add(E_Binding_Context ctxt, const char *key, E_Binding_Modifier mod, int any_mod, const char *action, const char *params); E_API voide_bindings_key_del(E_Binding_Context ctxt, const char *key, E_Binding_Modifier mod, int any_mod, const char *action, const char *params); --
[EGIT] [core/enlightenment] master 02/04: do not add gadget editor pointer site to editor del_list
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=b51552ca87eb092586701077a7045001b0540682 commit b51552ca87eb092586701077a7045001b0540682 Author: Mike BlumenkrantzDate: Thu Feb 22 16:17:13 2018 -0500 do not add gadget editor pointer site to editor del_list the pointer site will never exist at the time when the editor is destroyed --- src/bin/e_gadget.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/bin/e_gadget.c b/src/bin/e_gadget.c index 10ddda0d6..6643ccc16 100644 --- a/src/bin/e_gadget.c +++ b/src/bin/e_gadget.c @@ -2778,7 +2778,6 @@ _editor_gadget_new(void *data, Evas_Object *obj, void *event_info) evas_object_pass_events_set(desktop_editor, 1); orient = e_gadget_site_orient_get(gi->site); _editor_pointer_site_init(orient, gi->site, gi->editor, 0); - e_comp_object_util_del_list_append(gi->editor, pointer_site); if (zgc->external.domain) e_gadget_site_gadget_external_add(pointer_site, zgc->external.domain, e_gadget_type_get(gi->gadget), 1); --
[EGIT] [core/efl] master 01/01: evas event_grabber: fix child ordering when adding non-top children
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=77b31ba0237a9579ac317f8c1ef3b9a73c17ebd1 commit 77b31ba0237a9579ac317f8c1ef3b9a73c17ebd1 Author: Mike BlumenkrantzDate: Thu Feb 22 15:30:10 2018 -0500 evas event_grabber: fix child ordering when adding non-top children another ref 0516cdc0f9dc0969ac96df6984af2413680cad01 @fix --- src/lib/evas/canvas/efl_canvas_object_event_grabber.c | 10 +- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/lib/evas/canvas/efl_canvas_object_event_grabber.c b/src/lib/evas/canvas/efl_canvas_object_event_grabber.c index ddf31c90ba..01851897e9 100644 --- a/src/lib/evas/canvas/efl_canvas_object_event_grabber.c +++ b/src/lib/evas/canvas/efl_canvas_object_event_grabber.c @@ -123,13 +123,21 @@ _child_insert(Efl_Object_Event_Grabber_Data *pd, Evas_Object_Protected_Data *obj if (a->layer->layer > obj->layer->layer) continue; if (a->layer->layer < obj->layer->layer) { + /* new object is higher layer than 'a' */ found = EINA_TRUE; break; } EINA_INLIST_FOREACH(EINA_INLIST_GET(a->layer->objects), i) { - if (a == i || obj == i) + if (obj == i) { + /* new object is below 'a' */ + pd->contained = eina_list_prepend_relative(pd->contained, obj, a); + return; + } + else if (a == i) + { + /* new object is above 'a' */ found = EINA_TRUE; break; } --
[EGIT] [core/enlightenment] enlightenment-0.17 01/01: Fix for window borders to accept edje icons
thanatermesis pushed a commit to branch enlightenment-0.17. http://git.enlightenment.org/core/enlightenment.git/commit/?id=0a5ff4bd5adea88f70347354eabd93fdad63eed6 commit 0a5ff4bd5adea88f70347354eabd93fdad63eed6 Author: ThanatermesisDate: Thu Feb 22 19:48:04 2018 +0100 Fix for window borders to accept edje icons If you have edje icons installed in your system (efreet smartly searches the candidate icon based in your Icon= entry), they works correctly in the menus, bar, etc... but doesn't works in the window borders icon, this is because the code try's to add it without dealing with the .edj extensions, probably attempting to load multiple image types and returning some errors/warning, resulting in an empty icon in the window borders Fixes T6723 --- src/bin/e_border.c | 7 ++- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/bin/e_border.c b/src/bin/e_border.c index e7363fe4b..740033791 100644 --- a/src/bin/e_border.c +++ b/src/bin/e_border.c @@ -4246,12 +4246,9 @@ e_border_icon_add(E_Border *bd, { if ((bd->desktop) && (bd->icon_preference != E_ICON_PREF_NETWM)) { - o = e_icon_add(evas); + o = e_util_desktop_icon_add(bd->desktop, 64, evas); if (o) - { - e_icon_fdo_icon_set(o, bd->desktop->icon); - return o; - } + return o; } else if (bd->client.netwm.icons) { --
[EGIT] [core/enlightenment] master 01/01: Fix for window borders to accept edje icons
thanatermesis pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=ca99207bdc4ae76b02cd8ce6e5a953c17c9d9d0e commit ca99207bdc4ae76b02cd8ce6e5a953c17c9d9d0e Author: ThanatermesisDate: Thu Feb 22 19:35:38 2018 +0100 Fix for window borders to accept edje icons If you have edje icons installed in your system (efreet smartly searches the candidate icon based in your Icon= entry), they works correctly in the menus, bar, etc... but doesn't works in the window borders icon, this is because the code try's to add it without dealing with the .edj extensions, probably attempting to load multiple image types and returning some errors/warning, resulting in an empty icon in the window borders Fixes T6723 --- src/bin/e_client.c | 7 ++- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/bin/e_client.c b/src/bin/e_client.c index 675ba5688..464f7f9bd 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -5144,12 +5144,9 @@ e_client_icon_add(E_Client *ec, Evas *evas) { if ((ec->desktop) && (ec->icon_preference != E_ICON_PREF_NETWM)) { - o = e_icon_add(evas); + o = e_util_desktop_icon_add(ec->desktop, 64, evas); if (o) - { - e_icon_fdo_icon_set(o, ec->desktop->icon); - return o; - } + return o; } #ifndef HAVE_WAYLAND_ONLY else if (ec->netwm.icons) --
[EGIT] [tools/examples] master 01/01: apps_mono: add text editor and Game of Life example apps for C# binding
vitorsousa pushed a commit to branch master. http://git.enlightenment.org/tools/examples.git/commit/?id=6009c1046cb77de93c5bcd524e73897d4dbcfa33 commit 6009c1046cb77de93c5bcd524e73897d4dbcfa33 Author: Vitor SousaDate: Thu Feb 22 14:44:55 2018 -0300 apps_mono: add text editor and Game of Life example apps for C# binding --- apps/csharp/life/meson.build | 10 ++ apps/csharp/life/src/life_board.cs| 163 ++ apps/csharp/life/src/life_main.cs | 83 + apps/csharp/life/src/life_render.cs | 71 +++ apps/csharp/life/src/meson.build | 14 +++ apps/csharp/texteditor/meson.build| 10 ++ apps/csharp/texteditor/src/meson.build| 12 ++ apps/csharp/texteditor/src/texteditor_main.cs | 143 ++ 8 files changed, 506 insertions(+) diff --git a/apps/csharp/life/meson.build b/apps/csharp/life/meson.build new file mode 100644 index 000..bb46815 --- /dev/null +++ b/apps/csharp/life/meson.build @@ -0,0 +1,10 @@ +project( + 'efl-example-life', 'cs', + version : '0.0.1', + meson_version : '>= 0.38.0') + +efl_mono = dependency('efl-mono', version : '>=1.20.99') +efl_mono_libs = efl_mono.get_pkgconfig_variable('mono_libs') + +subdir('src') + diff --git a/apps/csharp/life/src/life_board.cs b/apps/csharp/life/src/life_board.cs new file mode 100644 index 000..ca12115 --- /dev/null +++ b/apps/csharp/life/src/life_board.cs @@ -0,0 +1,163 @@ +using System; + +public class LifeBoard +{ +public const int Width = 47; +public const int Height = 31; + +public static int IndexForPosition(int x, int y) +{ +return y * Width + x; +} + +public bool[] Cells +{ +get { return board; } +} + +private int gen = 0; + +private bool[] board, boardPrev; +private bool[] board1, board2; +private efl.loop.Timer lifeTimer = null; +private LifeRender lifeRender = null; + +private void CellOn(int x, int y) +{ +board1[IndexForPosition(x, y)] = true; +} + +private void BoardSetup() +{ +// glide +CellOn(16, 1); +CellOn(17, 2); +CellOn(18, 2); +CellOn(16, 3); +CellOn(17, 3); + +// oscilate +CellOn(22, 15); +CellOn(23, 15); +CellOn(24, 15); + +// block +CellOn(32, 15); +CellOn(33, 15); +CellOn(32, 16); +CellOn(33, 16); +} + +public LifeBoard() +{ +board1 = new bool[Height * Width]; +board2 = new bool[Height * Width]; + +BoardSetup(); + +board = board1; +boardPrev = board2; +} + +public void Run(efl.ui.Win win) +{ +lifeTimer = new efl.loop.Timer(null, (efl.loop.Timer etimer) => { +etimer.SetInterval(0.1); +}); + +lifeTimer.TICK += (object sender, EventArgs ev) => { +Nextgen(); +if (this.lifeRender != null) +this.lifeRender.Refresh(win); +}; +} + +public int SumAround(int x, int y) +{ +int i, sum = 0; +int max = Width * Height; + +i = IndexForPosition(x - 1, (y - 1)); +if (i >= 0 && board[i]) +++sum; +++i; +if (i >= 0 && board[i]) +++sum; +++i; +if (i >= 0 && board[i]) +++sum; + +i = IndexForPosition(x - 1, y); +if (i >= 0 && board[i]) +++sum; +i += 2; +if (i < max && board[i]) +++sum; + +i = IndexForPosition(x - 1, (y + 1)); +if (i < max && board[i]) +++sum; +++i; +if (i < max && board[i]) +++sum; +++i; +if (i < max && board[i]) +++sum; + +return sum; +} + +public void Nextgen() +{ +int[] work = null; +++gen; + +if (board == board1) +work = board2; +else +work = board1; + +for (int y = 0; y < LIFE_BOARD_HEIGHT; y++) +for (int x = 0; x < LIFE_BOARD_WIDTH; x++) +{ +int i = IndexForPosition(x, y); + +int n = SumAround(x, y); +if (board[i]) +{ +if (n > 3 || n < 2) +work[i] = false; +else +work[i] = true; +} +else +{ +if (n == 3) +work[i] = true; +else +work[i] = false; +} +} + +boardPrev = board; +board = work; +} + +public void TogglePause(efl.ui.Win win) +{ +if (lifeTimer) +{ +lifeTimer.Dispose(); +lifeTimer = null; +} +else +{ +Run(win); +} +
[EGIT] [core/enlightenment] master 01/01: toggle sandbox gadget visibility during desklock for non-desklock gadgets
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=5de469a690d6f69bc9a9d83dab03891d8ca6b910 commit 5de469a690d6f69bc9a9d83dab03891d8ca6b910 Author: Mike BlumenkrantzDate: Thu Feb 22 12:59:13 2018 -0500 toggle sandbox gadget visibility during desklock for non-desklock gadgets this triggers surface.leave events for clients while desklock is active and allows them to conserve resources --- src/bin/e_gadget_runner.c | 33 - 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/src/bin/e_gadget_runner.c b/src/bin/e_gadget_runner.c index 7599f4f92..390e3eba9 100644 --- a/src/bin/e_gadget_runner.c +++ b/src/bin/e_gadget_runner.c @@ -419,6 +419,10 @@ runner_created(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) if (inst->box != event_info) return; e_gadget_configure_cb_set(inst->box, runner_gadget_configure); evas_object_smart_callback_del_full(obj, "gadget_created", runner_created, data); + if (e_gadget_site_is_desklock(obj)) + evas_object_show(inst->obj); + else if (!e_desklock_state_get()) + evas_object_show(inst->obj); } @@ -843,7 +847,6 @@ gadget_create(Evas_Object *parent, Config_Item *ci, int *id, E_Gadget_Site_Orien } E_EXPAND(inst->obj); E_FILL(inst->obj); - evas_object_show(inst->obj); efl_wl_aspect_set(inst->obj, 1); efl_wl_minmax_set(inst->obj, 1); efl_wl_global_add(inst->obj, _gadget_interface, 1, inst, gadget_bind); @@ -1120,6 +1123,32 @@ list_error_cb(void *d EINA_UNUSED, Eio_File *ls EINA_UNUSED, int error EINA_UNUS gadget_lister = NULL; } +static Ecore_Job *desklock_job; + +static void +desklock_job_cb() +{ + Eina_List *l; + Instance *inst; + + EINA_LIST_FOREACH(instances, l, inst) + { +if (e_gadget_site_is_desklock(e_gadget_site_get(inst->box))) continue; +if (e_desklock_state_get()) + evas_object_hide(inst->obj); +else + evas_object_show(inst->obj); + } + desklock_job = NULL; +} + +static Eina_Bool +desklock_event() +{ + if (!desklock_job) desklock_job = ecore_job_add(desklock_job_cb, NULL); + return ECORE_CALLBACK_RENEW; +} + EINTERN void e_gadget_runner_init(void) { @@ -1157,6 +1186,7 @@ e_gadget_runner_init(void) E_LIST_HANDLER_APPEND(handlers, EIO_MONITOR_DIRECTORY_CREATED, monitor_dir_create, NULL); E_LIST_HANDLER_APPEND(handlers, EIO_MONITOR_DIRECTORY_DELETED, monitor_dir_del, NULL); E_LIST_HANDLER_APPEND(handlers, EIO_MONITOR_ERROR, monitor_error, NULL); + E_LIST_HANDLER_APPEND(handlers, E_EVENT_DESKLOCK, desklock_event, NULL); sandbox_gadgets = eina_hash_string_superfast_new((Eina_Free_Cb)efreet_desktop_free); { @@ -1195,6 +1225,7 @@ e_gadget_runner_shutdown(void) E_FREE_LIST(handlers, ecore_event_handler_del); E_FREE_FUNC(sandbox_gadgets, eina_hash_free); E_FREE_FUNC(gadget_lister, eio_file_cancel); + E_FREE_FUNC(desklock_job, ecore_job_del); close(ns_fd); ns_fd = -1; } --
[EGIT] [core/efl] master 01/01: efl-wl: send surface enter/leave based on compositor object visibility
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=cac28eeb7e68134cb8e48eec91407ed1c3727976 commit cac28eeb7e68134cb8e48eec91407ed1c3727976 Author: Mike BlumenkrantzDate: Thu Feb 22 13:00:04 2018 -0500 efl-wl: send surface enter/leave based on compositor object visibility this allows clients to conserve memory when the compositor is in a hidden or obscured state @feature --- src/lib/efl_wl/efl_wl.c | 31 +-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/src/lib/efl_wl/efl_wl.c b/src/lib/efl_wl/efl_wl.c index 863dcd9452..aa4925d30d 100644 --- a/src/lib/efl_wl/efl_wl.c +++ b/src/lib/efl_wl/efl_wl.c @@ -1287,6 +1287,17 @@ shell_surface_init(Comp_Surface *cs) } static void +comp_surface_output_leave(Comp_Surface *cs) +{ + Eina_List *l; + struct wl_resource *res; + + EINA_LIST_FOREACH(cs->c->output_resources, l, res) + if (wl_resource_get_client(res) == wl_resource_get_client(cs->res)) + wl_surface_send_leave(cs->res, res); +} + +static void comp_surface_output_enter(Comp_Surface *cs) { Eina_List *l; @@ -2579,7 +2590,10 @@ comp_surface_create(struct wl_client *client, struct wl_resource *resource, uint c->surfaces = eina_inlist_prepend(c->surfaces, EINA_INLIST_GET(cs)); c->surfaces_count++; eina_hash_list_append(c->client_surfaces, , cs); - comp_surface_output_enter(cs); + if (evas_object_visible_get(cs->c->clip)) + comp_surface_output_enter(cs); + else + comp_surface_output_leave(cs); cs->opaque = tiler_new(); cs->input = tiler_new(); @@ -3188,7 +3202,12 @@ output_bind(struct wl_client *client, void *data, uint32_t version, uint32_t id) output_resize(c, res); EINA_INLIST_FOREACH(c->surfaces, cs) if (wl_resource_get_client(cs->res) == client) - comp_surface_output_enter(cs); + { + if (evas_object_visible_get(c->clip)) +comp_surface_output_enter(cs); + else +comp_surface_output_leave(cs); + } } / @@ -5477,14 +5496,22 @@ static void comp_smart_show(Evas_Object *obj) { Comp *c = evas_object_smart_data_get(obj); + Comp_Surface *cs; + evas_object_show(c->clip); + EINA_INLIST_FOREACH(c->surfaces, cs) + comp_surface_output_leave(cs); } static void comp_smart_hide(Evas_Object *obj) { Comp *c = evas_object_smart_data_get(obj); + Comp_Surface *cs; + evas_object_hide(c->clip); + EINA_INLIST_FOREACH(c->surfaces, cs) + comp_surface_output_leave(cs); } static void --
[EGIT] [core/enlightenment] master 01/01: process comp object hide/show signals immediately during intercept
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=c1cd24a5616740b8c9f21d76a37728968e78fcfd commit c1cd24a5616740b8c9f21d76a37728968e78fcfd Author: Mike BlumenkrantzDate: Thu Feb 22 12:36:47 2018 -0500 process comp object hide/show signals immediately during intercept for objects without animations, it's important to instantly perform state transitions in order to preserve intended visibility behaviors of these objects and avoid race conditions due to asynchronous signal processing fix T6722 --- src/bin/e_comp_object.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index c1a7941c7..eecb88817 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -2816,6 +2816,7 @@ _e_comp_object_util_show(void *data EINA_UNUSED, Evas_Object *obj) evas_object_data_set(obj, "comp_ref", (void*)1); } edje_object_signal_emit(obj, "e,state,visible", "e"); + edje_object_message_signal_process(obj); evas_object_data_set(obj, "comp_showing", (void*)1); if (e_comp_util_object_is_above_nocomp(obj)) { @@ -2844,6 +2845,7 @@ _e_comp_object_util_hide(void *data EINA_UNUSED, Evas_Object *obj) evas_object_data_set(obj, "comp_ref", (void*)1); } edje_object_signal_emit(obj, "e,state,hidden", "e"); + edje_object_message_signal_process(obj); evas_object_data_set(obj, "comp_hiding", (void*)1); if (evas_object_data_del(obj, "comp_override")) --
[EGIT] [core/enlightenment] master 01/01: re-set sandbox gadget cmdline on startup
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=10ae53b9948ca191915fe9de0dcdee4a10f61bee commit 10ae53b9948ca191915fe9de0dcdee4a10f61bee Author: Mike BlumenkrantzDate: Thu Feb 22 11:45:46 2018 -0500 re-set sandbox gadget cmdline on startup ensure that this is updated in case the .desktop changes --- src/bin/e_gadget_runner.c | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/bin/e_gadget_runner.c b/src/bin/e_gadget_runner.c index 723056bd5..7599f4f92 100644 --- a/src/bin/e_gadget_runner.c +++ b/src/bin/e_gadget_runner.c @@ -994,9 +994,12 @@ sandbox_create(Evas_Object *parent, const char *type, int *id, E_Gadget_Site_Ori if (!ci) { ci = _conf_item_get(id); -ci->cmd = eina_stringshare_add(ed->exec); ci->exit_mode = EXIT_MODE_RESTART; } + if (ci->id > 0) + if (!eina_streq(ci->cmd, ed->exec)) + e_config_save_queue(); + eina_stringshare_replace(>cmd, ed->exec); ci->sandbox = 1; return gadget_create(parent, ci, id, orient); } --
[EGIT] [core/enlightenment] master 01/01: use per-instance event handler for batman powersave eventing
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=846c84639b7bfba45762997871b92ea2b4bdcfb5 commit 846c84639b7bfba45762997871b92ea2b4bdcfb5 Author: Mike BlumenkrantzDate: Thu Feb 22 11:14:33 2018 -0500 use per-instance event handler for batman powersave eventing ==19679== Invalid read of size 4 ==19679==at 0x5CC90EF: _ecore_event_message_handler_handler_del (ecore_event_message_handler.c:194) ==19679==by 0x5CCA332: ecore_event_message_handler_del (ecore_event_message_handler.eo.c:22) ==19679==by 0x5CBC7E3: ecore_event_handler_del (ecore_events.c:51) ==19679==by 0x2A23F4F1: _batman_removed_cb (batman.c:579) ==19679==by 0x6A9A33D: _eo_evas_smart_cb (evas_object_smart.c:78) ==19679==by 0xC166F4D: _event_callback_call (eo_base_class.c:1560) ==19679==by 0xC16728E: _efl_object_event_callback_legacy_call (eo_base_class.c:1633) ==19679==by 0xC167334: efl_event_callback_legacy_call (eo_base_class.c:1636) ==19679==by 0x6A889CA: _efl_canvas_object_efl_object_event_callback_legacy_call (evas_object_main.c:1157) ==19679==by 0xC167334: efl_event_callback_legacy_call (eo_base_class.c:1636) ==19679==by 0x6A9CBA7: evas_object_smart_callback_call (evas_object_smart.c:1037) ==19679==by 0x500B1D: _gadget_remove (e_gadget.c:426) ==19679==by 0x5037A9: _gadget_menu_remove (e_gadget.c:1263) ==19679==by 0x552600: _e_menu_active_call (e_menu.c:2066) ==19679==by 0x55445E: _e_menu_cb_mouse_up (e_menu.c:2809) ==19679==by 0x5CC9933: _ecore_event_message_handler_efl_loop_message_handler_message_call (ecore_event_message_handler.c:359) ==19679==by 0x5CD31D1: efl_loop_message_handler_message_call (efl_loop_message_handler.eo.c:14) ==19679==by 0x5CCDA73: _efl_loop_message_process (efl_loop.c:681) ==19679==by 0x5CCDC64: efl_loop_message_process (efl_loop.c:711) ==19679==by 0x5CC7453: _ecore_main_loop_iterate_internal (ecore_main.c:2444) ==19679==by 0x5CC457E: _ecore_main_loop_begin (ecore_main.c:1173) ==19679==by 0x5CCC0CD: _efl_loop_begin (efl_loop.c:97) ==19679==by 0x5CCED13: efl_loop_begin (efl_loop.eo.c:50) ==19679==by 0x5CC46F7: ecore_main_loop_begin (ecore_main.c:1246) ==19679==by 0x5476B6: main (e_main.c:1092) ==19679== Address 0x212af268 is 40 bytes inside a block of size 48 free'd ==19679==at 0x4C30D18: free (vg_replace_malloc.c:530) ==19679==by 0x5CC9BE6: _ecore_event_message_handler_efl_loop_message_handler_message_call (ecore_event_message_handler.c:389) ==19679==by 0x5CD31D1: efl_loop_message_handler_message_call (efl_loop_message_handler.eo.c:14) ==19679==by 0x5CCDA73: _efl_loop_message_process (efl_loop.c:681) ==19679==by 0x5CCDC64: efl_loop_message_process (efl_loop.c:711) ==19679==by 0x5CC7453: _ecore_main_loop_iterate_internal (ecore_main.c:2444) ==19679==by 0x5CC457E: _ecore_main_loop_begin (ecore_main.c:1173) ==19679==by 0x5CCC0CD: _efl_loop_begin (efl_loop.c:97) ==19679==by 0x5CCED13: efl_loop_begin (efl_loop.eo.c:50) ==19679==by 0x5CC46F7: ecore_main_loop_begin (ecore_main.c:1246) ==19679==by 0x5476B6: main (e_main.c:1092) ==19679== Block was alloc'd at ==19679==at 0x4C31A1E: calloc (vg_replace_malloc.c:711) ==19679==by 0x5CC8EE1: _ecore_event_message_handler_handler_add (ecore_event_message_handler.c:148) ==19679==by 0x5CCA0FB: ecore_event_message_handler_add (ecore_event_message_handler.eo.c:14) ==19679==by 0x5CBC790: ecore_event_handler_add (ecore_events.c:35) ==19679==by 0x2A23FB87: _batman_created_cb (batman.c:661) ==19679==by 0x6A9A33D: _eo_evas_smart_cb (evas_object_smart.c:78) ==19679==by 0xC166F4D: _event_callback_call (eo_base_class.c:1560) ==19679==by 0xC16728E: _efl_object_event_callback_legacy_call (eo_base_class.c:1633) ==19679==by 0xC167334: efl_event_callback_legacy_call (eo_base_class.c:1636) ==19679==by 0x6A889CA: _efl_canvas_object_efl_object_event_callback_legacy_call (evas_object_main.c:1157) ==19679==by 0xC167334: efl_event_callback_legacy_call (eo_base_class.c:1636) ==19679==by 0x6A9CBA7: evas_object_smart_callback_call (evas_object_smart.c:1037) ==19679==by 0x501172: _gadget_object_create (e_gadget.c:548) ==19679==by 0x506B90: e_gadget_type_add (e_gadget.c:2056) ==19679==by 0x2A23CA44: sysinfo_init (mod.c:161) ==19679==by 0x2A23CCF5: e_modapi_init (mod.c:203) ==19679==by 0x556814: e_module_enable (e_module.c:524) ==19679==by 0x555DF9: e_module_all_load (e_module.c:324) ==19679==by 0x554EFF: _module_done_cb (e_module.c:73) ==19679==by 0x73531C1: eio_async_end (eio_file.c:510) ==19679==by 0x5CF8D67:
[EGIT] [core/efl] master 01/01: evas: include legacy vg header instead of manually declaring typedef
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=561bfbc55b6ccd9a95084d428d358179abcd58d1 commit 561bfbc55b6ccd9a95084d428d358179abcd58d1 Author: Mike BlumenkrantzDate: Thu Feb 22 08:50:17 2018 -0500 evas: include legacy vg header instead of manually declaring typedef fix T6720 --- src/lib/evas/Evas_Legacy.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/lib/evas/Evas_Legacy.h b/src/lib/evas/Evas_Legacy.h index e5c70334ab..acd0dc74d5 100644 --- a/src/lib/evas/Evas_Legacy.h +++ b/src/lib/evas/Evas_Legacy.h @@ -3589,8 +3589,6 @@ EAPI Evas_Object *evas_object_rectangle_add(Evas *e) EINA_WARN_UNUSED_RESULT EIN #ifdef EFL_BETA_API_SUPPORT -typedef Eo Efl_Canvas_VG_Node; - /** * Creates a new vector object on the given Evas @p e canvas. * @@ -3606,6 +3604,7 @@ typedef Eo Efl_Canvas_VG_Node; */ EAPI Evas_Object *evas_object_vg_add(Evas *e) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC; +#include "canvas/efl_canvas_vg_node.eo.legacy.h" #include "canvas/efl_canvas_vg.eo.legacy.h" #include "canvas/efl_canvas_vg_container.eo.legacy.h" /** --
[EGIT] [core/enlightenment] master 01/01: disable bounce for gadget bar scrollers
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=af249979066811365af8781a8871d450e4929a0a commit af249979066811365af8781a8871d450e4929a0a Author: Mike BlumenkrantzDate: Thu Feb 22 08:49:34 2018 -0500 disable bounce for gadget bar scrollers fix T6721 --- src/bin/e_bryce.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/bin/e_bryce.c b/src/bin/e_bryce.c index 5a46ea31f..6dc0c97f9 100644 --- a/src/bin/e_bryce.c +++ b/src/bin/e_bryce.c @@ -875,11 +875,13 @@ _bryce_orient(Bryce *b) { elm_layout_signal_emit(b->layout, "e,state,orient,horizontal", "e"); elm_layout_signal_emit(b->scroller, "e,state,orient,horizontal", "e"); +elm_scroller_policy_set(b->scroller, ELM_SCROLLER_POLICY_AUTO, ELM_SCROLLER_POLICY_OFF); } else { elm_layout_signal_emit(b->layout, "e,state,orient,vertical", "e"); elm_layout_signal_emit(b->scroller, "e,state,orient,vertical", "e"); +elm_scroller_policy_set(b->scroller, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO); } evas_object_event_callback_add(b->site, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _bryce_site_hints, b); evas_object_smart_callback_add(b->site, "gadget_site_anchor", _bryce_site_anchor, b); @@ -920,6 +922,7 @@ _bryce_create(Bryce *b, Evas_Object *parent) _bryce_style_apply(b); b->scroller = scr = elm_scroller_add(ly); + elm_scroller_bounce_set(scr, 0, 0); elm_object_style_set(scr, "bryce"); _bryce_orient(b); elm_object_part_content_set(ly, "e.swallow.content", scr); --
[EGIT] [core/efl] master 03/03: eolian: fix eina hash usage so it doesn't consume all your memory
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=26f0c56fafea8b46bbb425c3a0f808c1881fc08f commit 26f0c56fafea8b46bbb425c3a0f808c1881fc08f Author: Daniel KolesaDate: Thu Feb 22 11:18:55 2018 +0100 eolian: fix eina hash usage so it doesn't consume all your memory This makes sure items are checked before being added, so that eina hash doesn't get confused, add each item thousands of times and run out of memory. --- src/lib/eolian/eo_parser.c | 2 +- src/lib/eolian/eolian_database.c | 9 +++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c index 4a4757a949..56c6a4bfa3 100644 --- a/src/lib/eolian/eo_parser.c +++ b/src/lib/eolian/eo_parser.c @@ -2256,7 +2256,7 @@ eo_parser_database_fill(Eolian_Unit *parent, const char *filename, Eina_Bool eot if (ret) { -if (parent != ret) +if ((parent != ret) && !eina_hash_find(parent->children, filename)) eina_hash_add(parent->children, filename, ret); return ret; } diff --git a/src/lib/eolian/eolian_database.c b/src/lib/eolian/eolian_database.c index b932cdaa7e..514d4bf63a 100644 --- a/src/lib/eolian/eolian_database.c +++ b/src/lib/eolian/eolian_database.c @@ -706,8 +706,12 @@ static Eina_Bool _merge_unit_cb(const Eina_Hash *hash EINA_UNUSED, const void *key, void *data, void *fdata) { - if (eina_hash_add((Eina_Hash *)fdata, key, data)) - eolian_object_ref((Eolian_Object *)data); + Eina_Hash *dest = fdata; + if (!eina_hash_find(dest, key)) + { +eina_hash_add(dest, key, data); +eolian_object_ref((Eolian_Object *)data); + } return EINA_TRUE; } @@ -744,6 +748,7 @@ _merge_units_cb(const Eina_Hash *hash EINA_UNUSED, return EINA_TRUE; } + static void _merge_units(Eolian_Unit *unit) { --
[EGIT] [core/efl] master 01/03: eolian: add eolian_object_add wrapper
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=7b5a73b96765223ffcf1f74a7733beda655c33a0 commit 7b5a73b96765223ffcf1f74a7733beda655c33a0 Author: Daniel KolesaDate: Wed Feb 21 17:50:18 2018 +0100 eolian: add eolian_object_add wrapper --- src/lib/eolian/eo_parser.c | 7 ++- src/lib/eolian/eolian_database.h | 7 +++ 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c index 031687a80c..3f888c5dc7 100644 --- a/src/lib/eolian/eo_parser.c +++ b/src/lib/eolian/eo_parser.c @@ -2287,12 +2287,9 @@ eo_parser_database_fill(Eolian_Unit *parent, const char *filename, Eina_Bool eot } ls->tmp.kls = NULL; - eina_hash_set(ls->state->unit.classes, cl->full_name, cl); - eina_hash_set(ls->unit->classes, cl->full_name, cl); + eolian_object_add(>base, cl->full_name, ls->unit->classes); + eolian_object_add(>base, cl->full_name, ls->state->unit.classes); eina_hash_set(ls->state->classes_f, cl->base.file, cl); - /* once for unit, once for state */ - eolian_object_ref(>base); - eolian_object_ref(>base); done: ret = ls->unit; diff --git a/src/lib/eolian/eolian_database.h b/src/lib/eolian/eolian_database.h index 5811e93cad..e7ae5f1bb3 100644 --- a/src/lib/eolian/eolian_database.h +++ b/src/lib/eolian/eolian_database.h @@ -84,6 +84,13 @@ eolian_object_unref(Eolian_Object *obj) return (--obj->refcount > 0); } +static inline void +eolian_object_add(Eolian_Object *obj, Eina_Stringshare *name, Eina_Hash *hash) +{ + eina_hash_add(hash, name, obj); + eolian_object_ref(obj); +} + struct _Eolian_Documentation { Eolian_Object base; --
[EGIT] [core/efl] master 02/03: eolian: store types/typedecls in units
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=665b88204cae45a9aae7c1bdcdd4fbf1e2ac6fcb commit 665b88204cae45a9aae7c1bdcdd4fbf1e2ac6fcb Author: Daniel KolesaDate: Wed Feb 21 17:59:39 2018 +0100 eolian: store types/typedecls in units --- src/lib/eolian/database_type.c | 35 +++ src/lib/eolian/eo_parser.c | 12 +--- src/lib/eolian/eolian_database.h | 6 +++--- 3 files changed, 27 insertions(+), 26 deletions(-) diff --git a/src/lib/eolian/database_type.c b/src/lib/eolian/database_type.c index 29da94cc86..d8954ec5ae 100644 --- a/src/lib/eolian/database_type.c +++ b/src/lib/eolian/database_type.c @@ -41,31 +41,34 @@ database_typedecl_del(Eolian_Typedecl *tp) } void -database_type_add(Eolian *state, Eolian_Typedecl *def) +database_type_add(Eolian_Unit *unit, Eolian_Typedecl *tp) { - eina_hash_set(state->unit.aliases, def->full_name, def); - eina_hash_set(state->aliases_f, def->base.file, eina_list_append -((Eina_List*)eina_hash_find(state->aliases_f, def->base.file), -def)); - database_decl_add(state, def->full_name, EOLIAN_DECL_ALIAS, def->base.file, def); + eolian_object_add(>base, tp->full_name, unit->state->unit.aliases); + eolian_object_add(>base, tp->full_name, unit->aliases); + eina_hash_set(unit->state->aliases_f, tp->base.file, eina_list_append +((Eina_List*)eina_hash_find(unit->state->aliases_f, tp->base.file), +tp)); + database_decl_add(unit->state, tp->full_name, EOLIAN_DECL_ALIAS, tp->base.file, tp); } void -database_struct_add(Eolian *state, Eolian_Typedecl *tp) +database_struct_add(Eolian_Unit *unit, Eolian_Typedecl *tp) { - eina_hash_set(state->unit.structs, tp->full_name, tp); - eina_hash_set(state->structs_f, tp->base.file, eina_list_append -((Eina_List*)eina_hash_find(state->structs_f, tp->base.file), tp)); - database_decl_add(state, tp->full_name, EOLIAN_DECL_STRUCT, tp->base.file, tp); + eolian_object_add(>base, tp->full_name, unit->state->unit.structs); + eolian_object_add(>base, tp->full_name, unit->structs); + eina_hash_set(unit->state->structs_f, tp->base.file, eina_list_append +((Eina_List*)eina_hash_find(unit->state->structs_f, tp->base.file), tp)); + database_decl_add(unit->state, tp->full_name, EOLIAN_DECL_STRUCT, tp->base.file, tp); } void -database_enum_add(Eolian *state, Eolian_Typedecl *tp) +database_enum_add(Eolian_Unit *unit, Eolian_Typedecl *tp) { - eina_hash_set(state->unit.enums, tp->full_name, tp); - eina_hash_set(state->enums_f, tp->base.file, eina_list_append -((Eina_List*)eina_hash_find(state->enums_f, tp->base.file), tp)); - database_decl_add(state, tp->full_name, EOLIAN_DECL_ENUM, tp->base.file, tp); + eolian_object_add(>base, tp->full_name, unit->state->unit.enums); + eolian_object_add(>base, tp->full_name, unit->enums); + eina_hash_set(unit->state->enums_f, tp->base.file, eina_list_append +((Eina_List*)eina_hash_find(unit->state->enums_f, tp->base.file), tp)); + database_decl_add(unit->state, tp->full_name, EOLIAN_DECL_ENUM, tp->base.file, tp); } Eina_Bool diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c index 3f888c5dc7..4a4757a949 100644 --- a/src/lib/eolian/eo_parser.c +++ b/src/lib/eolian/eo_parser.c @@ -131,14 +131,12 @@ push_typedecl(Eo_Lexer *ls) static void pop_type(Eo_Lexer *ls) { - eolian_object_ref((Eolian_Object *)eina_list_data_get(ls->tmp.type_defs)); ls->tmp.type_defs = eina_list_remove_list(ls->tmp.type_defs, ls->tmp.type_defs); } static void pop_typedecl(Eo_Lexer *ls) { - eolian_object_ref((Eolian_Object *)eina_list_data_get(ls->tmp.type_decls)); ls->tmp.type_decls = eina_list_remove_list(ls->tmp.type_decls, ls->tmp.type_decls); } @@ -528,7 +526,7 @@ parse_struct(Eo_Lexer *ls, const char *name, Eina_Bool is_extern, } check_match(ls, '}', '{', bline, bcolumn); FILL_BASE(def->base, ls, line, column); - if (name) database_struct_add(ls->state, def); + if (name) database_struct_add(ls->unit, def); return def; } @@ -640,7 +638,7 @@ parse_enum(Eo_Lexer *ls, const char *name, Eina_Bool is_extern, } check_match(ls, '}', '{', bline, bcolumn); FILL_BASE(def->base, ls, line, column); - if (name) database_enum_add(ls->state, def); + if (name) database_enum_add(ls->unit, def); return def; } @@ -2154,13 +2152,13 @@ parse_unit(Eo_Lexer *ls, Eina_Bool eot) } case KW_type: { - database_type_add(ls->state, parse_typedef(ls)); + database_type_add(ls->unit, parse_typedef(ls)); pop_typedecl(ls); break; } case KW_function: { - database_type_add(ls->state, parse_function_pointer(ls)); + database_type_add(ls->unit,
[EGIT] [core/efl] master 02/03: move from efl.vpath to eina_vpath
bu5hm4n pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c4f33c67a8d75888b21a0f464b0b1c82bd55bd0b commit c4f33c67a8d75888b21a0f464b0b1c82bd55bd0b Author: Marcel HollerbachDate: Wed Feb 21 10:06:02 2018 +0100 move from efl.vpath to eina_vpath The usages from efl.vpath are moved to to eina_vpath --- src/lib/ecore/ecore.c | 11 src/lib/ecore_wl2/ecore_wl2_buffer.c| 10 ++-- src/lib/edje/edje_edit.c| 9 +--- src/lib/edje/edje_load.c| 9 +--- src/lib/efl/interfaces/efl_file.c | 14 + src/lib/efreet/efreet.c | 71 + src/lib/efreet/efreet_base.c| 8 ++- src/lib/eina/eina_vpath.c | 1 - src/lib/elementary/elm_config.c | 13 +++-- src/lib/elementary/elm_main.c | 17 +- src/lib/emotion/emotion_smart.c | 23 +--- src/modules/ecore_buffer/shm/ecore_buffer_shm.c | 6 +-- 12 files changed, 95 insertions(+), 97 deletions(-) diff --git a/src/lib/ecore/ecore.c b/src/lib/ecore/ecore.c index a7b4025109..d911bc4e23 100644 --- a/src/lib/ecore/ecore.c +++ b/src/lib/ecore/ecore.c @@ -122,8 +122,6 @@ static void _systemd_watchdog_cb(void *data, const Efl_Event *event); static Efl_Loop_Timer *_systemd_watchdog = NULL; #endif -static Efl_Vpath *vpath = NULL; - Eina_Lock _ecore_main_loop_lock; int _ecore_main_lock_count; @@ -279,9 +277,6 @@ ecore_init(void) _ecore_main_loop_init(); if (!_ecore_event_init()) goto shutdown_event; - vpath = efl_add(EFL_VPATH_CORE_CLASS, NULL); - if (vpath) efl_vpath_manager_register(EFL_VPATH_MANAGER_CLASS, 0, vpath); - _ecore_signal_init(); #ifndef HAVE_EXOTIC _ecore_exe_init(); @@ -451,12 +446,6 @@ ecore_shutdown(void) _ecore_main_shutdown(); _ecore_signal_shutdown(); - if (vpath) - { -efl_del(vpath); -vpath = NULL; - } - _ecore_main_loop_shutdown(); #if defined(HAVE_MALLINFO) || defined(HAVE_MALLOC_INFO) diff --git a/src/lib/ecore_wl2/ecore_wl2_buffer.c b/src/lib/ecore_wl2/ecore_wl2_buffer.c index 50dca1b35a..a7cb174cb2 100644 --- a/src/lib/ecore_wl2/ecore_wl2_buffer.c +++ b/src/lib/ecore_wl2/ecore_wl2_buffer.c @@ -310,15 +310,15 @@ err: static Buffer_Handle * _wl_shm_alloc(Buffer_Manager *self EINA_UNUSED, const char *name EINA_UNUSED, int w, int h, unsigned long *stride, int32_t *fd) { - Efl_Vpath_File *file_obj; Eina_Tmpstr *fullname; size_t size = w * h * 4; void *out = NULL; + char *tmp; + + tmp = eina_vpath_resolve("(:usr.run:)/evas-wayland_shm-XX"); + *fd = eina_file_mkstemp(tmp, ); + free(tmp); - file_obj = efl_vpath_manager_fetch(EFL_VPATH_MANAGER_CLASS, - "(:run:)/evas-wayland_shm-XX"); - *fd = eina_file_mkstemp(efl_vpath_file_result_get(file_obj), ); - efl_del(file_obj); if (*fd < 0) return NULL; unlink(fullname); diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c index 05336438d6..c908beba45 100644 --- a/src/lib/edje/edje_edit.c +++ b/src/lib/edje/edje_edit.c @@ -256,16 +256,11 @@ _edje_edit_efl_file_file_set(Eo *obj, Edje_Edit *eed, const char *file, const ch *groups). * P.S. don't forget about mmap version below */ - Efl_Vpath_File *file_obj = - efl_vpath_manager_fetch(EFL_VPATH_MANAGER_CLASS, file); - efl_vpath_file_do(file_obj); - // XXX:FIXME: allow this to be async - efl_vpath_file_wait(file_obj); - file = efl_vpath_file_result_get(file_obj); + file = eina_vpath_resolve(file); Eina_Bool int_ret; int_ret = efl_file_set(efl_super(obj, MY_CLASS), file, group); - efl_del(file_obj); + if (!int_ret) return EINA_FALSE; diff --git a/src/lib/edje/edje_load.c b/src/lib/edje/edje_load.c index a458b77970..6c749bcdb6 100644 --- a/src/lib/edje/edje_load.c +++ b/src/lib/edje/edje_load.c @@ -262,18 +262,13 @@ edje_file_collection_list(const char *file) Eina_List *lst; if ((!file) || (!*file)) return NULL; - Efl_Vpath_File *file_obj = - efl_vpath_manager_fetch(EFL_VPATH_MANAGER_CLASS, file); - efl_vpath_file_do(file_obj); - // XXX:FIXME: allow this to be async - efl_vpath_file_wait(file_obj); - file = efl_vpath_file_result_get(file_obj); + file = eina_vpath_resolve(file); f = eina_file_open(file, EINA_FALSE); lst = edje_mmap_collection_list(f); eina_file_close(f); - efl_del(file_obj); + free(file); return lst; } diff --git a/src/lib/efl/interfaces/efl_file.c b/src/lib/efl/interfaces/efl_file.c index 562a06b059..65060d858d 100644 --- a/src/lib/efl/interfaces/efl_file.c +++ b/src/lib/efl/interfaces/efl_file.c @@ -7,8 +7,6 @@ typedef struct _Efl_File_Data Efl_File_Data; struct _Efl_File_Data { - Eo *vo; - Efl_Image_Load_Error error; }; @@ -22,11 +20,7 @@
[EGIT] [core/efl] master 01/03: introduce eina_vpath!
bu5hm4n pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=7165003bc60177818a491db0d6a557dd0767554b commit 7165003bc60177818a491db0d6a557dd0767554b Author: Marcel HollerbachDate: Sun Feb 18 22:12:58 2018 +0100 introduce eina_vpath! Its the successor of efl.vpath, the api is synchronous, and supports addtional vpath paths, new apis cal always be added to use them. --- src/Makefile_Eina.am | 9 +- src/lib/eina/Eina.h | 1 + src/lib/eina/eina_main.c | 3 + src/lib/eina/eina_vpath.c| 349 +++ src/lib/eina/eina_vpath.h| 74 + src/tests/eina/eina_suite.c | 1 + src/tests/eina/eina_suite.h | 1 + src/tests/eina/eina_test_vpath.c | 53 ++ 8 files changed, 488 insertions(+), 3 deletions(-) diff --git a/src/Makefile_Eina.am b/src/Makefile_Eina.am index 186bd1e8e1..33c7c660c2 100644 --- a/src/Makefile_Eina.am +++ b/src/Makefile_Eina.am @@ -107,7 +107,8 @@ lib/eina/eina_slice.h \ lib/eina/eina_inline_slice.x \ lib/eina/eina_inline_modinfo.x \ lib/eina/eina_freeq.h \ -lib/eina/eina_slstr.h +lib/eina/eina_slstr.h \ +lib/eina/eina_vpath.h lib_eina_libeina_la_SOURCES = \ @@ -183,7 +184,8 @@ lib/eina/eina_quaternion.c \ lib/eina/eina_bezier.c \ lib/eina/eina_safepointer.c \ lib/eina/eina_freeq.c \ -lib/eina/eina_slstr.c +lib/eina/eina_slstr.c \ +lib/eina/eina_vpath.c if HAVE_WIN32 @@ -356,7 +358,8 @@ tests/eina/eina_test_bezier.c \ tests/eina/eina_test_safepointer.c \ tests/eina/eina_test_slice.c \ tests/eina/eina_test_freeq.c \ -tests/eina/eina_test_slstr.c +tests/eina/eina_test_slstr.c \ +tests/eina/eina_test_vpath.c tests_eina_eina_suite_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -DTESTS_WD=\"`pwd`\" \ diff --git a/src/lib/eina/Eina.h b/src/lib/eina/Eina.h index 256de025bc..b403d308f8 100644 --- a/src/lib/eina/Eina.h +++ b/src/lib/eina/Eina.h @@ -274,6 +274,7 @@ extern "C" { #include #include #include +#include #undef EAPI #define EAPI diff --git a/src/lib/eina/eina_main.c b/src/lib/eina/eina_main.c index 1a152d0da7..275e4a0baa 100644 --- a/src/lib/eina/eina_main.c +++ b/src/lib/eina/eina_main.c @@ -68,6 +68,7 @@ #include "eina_evlog.h" #include "eina_freeq.h" #include "eina_slstr.h" +#include "eina_vpath.h" /** * Local * @@ -155,6 +156,7 @@ EAPI Eina_Inlist *_eina_tracking = NULL; S(safepointer); S(slstr); S(promise); + S(vpath); #undef S struct eina_desc_setup @@ -202,6 +204,7 @@ static const struct eina_desc_setup _eina_desc_setup[] = { S(safepointer), S(slstr), S(promise), + S(vpath), #undef S }; static const size_t _eina_desc_setup_len = sizeof(_eina_desc_setup) / diff --git a/src/lib/eina/eina_vpath.c b/src/lib/eina/eina_vpath.c new file mode 100644 index 00..af57afae97 --- /dev/null +++ b/src/lib/eina/eina_vpath.c @@ -0,0 +1,349 @@ +#include + +#include "eina_private.h" + +static Eina_Hash *vpath_data = NULL; + +#ifdef CRI +#undef CRI +#endif +#define CRI(...) EINA_LOG_DOM_CRIT(_eina_vpath_log_dom, __VA_ARGS__) + +#ifdef ERR +#undef ERR +#endif +#define ERR(...) EINA_LOG_DOM_ERR(_eina_vpath_log_dom, __VA_ARGS__) + +#ifdef DBG +#undef DBG +#endif +#define DBG(...) EINA_LOG_DOM_DBG(_eina_vpath_log_dom, __VA_ARGS__) + +static int _eina_vpath_log_dom = -1; + +static inline void +_eina_vpath_data_add(const char *key, const char *value) +{ + eina_hash_add(vpath_data, key, eina_stringshare_add(value)); +} + +static inline Eina_Stringshare* +_eina_vpath_data_get(const char *key) +{ + return eina_hash_find(vpath_data, key); +} + + +static char* +_fallback_runtime_dir(const char *home) +{ + char buf[PATH_MAX]; + struct stat st; + +#if defined(HAVE_GETUID) && defined(HAVE_GETEUID) + if (setuid(geteuid()) != 0) + { + fprintf(stderr, + "FATAL: Cannot setuid - errno=%i\n", + errno); + abort(); + } +#endif + // fallback - make ~/.run + snprintf(buf, sizeof(buf), "%s/.run", home); + if (!!mkdir(buf, S_IRUSR | S_IWUSR | S_IXUSR)) + { +if (errno == EEXIST) + { + if (stat(buf, ) == 0) + { + // some sanity checks - but not for security + if (!(st.st_mode & S_IFDIR)) +{ + // fatal - exists but is not a dir + fprintf(stderr, + "FATAL: run dir '%s' exists but not a dir\n", + buf); + abort(); +} +#if defined(HAVE_GETUID) && defined(HAVE_GETEUID) + if (st.st_uid != geteuid()) +{ + // fatal - run dir doesn't belong to user +
[EGIT] [core/efl] master 03/03: lets delete efl_vpath
bu5hm4n pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=8c7ba8c3a31ec671ccd6d7d30682dbd631d69a62 commit 8c7ba8c3a31ec671ccd6d7d30682dbd631d69a62 Author: Marcel HollerbachDate: Sun Feb 18 21:58:57 2018 +0100 lets delete efl_vpath Its not used anymore. ref T5314 --- src/Makefile_Efl.am | 9 - src/lib/efl/Efl.h | 6 - src/lib/efl/interfaces/efl_interfaces_main.c | 2 - src/lib/efl/interfaces/efl_vpath.eo | 31 -- src/lib/efl/interfaces/efl_vpath_core.c | 436 -- src/lib/efl/interfaces/efl_vpath_core.eo | 33 -- src/lib/efl/interfaces/efl_vpath_file.c | 74 - src/lib/efl/interfaces/efl_vpath_file.eo | 55 src/lib/efl/interfaces/efl_vpath_file_core.c | 66 src/lib/efl/interfaces/efl_vpath_file_core.eo | 14 - src/lib/efl/interfaces/efl_vpath_manager.c| 88 -- src/lib/efl/interfaces/efl_vpath_manager.eo | 30 -- 12 files changed, 844 deletions(-) diff --git a/src/Makefile_Efl.am b/src/Makefile_Efl.am index 01b98ddfde..f98f554362 100644 --- a/src/Makefile_Efl.am +++ b/src/Makefile_Efl.am @@ -54,11 +54,6 @@ efl_eolian_files = \ lib/efl/interfaces/efl_pack_layout.eo \ lib/efl/interfaces/efl_pack_linear.eo \ lib/efl/interfaces/efl_pack_table.eo \ - lib/efl/interfaces/efl_vpath.eo \ - lib/efl/interfaces/efl_vpath_manager.eo \ - lib/efl/interfaces/efl_vpath_file.eo \ - lib/efl/interfaces/efl_vpath_core.eo \ - lib/efl/interfaces/efl_vpath_file_core.eo \ lib/efl/interfaces/efl_ui_base.eo \ lib/efl/interfaces/efl_ui_direction.eo \ lib/efl/interfaces/efl_ui_drag.eo \ @@ -122,10 +117,6 @@ lib/efl/interfaces/efl_interfaces_main.c \ lib/efl/interfaces/efl_model_common.c \ lib/efl/interfaces/efl_gfx_path.c \ lib/efl/interfaces/efl_gfx_shape.c \ -lib/efl/interfaces/efl_vpath_file.c \ -lib/efl/interfaces/efl_vpath_manager.c \ -lib/efl/interfaces/efl_vpath_core.c \ -lib/efl/interfaces/efl_vpath_file_core.c \ lib/efl/interfaces/efl_input_device.c \ lib/efl/interfaces/efl_io_closer.c \ lib/efl/interfaces/efl_io_positioner.c \ diff --git a/src/lib/efl/Efl.h b/src/lib/efl/Efl.h index ed7405ced8..2399c9c30b 100644 --- a/src/lib/efl/Efl.h +++ b/src/lib/efl/Efl.h @@ -62,12 +62,6 @@ typedef struct _Efl_Text_Annotate_Annotation Efl_Text_Annotate_Annotation; #include -#include "interfaces/efl_vpath_file.eo.h" -#include "interfaces/efl_vpath.eo.h" -#include "interfaces/efl_vpath_core.eo.h" -#include "interfaces/efl_vpath_manager.eo.h" -#include "interfaces/efl_vpath_file_core.eo.h" - /* Data types */ #include "interfaces/efl_gfx_types.eot.h" #include "interfaces/efl_ui_types.eot.h" diff --git a/src/lib/efl/interfaces/efl_interfaces_main.c b/src/lib/efl/interfaces/efl_interfaces_main.c index d9b87634a6..cb1738e52b 100644 --- a/src/lib/efl/interfaces/efl_interfaces_main.c +++ b/src/lib/efl/interfaces/efl_interfaces_main.c @@ -46,8 +46,6 @@ #include "interfaces/efl_canvas.eo.c" #include "interfaces/efl_canvas_pointer.eo.c" -#include "interfaces/efl_vpath.eo.c" - #include "interfaces/efl_screen.eo.c" /* Packing & containers */ diff --git a/src/lib/efl/interfaces/efl_vpath.eo b/src/lib/efl/interfaces/efl_vpath.eo deleted file mode 100644 index ca97f1b090..00 --- a/src/lib/efl/interfaces/efl_vpath.eo +++ /dev/null @@ -1,31 +0,0 @@ -interface Efl.Vpath -{ - [[ VPath is the EFL "Virtual Path" system that maps paths and downloads - - You can provide virtual paths common in unix shells like: - "~/file.jpg" - "~username/file.png" - And also other extended paths like: - "(:cache:)/file.png" - "(:videos:)/file.mp4" - ... - And in future: - "file:///blah.jpg" - "http://blah.com/file.jpg; - "https://blahblah.com/file.jpg; - "ssh://blahblah.com:~/file.jpg" - ... - - @since 1.18 - ]] - eo_prefix: efl_vpath; - methods { - fetch { - [[ Fetch a new Vpath File object from the Vpath system ]] - params { -path: string; [[ The input virtual file path to fetch ]] - } - return: Efl.Vpath.File @owned; [[ An object representing the file ]] - } - } -} diff --git a/src/lib/efl/interfaces/efl_vpath_core.c b/src/lib/efl/interfaces/efl_vpath_core.c deleted file mode 100644 index d6b136374d..00 --- a/src/lib/efl/interfaces/efl_vpath_core.c +++ /dev/null @@ -1,436 +0,0 @@ -#include "config.h" -#include "Efl.h" - -#ifdef HAVE_GETPWENT -# include -# include -#endif - -#include -#include -#include -#include -#include - -#define MY_CLASS EFL_VPATH_CORE_CLASS - -typedef struct _Efl_Vpath_Core_Data Efl_Vpath_Core_Data; - -struct _Efl_Vpath_Core_Data -{ - Eina_Spinlock lock; - Eina_Hash *meta; -}; - -static Efl_Vpath_Core *vpath_core = NULL; - -EOLIAN static Efl_Object *