[E-devel] efl-git: build from make dist tar fails.
Hi all, This one should be pretty easy to fix building efl out of a tarball generated by make dist yields the following issue [ 688s] /home/abuild/rpmbuild/BUILD/efl-1.17.99.47127/install-sh: evas-3d-fog.c does not exist. [ 688s] Makefile:3352: recipe for target 'install-examples' failed full build log: https://build.opensuse.org/package/live_build_log/X11:Enlightenment:Nightly/efl/openSUSE_Leap_42.1/x86_64 Cheers -- Simon Lees (Simotek)http://simotek.net Emergency Update Team keybase.io/simotek SUSE LinuxAdeliade Australia, UTC+9:30 GPG Fingerprint: 5B87 DB9D 88DC F606 E489 CEC5 0922 C246 02F0 014B signature.asc Description: OpenPGP digital signature -- Mobile security can be enabling, not merely restricting. Employees who bring their own devices (BYOD) to work are irked by the imposition of MDM restrictions. Mobile Device Manager Plus allows you to control only the apps on BYO-devices by containerizing them, leaving personal data untouched! https://ad.doubleclick.net/ddm/clk/304595813;131938128;j___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[E-devel] efl doesn't build against the latest libbullet
Hi All, One of the joys of a rolling distro is sometimes stuff breaks, this week efl no longer builds against the latest libbullet (bullet3-2.83.7) with the following error: [ 347s] In file included from lib/ephysics/ephysics_camera.cpp:7:0: [ 347s] lib/ephysics/ephysics_private.h:11:70: fatal error: BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.h: No such file or directory [ 347s] compilation terminated. The full build log is available from https://build.opensuse.org/package/live_build_log/openSUSE:Factory/efl/standard/x86_64 Cheers -- Simon Lees (Simotek)http://simotek.net Emergency Update Team keybase.io/simotek SUSE LinuxAdeliade Australia, UTC+9:30 GPG Fingerprint: 5B87 DB9D 88DC F606 E489 CEC5 0922 C246 02F0 014B signature.asc Description: OpenPGP digital signature -- Mobile security can be enabling, not merely restricting. Employees who bring their own devices (BYOD) to work are irked by the imposition of MDM restrictions. Mobile Device Manager Plus allows you to control only the apps on BYO-devices by containerizing them, leaving personal data untouched! https://ad.doubleclick.net/ddm/clk/304595813;131938128;j___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 02/02: efl: everyone should now rely on Eina MIN/MAX redefinition.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=0c4880e99dd047dc92abb0ea6a04febb91908aef commit 0c4880e99dd047dc92abb0ea6a04febb91908aef Author: Cedric BAILDate: Mon May 9 16:58:31 2016 -0700 efl: everyone should now rely on Eina MIN/MAX redefinition. --- src/examples/evas/shooter/evas-3d-shooter-macros.h | 3 --- src/lib/ecore/ecore_private.h| 8 src/lib/ecore_win32/ecore_win32_private.h| 10 -- src/lib/ecore_x/xcb/ecore_xcb_dnd.c | 4 src/lib/ecore_x/xcb/ecore_xcb_private.h | 8 src/lib/edje/edje_private.h | 4 src/lib/eet/eet_image.c | 6 -- src/lib/eina/eina_private.h | 8 src/lib/eina/eina_str.c | 2 +- src/lib/eina/eina_tiler.c| 1 + src/lib/elementary/elm_priv.h| 4 src/lib/evas/canvas/render2/region.c | 7 --- src/lib/evas/include/evas_macros.h | 6 -- src/modules/evas/image_loaders/gif/evas_image_load_gif.c | 3 --- src/static_libs/rg_etc/rg_etc1.c | 8 ++-- src/static_libs/rg_etc/rg_etc2.c | 4 +++- 16 files changed, 11 insertions(+), 75 deletions(-) diff --git a/src/examples/evas/shooter/evas-3d-shooter-macros.h b/src/examples/evas/shooter/evas-3d-shooter-macros.h index ce23acf..d7f2186 100644 --- a/src/examples/evas/shooter/evas-3d-shooter-macros.h +++ b/src/examples/evas/shooter/evas-3d-shooter-macros.h @@ -1,6 +1,3 @@ -#define MAX(x, y) (((x) > (y)) ? (x) : (y)) -#define MIN(x, y) (((x) < (y)) ? (x) : (y)) - #define FOG_COLOR0.5, 0.5, 0.5 #define FOG_FACTOR 0.01 #define WIDTH1920 diff --git a/src/lib/ecore/ecore_private.h b/src/lib/ecore/ecore_private.h index c95a4d9..062c8a2 100644 --- a/src/lib/ecore/ecore_private.h +++ b/src/lib/ecore/ecore_private.h @@ -69,14 +69,6 @@ extern int _ecore_log_dom; # define PATH_MAX 4096 #endif -#ifndef MIN -# define MIN(x, y) (((x) > (y)) ? (y) : (x)) -#endif - -#ifndef MAX -# define MAX(x, y) (((x) > (y)) ? (x) : (y)) -#endif - #ifndef ABS # define ABS(x) ((x) < 0 ? -(x) : (x)) #endif diff --git a/src/lib/ecore_win32/ecore_win32_private.h b/src/lib/ecore_win32/ecore_win32_private.h index b5a805a..c90674f 100644 --- a/src/lib/ecore_win32/ecore_win32_private.h +++ b/src/lib/ecore_win32/ecore_win32_private.h @@ -6,16 +6,6 @@ extern "C" { #endif -#ifdef MIN -# undef MIN -#endif -#define MIN(a,b) (((a) < (b)) ? (a) : (b)) - -#ifdef MAX -# undef MAX -#endif -#define MAX(a,b) (((a) < (b)) ? (b) : (a)) - /* logging messages macros */ extern int _ecore_win32_log_dom_global; diff --git a/src/lib/ecore_x/xcb/ecore_xcb_dnd.c b/src/lib/ecore_x/xcb/ecore_xcb_dnd.c index 07eae1f..974ec0e 100644 --- a/src/lib/ecore_x/xcb/ecore_xcb_dnd.c +++ b/src/lib/ecore_x/xcb/ecore_xcb_dnd.c @@ -1,9 +1,5 @@ #include "ecore_xcb_private.h" -#ifndef MIN -# define MIN(a, b) (((a) < (b)) ? (a) : (b)) -#endif - /* local structures */ typedef struct _Version_Cache_Item { diff --git a/src/lib/ecore_x/xcb/ecore_xcb_private.h b/src/lib/ecore_x/xcb/ecore_xcb_private.h index 61452f2..d6bb743 100644 --- a/src/lib/ecore_x/xcb/ecore_xcb_private.h +++ b/src/lib/ecore_x/xcb/ecore_xcb_private.h @@ -73,14 +73,6 @@ extern int _ecore_xcb_log_dom; # define MAXHOSTNAMELEN 256 # endif -# ifndef MIN -# define MIN(x, y) (((x) > (y)) ? (y) : (x)) -# endif - -# ifndef MAX -# define MAX(a, b) ((a < b) ? b : a) -# endif - #define CHECK_XCB_CONN \ { \ if (xcb_connection_has_error(_ecore_xcb_conn)) \ diff --git a/src/lib/edje/edje_private.h b/src/lib/edje/edje_private.h index 92148e8..5bfecbc 100644 --- a/src/lib/edje/edje_private.h +++ b/src/lib/edje/edje_private.h @@ -130,10 +130,6 @@ EAPI extern int _edje_default_log_dom ; #define CLAMP(x, min, max) (((x) > (max)) ? (max) : (((x) < (min)) ? (min) : (x))) #endif -#ifndef MIN -#define MIN(a, b) (((a) < (b)) ? (a) : (b)) -#endif - #ifdef BUILD_EDJE_FP diff --git a/src/lib/eet/eet_image.c b/src/lib/eet/eet_image.c index 5578925..ba43c20 100644 --- a/src/lib/eet/eet_image.c +++ b/src/lib/eet/eet_image.c @@ -54,12 +54,6 @@ #define OFFSET_HEIGHT 12 #define OFFSET_BLOCKS 16 -#undef MIN -#define MIN(x, y) (((x) < (y)) ? (x) : (y)) - -#undef MAX -#define MAX(x, y) (((x) > (y)) ? (x) : (y)) - /*---*/ typedef struct _JPEG_error_mgr *emptr; diff --git a/src/lib/eina/eina_private.h b/src/lib/eina/eina_private.h index c51d35f..810e4b2 100644 --- a/src/lib/eina/eina_private.h +++ b/src/lib/eina/eina_private.h @@ -25,14 +25,6 @@ #include "eina_iterator.h" #include
[EGIT] [core/efl] master 01/02: eina: add MIN/MAX redefine as we use it everywhere.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=d00643fcc4ebe2de3d9abf21edd0a7f55d99972c commit d00643fcc4ebe2de3d9abf21edd0a7f55d99972c Author: Cedric BAILDate: Mon May 9 16:56:38 2016 -0700 eina: add MIN/MAX redefine as we use it everywhere. This is done on an attempt to permanently fix our Windows port. Windows doesn't have MIN/MAX, so we should always do a ifndef/define in every piece of code that use it. Of course we always forget and it take times to notice and fix. We have over the year added it in many private headers, but as the issue continue to raise again and again, I prefer to get this fixed in our main header. --- src/lib/eina/eina_cpu.h | 8 1 file changed, 8 insertions(+) diff --git a/src/lib/eina/eina_cpu.h b/src/lib/eina/eina_cpu.h index bb7082b..e97d614 100644 --- a/src/lib/eina/eina_cpu.h +++ b/src/lib/eina/eina_cpu.h @@ -122,6 +122,14 @@ static inline unsigned int eina_swap32(unsigned int x); */ static inline unsigned long long eina_swap64(unsigned long long x); +#ifndef MIN +# define MIN(x, y) (((x) > (y)) ? (y) : (x)) +#endif + +#ifndef MAX +# define MAX(x, y) (((x) > (y)) ? (x) : (y)) +#endif + #include "eina_inline_cpu.x" /** --
Re: [E-devel] Enlightenment Release Management
On 05/09/2016 06:14 PM, Mike Blumenkrantz wrote: > On Mon, May 9, 2016 at 5:41 PM Christopher Michael < > cpmich...@osg.samsung.com> wrote: > >> On 05/09/2016 10:10 AM, Mike Blumenkrantz wrote: >>> This has been a long time coming, but the time has come for me to admit >>> that I don't have time anymore to actively develop new releases and >>> regularly manage/test/punt stable releases. >>> >>> Fortunately, there's a solution to this. I've spoken with Simon Lees (aka >>> Simotek), and he's agreed to help with the maintenance of stable releases >>> for an amount of time beginning with the 20.8 release. Simon has been a >>> member of the community for a long time now, and he is also managing >>> EFL/Enlightenment releases for openSUSE--arguably the distro on which we >>> are best-supported. >>> >> >> I am not against the idea, but What amount of time are we talking here ? >> If it's just for a day, then I don't see the point ;) >> >>> I'm not involved with infrastructure at all, but it seems to me that >>> there's two ways this can work: >>> * He gets commit access, direct ssh access to the download server, and >>> posting/moderation access to the release list >> >> Sure >> >>> * I continue to handle these things as a proxy for him >>> >> >> Well, that just eats up your time anyway. >> >>> My preference is the former option in order to reduce the amount of time >>> that I need to spend overseeing someone who is clearly competent and >>> responsible enough to handle these things on his own. >>> >>> The 20.8 release is likely to go out sometime next week, and I'd like to >>> try and get this resolved before then so that the process can go >> smoothly. >>> >>> Thoughts? >> >> My only worry is ... can he handle the stress ? Running automated >> scripts and making blog posts can wear a person down ;) >> >> All kidding aside, If it makes your like easier, then +1 from me ... >> After all, we can always revoke his acccess if he screws up or abuses it ;) >> > > I hope he abuses it and starts doing releases 3 times a day every day. We > can beat Firefox to v50! > LMAO ! I hope our releases come out better than theirs ;) > >> >> Cheers, >> dh >> >> -- Mobile security can be enabling, not merely restricting. Employees who bring their own devices (BYOD) to work are irked by the imposition of MDM restrictions. Mobile Device Manager Plus allows you to control only the apps on BYO-devices by containerizing them, leaving personal data untouched! https://ad.doubleclick.net/ddm/clk/304595813;131938128;j ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Enlightenment Release Management
On Mon, May 9, 2016 at 5:41 PM Christopher Michael < cpmich...@osg.samsung.com> wrote: > On 05/09/2016 10:10 AM, Mike Blumenkrantz wrote: > > This has been a long time coming, but the time has come for me to admit > > that I don't have time anymore to actively develop new releases and > > regularly manage/test/punt stable releases. > > > > Fortunately, there's a solution to this. I've spoken with Simon Lees (aka > > Simotek), and he's agreed to help with the maintenance of stable releases > > for an amount of time beginning with the 20.8 release. Simon has been a > > member of the community for a long time now, and he is also managing > > EFL/Enlightenment releases for openSUSE--arguably the distro on which we > > are best-supported. > > > > I am not against the idea, but What amount of time are we talking here ? > If it's just for a day, then I don't see the point ;) > > > I'm not involved with infrastructure at all, but it seems to me that > > there's two ways this can work: > > * He gets commit access, direct ssh access to the download server, and > > posting/moderation access to the release list > > Sure > > > * I continue to handle these things as a proxy for him > > > > Well, that just eats up your time anyway. > > > My preference is the former option in order to reduce the amount of time > > that I need to spend overseeing someone who is clearly competent and > > responsible enough to handle these things on his own. > > > > The 20.8 release is likely to go out sometime next week, and I'd like to > > try and get this resolved before then so that the process can go > smoothly. > > > > Thoughts? > > My only worry is ... can he handle the stress ? Running automated > scripts and making blog posts can wear a person down ;) > > All kidding aside, If it makes your like easier, then +1 from me ... > After all, we can always revoke his acccess if he screws up or abuses it ;) > I hope he abuses it and starts doing releases 3 times a day every day. We can beat Firefox to v50! > > Cheers, > dh > > > > -- > Mobile security can be enabling, not merely restricting. Employees who > bring their own devices (BYOD) to work are irked by the imposition of MDM > restrictions. Mobile Device Manager Plus allows you to control only the > apps on BYO-devices by containerizing them, leaving personal data > untouched! > https://ad.doubleclick.net/ddm/clk/304595813;131938128;j > ___ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > -- Mobile security can be enabling, not merely restricting. Employees who bring their own devices (BYOD) to work are irked by the imposition of MDM restrictions. Mobile Device Manager Plus allows you to control only the apps on BYO-devices by containerizing them, leaving personal data untouched! https://ad.doubleclick.net/ddm/clk/304595813;131938128;j ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 01/01: eina: Add eina_promise_race composition function
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=1c5ce165658820643511ff784d0c210969173a45 commit 1c5ce165658820643511ff784d0c210969173a45 Author: Felipe Magno de AlmeidaDate: Mon May 9 19:10:26 2016 -0300 eina: Add eina_promise_race composition function Added eina_promise_race function that composes multiple promise objects into a new promise which is fulfilled when one of the promises are fulfilled, or fails when one of the promises have failed. --- src/lib/eina/eina_promise.c| 103 + src/lib/eina/eina_promise.h| 18 ++- src/tests/eina/eina_test_promise.c | 23 + 3 files changed, 143 insertions(+), 1 deletion(-) diff --git a/src/lib/eina/eina_promise.c b/src/lib/eina/eina_promise.c index 2fe19a4..93e7094 100644 --- a/src/lib/eina/eina_promise.c +++ b/src/lib/eina/eina_promise.c @@ -104,6 +104,19 @@ struct _Eina_Promise_Iterator } data; }; +typedef struct _Eina_Promise_Race_Value_Type _Eina_Promise_Race_Value_Type; +struct _Eina_Promise_Race_Value_Type +{ + void* value; + unsigned int promise_index; + unsigned int num_promises; + struct _Eina_Promise_Race_Information + { + Eina_Promise* promise; + _Eina_Promise_Default_Owner* self; + } promises[]; +}; + static void _eina_promise_free_progress_callback_node(void* node) { _Eina_Promise_Progress_Cb *progress_cb = node; @@ -669,6 +682,96 @@ eina_promise_progress_notification(Eina_Promise_Owner* promise) return eina_promise_owner_promise_get(owner); } +// Race implementation +static void +_eina_promise_race_free(_Eina_Promise_Race_Value_Type* value) +{ + unsigned i = 0; + for (;i != value->num_promises; ++i) + { +eina_promise_unref(value->promises[i].promise); + } +} + +static void +_eina_promise_race_compose_then_cb(struct _Eina_Promise_Race_Information* info, void* value EINA_UNUSED) +{ + _Eina_Promise_Default_Owner* race_promise; + _Eina_Promise_Race_Value_Type *race_value; + + race_promise = info->self; + race_value = (_Eina_Promise_Race_Value_Type*)race_promise->value; + + if (!race_promise->promise.has_finished) + { +race_value->value = value; +race_value->promise_index = info - _value->promises[0]; +_eina_promise_finish(race_promise); + } +} + +static void +_eina_promise_race_compose_error_then_cb(struct _Eina_Promise_Race_Information* info, Eina_Error const* error) +{ + _Eina_Promise_Default_Owner* race_promise; + _Eina_Promise_Race_Value_Type *race_value; + + race_promise = info->self; + race_value = (_Eina_Promise_Race_Value_Type*)race_promise->value; + + if (!race_promise->promise.has_finished) + { +race_value->promise_index = info - _value->promises[0]; +eina_promise_owner_error_set(_promise->owner_vtable, *error); + } +} + +Eina_Promise * +eina_promise_race(Eina_Iterator* it) +{ + _Eina_Promise_Default_Owner *promise; + Eina_Promise* current; + Eina_Array* promises; + struct _Eina_Promise_Race_Information *cur_promise, *last; + _Eina_Promise_Race_Value_Type *value; + int num_promises; + + promises = eina_array_new(20); + + EINA_ITERATOR_FOREACH(it, current) + { +eina_array_push(promises, current); + } + + eina_iterator_free(it); + + num_promises = eina_array_count_get(promises); + promise = (_Eina_Promise_Default_Owner*) + eina_promise_default_add(sizeof(_Eina_Promise_Race_Value_Type) + + sizeof(struct _Eina_Promise_Race_Information*)*num_promises); + value = eina_promise_owner_buffer_get((Eina_Promise_Owner*)promise); + value->value = NULL; + value->promise_index = -1; + value->num_promises = num_promises; + + promise->promise.value_free_cb = (Eina_Promise_Free_Cb)&_eina_promise_race_free; + + cur_promise = value->promises; + last = value->promises + value->num_promises; + for (int i = 0;cur_promise != last; ++cur_promise, ++i) + { +cur_promise->promise = eina_array_data_get(promises, i); +cur_promise->self = promise; +eina_promise_then(cur_promise->promise, (Eina_Promise_Cb)&_eina_promise_race_compose_then_cb, + (Eina_Promise_Error_Cb)&_eina_promise_race_compose_error_then_cb, cur_promise); +eina_promise_ref(cur_promise->promise); // We need to keep the value alive until this promise is freed + } + + eina_array_free(promises); + + return >promise.vtable; +} + // API functions EAPI void eina_promise_then(Eina_Promise* promise, Eina_Promise_Cb callback, diff --git a/src/lib/eina/eina_promise.h b/src/lib/eina/eina_promise.h index 51bdb80..916d6ea 100644 --- a/src/lib/eina/eina_promise.h +++ b/src/lib/eina/eina_promise.h @@ -224,7 +224,11 @@ EAPI void eina_promise_then(Eina_Promise* promise, Eina_Promise_Cb callback,
Re: [E-devel] Enlightenment Release Management
On 05/09/2016 10:10 AM, Mike Blumenkrantz wrote: > This has been a long time coming, but the time has come for me to admit > that I don't have time anymore to actively develop new releases and > regularly manage/test/punt stable releases. > > Fortunately, there's a solution to this. I've spoken with Simon Lees (aka > Simotek), and he's agreed to help with the maintenance of stable releases > for an amount of time beginning with the 20.8 release. Simon has been a > member of the community for a long time now, and he is also managing > EFL/Enlightenment releases for openSUSE--arguably the distro on which we > are best-supported. > I am not against the idea, but What amount of time are we talking here ? If it's just for a day, then I don't see the point ;) > I'm not involved with infrastructure at all, but it seems to me that > there's two ways this can work: > * He gets commit access, direct ssh access to the download server, and > posting/moderation access to the release list Sure > * I continue to handle these things as a proxy for him > Well, that just eats up your time anyway. > My preference is the former option in order to reduce the amount of time > that I need to spend overseeing someone who is clearly competent and > responsible enough to handle these things on his own. > > The 20.8 release is likely to go out sometime next week, and I'd like to > try and get this resolved before then so that the process can go smoothly. > > Thoughts? My only worry is ... can he handle the stress ? Running automated scripts and making blog posts can wear a person down ;) All kidding aside, If it makes your like easier, then +1 from me ... After all, we can always revoke his acccess if he screws up or abuses it ;) Cheers, dh -- Mobile security can be enabling, not merely restricting. Employees who bring their own devices (BYOD) to work are irked by the imposition of MDM restrictions. Mobile Device Manager Plus allows you to control only the apps on BYO-devices by containerizing them, leaving personal data untouched! https://ad.doubleclick.net/ddm/clk/304595813;131938128;j ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/enlightenment] master 01/01: do not add ignored clients to ibar menu
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=240561fda184ce4732abe9859924ad6fc994fc2b commit 240561fda184ce4732abe9859924ad6fc994fc2b Author: Mike BlumenkrantzDate: Mon May 9 13:56:56 2016 -0400 do not add ignored clients to ibar menu fix T3603 --- src/modules/ibar/e_mod_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/ibar/e_mod_main.c b/src/modules/ibar/e_mod_main.c index 755d68d..5b5538e 100644 --- a/src/modules/ibar/e_mod_main.c +++ b/src/modules/ibar/e_mod_main.c @@ -1298,7 +1298,7 @@ _ibar_icon_menu_client_add(IBar_Icon *ic, E_Client *ec) Eina_Stringshare *txt; int w, h; - if (ec->netwm.state.skip_taskbar) return EINA_FALSE; + if (ec->netwm.state.skip_taskbar || e_client_util_ignored_get(ec)) return EINA_FALSE; o = ic->menu->o_bg; it = edje_object_add(e_comp->evas); ic->client_objs = eina_list_append(ic->client_objs, it); --
[EGIT] [core/enlightenment] master 01/02: make init fail if a dbus session connection cannot be created
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=7ebaa1ffb3ddae7c1218ecfdbff09edbe7a1ee75 commit 7ebaa1ffb3ddae7c1218ecfdbff09edbe7a1ee75 Author: Mike BlumenkrantzDate: Mon May 9 13:30:40 2016 -0400 make init fail if a dbus session connection cannot be created typically this indicates a broken session manager or someone trying to run a wayland session without using dbus-launch --- src/bin/e_main.c | 12 +++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/bin/e_main.c b/src/bin/e_main.c index ef68ab5..28ed4bc 100644 --- a/src/bin/e_main.c +++ b/src/bin/e_main.c @@ -629,7 +629,17 @@ main(int argc, char **argv) if (e_config->show_splash) e_init_status_set(_("Setup Message Bus")); TS("E_Msgbus Init"); - if (e_msgbus_init()) + if (!e_msgbus_init()) + { +if (!getenv("E_NO_DBUS_SESSION")) + { + e_error_message_show(_("Enlightenment cannot create a dbus session connection.\n" +"At best this will break many things, at worst it will hard lock your machine.\n" +"If you're sure you know what you're doing, export E_NO_DBUS_SESSION=1")); + _e_main_shutdown(-1); + } + } + else _e_main_shutdown_push(e_msgbus_shutdown); TS("E_Msgbus Init Done"); --
[EGIT] [core/efl] master 01/01: elput: Add code to handle keybindings for vt switching
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=d734cd4cada136add5d66e126c659223897fe487 commit d734cd4cada136add5d66e126c659223897fe487 Author: Chris MichaelDate: Mon May 9 12:00:35 2016 -0400 elput: Add code to handle keybindings for vt switching This patch makes elput handle receiving the key combinations for vt switching and perform the actual switch itself. This is done so that ecore_drm2, ecore_fb, etc, etc do not each need their own code to handle vt switching. @feature Signed-off-by: Chris Michael --- src/lib/elput/elput_manager.c | 45 +++ src/lib/elput/elput_private.h | 1 + 2 files changed, 42 insertions(+), 4 deletions(-) diff --git a/src/lib/elput/elput_manager.c b/src/lib/elput/elput_manager.c index e267951..13db809 100644 --- a/src/lib/elput/elput_manager.c +++ b/src/lib/elput/elput_manager.c @@ -5,11 +5,35 @@ static Elput_Interface *_ifaces[] = #ifdef HAVE_SYSTEMD &_logind_interface, #endif - NULL, // launcher - NULL, // direct NULL, }; +static Eina_Bool +_cb_key_down(void *data, int type EINA_UNUSED, void *event) +{ + Elput_Manager *em; + Ecore_Event_Key *ev; + int code = 0, vt = 0; + + em = data; + ev = event; + code = (ev->keycode - 8); + + if ((ev->modifiers & ECORE_EVENT_MODIFIER_CTRL) && + (ev->modifiers & ECORE_EVENT_MODIFIER_ALT) && + (code >= KEY_F1) && (code <= KEY_F8)) + { +vt = (code - KEY_F1 + 1); +if (em->interface->vt_set) + { + if (!em->interface->vt_set(em, vt)) + ERR("Failed to switch to virtual terminal %d", vt); + } + } + + return ECORE_CALLBACK_RENEW; +} + EAPI Elput_Manager * elput_manager_connect(const char *seat, unsigned int tty, Eina_Bool sync) { @@ -41,6 +65,8 @@ elput_manager_disconnect(Elput_Manager *manager) EAPI int elput_manager_open(Elput_Manager *manager, const char *path, int flags) { + int ret = -1; + EINA_SAFETY_ON_NULL_RETURN_VAL(manager, -1); EINA_SAFETY_ON_NULL_RETURN_VAL(manager->interface, -1); EINA_SAFETY_ON_NULL_RETURN_VAL(path, -1); @@ -48,9 +74,17 @@ elput_manager_open(Elput_Manager *manager, const char *path, int flags) if (flags < 0) flags = O_RDWR; if (manager->interface->open) - return manager->interface->open(manager, path, flags); + { +ret = manager->interface->open(manager, path, flags); +if (ret) + { + manager->vt_hdlr = + ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, + _cb_key_down, manager); + } + } - return -1; + return ret; } EAPI void @@ -59,6 +93,9 @@ elput_manager_close(Elput_Manager *manager, int fd) EINA_SAFETY_ON_NULL_RETURN(manager); EINA_SAFETY_ON_NULL_RETURN(manager->interface); + if (manager->vt_hdlr) ecore_event_handler_del(manager->vt_hdlr); + manager->vt_hdlr = NULL; + if (manager->interface->close) manager->interface->close(manager, fd); } diff --git a/src/lib/elput/elput_private.h b/src/lib/elput/elput_private.h index 769d23c..d3297fa 100644 --- a/src/lib/elput/elput_private.h +++ b/src/lib/elput/elput_private.h @@ -222,6 +222,7 @@ struct _Elput_Manager char *sid; const char *seat; unsigned int vt_num; + Ecore_Event_Handler *vt_hdlr; struct { --
[EGIT] [core/efl] master 01/04: elput: Remove useless dbus argument fetching
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=9ed2f42c08c5adffbd4c13043923a1d5683d0bf1 commit 9ed2f42c08c5adffbd4c13043923a1d5683d0bf1 Author: Chris MichaelDate: Mon May 9 10:40:23 2016 -0400 elput: Remove useless dbus argument fetching As we do not need minor or fd from the dbus message during input device resume, we can remove these variables @fix Signed-off-by: Chris Michael --- src/lib/elput/elput_logind.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/lib/elput/elput_logind.c b/src/lib/elput/elput_logind.c index e829b4a..0f32b25 100644 --- a/src/lib/elput/elput_logind.c +++ b/src/lib/elput/elput_logind.c @@ -90,8 +90,7 @@ _cb_device_resumed(void *data, const Eldbus_Message *msg) { Elput_Manager *em; const char *errname, *errmsg; - uint32_t maj, min; - int fd; + uint32_t maj; em = data; @@ -101,7 +100,7 @@ _cb_device_resumed(void *data, const Eldbus_Message *msg) return; } - if (eldbus_message_arguments_get(msg, "uuh", , , )) + if (eldbus_message_arguments_get(msg, "u", )) { if ((em->sync) && (maj == 226)) // DRM_MAJOR { --
[EGIT] [core/efl] master 03/04: elput: Remove erroneous debug print out
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=a96266c42272bd6b8d3a27d7fdd7575199772c85 commit a96266c42272bd6b8d3a27d7fdd7575199772c85 Author: Chris MichaelDate: Mon May 9 11:05:21 2016 -0400 elput: Remove erroneous debug print out NB: No functional changes, just cleanup of extra debug message and commented out codeblock Signed-off-by: Chris Michael --- src/lib/elput/elput_input.c | 6 -- src/lib/elput/elput_logind.c | 2 -- 2 files changed, 8 deletions(-) diff --git a/src/lib/elput/elput_input.c b/src/lib/elput/elput_input.c index d50b023..8a15694 100644 --- a/src/lib/elput/elput_input.c +++ b/src/lib/elput/elput_input.c @@ -137,18 +137,12 @@ _device_add(Elput_Manager *em, struct libinput_device *dev) static void _device_remove(Elput_Manager *em EINA_UNUSED, struct libinput_device *device) { - /* Elput_Seat *eseat; */ Elput_Device *edev; edev = libinput_device_get_user_data(device); if (!edev) return; - /* eseat = _udev_seat_get(em, device); */ - /* if (eseat) */ - /* eseat->devices = eina_list_remove(eseat->devices, edev); */ - _device_event_send(edev, ELPUT_DEVICE_REMOVED); - /* _evdev_device_destroy(edev); */ } static int diff --git a/src/lib/elput/elput_logind.c b/src/lib/elput/elput_logind.c index aedcd79..123861a 100644 --- a/src/lib/elput/elput_logind.c +++ b/src/lib/elput/elput_logind.c @@ -140,8 +140,6 @@ _cb_property_changed(void *data, Eldbus_Proxy *proxy EINA_UNUSED, void *event) em = data; ev = event; - DBG("DBus Property Changed: %s", ev->name); - if (!strcmp(ev->name, "Active")) { eina_value_get(ev->value, ); --
[EGIT] [core/efl] master 02/04: elput: Support sending of session activate/deactivate event
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=3de066469ae76c22e50e9f78b03f1841d81cd7cc commit 3de066469ae76c22e50e9f78b03f1841d81cd7cc Author: Chris MichaelDate: Mon May 9 11:01:30 2016 -0400 elput: Support sending of session activate/deactivate event This patch adds support for notifying when a session gets activated or deactivated. This will be used in drm2 to notify compositor when to pause/restart rendering during a vt switch @feature Signed-off-by: Chris Michael --- src/lib/elput/Elput.h| 8 src/lib/elput/elput.c| 3 +++ src/lib/elput/elput_logind.c | 37 - 3 files changed, 39 insertions(+), 9 deletions(-) diff --git a/src/lib/elput/Elput.h b/src/lib/elput/Elput.h index f3fe16b..95adfce 100644 --- a/src/lib/elput/Elput.h +++ b/src/lib/elput/Elput.h @@ -91,11 +91,19 @@ typedef struct _Elput_Event_Device_Change Elput_Device_Change_Type type; } Elput_Event_Device_Change; +/* structure to represent session active changes */ +typedef struct _Elput_Event_Session_Active +{ + const char *session; + Eina_Bool active : 1; +} Elput_Event_Session_Active; + EAPI extern int ELPUT_EVENT_SEAT_CAPS; EAPI extern int ELPUT_EVENT_SEAT_FRAME; EAPI extern int ELPUT_EVENT_KEYMAP_SEND; EAPI extern int ELPUT_EVENT_MODIFIERS_SEND; EAPI extern int ELPUT_EVENT_DEVICE_CHANGE; +EAPI extern int ELPUT_EVENT_SESSION_ACTIVE; /** * @file diff --git a/src/lib/elput/elput.c b/src/lib/elput/elput.c index 2e54b3e..95d7a1e 100644 --- a/src/lib/elput/elput.c +++ b/src/lib/elput/elput.c @@ -11,6 +11,7 @@ EAPI int ELPUT_EVENT_SEAT_FRAME = -1; EAPI int ELPUT_EVENT_KEYMAP_SEND = -1; EAPI int ELPUT_EVENT_MODIFIERS_SEND = -1; EAPI int ELPUT_EVENT_DEVICE_CHANGE = -1; +EAPI int ELPUT_EVENT_SESSION_ACTIVE = -1; EAPI int elput_init(void) @@ -34,6 +35,7 @@ elput_init(void) ELPUT_EVENT_KEYMAP_SEND = ecore_event_type_new(); ELPUT_EVENT_MODIFIERS_SEND = ecore_event_type_new(); ELPUT_EVENT_DEVICE_CHANGE = ecore_event_type_new(); + ELPUT_EVENT_SESSION_ACTIVE = ecore_event_type_new(); return _elput_init_count; @@ -60,6 +62,7 @@ elput_shutdown(void) ELPUT_EVENT_KEYMAP_SEND = -1; ELPUT_EVENT_MODIFIERS_SEND = -1; ELPUT_EVENT_DEVICE_CHANGE = -1; + ELPUT_EVENT_SESSION_ACTIVE = -1; eina_log_domain_unregister(_elput_log_dom); _elput_log_dom = -1; diff --git a/src/lib/elput/elput_logind.c b/src/lib/elput/elput_logind.c index 0f32b25..aedcd79 100644 --- a/src/lib/elput/elput_logind.c +++ b/src/lib/elput/elput_logind.c @@ -3,6 +3,31 @@ #ifdef HAVE_SYSTEMD static void +_logind_session_active_cb_free(void *data EINA_UNUSED, void *event) +{ + Elput_Event_Session_Active *ev; + + ev = event; + eina_stringshare_del(ev->session); + free(ev); +} + +static void +_logind_session_active_send(Elput_Manager *em, Eina_Bool active) +{ + Elput_Event_Session_Active *ev; + + ev = calloc(1, sizeof(Elput_Event_Session_Active)); + if (!ev) return; + + ev->session = eina_stringshare_add(em->sid); + ev->active = active; + + ecore_event_add(ELPUT_EVENT_SESSION_ACTIVE, ev, + _logind_session_active_cb_free, NULL); +} + +static void _logind_device_pause_complete(Elput_Manager *em, uint32_t major, uint32_t minor) { Eldbus_Proxy *proxy; @@ -79,9 +104,7 @@ _cb_device_paused(void *data, const Eldbus_Message *msg) _logind_device_pause_complete(em, maj, min); if ((em->sync) && (maj == 226)) // DRM_MAJOR - { - /* TODO: _ecore_drm2_launcher_activate_send(em, EINA_FALSE); */ - } + _logind_session_active_send(em, EINA_FALSE); } } @@ -103,9 +126,7 @@ _cb_device_resumed(void *data, const Eldbus_Message *msg) if (eldbus_message_arguments_get(msg, "u", )) { if ((em->sync) && (maj == 226)) // DRM_MAJOR - { - /* TODO: _ecore_drm2_launcher_activate_send(em, EINA_TRUE); */ - } + _logind_session_active_send(em, EINA_TRUE); } } @@ -125,9 +146,7 @@ _cb_property_changed(void *data, Eldbus_Proxy *proxy EINA_UNUSED, void *event) { eina_value_get(ev->value, ); if ((!em->sync) || (!active)) - { - /* TODO: _ecore_drm2_launcher_activate_send(em, active); */ - } + _logind_session_active_send(em, active); } } --
[EGIT] [core/efl] master 04/04: elput: Add API function to switch to a given vt
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=f9149c1699515c060d004225c6a2c5653cebe322 commit f9149c1699515c060d004225c6a2c5653cebe322 Author: Chris MichaelDate: Mon May 9 11:35:48 2016 -0400 elput: Add API function to switch to a given vt This patch adds a new API function to Elput that can be used to switch to a given VT. This allows drm2 or enlightenment to switch to a given virtual terminal in response to keybindings. @feature Signed-off-by: Chris Michael --- src/lib/elput/Elput.h | 13 +++ src/lib/elput/elput_logind.c | 50 +++ src/lib/elput/elput_manager.c | 13 +++ src/lib/elput/elput_private.h | 1 + 4 files changed, 77 insertions(+) diff --git a/src/lib/elput/Elput.h b/src/lib/elput/Elput.h index 95adfce..d38569d 100644 --- a/src/lib/elput/Elput.h +++ b/src/lib/elput/Elput.h @@ -206,6 +206,19 @@ EAPI int elput_manager_open(Elput_Manager *manager, const char *path, int flags) EAPI void elput_manager_close(Elput_Manager *manager, int fd); /** + * Request to switch to a given vt + * + * @param manager + * @param vt + * + * @return EINA_TRUE on success, EINA_FALSE otherwise + * + * @ingroup Elput_Manager_Group + * @since 1.18 + */ +EAPI Eina_Bool elput_manager_vt_set(Elput_Manager *manager, int vt); + +/** * @defgroup Elput_Input_Group Elput input functions * * Functions that deal with setup of inputs diff --git a/src/lib/elput/elput_logind.c b/src/lib/elput/elput_logind.c index 123861a..394fca5 100644 --- a/src/lib/elput/elput_logind.c +++ b/src/lib/elput/elput_logind.c @@ -574,12 +574,62 @@ _logind_close(Elput_Manager *em, int fd) _logind_device_release(em, major(st.st_rdev), minor(st.st_rdev)); } +static Eina_Bool +_logind_vt_set(Elput_Manager *em, int vt) +{ + Eldbus_Object *obj; + Eldbus_Proxy *proxy; + Eldbus_Message *msg; + char self[PATH_MAX]; + + snprintf(self, sizeof(self), "/org/freedesktop/login1/seat/self"); + + obj = eldbus_object_get(em->dbus.conn, "org.freedesktop.login1", self); + if (!obj) + { +ERR("Could not get dbus object"); +goto obj_err; + } + + proxy = eldbus_proxy_get(obj, "org.freedesktop.login1.Seat"); + if (!proxy) + { +ERR("Could not get dbus proxy"); +goto proxy_err; + } + + msg = eldbus_proxy_method_call_new(proxy, "SwitchTo"); + if (!msg) + { +ERR("Could not create method call for proxy"); +goto msg_err; + } + + eldbus_message_arguments_append(msg, "u", ); + + eldbus_proxy_send(proxy, msg, NULL, NULL, -1); + + eldbus_message_unref(msg); + eldbus_proxy_unref(proxy); + eldbus_object_unref(obj); + + return EINA_TRUE; + +msg_err: + eldbus_proxy_unref(proxy); +proxy_err: + eldbus_object_unref(obj); +obj_err: + return EINA_FALSE; +} + Elput_Interface _logind_interface = { _logind_connect, _logind_disconnect, _logind_open, _logind_close, + _logind_vt_set, }; #endif diff --git a/src/lib/elput/elput_manager.c b/src/lib/elput/elput_manager.c index 3dc67d9..e267951 100644 --- a/src/lib/elput/elput_manager.c +++ b/src/lib/elput/elput_manager.c @@ -62,3 +62,16 @@ elput_manager_close(Elput_Manager *manager, int fd) if (manager->interface->close) manager->interface->close(manager, fd); } + +EAPI Eina_Bool +elput_manager_vt_set(Elput_Manager *manager, int vt) +{ + EINA_SAFETY_ON_NULL_RETURN_VAL(manager, EINA_FALSE); + EINA_SAFETY_ON_NULL_RETURN_VAL(manager->interface, EINA_FALSE); + EINA_SAFETY_ON_TRUE_RETURN_VAL((vt < 0), EINA_FALSE); + + if (manager->interface->vt_set) + return manager->interface->vt_set(manager, vt); + + return EINA_FALSE; +} diff --git a/src/lib/elput/elput_private.h b/src/lib/elput/elput_private.h index 05ee0b1..769d23c 100644 --- a/src/lib/elput/elput_private.h +++ b/src/lib/elput/elput_private.h @@ -72,6 +72,7 @@ typedef struct _Elput_Interface void (*disconnect)(Elput_Manager *manager); int (*open)(Elput_Manager *manager, const char *path, int flags); void (*close)(Elput_Manager *manager, int fd); + Eina_Bool (*vt_set)(Elput_Manager *manager, int vt); } Elput_Interface; typedef struct _Elput_Input --
[E-devel] Enlightenment Release Management
This has been a long time coming, but the time has come for me to admit that I don't have time anymore to actively develop new releases and regularly manage/test/punt stable releases. Fortunately, there's a solution to this. I've spoken with Simon Lees (aka Simotek), and he's agreed to help with the maintenance of stable releases for an amount of time beginning with the 20.8 release. Simon has been a member of the community for a long time now, and he is also managing EFL/Enlightenment releases for openSUSE--arguably the distro on which we are best-supported. I'm not involved with infrastructure at all, but it seems to me that there's two ways this can work: * He gets commit access, direct ssh access to the download server, and posting/moderation access to the release list * I continue to handle these things as a proxy for him My preference is the former option in order to reduce the amount of time that I need to spend overseeing someone who is clearly competent and responsible enough to handle these things on his own. The 20.8 release is likely to go out sometime next week, and I'd like to try and get this resolved before then so that the process can go smoothly. Thoughts? -- Find and fix application performance issues faster with Applications Manager Applications Manager provides deep performance insights into multiple tiers of your business applications. It resolves application problems quickly and reduces your MTTR. Get your free trial! https://ad.doubleclick.net/ddm/clk/302982198;130105516;z ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/efl] master 01/02: elm test dnd: fix multiple items dnd
On Mon, May 9, 2016 at 4:59 AM Thiep Hawrote: > thiep pushed a commit to branch master. > > > http://git.enlightenment.org/core/efl.git/commit/?id=07507864ca7e383b2dbf5600f8a4d58cb687e142 > > commit 07507864ca7e383b2dbf5600f8a4d58cb687e142 > Author: Thiep Ha > Date: Mon May 9 17:10:01 2016 +0900 > > elm test dnd: fix multiple items dnd > > When we do dnd with multiple items in genlist, gengrid in dnd test, > the items are correctly transfered. > It is caused by incorrect sent data. > This patch fixes by adding new line separation between items' data. > --- > src/bin/elementary/test_dnd.c | 8 ++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/src/bin/elementary/test_dnd.c b/src/bin/elementary/test_dnd.c > index 40c2c61..faeee2e 100644 > --- a/src/bin/elementary/test_dnd.c > +++ b/src/bin/elementary/test_dnd.c > @@ -65,6 +65,7 @@ _drag_data_build(Eina_List **items) > Elm_Object_Item *it; > const char *t; > unsigned int len = 0; > +int i = 0; > > EINA_LIST_FOREACH(*items, l, it) >{ > @@ -73,17 +74,20 @@ _drag_data_build(Eina_List **items) > len += strlen(t); >} > > -drag_data = malloc(len + eina_list_count(*items) * (FILESEP_LEN + > 1) + 1); > +drag_data = malloc(len + eina_list_count(*items) * (FILESEP_LEN + > 1)); > strcpy((char *) drag_data, ""); > > -/* drag data in form: file://URI1\nfile://URI2\n */ > +/* drag data in form: file://URI1\nfile://URI2 */ > EINA_LIST_FOREACH(*items, l, it) >{ > t = (char *)elm_object_item_data_get(it); > if (t) > { > + if (i > 0) > +strcat((char *) drag_data, "\n"); >strcat((char *) drag_data, FILESEP); >strcat((char *) drag_data, t); > + i++; > } >} > } > > -- > > > I would strongly prefer if you could change this to use eina_strbuf. I can almost guarantee that continued use of strcat will result in even more coverity issues. -- Find and fix application performance issues faster with Applications Manager Applications Manager provides deep performance insights into multiple tiers of your business applications. It resolves application problems quickly and reduces your MTTR. Get your free trial! https://ad.doubleclick.net/ddm/clk/302982198;130105516;z ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/efl] master 01/03: ecore: update documentation of Efl.Timer.
Hello. On 07/05/16 00:42, Cedric BAIL wrote: > cedric pushed a commit to branch master. > > http://git.enlightenment.org/core/efl.git/commit/?id=45d17f100e927ee90ea782a387893add0e7f3fbd > > commit 45d17f100e927ee90ea782a387893add0e7f3fbd > Author: Cedric BAIL> Date: Fri May 6 15:32:32 2016 -0700 > > ecore: update documentation of Efl.Timer. > > I am wondering how this is going to affect our legacy API documentation > which has indeed a different lifecycle. You mean how an documentation update in the EO file would effect the published docs? They would not be part of any current/legacy docs. It will be part of the new doc system we are working on based on the EO files though. What we currently have is manually updated from time to time here: https://devs.enlightenment.org/~stefan/dokuwiki/doku.php?id=efl:reference#efl_reference This is nothing official yet but just to help Daniel and me to verify our changes. regards Stefan Schmidt -- Find and fix application performance issues faster with Applications Manager Applications Manager provides deep performance insights into multiple tiers of your business applications. It resolves application problems quickly and reduces your MTTR. Get your free trial! https://ad.doubleclick.net/ddm/clk/302982198;130105516;z ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 01/01: edje - file set - use vpath for edje files now too like evas images
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=90e8ad8d7dec453fa0037792cb6e2e04bdeadc8b commit 90e8ad8d7dec453fa0037792cb6e2e04bdeadc8b Author: Carsten Haitzler (Rasterman)Date: Mon May 9 19:37:48 2016 +0900 edje - file set - use vpath for edje files now too like evas images --- src/lib/edje/edje_edit.c| 13 - src/lib/edje/edje_load.c| 12 +++- src/lib/edje/edje_private.h | 2 ++ src/lib/edje/edje_smart.c | 42 -- 4 files changed, 61 insertions(+), 8 deletions(-) diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c index da63dd7..bd5552a 100644 --- a/src/lib/edje/edje_edit.c +++ b/src/lib/edje/edje_edit.c @@ -189,14 +189,25 @@ _edje_edit_efl_file_file_set(Eo *obj, Edje_Edit *eed, const char *file, const ch *(GROUP parts or BOX/TABLE items pointing to non-existent/renamed *groups). */ + 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); + Eina_Bool int_ret = EINA_FALSE; int_ret = efl_file_set(eo_super(obj, MY_CLASS), file, group); if (!int_ret) - return ret; + { +eo_del(file_obj); +return ret; + } eed->program_scripts = eina_hash_int32_new((Eina_Free_Cb)_edje_edit_program_script_free); ef = eet_open(file, EET_FILE_MODE_READ); + eo_del(file_obj); snprintf(buf, sizeof(buf), "edje/scripts/embryo/source/%i", eed->base->collection->id); diff --git a/src/lib/edje/edje_load.c b/src/lib/edje/edje_load.c index e73007f..af9e7ce 100644 --- a/src/lib/edje/edje_load.c +++ b/src/lib/edje/edje_load.c @@ -246,11 +246,18 @@ 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); f = eina_file_open(file, EINA_FALSE); lst = edje_mmap_collection_list(f); eina_file_close(f); + eo_del(file_obj); return lst; } @@ -1412,11 +1419,6 @@ _edje_file_add(Edje *ed, const Eina_File *f) ed->file = NULL; } } - else - { -// FIXME: it will be actually better to remove ed->path. -ed->path = eina_stringshare_add(eina_file_filename_get(f)); - } } static int diff --git a/src/lib/edje/edje_private.h b/src/lib/edje/edje_private.h index c70f282..92148e8 100644 --- a/src/lib/edje/edje_private.h +++ b/src/lib/edje/edje_private.h @@ -1660,6 +1660,8 @@ struct _Edje doubleduration_scale; + Efl_Vpath_File *file_obj; + Eina_List*user_defined; lua_State*L; diff --git a/src/lib/edje/edje_smart.c b/src/lib/edje/edje_smart.c index 2e905bf..ebfcf0c 100644 --- a/src/lib/edje/edje_smart.c +++ b/src/lib/edje/edje_smart.c @@ -50,6 +50,11 @@ _edje_object_eo_base_constructor(Eo *obj, Edje *ed) EOLIAN static void _edje_object_eo_base_destructor(Eo *obj, Edje *class_data) { + if (class_data->file_obj) + { +eo_del(class_data->file_obj); +class_data->file_obj = NULL; + } eo_destructor(eo_super(obj, MY_CLASS)); eo_data_unref(obj, class_data->base); } @@ -359,11 +364,28 @@ _edje_object_efl_file_file_set(Eo *obj, Edje *ed, const char *file, const char * ret = EINA_FALSE; + if (ed->file_obj) + { +eo_del(ed->file_obj); +ed->file_obj = NULL; + } if (file) { -f = eina_file_open(file, EINA_FALSE); +const char *file2; + +ed->file_obj = efl_vpath_manager_fetch(EFL_VPATH_MANAGER_CLASS, file); +efl_vpath_file_do(ed->file_obj); +// XXX:FIXME: allow this to be async +efl_vpath_file_wait(ed->file_obj); +file2 = efl_vpath_file_result_get(ed->file_obj); + +f = eina_file_open(file2, EINA_FALSE); if (!f) { + eo_del(ed->file_obj); + ed->file_obj = NULL; + if (ed->path) eina_stringshare_del(ed->path); + ed->path = NULL; ed->load_error = EDJE_LOAD_ERROR_DOES_NOT_EXIST; return ret; } @@ -371,7 +393,23 @@ _edje_object_efl_file_file_set(Eo *obj, Edje *ed, const char *file, const char * nested = eina_array_new(8); if (_edje_object_file_set_internal(obj, f, group, NULL, NULL, nested)) - ret = EINA_TRUE; + { +if (file) + { + ed->path = eina_stringshare_add(file); + } +else + { + if (ed->path) eina_stringshare_del(ed->path); + ed->path = NULL; + }
[EGIT] [admin/devs] master 01/01: probie: add a new probie, "herb"
hermet pushed a commit to branch master. http://git.enlightenment.org/admin/devs.git/commit/?id=a3fc5f0b515337277a43a0be86bfc5377a11dc81 commit a3fc5f0b515337277a43a0be86bfc5377a11dc81 Author: Hermet ParkDate: Mon May 9 19:15:35 2016 +0900 probie: add a new probie, "herb" --- probies/herb/id_rsa.pub | 1 + probies/herb/info.txt | 8 2 files changed, 9 insertions(+) diff --git a/probies/herb/id_rsa.pub b/probies/herb/id_rsa.pub new file mode 100644 index 000..c2329ce --- /dev/null +++ b/probies/herb/id_rsa.pub @@ -0,0 +1 @@ +ssh-rsa B3NzaC1yc2EDAQABAAABAQDkQvQzmPnmLvbHoKvZ0WTa4ZDfesFgGtr4CJgOCFl5YuNFIOZ/UsOk94q7cEr43erqlRIsI7c8Web4pzNyBt7rJd8wkszoTzvLBSeTLaAI+BnGBWUboROTfcn3poAY2yCkYQYUAquUF8fpRRIICeK1eTCY/KsxYpDmg3+bjd3u5sHmekY4i3SeUwOMQaKBK+ucVZiwGGYdbsINSYzGCixaMYmaRty5r5c06L1Bkg/cIzG66wlrna12ckFZiTD+5twaWkPDst+1428/gExvHH54xt1tKsg4y4y+LwvSlhPDtCVNdvAtU334/w1/r2AB9r7A+KwUGr+50uEjIGEkJ1H9 taehyub@taehyub diff --git a/probies/herb/info.txt b/probies/herb/info.txt new file mode 100644 index 000..f8c969a --- /dev/null +++ b/probies/herb/info.txt @@ -0,0 +1,8 @@ +Login:herb +IRC Nick: taehyub +Name: Taehyub Kim +Location: Seoul, Republic of Korea +E-Mail: taehyub0...@gmail.com, taehyub@samsung.com +Contributing: efl, enventor +Group:Libraries +Platform: Ubuntu --
[EGIT] [core/efl] master 02/02: elm entry: add more control for dnd
thiep pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b39d869b7a6fc80a33ec6ec531efab68097e7c7a commit b39d869b7a6fc80a33ec6ec531efab68097e7c7a Author: Thiep HaDate: Mon May 9 17:28:02 2016 +0900 elm entry: add more control for dnd Adding dnd's enter, leave, position callbacks to let users know when drag item is entered, leaved; move cursor to follow drag item's position. --- src/lib/elementary/elm_entry.c | 114 - 1 file changed, 77 insertions(+), 37 deletions(-) diff --git a/src/lib/elementary/elm_entry.c b/src/lib/elementary/elm_entry.c index d193a53..f26e803 100644 --- a/src/lib/elementary/elm_entry.c +++ b/src/lib/elementary/elm_entry.c @@ -698,8 +698,48 @@ _selection_data_cb(void *data EINA_UNUSED, return EINA_TRUE; } +static void +_dnd_enter_cb(void *data EINA_UNUSED, + Evas_Object *obj) +{ + elm_object_focus_set(obj, EINA_TRUE); +} + +static void +_dnd_leave_cb(void *data EINA_UNUSED, + Evas_Object *obj) +{ + if (_elm_config->desktop_entry) + elm_object_focus_set(obj, EINA_FALSE); +} + +static void +_dnd_pos_cb(void *data EINA_UNUSED, +Evas_Object *obj, +Evas_Coord x, +Evas_Coord y, +Elm_Xdnd_Action action EINA_UNUSED) +{ + int pos; + Evas_Coord ox, oy, ex, ey; + + ELM_ENTRY_DATA_GET(obj, sd); + + evas_object_geometry_get(obj, , , NULL, NULL); + evas_object_geometry_get(sd->entry_edje, , , NULL, NULL); + x = x + ox - ex; + y = y + oy - ey; + + edje_object_part_text_cursor_coord_set + (sd->entry_edje, "elm.text", EDJE_CURSOR_USER, x, y); + pos = edje_object_part_text_cursor_pos_get + (sd->entry_edje, "elm.text", EDJE_CURSOR_USER); + edje_object_part_text_cursor_pos_set(sd->entry_edje, "elm.text", +EDJE_CURSOR_MAIN, pos); +} + static Eina_Bool -_drag_drop_cb(void *data EINA_UNUSED, +_dnd_drop_cb(void *data EINA_UNUSED, Evas_Object *obj, Elm_Selection_Data *drop) { @@ -732,10 +772,10 @@ EOLIAN static Eina_Bool _elm_entry_elm_widget_disable(Eo *obj, Elm_Entry_Data *sd) { elm_drop_target_del(obj, sd->drop_format, - NULL, NULL, - NULL, NULL, - NULL, NULL, - _drag_drop_cb, NULL); + _dnd_enter_cb, NULL, + _dnd_leave_cb, NULL, + _dnd_pos_cb, NULL, + _dnd_drop_cb, NULL); if (elm_object_disabled_get(obj)) { edje_object_signal_emit(sd->entry_edje, "elm,state,disabled", "elm"); @@ -757,10 +797,10 @@ _elm_entry_elm_widget_disable(Eo *obj, Elm_Entry_Data *sd) sd->disabled = EINA_FALSE; sd->drop_format = _get_drop_format(obj); elm_drop_target_add(obj, sd->drop_format, -NULL, NULL, -NULL, NULL, -NULL, NULL, -_drag_drop_cb, NULL); +_dnd_enter_cb, NULL, +_dnd_leave_cb, NULL, +_dnd_pos_cb, NULL, +_dnd_drop_cb, NULL); } return EINA_TRUE; @@ -3479,10 +3519,10 @@ _elm_entry_evas_object_smart_add(Eo *obj, Elm_Entry_Data *priv) priv->drop_format = ELM_SEL_FORMAT_MARKUP | ELM_SEL_FORMAT_IMAGE; elm_drop_target_add(obj, priv->drop_format, - NULL, NULL, - NULL, NULL, - NULL, NULL, - _drag_drop_cb, NULL); + _dnd_enter_cb, NULL, + _dnd_leave_cb, NULL, + _dnd_pos_cb, NULL, + _dnd_drop_cb, NULL); if (!elm_layout_theme_set(obj, "entry", "base", elm_widget_style_get(obj))) CRI("Failed to set layout!"); @@ -3898,10 +3938,10 @@ _elm_entry_password_set(Eo *obj, Elm_Entry_Data *sd, Eina_Bool password) sd->password = password; elm_drop_target_del(obj, sd->drop_format, - NULL, NULL, - NULL, NULL, - NULL, NULL, - _drag_drop_cb, NULL); + _dnd_enter_cb, NULL, + _dnd_leave_cb, NULL, + _dnd_pos_cb, NULL, + _dnd_drop_cb, NULL); if (password) { sd->single_line = EINA_TRUE; @@ -3914,10 +3954,10 @@ _elm_entry_password_set(Eo *obj, Elm_Entry_Data *sd, Eina_Bool password) { sd->drop_format = _get_drop_format(obj); elm_drop_target_add(obj, sd->drop_format, -NULL, NULL, -NULL, NULL, -NULL, NULL, -_drag_drop_cb, NULL); +
[E-devel] Weekly news from the automated build and QA front
Hello. Summary: o Nothing urgent to report This should give everyone an overview over what has happened in the last week on the QA front. The numbers in parentheses reflect the values from last week to give you a trend. CI: o Overall build statistic: 11.04% (11.57%) failed. https://build.enlightenment.org/ Unit tests: o 741 (708) unit tests for efl Coverage: o EFL total coverage is at 27.4% (27.4%) lines, 32.6% (32.7%) functions and 21.5% (21.5%) branches https://build.enlightenment.org/view/Test%20Coverage/ Coverity: o EFL: Outstanding defects 124 (124) with a density of 0.12 (0.12) o Evas Generic Loaders: Outstanding defects 0 (0) with a density of 0 (0) o Emotion Generic Players: Outstanding defects 0 (0) with a density of 0 (0) o Enlightenment: Outstanding defects 4 (0) with a density of 0.01 (0) o Terminology: Outstanding defects 0 (0) with a density of 0 (0) o Rage: Outstanding defects 2 (2) with a density of 0.04 (0.04) Phab: o Total bug count: 912 (902) https://phab.enlightenment.org/maniphest/report/burn/ o Pending patch reviews: 124 (117) regards Stefan Schmidt -- Find and fix application performance issues faster with Applications Manager Applications Manager provides deep performance insights into multiple tiers of your business applications. It resolves application problems quickly and reduces your MTTR. Get your free trial! https://ad.doubleclick.net/ddm/clk/302982198;130105516;z ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] eo_part and containers API
On 6 May 2016 at 21:09, Tom Hacohenwrote: > On 29/04/16 05:36, Jean-Philippe André wrote: > > Hi Tom, > > > > On 29 April 2016 at 11:32, Jean-Philippe André > wrote: > > > >> > >> > >> On 29 April 2016 at 00:51, Tom Hacohen wrote: > >> > >>> On 28/04/16 06:25, Jean-Philippe André wrote: > On 27 April 2016 at 23:44, Tom Hacohen wrote: > > > On 26/04/16 06:28, Jean-Philippe André wrote: > >> Hello, > >> > >> > >> I've just merged a series of commits dealing with the box & table > APIs > > for > >> Edje.Object and Elm.Layout. Since we decided not to implement > anything > > like > >> eo_part at the core eo level, I've implemented part_box and > part_table > >> support using fake objects. > >> > >> > >> This code: > >>> elm_layout_table_blah(ly, "part", args); > >> > >> now becomes: > >>> efl_pack_blah(efl_content_get(ly, "part"), args); > >> > >> > >> The EO returned by efl_content_get is not a real Evas Object, it's > >>> only a > >> temporary proxy object that knows about its parent (ly) and the part > >>> name > >> it refers to ("part"). It is attached to the underlying Evas Box or > >>> Table > >> created by edje, and should live > >> > >> eo_del() is legal, just call efl_content_get() again to create a new > > handle. > >> eo_ref() is not a good idea. > >> > >> > >> Note that efl_content_get() also returns real swallowed objects if > the > >> "part" is a SWALLOW. > >> > >> > >> I believe text part APIs should eventually move to the same concept, > >>> once > >> the text interface is finalized (or, well, good enough). > >>> efl_text_set() > > on > >> a Layout object (or any Widget) should set the text of the "default" > >>> part > >> (whatever that means). Other parts can be accessed by > >>> efl_content_get(). > >> > >> > >> Comments? Suggestions on how to improve this? > >> > >> > > > > Proxy objects were one of the original ideas to do eo_part. After > that > > we decided to do the more lightweight version I proposed and after > that > > it was rejected altogether. > > > > I don't like this solution because it's essentially what everyone > > (raster?) said he didn't want to do. I prefer doing the part_* > versions > > (i.e double the functions), the normal versions (passing NULL as part > > name) or maybe even an eo_part. > > > > The part version means we should probably have a series of part_pack > interfaces then. > Or duplicate each and every API. > > Honestly, I'm not sure which solution is best. Proxy object or part > >>> APIs. > But I believe the API looks pretty decent like this. > >>> > >>> I also like the part API, it's essentially the same API I suggested a > >>> while back: > >>> > >>> efl_text_set(eo_part(obj, "bla"), "text")); > >>> > >>> Raster objected... > >>> > >> > >> There's a difference between eo_part and the proxy object. > >> > >> With eo_part we would use a solution like eo_super(), which I have to > say > >> is not incredibly pretty (internally: spinlock and extra bit use). I > >> believe that's the bit (sic) that raster didn't like much. Please > correct > >> me if I'm wrong. > >> Anyway, I don't think parts belong to EO outside of EFL > >> > >> The proxy object is a real EO object so you can keep it around if you > >> want. It's always attached to its parent. > >> The internal Evas Object Box (or Edje_Real_Part that really is the part) > >> is the owner of the proxy object. > >> When the proxy dies (eo_del) then a del callback will remove the entry > in > >> the owner. This way, content_get() does not return a dead object. > >> When the owner (Evas Box) dies, not only should it delete its children > >> (the proxy object), but it should also set the weak reference to NULL. > That > >> way, even if a user called eo_ref() on a proxy object, internally the > >> reference to the original Edje or Elm layout is reset to NULL. Calls > won't > >> work, but nothing should crash, and we can print nice error messages if > we > >> want. > >> > >> In terms of API, the advantage for both eo_part and proxy object is that > >> it looks like we have an object, and the API is the same for a normal > box > >> and an edje box. > >> The advantage of proxy object over eo_part is that it's really an EO > >> object. It's just not a real canvas object. > >> > > > > I pushed a commit testing and showing off the proxy object lifecycle: > > 0c2027b2af67f91dc4a203c177345e769ec07dec > > > The lifecycle is not that good in that commit, I spotted a few issues. > Take a look at my email from 11:50 UTC, I think the scheme described > there will solve them all. > > Just a few examples: > > table = efl_content_get(obj, "table"); > fail_if(!table); > other =