[EGIT] [core/efl] master 01/04: evas: Fix legacy events output vs. canvas coords
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=40fec5f608da4c5188a2afc7cc293d4f74a4b68d commit 40fec5f608da4c5188a2afc7cc293d4f74a4b68d Author: Jean-Philippe Andre Date: Mon Oct 17 11:34:05 2016 +0900 evas: Fix legacy events output vs. canvas coords In case of a mapped object (eg. when applying a map to a window in wayland compositor), the canvas and output coordinates are not meant to be the same. In EO land, applications should instead use the common interface Efl.Input.Interface.pointer_xy.get (on the canvas). @fix --- src/lib/evas/canvas/evas_callbacks.c | 2 +- src/lib/evas/canvas/evas_events_legacy.c | 10 ++ src/lib/evas/include/evas_private.h | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/lib/evas/canvas/evas_callbacks.c b/src/lib/evas/canvas/evas_callbacks.c index 18117bf..d529399 100644 --- a/src/lib/evas/canvas/evas_callbacks.c +++ b/src/lib/evas/canvas/evas_callbacks.c @@ -167,7 +167,7 @@ _eo_evas_object_cb(void *data, const Efl_Event *event) switch (info->efl_event_type) { case EFL_EVENT_TYPE_POINTER: -event_info = efl_input_pointer_legacy_info_fill(efl_event_info, info->type, &event_flags); +event_info = efl_input_pointer_legacy_info_fill(evas, efl_event_info, info->type, &event_flags); break; case EFL_EVENT_TYPE_KEY: diff --git a/src/lib/evas/canvas/evas_events_legacy.c b/src/lib/evas/canvas/evas_events_legacy.c index 2b4f7e5..9c57bb4 100644 --- a/src/lib/evas/canvas/evas_events_legacy.c +++ b/src/lib/evas/canvas/evas_events_legacy.c @@ -33,12 +33,14 @@ _event_alloc(void *old) } void * -efl_input_pointer_legacy_info_fill(Efl_Input_Key *evt, Evas_Callback_Type type, Evas_Event_Flags **pflags) +efl_input_pointer_legacy_info_fill(Evas *eo_evas, Efl_Input_Key *eo_ev, Evas_Callback_Type type, Evas_Event_Flags **pflags) { - Efl_Input_Pointer_Data *ev = efl_data_scope_get(evt, EFL_INPUT_POINTER_CLASS); - if (!ev) return NULL; + Efl_Input_Pointer_Data *ev = efl_data_scope_get(eo_ev, EFL_INPUT_POINTER_CLASS); + Evas_Public_Data *evas = efl_data_scope_get(eo_evas, EVAS_CANVAS_CLASS); + + if (!ev || !evas) return NULL; -#define COORD_DUP(e) do { (e)->output.x = (e)->canvas.x; (e)->output.y = (e)->canvas.y; } while (0) +#define COORD_DUP(e) do { (e)->output.x = evas->pointer.x; (e)->output.y = evas->pointer.y; } while (0) #define TYPE_CHK(typ) do { if (type != EVAS_CALLBACK_ ## typ) return NULL; } while (0) switch (ev->action) diff --git a/src/lib/evas/include/evas_private.h b/src/lib/evas/include/evas_private.h index 1106e67..6dc037b 100644 --- a/src/lib/evas/include/evas_private.h +++ b/src/lib/evas/include/evas_private.h @@ -1916,7 +1916,7 @@ void _evas_device_cleanup(Evas *e); Evas_Device *_evas_device_top_get(const Evas *e); /* legacy/eo events */ -void *efl_input_pointer_legacy_info_fill(Efl_Input_Key *evt, Evas_Callback_Type type, Evas_Event_Flags **pflags); +void *efl_input_pointer_legacy_info_fill(Evas *eo_evas, Efl_Input_Key *eo_ev, Evas_Callback_Type type, Evas_Event_Flags **pflags); void *efl_input_key_legacy_info_fill(Efl_Input_Key *evt, Evas_Event_Flags **pflags); void *efl_input_hold_legacy_info_fill(Efl_Input_Hold *evt, Evas_Event_Flags **pflags); --
[EGIT] [core/efl] master 02/04: elm: Remove some eo files from installation
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=d4929e58fc086db5fff265f5770b35399c3908f9 commit d4929e58fc086db5fff265f5770b35399c3908f9 Author: Jean-Philippe Andre Date: Tue Oct 18 19:34:12 2016 +0900 elm: Remove some eo files from installation These are some of the EO files that shouldn't be part of the public EO API: - elm_access (old) - actionslider - bubble - diskselector - flipselector (a fancy spinner) - hoversel (use combobox instead) - icon (use image instead) - inwin - naviframe (unreplaced for now) - photo (use image) - prefs - segment control - separator - slideshow - thumb (use image) Note: This breaks the use of the elm_widget_xxx.h headers. Those were internal headers anyway. Exposed because of a lack of a proper inheritance API. --- src/Makefile_Elementary.am| 56 +-- src/lib/elementary/efl_ui_text.c | 1 + src/lib/elementary/elc_hoversel.c | 2 ++ src/lib/elementary/elc_hoversel.h | 3 -- src/lib/elementary/elc_hoversel_eo.h | 2 -- src/lib/elementary/elc_naviframe.c| 2 ++ src/lib/elementary/elc_naviframe.h| 3 -- src/lib/elementary/elc_naviframe_eo.h | 12 --- src/lib/elementary/elm_actionslider.c | 2 ++ src/lib/elementary/elm_actionslider.h | 3 -- src/lib/elementary/elm_actionslider_eo.h | 1 - src/lib/elementary/elm_bubble.c | 1 + src/lib/elementary/elm_bubble.h | 3 -- src/lib/elementary/elm_bubble_eo.h| 1 - src/lib/elementary/elm_code_widget.c | 3 ++ src/lib/elementary/elm_dbus_menu.c| 1 + src/lib/elementary/elm_entry.c| 1 + src/lib/elementary/elm_flipselector.c | 3 ++ src/lib/elementary/elm_flipselector.h | 3 -- src/lib/elementary/elm_flipselector_eo.h | 2 -- src/lib/elementary/elm_icon.c | 1 + src/lib/elementary/elm_icon.h | 3 -- src/lib/elementary/elm_icon_eo.h | 1 - src/lib/elementary/elm_inwin.c| 1 + src/lib/elementary/elm_inwin.h| 3 -- src/lib/elementary/elm_inwin_eo.h | 1 - src/lib/elementary/elm_photo.c| 2 ++ src/lib/elementary/elm_photo.h| 3 -- src/lib/elementary/elm_photo_eo.h | 11 -- src/lib/elementary/elm_prefs.c| 3 +- src/lib/elementary/elm_prefs.h| 3 -- src/lib/elementary/elm_prefs_eo.h | 11 -- src/lib/elementary/elm_theme.c| 1 + src/lib/elementary/elm_thumb.c| 1 + src/lib/elementary/elm_thumb.h| 3 -- src/lib/elementary/elm_thumb_eo.h | 1 - src/lib/elementary/elm_view_form.c| 2 ++ src/lib/elementary/elm_widget_naviframe.h | 2 ++ src/lib/elementary/elm_widget_prefs.h | 1 + 39 files changed, 51 insertions(+), 108 deletions(-) diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am index 54239b5..5a3de81 100644 --- a/src/Makefile_Elementary.am +++ b/src/Makefile_Elementary.am @@ -2,12 +2,9 @@ ### Library elm_public_eolian_files = \ - lib/elementary/elm_access.eo \ - lib/elementary/elm_actionslider.eo \ lib/elementary/elm_atspi_bridge.eo \ lib/elementary/elm_atspi_app_object.eo \ lib/elementary/elm_bg.eo \ - lib/elementary/elm_bubble.eo \ lib/elementary/elm_button.eo \ lib/elementary/elm_calendar.eo \ lib/elementary/elm_check.eo \ @@ -18,14 +15,10 @@ elm_public_eolian_files = \ lib/elementary/elm_ctxpopup.eo \ lib/elementary/elm_datetime.eo \ lib/elementary/elm_dayselector.eo \ - lib/elementary/elm_diskselector.eo \ lib/elementary/elm_entry.eo \ lib/elementary/elm_fileselector.eo \ - lib/elementary/elm_fileselector_button.eo \ - lib/elementary/elm_fileselector_entry.eo \ lib/elementary/efl_ui_flip.eo \ lib/elementary/efl_ui_flip_internal_part.eo \ - lib/elementary/elm_flipselector.eo \ lib/elementary/efl_ui_frame.eo \ lib/elementary/elm_gengrid.eo \ lib/elementary/elm_gengrid_pan.eo \ @@ -34,8 +27,6 @@ elm_public_eolian_files = \ lib/elementary/elm_gesture_layer.eo \ lib/elementary/elm_glview.eo \ lib/elementary/elm_hover.eo \ - lib/elementary/elm_hoversel.eo \ - lib/elementary/elm_icon.eo \ lib/elementary/efl_ui_image.eo \ lib/elementary/elm_index.eo \ lib/elementary/elm_interface_atspi_accessible.eo \ @@ -50,7 +41,6 @@ elm_public_eolian_files = \ lib/elementary/elm_interface_atspi_window.eo \ lib/elementary/elm_interface_fileselector.eo \ lib/elementary/elm_interface_scrollable.eo \ - lib/elementary/elm_inwin.eo \ lib/elementary/elm_label.eo \ lib/elementary/elm_layout.eo \ lib/elementary/elm_list.eo \ @
[EGIT] [core/efl] master 03/04: examples: Remove now broken cxx elm examples
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=34e6c834ce1eeb1ebdf7316b8b301e781b23e09c commit 34e6c834ce1eeb1ebdf7316b8b301e781b23e09c Author: Jean-Philippe Andre Date: Tue Oct 18 19:34:25 2016 +0900 examples: Remove now broken cxx elm examples Bubble, thumb and separator cxx examples rely on APIs we don't want to expose in EO, so not available in C++ either. Those are legacy only. --- src/examples/elementary/Makefile.am| 19 +-- src/examples/elementary/bubble_cxx_example_01.cc | 66 -- .../elementary/separator_cxx_example_01.cc | 54 -- src/examples/elementary/thumb_cxx_example_01.cc| 47 --- 4 files changed, 1 insertion(+), 185 deletions(-) diff --git a/src/examples/elementary/Makefile.am b/src/examples/elementary/Makefile.am index fc279c1..0e91f9a 100644 --- a/src/examples/elementary/Makefile.am +++ b/src/examples/elementary/Makefile.am @@ -187,9 +187,6 @@ calendar_cxx_example_05.cc \ clock_cxx_example.cc \ datetime_cxx_example.cc \ icon_cxx_example_01.cc \ -separator_cxx_example_01.cc \ -thumb_cxx_example_01.cc \ -bubble_cxx_example_01.cc \ button_cxx_example_00.cc endif #table_cxx_example_02.cc \ @@ -413,17 +410,12 @@ calendar_cxx_example_05 \ clock_cxx_example \ datetime_cxx_example \ icon_cxx_example_01 \ -thumb_cxx_example_01 \ -separator_cxx_example_01 \ -bubble_cxx_example_01 \ button_cxx_example_00 # examples_PROGRAMS += \ -# thumb_cxx_example_01 \ # table_cxx_example_02 \ # table_cxx_example_01 \ # spinner_cxx_example \ # slider_cxx_example \ -# separator_cxx_example_01 \ # radio_cxx_example_01 \ # popup_cxx_example_01 \ # menu_cxx_example_01 \ @@ -440,7 +432,6 @@ button_cxx_example_00 # calendar_cxx_example_01 \ # button_cxx_example_01 \ # button_cxx_example_00 \ -# bubble_cxx_example_01 \ # box_cxx_example_02 \ # bg_cxx_example_02 \ # bg_cxx_example_01 @@ -469,15 +460,11 @@ calendar_cxx_example_02_SOURCES = calendar_cxx_example_02.cc calendar_cxx_example_01_SOURCES = calendar_cxx_example_01.cc bg_cxx_example_02_SOURCES = bg_cxx_example_02.cc bg_cxx_example_01_SOURCES = bg_cxx_example_01.cc -thumb_cxx_example_01_SOURCES = thumb_cxx_example_01.cc -separator_cxx_example_01_SOURCES = separator_cxx_example_01.cc -bubble_cxx_example_01_SOURCES = bubble_cxx_example_01.cc button_cxx_example_00_SOURCES = button_cxx_example_00.cc # table_cxx_example_02_SOURCES = table_cxx_example_02.cc # table_cxx_example_01_SOURCES = table_cxx_example_01.cc # spinner_cxx_example_SOURCES = spinner_cxx_example.cc # slider_cxx_example_SOURCES = slider_cxx_example.cc -# separator_cxx_example_01_SOURCES = separator_cxx_example_01.cc # radio_cxx_example_01_SOURCES = radio_cxx_example_01.cc # popup_cxx_example_01_SOURCES = popup_cxx_example_01.cc # menu_cxx_example_01_SOURCES = menu_cxx_example_01.cc @@ -494,7 +481,6 @@ button_cxx_example_00_SOURCES = button_cxx_example_00.cc # calendar_cxx_example_01_SOURCES = calendar_cxx_example_01.cc # button_cxx_example_01_SOURCES = button_cxx_example_01.cc # button_cxx_example_00_SOURCES = button_cxx_example_00.cc -# bubble_cxx_example_01_SOURCES = bubble_cxx_example_01.cc # box_cxx_example_02_SOURCES = box_cxx_example_02.cc # bg_cxx_example_02_SOURCES = bg_cxx_example_02.cc # bg_cxx_example_01_SOURCES = bg_cxx_example_01.cc @@ -590,7 +576,6 @@ if HAVE_CXX11 SCREENSHOTS += \ bg_cxx_example_02:bg_cxx_example_02.png:0.0 \ box_cxx_example_02:box_cxx_example_02.png:1.3 \ - bubble_cxx_example_01:bubble_cxx_example_01.png:0.0 \ button_cxx_example_00:button_cxx_example_00.png:0.0 \ button_cxx_example_01:button_cxx_example_01.png:0.0 \ calendar_cxx_example_01:calendar_cxx_example_01.png:0.0 \ @@ -606,12 +591,10 @@ SCREENSHOTS += \ popup_cxx_example_01:popup_cxx_example_01.png:1.0 \ popup_cxx_example_01:popup_cxx_example_01_a.png:6.0 \ radio_cxx_example_01:radio_cxx_example_01.png:0.0 \ - separator_cxx_example_01:separator_cxx_example_01.png:0.0 \ slider_cxx_example:slider_cxx_example.png:0.0 \ spinner_cxx_example:spinner_cxx_example.png:0.0 \ table_cxx_example_01:table_cxx_example_01.png:0.0 \ - table_cxx_example_02:table_cxx_example_02.png:0.0 \ - thumb_cxx_example_01:thumb_cxx_example_01.png:0.5 + table_cxx_example_02:table_cxx_example_02.png:0.0 endif HTML_SS_DIR=$(top_builddir)/doc/html/screenshots diff --git a/src/examples/elementary/bubble_cxx_example_01.cc b/src/examples/elementary/bubble_cxx_example_01.cc deleted file mode 100644 index e6e0931..000 --- a/src/examples/elementary/bubble_cxx_example_01.cc +++ /dev/null @@ -1,66 +0,0 @@ -#ifdef HAVE_CONFIG_H -#include "config.h" -#include "elementary_config.h" -#endif - -#include -#include - -EAPI_MAIN int -elm_main (int argc, char *argv[]) -{ - elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_HIDDEN); - - efl::ui::win::Standard win; - // win.title_set("Bubble"); - win.autohide_set(true); -
[EGIT] [core/efl] master 04/04: elm_test: Add minor hack to run test when Enter is pressed
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=e9d7ca78bf06d52cd658bd36db34da2a2da5f47e commit e9d7ca78bf06d52cd658bd36db34da2a2da5f47e Author: Jean-Philippe Andre Date: Wed Oct 26 14:01:43 2016 +0900 elm_test: Add minor hack to run test when Enter is pressed If there's only one filtered out button in the list after searching by name, Enter should activate the entry and run the test case. --- src/bin/elementary/test.c | 19 +++ 1 file changed, 19 insertions(+) diff --git a/src/bin/elementary/test.c b/src/bin/elementary/test.c index 3a9d630..0c3fa6c 100644 --- a/src/bin/elementary/test.c +++ b/src/bin/elementary/test.c @@ -449,6 +449,24 @@ _entry_changed_cb(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EIN _menu_create(str); } +static void +_entry_activated_cb(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED) +{ + const char *str = elm_entry_entry_get(obj); + struct elm_test *t, *found = NULL; + Eina_List *l; + + if (!str) return; + EINA_LIST_FOREACH(tests, l, t) + { +if (!strcasestr(t->name, str)) continue; +if (found) return; +found = t; + } + if (!found) return; + evas_object_smart_callback_call(found->btn, "clicked", NULL); +} + static char * _space_removed_string_get(const char *name) { @@ -584,6 +602,7 @@ my_win_main(const char *autorun, Eina_Bool test_win_only) evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_smart_callback_add(en, "changed,user", _entry_changed_cb, NULL); + evas_object_smart_callback_add(en, "activated", _entry_activated_cb, NULL); elm_box_pack_end(bx1, en); evas_object_show(en); elm_object_focus_set(en, EINA_TRUE); --
Re: [E-devel] EFL cross compilation for Windows
On Mon, Oct 24, 2016, Stefan Schmidt wrote: > Hello. > > On 21/10/16 16:44, Andrii Kroitor wrote: > > Yes, this allows to compile working binaries for Windows from Linux system. > > At least after this patch will be merged: > > https://phab.enlightenment.org/D4357 > > > > I have not tried to build python efl yet, but I can check it next week. > > > > It is possible to prepare precompiled packages, but I'm not familiar > > with package maintenance and distribution. > > So I have a few question about this: > > What should be included into package? > > - binaries (for sure) > > - includes and other installed files? > > - some meta info about package? > > - all dependencies or only their list? > > > I honestly have no clue at all how windows packaging is done. What I > would expect as a user or developer is thought that all binaries, > dll/libs and header files are installed so I can start developing with it. You're a developer. Not an end-user. It's not completely trivial to have the same "packaging" for both classes of people. ;-) > > Where can they be hosted? Win-builds are inactive for a long time, so I > > doubt that we can reach their maintainer. > > Vincent said he is in contact with him. Maybe reach out to him if the > are plans for a new release? I'm actually subscribed to this mailing-list, I'm on #e.fr and sometimes on #edevelop. I got quite a bit behind in my emails a few months ago and it took me some time to catch up with them. > > Should these packages be updated and uploaded manually? > > If the path with win builds does not work out we could host the windows > binaries next to our source tarballs. Only for releases thought. Writing and improving the package manager's GUI took time off the packaging itself and has delayed the current release a lot. But that actually doesn't matter much. It's supposed to be possible to base on win-builds and build other versions or other packages and I don't see why that couldn't apply to the EFLs. However I'm not sure I understand some of things done in that git repository. I've only taken a cursory look at it and can't comment much but I've been more than surprised to see a pthread.h file copied there and that it came from pthreads-win32 which, I think(*), is ABI-incompatible while winpthreasd doesn't have that issue (everyone and their mothers assume pthread_t is an int like on linux). (*) maybe I've fixed the only occurrence of it a couple years ago, or maybe not, I don't know anymore, but somehow I doubt it That said, the priorities in win-builds now are to provide a better integration with fetching sources from git, iron out the bugs and current limitations, and release. > > It would be perfect if someone has working build server able to build > > EFL on Linux so we could add Windows build to it. > > Before anyone screams Jenkins here. I will only consider new things it > handles when its current problems are sorted and we have a longer period > of stable usage. > > We had cross builds for efl with mingw for some time but the cross build > slave started crashing and after this dragged out for over a year I > disabled the mingw builds. Can you detail the setup a bit more? I don't know which cross-toolchain and dependencies it used. Somehow I seem to remember they came from gentoo but I'm not sure. -- Adrien Nader -- The Command Line: Reinvented for Modern Developers Did the resurgence of CLI tooling catch you by surprise? Reconnect with the command line and become more productive. Learn the new .NET and ASP.NET CLI. Get your free copy! http://sdm.link/telerik ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] SSH access to e5
Hello, I'm not sure that is solution for you, but it was help me. Add to '~/.ssh/config': Host download.enlightenment.org ProxyCommand ssh -q e5v1.enlightenment.org -W %h:%p Best regards On 10/24/16 21:59, Jonathan Aquilina wrote: > Hi Raster, > > I am still having no luck whats so ever. I think there are further > quirks with the server. I will touch base with you on irc tomorrow but I > think what you showed me in that other thread with regards to my ip is > that it is still blocked :( > > Feel free to email me off list so we can sort this out together as I am > very eager to get going with trying to iron out server isssues. > -- > Check out the vibrant tech community on one of the world's most > engaging tech sites, SlashDot.org! http://sdm.link/slashdot > ___ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Viacheslav Reutskiy (rimmed) -- The Command Line: Reinvented for Modern Developers Did the resurgence of CLI tooling catch you by surprise? Reconnect with the command line and become more productive. Learn the new .NET and ASP.NET CLI. Get your free copy! http://sdm.link/telerik ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [RFC] One binary to rule them all, packagers opinion needed
On Wed, Oct 26, 2016 at 6:42 AM, Carsten Haitzler wrote: > On Wed, 26 Oct 2016 04:50:54 +0200 Vincent Torri > said: > >> On Wed, Oct 26, 2016 at 2:17 AM, Carsten Haitzler >> wrote: >> > On Tue, 25 Oct 2016 14:32:29 -0700 Cedric BAIL said: >> > >> >> On Mon, Oct 24, 2016 at 10:31 PM, Carsten Haitzler >> >> wrote: >> >> > On Fri, 21 Oct 2016 15:14:20 -0700 Cedric BAIL >> >> > said: >> >> > >> >> > i've been mulling this. i followed the feedback so far. basically 2 main >> >> > things: >> >> > >> >> > 1. this is intended to improve performance. especially startup times. >> >> > 2. this is highly problematic in terms of portability and is going to >> >> > create lots of code and build paths. >> >> >> >> It won't create lots of code and build paths. In fact it doesn't even >> >> need two build paths. It just needs to uses all .la files for building >> >> quicklaunch and can be rolled in, in parallel to current system. Just >> >> the link of the quicklaunch binary would be different. Next step would >> >> be to make a build option that setup symlink to that binary. Finally >> >> that option would be the default, likely only afffecting the install >> >> process. I don't think that create a lots of code (There should be no >> >> code change) and build paths change at all. >> > >> > why are you doing a symlink if its JUST a quicklaunch binary change (that >> > statically compiles all of efl into it)? >> > >> > you are trying to replace all of libevas.so.1, libeina.so.1, etc. with >> > symlinks TO this quicklaunch binary ... to retain binary compatibility. you >> > cant have the .so's AND this ql binary both have the same set of symbols. >> > asking for trouble there. >> > >> > but to USe this binaries HAVE to be PIe and this makes for a non-portable >> > pain in the arse of creating apps. which is why i did .so's for quicklaunch >> > before.. because it also works with dll's on windows. PIE does not. not >> > that i could find. >> > >> >> > 3. this makes debugging and other things a nightmare (ps names are all >> >> > the same .. well depending on tool etc.) >> >> >> >> This is exagerated. Again just need to pass the right command line to >> >> ps/top and problem is solved. Can easily be documented and we can also >> >> provide a script that does it until we provide some nicer application >> >> there. >> > >> > i mean simple user debugging. someone runs ps or top and all they see is 20 >> > processes called "quicklaunch". because depending on the ps tool it may use >> > one proc field or another. so a user goes "quicklaunch process is using N% >> > cpu or N % ram". what real process is that? they don't know. because procps >> > tools will not do what you want and thus the average person will become >> > confused and find anything using efl like this to be horribly hard to work >> > with. >> > >> > if top, htop, ps, killall, etc. don't work out of the box, it isby everyone >> > (except yours) definition... a nightmare. i've messed with this before and >> > it does not work across all the tools because of where they source command >> > (and that can change based on config and cmdline options too). >> > >> >> > 4. generally the issue of complexity in our build requires for >> >> > portability etc. >> >> > >> >> > #4 isn't something we can solve right now, but has a better solution if >> >> > #we go >> >> > for a greater internal redesign. but not today. some other day. we have >> >> > to live with what we have right now. >> >> >> >> Hum ? How ? I don't see how we can have good portability without a >> >> complex build system. Would be interested to know more by what you >> >> mean here ! >> > >> > we can isolate the portability layers in a much smaller area and always >> > provide a portable interface wrapped on top of the real os one. currently >> > our portability code is scattered all through efl. it's not in one place. >> > by >> > merging it into one location we'll be able to simplify it too so in the end >> > we just have some "efl port sys" lib that provides an "always works" set of >> > library calls and everything above that is 100% portable and never changes >> > platform to platform. >> > >> >> > i am always for improvements. but this really makes this method a very >> >> > very very hard ask to do this. i've thought about it and i think this is >> >> > far TOO radical a change as it means different execution methods, >> >> > library >> >> > production, linking and so much more os by os. it's kind of insane >> >> > though >> >> > theoretically doable on *nix. i've checked and PIE seems to be urtterly >> >> > unportable (windows can't do it based on my reading). the proposal would >> >> > be workable ONLY if we could do it unversally so it wouldn't bitrot and >> >> > it'd work. this is actually why quicklaunch did .so's instead of PIE >> >> > because that WORKS portably >> >> >> >> Windows is anyway another platform with a lot of specificity. >> >> Quicklaunch will never work there as there is
[EGIT] [tools/exactness] master 01/03: Destination directory is not needed during simulation
jackdanielz pushed a commit to branch master. http://git.enlightenment.org/tools/exactness.git/commit/?id=33730b5dcda6d4095d4d9bb42a2950f674e32d59 commit 33730b5dcda6d4095d4d9bb42a2950f674e32d59 Author: Daniel Zaoui Date: Mon Oct 10 10:42:23 2016 +0300 Destination directory is not needed during simulation Shots are not needed in this mode too. --- src/bin/run_test.c | 3 +-- src/lib/tsuite_hook_player.c | 7 +-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/bin/run_test.c b/src/bin/run_test.c index 1a3d6a6..6e4f1d6 100644 --- a/src/bin/run_test.c +++ b/src/bin/run_test.c @@ -31,8 +31,6 @@ _run_command_prepare(const List_Entry *ent, Run_Mode mode, char *buf) { case RUN_SIMULATION: { - eina_strbuf_append_printf(sbuf, "TSUITE_DEST_DIR='%s' ", -exactness_config.dest_dir); break; } case RUN_PLAY: @@ -55,6 +53,7 @@ _run_command_prepare(const List_Entry *ent, Run_Mode mode, char *buf) exactness_config.dest_dir); break; } + default: break; } eina_strbuf_append_printf(sbuf, "LD_PRELOAD='%s/exactness/libexactness_%s.so' %s %s %s", PACKAGE_LIBDIR, mode == RUN_RECORD ? "recorder" : "player", diff --git a/src/lib/tsuite_hook_player.c b/src/lib/tsuite_hook_player.c index 5524dff..e5dcc92 100644 --- a/src/lib/tsuite_hook_player.c +++ b/src/lib/tsuite_hook_player.c @@ -459,8 +459,11 @@ tsuite_feed_event(void *data) printf("%s take shot timestamp=<%u> t->n_evas=<%d>\n", __func__, t->timestamp, t->n_evas); #endif if (rect) evas_object_color_set(rect, 0, 0, 255, 255); - _shot_do(NULL, -eina_list_nth(evas_list, t->n_evas)); /* Serial name based on test-name */ + if (_hook_setting->dest_dir) +{ + _shot_do(NULL, + eina_list_nth(evas_list, t->n_evas)); /* Serial name based on test-name */ +} break; } default: /* All non-input events are not handeled */ --
[EGIT] [tools/exactness] master 03/03: Store and compare objects information at every shot
jackdanielz pushed a commit to branch master. http://git.enlightenment.org/tools/exactness.git/commit/?id=dd4c1caade9e27af1f6622a2a4f047514ec5f819 commit dd4c1caade9e27af1f6622a2a4f047514ec5f819 Author: Daniel Zaoui Date: Thu Oct 13 07:46:39 2016 +0300 Store and compare objects information at every shot This feature is aimed to provide a new way to debug applications during scenarios playing. When a difference happens between two shots of an application, the investigation can be tough as the cause may be hidden into a tiny change, such as an update of the theme. This feature tries to respond to this problem by storing objects of the application every time a shot is taken. Then during shots comparison, objects information are compared and differences are displayed on the screen. The feature can be used with the -S option. For the moment, only hierarchy, order and geometry are checked. --- src/bin/Makefile.am | 2 +- src/bin/exactness.c | 2 + src/bin/exactness_config.h | 1 + src/bin/exactness_helper.c | 66 +++--- src/bin/run_test.c | 47 + src/lib/tsuite_file_data.c | 108 + src/lib/tsuite_file_data.h | 22 ++ src/lib/tsuite_hook_player.c | 161 ++- 8 files changed, 383 insertions(+), 26 deletions(-) diff --git a/src/bin/Makefile.am b/src/bin/Makefile.am index 3998cc8..46b0993 100644 --- a/src/bin/Makefile.am +++ b/src/bin/Makefile.am @@ -12,7 +12,7 @@ exactness_SOURCES = \ exactness_helper_SOURCES = exactness_helper.c exactness_LDADD = \ - @EFL_LIBS@ + @EFL_LIBS@ ../lib/libexactness_player.la exactness_helper_LDADD = \ @EFL_LIBS@ ../lib/libexactness_player.la diff --git a/src/bin/exactness.c b/src/bin/exactness.c index 2e60eab..5c82a7a 100644 --- a/src/bin/exactness.c +++ b/src/bin/exactness.c @@ -40,6 +40,7 @@ static const Ecore_Getopt optdesc = { ECORE_GETOPT_STORE_TRUE('p', "play", "Run in play mode."), ECORE_GETOPT_STORE_TRUE('i', "init", "Run in init mode."), ECORE_GETOPT_STORE_TRUE('s', "simulation", "Run in simulation mode."), +ECORE_GETOPT_STORE_TRUE('S', "store-objects", "Store information about objects at every screen shot time."), ECORE_GETOPT_STORE_TRUE('v', "verbose", "Turn verbose messages on."), ECORE_GETOPT_LICENSE('L', "license"), @@ -69,6 +70,7 @@ main(int argc, char *argv[]) ECORE_GETOPT_VALUE_BOOL(mode_play), ECORE_GETOPT_VALUE_BOOL(mode_init), ECORE_GETOPT_VALUE_BOOL(mode_simulation), + ECORE_GETOPT_VALUE_BOOL(exactness_config.store_objects), ECORE_GETOPT_VALUE_BOOL(exactness_config.verbose), ECORE_GETOPT_VALUE_BOOL(want_quit), diff --git a/src/bin/exactness_config.h b/src/bin/exactness_config.h index e207c51..60d902e 100644 --- a/src/bin/exactness_config.h +++ b/src/bin/exactness_config.h @@ -12,6 +12,7 @@ struct _Exactness_Config char *dest_dir; char *wrap_command; Eina_Bool verbose; + Eina_Bool store_objects; }; extern Exactness_Config exactness_config; diff --git a/src/bin/exactness_helper.c b/src/bin/exactness_helper.c index 12945b2..0cf4b21 100644 --- a/src/bin/exactness_helper.c +++ b/src/bin/exactness_helper.c @@ -116,7 +116,7 @@ _event_specific_info_get(const Variant_st *v, char output[1024]) } static const Ecore_Getopt optdesc = { "exactness_helper", - "%prog [options] ", + "%prog [options] [ | ]", NULL, "(C) 2016 Enlightenment", "BSD", @@ -125,7 +125,8 @@ static const Ecore_Getopt optdesc = { { ECORE_GETOPT_STORE_USHORT('d', "delay", "Delay the given recording by a given time (in seconds)."), ECORE_GETOPT_STORE_TRUE('c', "clean", "Clean the given recording from wrong events."), -ECORE_GETOPT_STORE_TRUE('l', "list", "List the events of the given recording"), +ECORE_GETOPT_STORE_TRUE('l', "list", "List the events of the given recording."), +ECORE_GETOPT_STORE_TRUE('C', "compare", "Compare two given files (images files or objects eet files)."), ECORE_GETOPT_LICENSE('L', "license"), ECORE_GETOPT_COPYRIGHT('C', "copyright"), @@ -149,14 +150,15 @@ _is_hook_duplicate(const Variant_st *cur_v, const Variant_st *prev_v) int main(int argc, char *argv[]) { - const char *rec_file = NULL; + const char *rec_file = NULL, *comp1 = NULL, *comp2 = NULL; int ret = 0, args = 0; unsigned short delay = 0; - Eina_Bool want_quit, clean = EINA_FALSE, list_get = EINA_FALSE; + Eina_Bool want_quit, clean = EINA_FALSE, list_get = EINA_FALSE, compare_files = EINA_FALSE; Ecore_Getopt_Value values[] = { ECORE_GETOPT_VALUE_USHORT(delay), ECORE_GETOPT_VALUE_BOOL(clean), ECORE_GETOPT_VALUE_BOOL(list_get), + ECORE_GETOPT_VALUE_BOOL(compare_files), ECORE_GETOPT_VALUE_BOOL(want_quit), ECORE_GETOPT_VALUE_BOOL(want_quit), @@ -180,17 +182,33
[EGIT] [tools/exactness] master 02/03: Rename static variable
jackdanielz pushed a commit to branch master. http://git.enlightenment.org/tools/exactness.git/commit/?id=8e0a638b19de701b2b21df01690dfa487bf101ad commit 8e0a638b19de701b2b21df01690dfa487bf101ad Author: Daniel Zaoui Date: Sun Oct 16 08:26:11 2016 +0300 Rename static variable --- src/lib/tsuite_file_data.c | 138 ++--- 1 file changed, 69 insertions(+), 69 deletions(-) diff --git a/src/lib/tsuite_file_data.c b/src/lib/tsuite_file_data.c index 4bc5348..a0e6104 100644 --- a/src/lib/tsuite_file_data.c +++ b/src/lib/tsuite_file_data.c @@ -8,7 +8,7 @@ #include #include "tsuite_file_data.h" -static data_desc *desc = NULL; /* this struct holds descs (alloc on init) */ +static data_desc *_desc = NULL; /* this struct holds descs (alloc on init) */ static eet_event_type_mapping eet_mapping[] = { { TSUITE_EVENT_MOUSE_IN, TSUITE_EVENT_MOUSE_IN_STR }, @@ -199,7 +199,7 @@ write_events(const char *filename, Lists_st *vr_list) #ifdef DEBUG_TSUITE print_events(vr_list); #endif -eet_data_write(fp, desc->_lists_descriptor, CACHE_FILE_ENTRY, vr_list, +eet_data_write(fp, _desc->_lists_descriptor, CACHE_FILE_ENTRY, vr_list, EINA_TRUE); eet_close(fp); @@ -225,7 +225,7 @@ read_events(const char *filename, Timer_Data *td) /* Read events list */ _data_descriptors_init(); - vr_list = eet_data_read(fp, desc->_lists_descriptor, CACHE_FILE_ENTRY); + vr_list = eet_data_read(fp, _desc->_lists_descriptor, CACHE_FILE_ENTRY); eet_close(fp); _data_descriptors_shutdown(); if (!vr_list->variant_list) @@ -731,108 +731,108 @@ multi_move_desc_make(void) /* declaring types */ data_desc *_data_descriptors_init(void) { - if (desc) /* Was allocated */ - return desc; + if (_desc) /* Was allocated */ + return _desc; - desc = calloc(1, sizeof(data_desc)); + _desc = calloc(1, sizeof(data_desc)); Eet_Data_Descriptor_Class eddc; EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Lists_st); - desc->_lists_descriptor = eet_data_descriptor_file_new(&eddc); - - desc->take_screenshot = take_screenshot_desc_make(); - desc->mouse_in_mouse_out = mouse_in_mouse_out_desc_make(); - desc->mouse_down_mouse_up = mouse_down_mouse_up_desc_make(); - desc->mouse_move = mouse_move_desc_make(); - desc->mouse_wheel = mouse_wheel_desc_make(); - desc->multi_event = multi_event_desc_make(); - desc->multi_move = multi_move_desc_make(); - desc->key_down_key_up = key_down_key_up_desc_make(); - desc->key_down_key_up_with_keycode = key_down_key_up_with_keycode_desc_make(); + _desc->_lists_descriptor = eet_data_descriptor_file_new(&eddc); + + _desc->take_screenshot = take_screenshot_desc_make(); + _desc->mouse_in_mouse_out = mouse_in_mouse_out_desc_make(); + _desc->mouse_down_mouse_up = mouse_down_mouse_up_desc_make(); + _desc->mouse_move = mouse_move_desc_make(); + _desc->mouse_wheel = mouse_wheel_desc_make(); + _desc->multi_event = multi_event_desc_make(); + _desc->multi_move = multi_move_desc_make(); + _desc->key_down_key_up = key_down_key_up_desc_make(); + _desc->key_down_key_up_with_keycode = key_down_key_up_with_keycode_desc_make(); /* for variant */ EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, Variant_st); - desc->_variant_descriptor = eet_data_descriptor_file_new(&eddc); + _desc->_variant_descriptor = eet_data_descriptor_file_new(&eddc); eddc.version = EET_DATA_DESCRIPTOR_CLASS_VERSION; eddc.func.type_get = _variant_type_get; eddc.func.type_set = _variant_type_set; - desc->_variant_unified_descriptor = eet_data_descriptor_stream_new(&eddc); + _desc->_variant_unified_descriptor = eet_data_descriptor_stream_new(&eddc); - EET_DATA_DESCRIPTOR_ADD_MAPPING(desc->_variant_unified_descriptor, - TSUITE_EVENT_MOUSE_IN_STR, desc->mouse_in_mouse_out); + EET_DATA_DESCRIPTOR_ADD_MAPPING(_desc->_variant_unified_descriptor, + TSUITE_EVENT_MOUSE_IN_STR, _desc->mouse_in_mouse_out); - EET_DATA_DESCRIPTOR_ADD_MAPPING(desc->_variant_unified_descriptor, - TSUITE_EVENT_MOUSE_OUT_STR, desc->mouse_in_mouse_out); + EET_DATA_DESCRIPTOR_ADD_MAPPING(_desc->_variant_unified_descriptor, + TSUITE_EVENT_MOUSE_OUT_STR, _desc->mouse_in_mouse_out); - EET_DATA_DESCRIPTOR_ADD_MAPPING(desc->_variant_unified_descriptor, - TSUITE_EVENT_MOUSE_DOWN_STR, desc->mouse_down_mouse_up); + EET_DATA_DESCRIPTOR_ADD_MAPPING(_desc->_variant_unified_descriptor, + TSUITE_EVENT_MOUSE_DOWN_STR, _desc->mouse_down_mouse_up); - EET_DATA_DESCRIPTOR_ADD_MAPPING(desc->_variant_unified_descriptor, - TSUITE_EVENT_MOUSE_UP_STR, desc->mouse_down_mouse_up); + EET_DATA_DESCRIPTOR_ADD_MAPPING(_desc->_variant_unified_descriptor, + TSUITE_EVENT_MOUSE_UP_STR, _desc->mouse_down_mouse_up); - EET_DATA_DESCRIPTOR_ADD_MAPPING(desc->_variant_unified_descriptor, - TSUITE_EVENT_MOUSE_MOVE_STR, desc->mouse_mov
Re: [E-devel] [RFC] One binary to rule them all, packagers opinion needed
On Wed, 26 Oct 2016 04:50:54 +0200 Vincent Torri said: > On Wed, Oct 26, 2016 at 2:17 AM, Carsten Haitzler > wrote: > > On Tue, 25 Oct 2016 14:32:29 -0700 Cedric BAIL said: > > > >> On Mon, Oct 24, 2016 at 10:31 PM, Carsten Haitzler > >> wrote: > >> > On Fri, 21 Oct 2016 15:14:20 -0700 Cedric BAIL > >> > said: > >> > > >> > i've been mulling this. i followed the feedback so far. basically 2 main > >> > things: > >> > > >> > 1. this is intended to improve performance. especially startup times. > >> > 2. this is highly problematic in terms of portability and is going to > >> > create lots of code and build paths. > >> > >> It won't create lots of code and build paths. In fact it doesn't even > >> need two build paths. It just needs to uses all .la files for building > >> quicklaunch and can be rolled in, in parallel to current system. Just > >> the link of the quicklaunch binary would be different. Next step would > >> be to make a build option that setup symlink to that binary. Finally > >> that option would be the default, likely only afffecting the install > >> process. I don't think that create a lots of code (There should be no > >> code change) and build paths change at all. > > > > why are you doing a symlink if its JUST a quicklaunch binary change (that > > statically compiles all of efl into it)? > > > > you are trying to replace all of libevas.so.1, libeina.so.1, etc. with > > symlinks TO this quicklaunch binary ... to retain binary compatibility. you > > cant have the .so's AND this ql binary both have the same set of symbols. > > asking for trouble there. > > > > but to USe this binaries HAVE to be PIe and this makes for a non-portable > > pain in the arse of creating apps. which is why i did .so's for quicklaunch > > before.. because it also works with dll's on windows. PIE does not. not > > that i could find. > > > >> > 3. this makes debugging and other things a nightmare (ps names are all > >> > the same .. well depending on tool etc.) > >> > >> This is exagerated. Again just need to pass the right command line to > >> ps/top and problem is solved. Can easily be documented and we can also > >> provide a script that does it until we provide some nicer application > >> there. > > > > i mean simple user debugging. someone runs ps or top and all they see is 20 > > processes called "quicklaunch". because depending on the ps tool it may use > > one proc field or another. so a user goes "quicklaunch process is using N% > > cpu or N % ram". what real process is that? they don't know. because procps > > tools will not do what you want and thus the average person will become > > confused and find anything using efl like this to be horribly hard to work > > with. > > > > if top, htop, ps, killall, etc. don't work out of the box, it isby everyone > > (except yours) definition... a nightmare. i've messed with this before and > > it does not work across all the tools because of where they source command > > (and that can change based on config and cmdline options too). > > > >> > 4. generally the issue of complexity in our build requires for > >> > portability etc. > >> > > >> > #4 isn't something we can solve right now, but has a better solution if > >> > #we go > >> > for a greater internal redesign. but not today. some other day. we have > >> > to live with what we have right now. > >> > >> Hum ? How ? I don't see how we can have good portability without a > >> complex build system. Would be interested to know more by what you > >> mean here ! > > > > we can isolate the portability layers in a much smaller area and always > > provide a portable interface wrapped on top of the real os one. currently > > our portability code is scattered all through efl. it's not in one place. by > > merging it into one location we'll be able to simplify it too so in the end > > we just have some "efl port sys" lib that provides an "always works" set of > > library calls and everything above that is 100% portable and never changes > > platform to platform. > > > >> > i am always for improvements. but this really makes this method a very > >> > very very hard ask to do this. i've thought about it and i think this is > >> > far TOO radical a change as it means different execution methods, library > >> > production, linking and so much more os by os. it's kind of insane though > >> > theoretically doable on *nix. i've checked and PIE seems to be urtterly > >> > unportable (windows can't do it based on my reading). the proposal would > >> > be workable ONLY if we could do it unversally so it wouldn't bitrot and > >> > it'd work. this is actually why quicklaunch did .so's instead of PIE > >> > because that WORKS portably > >> > >> Windows is anyway another platform with a lot of specificity. > >> Quicklaunch will never work there as there is no equivalent to fork > >> anyway. Emulating what PIE allow is also mostly impossible as > > > > actually it does work. fork works. it's emulated and expensive, bit it > > WORKS.
[EGIT] [tools/enventor] master 01/01: Fix typo in Enventor introduction.
jaehyun pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=62dc189286af7d1ed654499704a713277ab5 commit 62dc189286af7d1ed654499704a713277ab5 Author: Jaehyun Cho Date: Wed Oct 26 13:01:20 2016 +0900 Fix typo in Enventor introduction. Correct typo to "easier" in Enventor introduction. --- README | 2 +- data/help/INTRO | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README b/README index d36f544..e59ab84 100644 --- a/README +++ b/README @@ -2,7 +2,7 @@ Enventor, which is also known as EDC (Edje Data Collections) Editor, is a EDC script editor tool that supports text editing and previewing functions for the EDC source code. -When your application requires real-time changeable layouts like animated ones, then you can write the layout design using EDC script, compile it into EDJ format file, and import it into your application using a UI layout component. You can also write design layouts from simple to complex ones using the EDC script with Enventor. Enventor helps you write EDC script code eaiser and finish your work faster. If you are not familiar with EDC programming, see Edje Programming Guide - https://w [...] +When your application requires real-time changeable layouts like animated ones, then you can write the layout design using EDC script, compile it into EDJ format file, and import it into your application using a UI layout component. You can also write design layouts from simple to complex ones using the EDC script with Enventor. Enventor helps you write EDC script code easier and finish your work faster. If you are not familiar with EDC programming, see Edje Programming Guide - https://w [...] [Requirements] diff --git a/data/help/INTRO b/data/help/INTRO index 333c061..f11de2e 100644 --- a/data/help/INTRO +++ b/data/help/INTRO @@ -2,7 +2,7 @@ Enventor, which is also known as EDC (Edje Data Collections) Editor, is a EDC script editor tool that supports text editing and previewing functions for the EDC source code. -When your application requires real-time changeable layouts like animated ones, then you can write the layout design using EDC script, compile it into EDJ format file, and import it into your application using a UI layout component. You can also write design layouts from simple to complex ones using the EDC script with Enventor. Enventor helps you write EDC script code eaiser and finish your work faster. If you are not familiar with EDC programming, see Edje Programming Guide - https://w [...] +When your application requires real-time changeable layouts like animated ones, then you can write the layout design using EDC script, compile it into EDJ format file, and import it into your application using a UI layout component. You can also write design layouts from simple to complex ones using the EDC script with Enventor. Enventor helps you write EDC script code easier and finish your work faster. If you are not familiar with EDC programming, see Edje Programming Guide - https://w [...] Please see the following sites for more information. --
Re: [E-devel] [RFC] One binary to rule them all, packagers opinion needed
On Wed, Oct 26, 2016 at 2:17 AM, Carsten Haitzler wrote: > On Tue, 25 Oct 2016 14:32:29 -0700 Cedric BAIL said: > >> On Mon, Oct 24, 2016 at 10:31 PM, Carsten Haitzler >> wrote: >> > On Fri, 21 Oct 2016 15:14:20 -0700 Cedric BAIL said: >> > >> > i've been mulling this. i followed the feedback so far. basically 2 main >> > things: >> > >> > 1. this is intended to improve performance. especially startup times. >> > 2. this is highly problematic in terms of portability and is going to >> > create >> > lots of code and build paths. >> >> It won't create lots of code and build paths. In fact it doesn't even >> need two build paths. It just needs to uses all .la files for building >> quicklaunch and can be rolled in, in parallel to current system. Just >> the link of the quicklaunch binary would be different. Next step would >> be to make a build option that setup symlink to that binary. Finally >> that option would be the default, likely only afffecting the install >> process. I don't think that create a lots of code (There should be no >> code change) and build paths change at all. > > why are you doing a symlink if its JUST a quicklaunch binary change (that > statically compiles all of efl into it)? > > you are trying to replace all of libevas.so.1, libeina.so.1, etc. with > symlinks > TO this quicklaunch binary ... to retain binary compatibility. you cant have > the .so's AND this ql binary both have the same set of symbols. asking for > trouble there. > > but to USe this binaries HAVE to be PIe and this makes for a non-portable pain > in the arse of creating apps. which is why i did .so's for quicklaunch > before.. > because it also works with dll's on windows. PIE does not. not that i could > find. > >> > 3. this makes debugging and other things a nightmare (ps names are all the >> > same .. well depending on tool etc.) >> >> This is exagerated. Again just need to pass the right command line to >> ps/top and problem is solved. Can easily be documented and we can also >> provide a script that does it until we provide some nicer application >> there. > > i mean simple user debugging. someone runs ps or top and all they see is 20 > processes called "quicklaunch". because depending on the ps tool it may use > one > proc field or another. so a user goes "quicklaunch process is using N% cpu or > N > % ram". what real process is that? they don't know. because procps tools will > not do what you want and thus the average person will become confused and find > anything using efl like this to be horribly hard to work with. > > if top, htop, ps, killall, etc. don't work out of the box, it isby everyone > (except yours) definition... a nightmare. i've messed with this before and it > does not work across all the tools because of where they source command (and > that can change based on config and cmdline options too). > >> > 4. generally the issue of complexity in our build requires for portability >> > etc. >> > >> > #4 isn't something we can solve right now, but has a better solution if we >> > #go >> > for a greater internal redesign. but not today. some other day. we have to >> > live with what we have right now. >> >> Hum ? How ? I don't see how we can have good portability without a >> complex build system. Would be interested to know more by what you >> mean here ! > > we can isolate the portability layers in a much smaller area and always > provide > a portable interface wrapped on top of the real os one. currently our > portability code is scattered all through efl. it's not in one place. by > merging it into one location we'll be able to simplify it too so in the end we > just have some "efl port sys" lib that provides an "always works" set of > library calls and everything above that is 100% portable and never changes > platform to platform. > >> > i am always for improvements. but this really makes this method a very very >> > very hard ask to do this. i've thought about it and i think this is far TOO >> > radical a change as it means different execution methods, library >> > production, linking and so much more os by os. it's kind of insane though >> > theoretically doable on *nix. i've checked and PIE seems to be urtterly >> > unportable (windows can't do it based on my reading). the proposal would be >> > workable ONLY if we could do it unversally so it wouldn't bitrot and it'd >> > work. this is actually why quicklaunch did .so's instead of PIE because >> > that WORKS portably >> >> Windows is anyway another platform with a lot of specificity. >> Quicklaunch will never work there as there is no equivalent to fork >> anyway. Emulating what PIE allow is also mostly impossible as > > actually it does work. fork works. it's emulated and expensive, bit it WORKS. > it means you have an already "partially launched" app around. if we had a fork > POOL sitting around "ready to go" and they get ipc'd the command to run... > it'd > work the same on windows and on *nix. it'd be faster on both becaus
[EGIT] [core/efl] master 02/02: eo: do not track NULL future.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ab18b01e1caf1166ced592613c7ea5711661322a commit ab18b01e1caf1166ced592613c7ea5711661322a Author: Cedric Bail Date: Tue Oct 25 18:51:12 2016 -0700 eo: do not track NULL future. --- src/lib/eo/eo_base_class.c | 6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/lib/eo/eo_base_class.c b/src/lib/eo/eo_base_class.c index bc85105..c79d213 100644 --- a/src/lib/eo/eo_base_class.c +++ b/src/lib/eo/eo_base_class.c @@ -1755,7 +1755,11 @@ _efl_object_future_link_tracking_end(void *data, const Efl_Event *ev) EOLIAN static Eina_Bool _efl_object_future_link(Eo *obj EINA_UNUSED, Efl_Object_Data *pd, Efl_Future *link) { - Efl_Object_Extension *ext = _efl_object_extension_need(pd); + Efl_Object_Extension *ext; + + if (!link) return EINA_FALSE; + + ext = _efl_object_extension_need(pd); ext->futures = eina_list_append(ext->futures, link); return !!efl_future_then(link, _efl_object_future_link_tracking_end, _efl_object_future_link_tracking_end, NULL, obj); --
[EGIT] [core/efl] master 01/02: ecore: allow multiple nested recursion of the same promise/future to happen at the same time.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=bfcc66e4eb5e2cdc506c761a957befcf47edcdd3 commit bfcc66e4eb5e2cdc506c761a957befcf47edcdd3 Author: Cedric Bail Date: Tue Oct 25 18:50:35 2016 -0700 ecore: allow multiple nested recursion of the same promise/future to happen at the same time. --- src/lib/ecore/efl_promise.c | 21 ++--- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/lib/ecore/efl_promise.c b/src/lib/ecore/efl_promise.c index c5ff17c..2d3b613 100644 --- a/src/lib/ecore/efl_promise.c +++ b/src/lib/ecore/efl_promise.c @@ -25,6 +25,8 @@ struct _Efl_Promise_Data Efl_Promise_Msg *message; Eina_List *futures; + unsigned char propagating; + struct { Eina_Bool future : 1; Eina_Bool future_triggered : 1; @@ -33,7 +35,6 @@ struct _Efl_Promise_Data } set; Eina_Bool optional : 1; - Eina_Bool propagating : 1; }; static void @@ -76,6 +77,7 @@ struct _Efl_Loop_Future_Data #ifndef NDEBUG int wref; #endif + unsigned char propagating; Eina_Bool fulfilled : 1; Eina_Bool death : 1; @@ -94,6 +96,7 @@ _efl_loop_future_success(Efl_Event *ev, Efl_Loop_Future_Data *pd, void *value) chain_success.value = value; + pd->propagating++; EINA_INLIST_FREE(pd->callbacks, cb) { // Remove callback early to avoid double execution while @@ -116,6 +119,7 @@ _efl_loop_future_success(Efl_Event *ev, Efl_Loop_Future_Data *pd, void *value) free(cb); } + pd->propagating--; } static void @@ -129,6 +133,7 @@ _efl_loop_future_failure(Efl_Event *ev, Efl_Loop_Future_Data *pd, Eina_Error err chain_fail.error = error; + pd->propagating++; EINA_INLIST_FREE(pd->callbacks, cb) { // Remove callback early to avoid double execution while @@ -141,6 +146,7 @@ _efl_loop_future_failure(Efl_Event *ev, Efl_Loop_Future_Data *pd, Eina_Error err free(cb); } + pd->propagating--; } static void @@ -323,7 +329,8 @@ _efl_loop_future_cancel(Eo *obj, Efl_Loop_Future_Data *pd) // We do allow for calling cancel during the propagation phase // as the other proper fix is to wype out all future reference before // starting propagating things. - if (pd->promise && pd->promise->propagating) + if (pd->propagating || + (pd->promise && pd->promise->propagating)) { efl_ref(obj); @@ -353,9 +360,9 @@ _efl_loop_future_cancel(Eo *obj, Efl_Loop_Future_Data *pd) _efl_loop_future_propagate(obj, pd); - disconnect: _efl_loop_future_disconnect(obj, pd); + disconnect: efl_unref(obj); } @@ -564,7 +571,7 @@ _efl_promise_value_set(Eo *obj, Efl_Promise_Data *pd, void *v, Eina_Free_Cb free pd->message = message; // Send it to all futures - pd->propagating = EINA_TRUE; + pd->propagating++; EINA_LIST_FOREACH_SAFE(pd->futures, l, ln, f) { EINA_REFCOUNT_REF(message); @@ -573,7 +580,7 @@ _efl_promise_value_set(Eo *obj, Efl_Promise_Data *pd, void *v, Eina_Free_Cb free // Trigger the callback _efl_loop_future_propagate(f->self, f); } - pd->propagating = EINA_FALSE; + pd->propagating--; // Now, we may die. efl_unref(obj); @@ -607,7 +614,7 @@ _efl_promise_failed_set(Eo *obj, Efl_Promise_Data *pd, Eina_Error err) pd->message = message; // Send it to each future - pd->propagating = EINA_TRUE; + pd->propagating++; EINA_LIST_FOREACH_SAFE(pd->futures, l, ln, f) { EINA_REFCOUNT_REF(message); @@ -616,7 +623,7 @@ _efl_promise_failed_set(Eo *obj, Efl_Promise_Data *pd, Eina_Error err) // Trigger the callback _efl_loop_future_propagate(f->self, f); } - pd->propagating = EINA_FALSE; + pd->propagating--; // Now, we may die. efl_unref(obj); --
Re: [E-devel] [RFC] One binary to rule them all, packagers opinion needed
On Tue, 25 Oct 2016 14:32:29 -0700 Cedric BAIL said: > On Mon, Oct 24, 2016 at 10:31 PM, Carsten Haitzler > wrote: > > On Fri, 21 Oct 2016 15:14:20 -0700 Cedric BAIL said: > > > > i've been mulling this. i followed the feedback so far. basically 2 main > > things: > > > > 1. this is intended to improve performance. especially startup times. > > 2. this is highly problematic in terms of portability and is going to create > > lots of code and build paths. > > It won't create lots of code and build paths. In fact it doesn't even > need two build paths. It just needs to uses all .la files for building > quicklaunch and can be rolled in, in parallel to current system. Just > the link of the quicklaunch binary would be different. Next step would > be to make a build option that setup symlink to that binary. Finally > that option would be the default, likely only afffecting the install > process. I don't think that create a lots of code (There should be no > code change) and build paths change at all. why are you doing a symlink if its JUST a quicklaunch binary change (that statically compiles all of efl into it)? you are trying to replace all of libevas.so.1, libeina.so.1, etc. with symlinks TO this quicklaunch binary ... to retain binary compatibility. you cant have the .so's AND this ql binary both have the same set of symbols. asking for trouble there. but to USe this binaries HAVE to be PIe and this makes for a non-portable pain in the arse of creating apps. which is why i did .so's for quicklaunch before.. because it also works with dll's on windows. PIE does not. not that i could find. > > 3. this makes debugging and other things a nightmare (ps names are all the > > same .. well depending on tool etc.) > > This is exagerated. Again just need to pass the right command line to > ps/top and problem is solved. Can easily be documented and we can also > provide a script that does it until we provide some nicer application > there. i mean simple user debugging. someone runs ps or top and all they see is 20 processes called "quicklaunch". because depending on the ps tool it may use one proc field or another. so a user goes "quicklaunch process is using N% cpu or N % ram". what real process is that? they don't know. because procps tools will not do what you want and thus the average person will become confused and find anything using efl like this to be horribly hard to work with. if top, htop, ps, killall, etc. don't work out of the box, it isby everyone (except yours) definition... a nightmare. i've messed with this before and it does not work across all the tools because of where they source command (and that can change based on config and cmdline options too). > > 4. generally the issue of complexity in our build requires for portability > > etc. > > > > #4 isn't something we can solve right now, but has a better solution if we > > #go > > for a greater internal redesign. but not today. some other day. we have to > > live with what we have right now. > > Hum ? How ? I don't see how we can have good portability without a > complex build system. Would be interested to know more by what you > mean here ! we can isolate the portability layers in a much smaller area and always provide a portable interface wrapped on top of the real os one. currently our portability code is scattered all through efl. it's not in one place. by merging it into one location we'll be able to simplify it too so in the end we just have some "efl port sys" lib that provides an "always works" set of library calls and everything above that is 100% portable and never changes platform to platform. > > i am always for improvements. but this really makes this method a very very > > very hard ask to do this. i've thought about it and i think this is far TOO > > radical a change as it means different execution methods, library > > production, linking and so much more os by os. it's kind of insane though > > theoretically doable on *nix. i've checked and PIE seems to be urtterly > > unportable (windows can't do it based on my reading). the proposal would be > > workable ONLY if we could do it unversally so it wouldn't bitrot and it'd > > work. this is actually why quicklaunch did .so's instead of PIE because > > that WORKS portably > > Windows is anyway another platform with a lot of specificity. > Quicklaunch will never work there as there is no equivalent to fork > anyway. Emulating what PIE allow is also mostly impossible as actually it does work. fork works. it's emulated and expensive, bit it WORKS. it means you have an already "partially launched" app around. if we had a fork POOL sitting around "ready to go" and they get ipc'd the command to run... it'd work the same on windows and on *nix. it'd be faster on both because when an app runs, the init/liking phase is already done by a process that is sitting as a hot spare ready to go. so ql dlopen()'s the apps' DLL (as now it has to be a dll and not an exe) and the app i
[EGIT] [core/efl] master 02/02: eio: fetch mime type asynchronously.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=fb8d139ad01349a598863397fb4ad54ba6998baa commit fb8d139ad01349a598863397fb4ad54ba6998baa Author: Cedric Bail Date: Tue Oct 25 16:54:29 2016 -0700 eio: fetch mime type asynchronously. --- src/lib/eio/eio_model.c | 61 +++-- src/lib/eio/eio_model_private.h | 2 ++ 2 files changed, 54 insertions(+), 9 deletions(-) diff --git a/src/lib/eio/eio_model.c b/src/lib/eio/eio_model.c index 64a7213..0302135 100644 --- a/src/lib/eio/eio_model.c +++ b/src/lib/eio/eio_model.c @@ -70,7 +70,6 @@ _eio_stat_done_cb(void *data, Eio_File *handler EINA_UNUSED, const Eina_Stat *st eina_list_free(priv->property_promises); priv->property_promises = NULL; - eio_file_cancel(priv->stat_file); priv->stat_file = NULL; } @@ -289,18 +288,43 @@ _eio_model_efl_model_properties_get(Eo *obj EINA_UNUSED, Eio_Model_Data *_pd) /** * Property Get */ +static void +_on_idle_mime(void *data, const Efl_Event *ev) +{ + Eio_Model_Data *priv = data; + Efl_Promise *p; + const char *value; + + // Make sure that we are not over consuming time in the main loop + if (ecore_time_get() - ecore_loop_time_get() > 0.004) return ; + + // Are we done yet ? + efl_event_callback_del(ev->object, EFL_LOOP_EVENT_IDLE_ENTER, _on_idle_mime, priv); + if (!priv->fetching_mime) return ; + + value = efreet_mime_type_get(priv->path); + + EINA_LIST_FREE(priv->fetching_mime, p) + { +Eina_Value *v; + +v = eina_value_new(EINA_VALUE_TYPE_STRING); +eina_value_set(v, value); +efl_promise_value_set(p, v, (Eina_Free_Cb)&eina_value_free); + } +} + static Efl_Future* -_eio_model_efl_model_property_get(Eo *obj EINA_UNUSED, Eio_Model_Data *priv, const char *property) +_eio_model_efl_model_property_get(Eo *obj, Eio_Model_Data *priv, const char *property) { _Eio_Property_Name property_name; const char* value = NULL; Efl_Promise *promise; Efl_Future *future; - Eo *loop = efl_provider_find(obj, EFL_LOOP_CLASS); - promise = efl_add(EFL_PROMISE_CLASS, loop); + promise = efl_add(EFL_PROMISE_CLASS, obj); future = efl_promise_future_get(promise); - + EINA_SAFETY_ON_NULL_RETURN_VAL(priv, future); if (property == NULL) @@ -348,15 +372,23 @@ _eio_model_efl_model_property_get(Eo *obj EINA_UNUSED, Eio_Model_Data *priv, con switch(property_name) { + case EIO_MODEL_PROP_MIME_TYPE: + { + if (!priv->fetching_mime) +efl_event_callback_add(efl_provider_find(obj, EFL_LOOP_CLASS), + EFL_LOOP_EVENT_IDLE_ENTER, _on_idle_mime, priv); + priv->fetching_mime = eina_list_append(priv->fetching_mime, promise); + break; + } case EIO_MODEL_PROP_FILENAME: case EIO_MODEL_PROP_PATH: - case EIO_MODEL_PROP_MIME_TYPE: { Eina_Value* v = eina_value_new(EINA_VALUE_TYPE_STRING); eina_value_set(v, value); efl_promise_value_set(promise, v, (Eina_Free_Cb)&eina_value_free); + + break; } - break; default: { _Eio_Property_Promise* p = calloc(1, sizeof(_Eio_Property_Promise)); @@ -364,10 +396,10 @@ _eio_model_efl_model_property_get(Eo *obj EINA_UNUSED, Eio_Model_Data *priv, con p->property = property_name;; priv->property_promises = eina_list_prepend(priv->property_promises, p); - if(!priv->stat_file) + if (!priv->stat_file) _eio_stat_do(priv); + break; } - break; } return future; } @@ -687,8 +719,19 @@ _eio_model_path_set(Eo *obj EINA_UNUSED, Eio_Model_Data *priv, const char *path) static void _eio_model_efl_object_destructor(Eo *obj , Eio_Model_Data *priv) { + Efl_Promise *p; Eo *child; + if (priv->fetching_mime) + efl_event_callback_del(efl_provider_find(obj, EFL_LOOP_CLASS), +EFL_LOOP_EVENT_IDLE_ENTER, _on_idle_mime, priv); + + EINA_LIST_FREE(priv->fetching_mime, p) + { +efl_promise_failed_set(p, EINA_ERROR_FUTURE_CANCEL); +efl_del(p); + } + _eio_model_efl_model_monitor_del(priv); eina_spinlock_free(&priv->filter_lock); diff --git a/src/lib/eio/eio_model_private.h b/src/lib/eio/eio_model_private.h index 7944274..3bf179c 100644 --- a/src/lib/eio/eio_model_private.h +++ b/src/lib/eio/eio_model_private.h @@ -74,6 +74,8 @@ struct _Eio_Model_Data Eio_Filter_Direct_Cb filter_cb; void *filter_userdata; Eina_Spinlock filter_lock; /**< filter callback is called from another thread */ + + Eina_List *fetching_mime; }; #endif --
[EGIT] [core/efl] master 01/02: ecore: properly handle promise failure when each member has not been fulfilled yet.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=919829aa7d9f9302f30cc245f593793ba8753b46 commit 919829aa7d9f9302f30cc245f593793ba8753b46 Author: Cedric Bail Date: Tue Oct 25 15:21:51 2016 -0700 ecore: properly handle promise failure when each member has not been fulfilled yet. --- src/lib/ecore/efl_promise.c | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/lib/ecore/efl_promise.c b/src/lib/ecore/efl_promise.c index 8cbde0e..c5ff17c 100644 --- a/src/lib/ecore/efl_promise.c +++ b/src/lib/ecore/efl_promise.c @@ -39,6 +39,7 @@ struct _Efl_Promise_Data static void _efl_promise_msg_free(Efl_Promise_Msg *msg) { + if (!msg) return ; if (msg->free_cb) msg->free_cb(msg->value); free(msg); @@ -737,8 +738,9 @@ _efl_promise_all_free(Efl_Promise_All *all) EINA_ARRAY_ITER_NEXT(&all->members, i, fa, iterator) { -EINA_REFCOUNT_UNREF(fa->d) - _efl_promise_msg_free(fa->d); +if (fa->d) + EINA_REFCOUNT_UNREF(fa->d) +_efl_promise_msg_free(fa->d); } efl_del(all->promise); all->promise = NULL; --
[EGIT] [core/efl] master 03/06: elementary: enable setting custom access info to hoversel items
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=008b74372fc4a861e5561e228d150a0ec62784de commit 008b74372fc4a861e5561e228d150a0ec62784de Author: Shuhrat Dehkanov Date: Tue Oct 25 13:33:36 2016 -0700 elementary: enable setting custom access info to hoversel items Summary: This will enable apps to get item access object using elm_object_item_access_object_get(). Reviewers: jpeg, Hermet Subscribers: kimcinoo, singh.amitesh, cedric, minkyu Differential Revision: https://phab.enlightenment.org/D4355 Signed-off-by: Cedric Bail --- src/lib/elementary/elc_hoversel.c | 55 +++ 1 file changed, 55 insertions(+) diff --git a/src/lib/elementary/elc_hoversel.c b/src/lib/elementary/elc_hoversel.c index c0ff373..5e052f9 100644 --- a/src/lib/elementary/elc_hoversel.c +++ b/src/lib/elementary/elc_hoversel.c @@ -371,6 +371,52 @@ _hover_end_finished(void *data, } } +static char * +_access_info_cb(void *data, Evas_Object *obj) +{ + const char *txt; + Elm_Hoversel_Item_Data *it; + + if (data != NULL) + { +it = (Elm_Hoversel_Item_Data *)data; +if (it->label) return strdup(it->label); + } + else + { +txt = elm_widget_access_info_get(obj); +if (!txt) txt = elm_layout_text_get(obj, NULL); +if (txt) return strdup(txt); + } + + return NULL; +} + +static void +_access_widget_item_register(Elm_Hoversel_Data *sd) +{ + const Eina_List *l; + Elm_Object_Item *eo_item; + Elm_Access_Info *ai; + + EINA_LIST_FOREACH(sd->items, l, eo_item) + { +ELM_HOVERSEL_ITEM_DATA_GET(eo_item, item); +_elm_access_widget_item_register(item->base); +ai = _elm_access_info_get(item->base->access_obj); +_elm_access_callback_set(ai, ELM_ACCESS_INFO, _access_info_cb, item); + } +} + +static char * +_access_state_cb(void *data EINA_UNUSED, Evas_Object *obj) +{ + if (elm_widget_disabled_get(obj)) + return strdup(E_("State: Disabled")); + + return NULL; +} + static void _activate(Evas_Object *obj) { @@ -430,6 +476,8 @@ _activate(Evas_Object *obj) _resizing_eval(obj, sd); elm_object_part_content_set(sd->hover, sd->last_location, sd->tbl); + if (_elm_config->access_mode) _access_widget_item_register(sd); + efl_event_callback_legacy_call(obj, ELM_HOVERSEL_EVENT_EXPANDED, NULL); evas_object_show(sd->hover); } @@ -561,6 +609,13 @@ _elm_hoversel_efl_canvas_group_group_add(Eo *obj, Elm_Hoversel_Data *priv) evas_object_event_callback_add(obj, EVAS_CALLBACK_MOVE, _on_move_resize, priv); evas_object_event_callback_add(obj, EVAS_CALLBACK_RESIZE, _on_move_resize, priv); + + _elm_access_text_set + (_elm_access_info_get(obj), ELM_ACCESS_TYPE, E_("Hoversel")); + _elm_access_callback_set + (_elm_access_info_get(obj), ELM_ACCESS_INFO, _access_info_cb, NULL); + _elm_access_callback_set + (_elm_access_info_get(obj), ELM_ACCESS_STATE, _access_state_cb, obj); } EOLIAN static void --
[EGIT] [core/efl] master 02/06: elementary: colorselector - apply new focus ui for palette and components items
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ee83f2aa3d6a089487b97c3f9cdad30a0cb5a9d8 commit ee83f2aa3d6a089487b97c3f9cdad30a0cb5a9d8 Author: Taehyub Kim Date: Tue Oct 25 13:32:50 2016 -0700 elementary: colorselector - apply new focus ui for palette and components items Summary: colorselector focus ui is not moving for palette and components items. now it is changed to focus each item of palette and components. Test Plan: 1. build efl elementary with this patch 2. remove /home/{user}/.elementary 3. launch colorselector with elementary_test -to colorselector 4. move direction key 5. see the new focus ui Reviewers: jpeg, raster, Hermet, woohyun, bu5hm4n, cedric Reviewed By: cedric Differential Revision: https://phab.enlightenment.org/D4288 Signed-off-by: Cedric Bail --- config/default/base.src.in| 6 ++ config/mobile/base.src.in | 6 ++ config/standard/base.src.in | 6 ++ src/lib/elementary/elm_color_item.eo | 2 + src/lib/elementary/elm_colorselector.c| 100 ++ src/lib/elementary/elm_colorselector.eo | 1 + src/lib/elementary/elm_widget_colorselector.h | 4 ++ 7 files changed, 110 insertions(+), 15 deletions(-) diff --git a/config/default/base.src.in b/config/default/base.src.in index 9e05df6..90188f3 100644 --- a/config/default/base.src.in +++ b/config/default/base.src.in @@ -803,6 +803,12 @@ group "Elm_Config" struct { value "action" string: "move"; value "params" string: "down"; } + group "Elm_Config_Binding_Key" struct { + value "context" int: 0; + value "key" string: "Return"; + value "action" string: "activate"; + value "params" string: ""; + } } } group "Elm_Config_Bindings_Widget" struct { diff --git a/config/mobile/base.src.in b/config/mobile/base.src.in index 56c4f3f..5619970 100644 --- a/config/mobile/base.src.in +++ b/config/mobile/base.src.in @@ -807,6 +807,12 @@ group "Elm_Config" struct { value "action" string: "move"; value "params" string: "down"; } + group "Elm_Config_Binding_Key" struct { + value "context" int: 0; + value "key" string: "Return"; + value "action" string: "activate"; + value "params" string: ""; + } } } group "Elm_Config_Bindings_Widget" struct { diff --git a/config/standard/base.src.in b/config/standard/base.src.in index e628f82..849185f 100644 --- a/config/standard/base.src.in +++ b/config/standard/base.src.in @@ -804,6 +804,12 @@ group "Elm_Config" struct { value "action" string: "move"; value "params" string: "down"; } + group "Elm_Config_Binding_Key" struct { + value "context" int: 0; + value "key" string: "Return"; + value "action" string: "activate"; + value "params" string: ""; + } } } group "Elm_Config_Bindings_Widget" struct { diff --git a/src/lib/elementary/elm_color_item.eo b/src/lib/elementary/elm_color_item.eo index eab8b54..00928c3 100644 --- a/src/lib/elementary/elm_color_item.eo +++ b/src/lib/elementary/elm_color_item.eo @@ -40,5 +40,7 @@ class Elm.Color.Item(Elm.Widget.Item) Efl.Object.destructor; Elm.Widget.Item.access_register; Elm.Widget.Item.signal_emit; + Elm.Widget.Item.focus.set; + Elm.Widget.Item.focus.get; } } diff --git a/src/lib/elementary/elm_colorselector.c b/src/lib/elementary/elm_colorselector.c index 189d341..66af2e2 100644 --- a/src/lib/elementary/elm_colorselector.c +++ b/src/lib/elementary/elm_colorselector.c @@ -183,9 +183,11 @@ static const Elm_Color_Name _color_name[] = { }; static Eina_Bool _key_action_move(Evas_Object *obj, const char *params); +static Eina_Bool _key_action_activate(Evas_Object *obj, const char *params); static const Elm_Action key_actions[] = { {"move", _key_action_move}, + {"activate", _key_action_activate}, {NULL, NULL} }; @@ -237,6 +239,7 @@ _items_del(Elm_Colorselector_Data *sd) sd->items = NULL; sd->selected = NULL; + sd->focus_items = NULL; } static void @@ -1895,6 +1898,7 @@ _elm_colorselector_efl_canvas_group_group_add(Eo *obj, Elm_Colorselector_Data *p priv->focused = ELM_COLORSELECTOR_PALETTE; priv->sel_color_type = HUE; priv->selected = NULL; + priv->focus_items = NULL; priv->er = 255; priv->eg = 0; priv->eb = 0; @@ -2014,7 +2018,7 @@ _key_action_move(Evas_Object *obj, const char *params) { if (sd->focused == ELM_COLORSELECTOR_PALETTE && sd->selected) { - cl = eina_list_prev(sd->selected); + cl = eina_
[EGIT] [core/efl] master 01/06: evas: vg/gradient - add missing legacy api for gradient object creation.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=4f16e16b9449167416f4108c61552c1e48b6d8ca commit 4f16e16b9449167416f4108c61552c1e48b6d8ca Author: Subhransu Mohanty Date: Tue Oct 25 13:31:45 2016 -0700 evas: vg/gradient - add missing legacy api for gradient object creation. Reviewers: jpeg, Hermet, artem.popov, cedric Reviewed By: artem.popov, cedric Subscribers: cedric, jpeg Differential Revision: https://phab.enlightenment.org/D4331 Signed-off-by: Cedric Bail --- src/lib/evas/Evas_Legacy.h| 54 +++ src/lib/evas/canvas/evas_vg_gradient_linear.c | 6 +++ src/lib/evas/canvas/evas_vg_gradient_radial.c | 6 +++ 3 files changed, 66 insertions(+) diff --git a/src/lib/evas/Evas_Legacy.h b/src/lib/evas/Evas_Legacy.h index 95d2b20..6a4833c 100644 --- a/src/lib/evas/Evas_Legacy.h +++ b/src/lib/evas/Evas_Legacy.h @@ -3234,6 +3234,42 @@ EAPI void evas_vg_shape_append_svg_path(Eo *obj, const char *svg_path_data); EAPI Eina_Bool evas_vg_shape_interpolate(Eo *obj, const Eo *from, const Eo *to, double pos_map); EAPI Eina_Bool evas_vg_shape_equal_commands(Eo *obj, const Eo *with); +/** + * set a vg object as the fill property + * + * @param obj The object whose fill property gets modified. + * @param f The object content will be used for filling. + * + */ +EAPI void evas_vg_shape_fill_set(Eo *obj, Efl_VG *f); + +/** + * returns the object that is set for the fill property + * + * @param obj The object whose fill property is inspected. + * @return The object that is set as fill property. + * + */ +EAPI Efl_VG* evas_vg_shape_fill_get(const Eo *obj); + +/** + * set a vg object as the stroke fill property + * + * @param obj The object whose stroke fill property gets modified. + * @param f The object content will be used for stroke filling. + * + */ +EAPI void evas_vg_shape_stroke_fill_set(Eo *obj, Efl_VG *f); + +/** + * returns the object that is set for the stroke fill property + * + * @param obj The object whose stroke fill property is inspected. + * @return The object that is set as stroke fill property. + * + */ +EAPI Efl_VG* evas_vg_shape_stroke_fill_get(const Eo *obj); + #include "canvas/efl_vg_shape.eo.legacy.h" /** @@ -3281,6 +3317,15 @@ EAPI Efl_Gfx_Gradient_Spread evas_vg_gradient_spread_get(Eo *obj); #include "canvas/efl_vg_gradient.eo.legacy.h" /** + * Creates a new linear gradient object \. + * + * @param parent The given vector container object. + * @return The created linear gradient object handle. + * + */ +EAPI Efl_VG* evas_vg_gradient_linear_add(Efl_VG *parent); + +/** * * Sets the start point of this linear gradient. * @@ -3323,6 +3368,15 @@ EAPI void evas_vg_gradient_linear_end_get(Eo *obj, double *x, double *y); #include "canvas/efl_vg_gradient_linear.eo.legacy.h" /** + * Creates a new radial gradient object \. + * + * @param parent The given vector container object. + * @return The created radial gradient object handle. + * + */ +EAPI Efl_VG* evas_vg_gradient_radial_add(Efl_VG *parent); + +/** * * Sets the center of this radial gradient. * diff --git a/src/lib/evas/canvas/evas_vg_gradient_linear.c b/src/lib/evas/canvas/evas_vg_gradient_linear.c index de81987..a1e9046 100644 --- a/src/lib/evas/canvas/evas_vg_gradient_linear.c +++ b/src/lib/evas/canvas/evas_vg_gradient_linear.c @@ -192,4 +192,10 @@ evas_vg_gradient_linear_end_get(Eo *obj, double *x, double *y) efl_gfx_gradient_linear_end_get(obj, x, y); } +EAPI Efl_VG* +evas_vg_gradient_linear_add(Efl_VG *parent) +{ + return efl_add(EFL_VG_GRADIENT_LINEAR_CLASS, parent); +} + #include "efl_vg_gradient_linear.eo.c" diff --git a/src/lib/evas/canvas/evas_vg_gradient_radial.c b/src/lib/evas/canvas/evas_vg_gradient_radial.c index 9a60d65..a464e2a 100644 --- a/src/lib/evas/canvas/evas_vg_gradient_radial.c +++ b/src/lib/evas/canvas/evas_vg_gradient_radial.c @@ -224,4 +224,10 @@ evas_vg_gradient_radial_focal_get(Eo *obj, double *x, double *y) efl_gfx_gradient_radial_focal_get(obj, x, y); } +EAPI Efl_VG* +evas_vg_gradient_radial_add(Efl_VG *parent) +{ + return efl_add(EFL_VG_GRADIENT_RADIAL_CLASS, parent); +} + #include "efl_vg_gradient_radial.eo.c" --
[EGIT] [core/efl] master 04/06: elementary: gengrid - check the edge correctly
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=a83643d134c7352de33acd75586347450f6e7eca commit a83643d134c7352de33acd75586347450f6e7eca Author: Minkyu Kang Date: Tue Oct 25 14:12:42 2016 -0700 elementary: gengrid - check the edge correctly Summary: The routine of checking edge of left side, divide position by row. Since the result of fisrt item of last line is 1, that item was not checked as edge. This patch is for fixing it. Signed-off-by: Minkyu Kang Test Plan: elementary_test -to gengrid2 append items (about 6) horizontal mode on and item loop enable check item loop is working properly Reviewers: cedric, jpeg, Hermet, SanghyeonLee Subscribers: jehun.lim, SanghyeonLee, cedric, jpeg Differential Revision: https://phab.enlightenment.org/D4358 Signed-off-by: Cedric Bail --- src/lib/elementary/elm_gengrid.c | 7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/lib/elementary/elm_gengrid.c b/src/lib/elementary/elm_gengrid.c index 717b306..768d6b2 100644 --- a/src/lib/elementary/elm_gengrid.c +++ b/src/lib/elementary/elm_gengrid.c @@ -2771,6 +2771,7 @@ _elm_gengrid_item_edge_check(Elm_Object_Item *eo_it, ((sd->horizontal) && (dir == ELM_FOCUS_LEFT))) { Evas_Coord col, row, cvw, cvh; +int x; evas_object_geometry_get(sd->pan_obj, NULL, NULL, &cvw, &cvh); if (sd->horizontal && sd->item_height > 0) @@ -2778,7 +2779,8 @@ _elm_gengrid_item_edge_check(Elm_Object_Item *eo_it, row = cvh / sd->item_height; if (row <= 0) row = 1; col = tmp->position / row; - if (col == 0) + x = tmp->position % row; + if (col == 0 || (col == 1 && x == 0)) return EINA_TRUE; } else if (sd->item_width > 0) @@ -2786,7 +2788,8 @@ _elm_gengrid_item_edge_check(Elm_Object_Item *eo_it, col = cvw / sd->item_width; if (col <= 0) col = 1; row = tmp->position / col; - if (row == 0) + x = tmp->position % col; + if (row == 0 || (row == 1 && x == 0)) return EINA_TRUE; } } --
[EGIT] [core/efl] master 05/06: elementary: fix build without wayland.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=da22a046aa1929a8af441c6bc4578bcb103bd132 commit da22a046aa1929a8af441c6bc4578bcb103bd132 Author: Cedric Bail Date: Tue Oct 25 15:02:46 2016 -0700 elementary: fix build without wayland. --- src/lib/elementary/efl_ui_win.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c index a4dbaeb..5f1507d 100644 --- a/src/lib/elementary/efl_ui_win.c +++ b/src/lib/elementary/efl_ui_win.c @@ -4811,6 +4811,7 @@ _elm_win_finalize_internal(Eo *obj, Efl_Ui_Win_Data *sd, const char *name, Elm_W elm_win_focus_highlight_animate_set(obj, EINA_TRUE); } +#ifdef HAVE_ELEMENTARY_WL2 if (type != ELM_WIN_FAKE) { if ((engine) && @@ -4848,6 +4849,7 @@ _elm_win_finalize_internal(Eo *obj, Efl_Ui_Win_Data *sd, const char *name, Elm_W ecore_evas_resize(sd->pointer.ee, mw, mh); } } +#endif elm_interface_atspi_accessible_role_set(obj, ELM_ATSPI_ROLE_WINDOW); if (_elm_config->atspi_mode) --
[EGIT] [core/efl] master 06/06: elementary: fixup warning in new colorselector code.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=baf2187d555a4b4632081f41b85bb6188b7f58d1 commit baf2187d555a4b4632081f41b85bb6188b7f58d1 Author: Cedric Bail Date: Tue Oct 25 15:03:26 2016 -0700 elementary: fixup warning in new colorselector code. --- src/lib/elementary/elm_colorselector.c | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/lib/elementary/elm_colorselector.c b/src/lib/elementary/elm_colorselector.c index 66af2e2..bb7f4ff 100644 --- a/src/lib/elementary/elm_colorselector.c +++ b/src/lib/elementary/elm_colorselector.c @@ -2098,7 +2098,6 @@ _key_action_move(Evas_Object *obj, const char *params) if (cl) { eo_item = eina_list_data_get(cl); -ELM_COLOR_ITEM_DATA_GET(eo_item, item); elm_object_item_focus_set(eo_item, EINA_TRUE); } else if (!cl && (sd->focused == ELM_COLORSELECTOR_PALETTE)) @@ -2120,7 +2119,11 @@ _key_action_activate(Evas_Object *obj, const char *params EINA_UNUSED) Elm_Object_Item *eo_item = NULL; eo_item = eina_list_data_get(sd->focus_items); elm_obj_color_item_selected_set(eo_item, EINA_TRUE); + +return EINA_TRUE; } + + return EINA_FALSE; } EOLIAN static Eina_Bool --
Re: [E-devel] [RFC] One binary to rule them all, packagers opinion needed
On Mon, Oct 24, 2016 at 10:31 PM, Carsten Haitzler wrote: > On Fri, 21 Oct 2016 15:14:20 -0700 Cedric BAIL said: > > i've been mulling this. i followed the feedback so far. basically 2 main > things: > > 1. this is intended to improve performance. especially startup times. > 2. this is highly problematic in terms of portability and is going to create > lots of code and build paths. It won't create lots of code and build paths. In fact it doesn't even need two build paths. It just needs to uses all .la files for building quicklaunch and can be rolled in, in parallel to current system. Just the link of the quicklaunch binary would be different. Next step would be to make a build option that setup symlink to that binary. Finally that option would be the default, likely only afffecting the install process. I don't think that create a lots of code (There should be no code change) and build paths change at all. > 3. this makes debugging and other things a nightmare (ps names are all the > same .. well depending on tool etc.) This is exagerated. Again just need to pass the right command line to ps/top and problem is solved. Can easily be documented and we can also provide a script that does it until we provide some nicer application there. > 4. generally the issue of complexity in our build requires for portability > etc. > > #4 isn't something we can solve right now, but has a better solution if we go > for a greater internal redesign. but not today. some other day. we have to > live > with what we have right now. Hum ? How ? I don't see how we can have good portability without a complex build system. Would be interested to know more by what you mean here ! > i am always for improvements. but this really makes this method a very very > very hard ask to do this. i've thought about it and i think this is far TOO > radical a change as it means different execution methods, library production, > linking and so much more os by os. it's kind of insane though theoretically > doable on *nix. i've checked and PIE seems to be urtterly unportable (windows > can't do it based on my reading). the proposal would be workable ONLY if we > could do it unversally so it wouldn't bitrot and it'd work. this is actually > why quicklaunch did .so's instead of PIE because that WORKS portably Windows is anyway another platform with a lot of specificity. Quicklaunch will never work there as there is no equivalent to fork anyway. Emulating what PIE allow is also mostly impossible as initialization of a library is different as what a binary require (Even with ALSR). Anyway we already have different code path/build differrence for Windows and Linux and this one is not a new one. As in, it won't increase the difference much. As for the change, they will be the same for all Unix. It is a compilation option on just the binary plus a static linking of all efl to it (basically an ifdef with a lot a +=). So I disagree here with your assesment of the complexity introduced in our build system. The main change is going to be on install which will be made by doing symlink to that executable. > so here is what i think is sane: > > 1. merge libraries aggressively. this reduces linking time BETWEEN efl libs > and > thus an efl lib .so when loaded has the libs that were merged already linked > together. i propose we try and get down to maybe 3 or 4 .so's this will close > the gap. > > how do we make this portable? well on *nix we can install symlinks from our > old .so major versions TO the new merged ones. but what on windows? the best i > can think of for windows is produce "empty" dll's that ONLY contain like a > dummy function and the correct linking to other efl libs they depend on eg if > we merged eina, eo, ecore, efl into "efl" then eina depends on efl, eo, depend > on efl and ecore depends on efl. thus link any one of these and you got your > symbols from before plus more. this solution ALSO works on *nix ... so we > could > use it as a start with symlinks being an optimization of it. yes it means 2 > install paths unfortunately. we COULD do it as a post-install that "rm's" > the .so's we installed and replaces them by symlinks which makes this kind of > sane to keep around. Wouldn't that not work due to DSO ? No idea if that would work with Windows. Also, I am not to sure it would improve things that much as you still need to load a library, agreed an empty one, but still need to load one. It will also be a lot more work than my proposed change as it require to shuffle all the code around and create a set of new empty libraries. > 2. move quicklaunch further down to core (efl core) so its not only up in elm > land. this would make it a core capability. we STILL should load .so's/dylibs > or dll's if there, and try PIE binaries... but we should work here on windows > too. make it a core feature low down the stack We are already doing PIE binary. As stated above Windows can never have quicklaunch in any form (No fork, and li
[EGIT] [core/efl] master 01/01: use more standard IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP.
barbieri pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=9a62932d072ae94c00ec13a4a37aa8f396405e97 commit 9a62932d072ae94c00ec13a4a37aa8f396405e97 Author: Gustavo Sverzut Barbieri Date: Tue Oct 25 19:32:07 2016 -0200 use more standard IPV6_JOIN_GROUP and IPV6_LEAVE_GROUP. The IPV6_ADD_MEMBERSHIP and IPV6_DROP_MEMBERSHIP are deprecated alias, use the correct defines so it compiles everywhere. Fixes T4764 Thanks netstar! --- src/lib/ecore_con/ecore_con.c | 4 ++-- src/lib/ecore_con/efl_net_dialer_udp.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/ecore_con/ecore_con.c b/src/lib/ecore_con/ecore_con.c index 0bd23c0..c6b27c8 100644 --- a/src/lib/ecore_con/ecore_con.c +++ b/src/lib/ecore_con/ecore_con.c @@ -4998,7 +4998,7 @@ efl_net_multicast_join(SOCKET fd, int family, const char *address) if (err) return err; -if (setsockopt(fd, IPPROTO_IPV6, IPV6_ADD_MEMBERSHIP, &mreq, sizeof(mreq)) == 0) +if (setsockopt(fd, IPPROTO_IPV6, IPV6_JOIN_GROUP, &mreq, sizeof(mreq)) == 0) return 0; } else @@ -5034,7 +5034,7 @@ efl_net_multicast_leave(SOCKET fd, int family, const char *address) if (err) return err; -if (setsockopt(fd, IPPROTO_IPV6, IPV6_DROP_MEMBERSHIP, &mreq, sizeof(mreq)) == 0) +if (setsockopt(fd, IPPROTO_IPV6, IPV6_LEAVE_GROUP, &mreq, sizeof(mreq)) == 0) return 0; } else diff --git a/src/lib/ecore_con/efl_net_dialer_udp.c b/src/lib/ecore_con/efl_net_dialer_udp.c index b5fe8de..750cb53 100644 --- a/src/lib/ecore_con/efl_net_dialer_udp.c +++ b/src/lib/ecore_con/efl_net_dialer_udp.c @@ -145,7 +145,7 @@ _efl_net_dialer_udp_resolved_bind(Eo *o, Efl_Net_Dialer_Udp_Data *pd EINA_UNUSED struct ipv6_mreq mreq = { .ipv6mr_multiaddr = a->sin6_addr, }; - if (setsockopt(fd, IPPROTO_IPV6, IPV6_ADD_MEMBERSHIP, &mreq, sizeof(mreq)) == 0) + if (setsockopt(fd, IPPROTO_IPV6, IPV6_JOIN_GROUP, &mreq, sizeof(mreq)) == 0) { efl_net_ip_port_fmt(buf, sizeof(buf), addr->ai_addr); DBG("joined multicast group %s socket=%d", buf, fd); --
[EGIT] [core/enlightenment] master 02/02: Remove EVAS_CALLBACK_HIDE on shelf when freeing
derekf pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=2af066c97a305993d15a5074d9b8cb46fd5145d2 commit 2af066c97a305993d15a5074d9b8cb46fd5145d2 Author: Derek Foreman Date: Tue Oct 25 14:11:58 2016 -0500 Remove EVAS_CALLBACK_HIDE on shelf when freeing Prevents a use after free when an evas callback fires later. --- src/bin/e_shelf.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/bin/e_shelf.c b/src/bin/e_shelf.c index d4974a7..64c82bd 100644 --- a/src/bin/e_shelf.c +++ b/src/bin/e_shelf.c @@ -1193,6 +1193,8 @@ _e_shelf_free(E_Shelf *es) if (!es->dummy) _e_shelf_bindings_del(es); + evas_object_event_callback_del(es->comp_object, EVAS_CALLBACK_HIDE, _e_shelf_hidden); + E_FREE_LIST(es->handlers, ecore_event_handler_del); E_FREE_LIST(es->zone_obstacles, e_object_del); --
[EGIT] [core/enlightenment] master 01/02: Block session recovery for internal windows
derekf pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=30e9f45dfcb430a43b8198cec3886e8b3acf1927 commit 30e9f45dfcb430a43b8198cec3886e8b3acf1927 Author: Derek Foreman Date: Tue Oct 25 14:10:47 2016 -0500 Block session recovery for internal windows --- src/bin/e_comp_wl.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 5a88430..52f61b5 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -2810,6 +2810,9 @@ e_comp_wl_init(void) return EINA_FALSE; } + /* Block session recovery for internal windows */ + ecore_wl2_session_recovery_disable(); + /* set gl available if we have ecore_evas support */ if (ecore_evas_engine_type_supported_get(ECORE_EVAS_ENGINE_WAYLAND_EGL) || ecore_evas_engine_type_supported_get(ECORE_EVAS_ENGINE_OPENGL_DRM)) --
[EGIT] [core/efl] master 01/01: ecore_wl2: Add API to disable session recovery
derekf pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=09378052e78674a5073785e60c72d0e036176796 commit 09378052e78674a5073785e60c72d0e036176796 Author: Derek Foreman Date: Tue Oct 25 14:07:09 2016 -0500 ecore_wl2: Add API to disable session recovery Enlightenment needs a way to avoid using session recovery functionality when connecting to itself for internal windows. --- src/lib/ecore_wl2/Ecore_Wl2.h | 9 + src/lib/ecore_wl2/ecore_wl2.c | 9 - 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/lib/ecore_wl2/Ecore_Wl2.h b/src/lib/ecore_wl2/Ecore_Wl2.h index d45ed1a..30fb5d9 100644 --- a/src/lib/ecore_wl2/Ecore_Wl2.h +++ b/src/lib/ecore_wl2/Ecore_Wl2.h @@ -1243,6 +1243,15 @@ EAPI void ecore_wl2_offer_finish(Ecore_Wl2_Offer *offer); */ EAPI Eina_Bool ecore_wl2_window_has_shell_surface(Ecore_Wl2_Window *win); +/** + * Disable session recovery for any further connections. Must be called + * before connecting. This is irreversible and not intended for general + * use. + * + * @since 1.19 + */ +EAPI void ecore_wl2_session_recovery_disable(void); + # endif # undef EAPI diff --git a/src/lib/ecore_wl2/ecore_wl2.c b/src/lib/ecore_wl2/ecore_wl2.c index f62daca..397f8e3 100644 --- a/src/lib/ecore_wl2/ecore_wl2.c +++ b/src/lib/ecore_wl2/ecore_wl2.c @@ -92,7 +92,8 @@ ecore_wl2_init(void) _ecore_wl2_event_window_www = ecore_event_type_new(); _ecore_wl2_event_window_www_drag = ecore_event_type_new(); } - no_session_recovery = !!getenv("EFL_NO_WAYLAND_SESSION_RECOVERY"); + if (!no_session_recovery) + no_session_recovery = !!getenv("EFL_NO_WAYLAND_SESSION_RECOVERY"); return _ecore_wl2_init_count; @@ -155,3 +156,9 @@ ecore_wl2_shutdown(void) return _ecore_wl2_init_count; } + +EAPI void +ecore_wl2_session_recovery_disable(void) +{ + no_session_recovery = EINA_TRUE; +} --
[EGIT] [core/efl] master 04/04: elementary: Implement support for EFL Wayland mouse pointers
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c173be4db73326a5090d69b7442f5ebfc38f2ce4 commit c173be4db73326a5090d69b7442f5ebfc38f2ce4 Author: Chris Michael Date: Tue Oct 25 14:19:57 2016 -0400 elementary: Implement support for EFL Wayland mouse pointers This patch implements support for EFL Wayland applications to be able to use EFL mouse pointers instead of ugly X cursors inside a Wayland compositor. This does Not use Softcursor so the mouse pointer becomes it's own surface which is then sent to wl_pointer. NB: Some small hiccups when using wayland_shm such as dropped frames. @feature Signed-off-by: Chris Michael --- src/lib/elementary/efl_ui_win.c | 170 +--- 1 file changed, 124 insertions(+), 46 deletions(-) diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c index 6008828..a4dbaeb 100644 --- a/src/lib/elementary/efl_ui_win.c +++ b/src/lib/elementary/efl_ui_win.c @@ -151,10 +151,11 @@ struct _Efl_Ui_Win_Data } screen; struct { -#if 0 - Ecore_Evas *ee; +#ifdef HAVE_ELEMENTARY_WL2 + Ecore_Wl2_Window *win; + struct wl_surface *surf; #endif - Evas*evas; + Ecore_Evas *ee; Evas_Object *obj, *hot_obj; int hot_x, hot_y; } pointer; @@ -919,8 +920,9 @@ _elm_win_mouse_in(Ecore_Evas *ee) _elm_win_throttle_ok = EINA_TRUE; if (sd->resizing) sd->resizing = EINA_FALSE; #ifdef HAVE_ELEMENTARY_WL2 - if (sd->wl.win && (!sd->frame_obj)) - ecore_wl2_window_cursor_from_name_set(sd->wl.win, NULL); + if (sd->wl.win) + ecore_wl2_window_pointer_set(sd->wl.win, sd->pointer.surf, + sd->pointer.hot_x, sd->pointer.hot_y); #endif } @@ -2195,9 +2197,7 @@ _efl_ui_win_hide(Eo *obj, Efl_Ui_Win_Data *sd) if (sd->pointer.obj) { evas_object_hide(sd->pointer.obj); -#if 0 ecore_evas_hide(sd->pointer.ee); -#endif } if (_elm_config->atspi_mode) { @@ -2753,9 +2753,7 @@ _elm_win_obj_intercept_show(void *data, } if (sd->pointer.obj) { -#if 0 ecore_evas_show(sd->pointer.ee); -#endif evas_object_show(sd->pointer.obj); } evas_object_show(obj); @@ -3503,10 +3501,19 @@ _elm_win_frame_cb_move_start(void *data, if (!sd) return; #ifdef HAVE_ELEMENTARY_WL2 - if (!strcmp(source, "elm")) - ecore_wl2_window_cursor_from_name_set(sd->wl.win, ELM_CURSOR_HAND1); - else - ecore_wl2_window_cursor_from_name_set(sd->wl.win, NULL); + if (sd->pointer.obj) + { +if (!strcmp(source, "elm")) + _elm_theme_object_set(sd->obj, sd->pointer.obj, +"pointer", "base", "move"); +else + _elm_theme_object_set(sd->obj, sd->pointer.obj, +"pointer", "base", "default"); + } + + if ((sd->wl.win) && (sd->pointer.surf)) + ecore_wl2_window_pointer_set(sd->wl.win, sd->pointer.surf, + sd->pointer.hot_x, sd->pointer.hot_y); #else (void)source; #endif @@ -3533,8 +3540,13 @@ _elm_win_frame_cb_move_stop(void *data, if (!sd) return; #ifdef HAVE_ELEMENTARY_WL2 - if (sd->wl.win) - ecore_wl2_window_cursor_from_name_set(sd->wl.win, NULL); + if (sd->pointer.obj) + _elm_theme_object_set(sd->obj, sd->pointer.obj, + "pointer", "base", "default"); + + if ((sd->wl.win) && (sd->pointer.surf)) + ecore_wl2_window_pointer_set(sd->wl.win, sd->pointer.surf, + sd->pointer.hot_x, sd->pointer.hot_y); #endif } @@ -3568,8 +3580,13 @@ _elm_win_frame_obj_mouse_in(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EI #ifdef HAVE_ELEMENTARY_WL2 Efl_Ui_Win_Data *sd = data; - if (sd->wl.win) - ecore_wl2_window_cursor_from_name_set(sd->wl.win, NULL); + if (sd->pointer.obj) + _elm_theme_object_set(sd->obj, sd->pointer.obj, + "pointer", "base", "default"); + + if ((sd->wl.win) && (sd->pointer.surf)) + ecore_wl2_window_pointer_set(sd->wl.win, sd->pointer.surf, + sd->pointer.hot_x, sd->pointer.hot_y); #else (void)data; #endif @@ -3615,34 +3632,51 @@ _elm_win_frame_cb_resize_show(void *data, if (sd->resizing) return; #ifdef HAVE_ELEMENTARY_WL2 - int i; - i = sd->rot / 90; - if (!strcmp(source, "elm.event.resize.t")) - ecore_wl2_window_cursor_from_name_set(sd->wl.win, - _border_side[(0 + i) % 4].name); - else if (!strcmp(source, "elm.event.resize.b")) - ecore_wl2_window_cursor_from_name_set(sd->wl.win, - _border_side[(2 + i) % 4].name); - else if (!strcmp(source, "elm.event.resize.l")) - ecore_wl2_window_cursor_from_name_set(sd->wl.win, - _border
[EGIT] [core/efl] master 01/04: efl: Remove dependency on wayland-cursor library
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=17652ee8f3d3b68beb86545e249b0e3f8a28b79d commit 17652ee8f3d3b68beb86545e249b0e3f8a28b79d Author: Chris Michael Date: Tue Oct 25 11:08:16 2016 -0400 efl: Remove dependency on wayland-cursor library Signed-off-by: Chris Michael --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index c743063..d90b516 100644 --- a/configure.ac +++ b/configure.ac @@ -3646,7 +3646,7 @@ EFL_INTERNAL_DEPEND_PKG([ECORE_WL2], [efl]) EFL_INTERNAL_DEPEND_PKG([ECORE_WL2], [eina]) EFL_DEPEND_PKG([ECORE_WL2], [WAYLAND], - [wayland-server >= 1.11.0 wayland-client >= 1.11.0 wayland-cursor >= 1.11.0 xkbcommon >= 0.6.0]) + [wayland-server >= 1.11.0 wayland-client >= 1.11.0 xkbcommon >= 0.6.0]) EFL_EVAL_PKGS([ECORE_WL2]) --
[EGIT] [core/efl] master 02/04: ecore-wl2: Don't call cursor_update_stop function twice.
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=db63eff588c2e6f606c6159e540216f811d4e688 commit db63eff588c2e6f606c6159e540216f811d4e688 Author: Chris Michael Date: Tue Oct 25 13:10:21 2016 -0400 ecore-wl2: Don't call cursor_update_stop function twice. When setting a cursor by name, the _ecore_wl2_input_cursor_set function already makes a call to stop updating the cursor, so no need to run that twice. @fix Signed-off-by: Chris Michael --- src/lib/ecore_wl2/ecore_wl2_window.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/lib/ecore_wl2/ecore_wl2_window.c b/src/lib/ecore_wl2/ecore_wl2_window.c index cd796e9..31cf199 100644 --- a/src/lib/ecore_wl2/ecore_wl2_window.c +++ b/src/lib/ecore_wl2/ecore_wl2_window.c @@ -950,8 +950,7 @@ ecore_wl2_window_pointer_set(Ecore_Wl2_Window *window, struct wl_surface *surfac _ecore_wl2_input_cursor_update_stop(input); if (input->wl.pointer) - wl_pointer_set_cursor(input->wl.pointer, - input->pointer.enter_serial, + wl_pointer_set_cursor(input->wl.pointer, input->pointer.enter_serial, surface, hot_x, hot_y); } @@ -967,7 +966,6 @@ ecore_wl2_window_cursor_from_name_set(Ecore_Wl2_Window *window, const char *curs input = ecore_wl2_window_input_get(window); if (!input) return; - _ecore_wl2_input_cursor_update_stop(input); _ecore_wl2_input_cursor_set(input, cursor); } --
[EGIT] [core/efl] master 03/04: ecore-wl2: Remove usage of libwayland-cursor
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=a80d4ef5a54b9252c3017c858de87ac6a2a39c16 commit a80d4ef5a54b9252c3017c858de87ac6a2a39c16 Author: Chris Michael Date: Tue Oct 25 14:18:58 2016 -0400 ecore-wl2: Remove usage of libwayland-cursor This commit removes usage of libwayland-cursor inside Ecore_Wl2 library. This is done so that EFL Wayland applications can use EFL mouse pointers and not look ugly :) @feature Signed-off-by: Chris Michael --- src/lib/ecore_wl2/ecore_wl2_input.c | 115 +++--- src/lib/ecore_wl2/ecore_wl2_private.h | 8 +-- src/lib/ecore_wl2/ecore_wl2_window.c | 8 ++- 3 files changed, 17 insertions(+), 114 deletions(-) diff --git a/src/lib/ecore_wl2/ecore_wl2_input.c b/src/lib/ecore_wl2/ecore_wl2_input.c index 919d424..93fdb21 100644 --- a/src/lib/ecore_wl2/ecore_wl2_input.c +++ b/src/lib/ecore_wl2/ecore_wl2_input.c @@ -671,14 +671,7 @@ _pointer_cb_frame(void *data, struct wl_callback *callback, unsigned int timesta input->cursor.frame_cb = NULL; } - if (!input->cursor.name) - { -_ecore_wl2_input_cursor_set(input, NULL); -return; - } - - if ((input->cursor.wl_cursor->image_count > 1) && - (!input->cursor.frame_cb)) + if (!input->cursor.frame_cb) { input->cursor.frame_cb = wl_surface_frame(input->cursor.surface); wl_callback_add_listener(input->cursor.frame_cb, @@ -1146,18 +1139,9 @@ _seat_cb_capabilities(void *data, struct wl_seat *seat, enum wl_seat_capability input->wl.pointer = wl_seat_get_pointer(seat); wl_pointer_set_user_data(input->wl.pointer, input); wl_pointer_add_listener(input->wl.pointer, &_pointer_listener, input); - -if (!input->cursor.surface) - { - input->cursor.surface = - wl_compositor_create_surface(input->display->wl.compositor); - } } else if (!(caps & WL_SEAT_CAPABILITY_POINTER) && (input->wl.pointer)) { -if (input->cursor.surface) wl_surface_destroy(input->cursor.surface); -input->cursor.surface = NULL; - #ifdef WL_POINTER_RELEASE_SINCE_VERSION if (input->seat_version >= WL_POINTER_RELEASE_SINCE_VERSION) wl_pointer_release(input->wl.pointer); @@ -1225,73 +1209,25 @@ _ecore_wl2_input_cursor_setup(Ecore_Wl2_Input *input) tmp = getenv("ECORE_WL_CURSOR_SIZE"); if (tmp) input->cursor.size = atoi(tmp); - tmp = getenv("ECORE_WL_CURSOR_THEME_NAME"); - eina_stringshare_replace(&input->cursor.theme_name, tmp); - if (!input->cursor.name) input->cursor.name = eina_stringshare_add("left_ptr"); - - if (input->display->wl.shm) - { -input->cursor.theme = - wl_cursor_theme_load(input->cursor.theme_name, input->cursor.size, - input->display->wl.shm); - } } -static Eina_Bool +Eina_Bool _ecore_wl2_input_cursor_update(void *data) { Ecore_Wl2_Input *input; - struct wl_cursor_image *image; - struct wl_buffer *buffer; - unsigned int delay = 0; input = data; if (!input) return EINA_FALSE; - image = input->cursor.wl_cursor->images[input->cursor.index]; - if (!image) return EINA_FALSE; - - buffer = wl_cursor_image_get_buffer(image); - if (buffer) - { -if (input->wl.pointer) - wl_pointer_set_cursor(input->wl.pointer, input->pointer.enter_serial, -input->cursor.surface, -image->hotspot_x, image->hotspot_y); - -wl_surface_attach(input->cursor.surface, buffer, 0, 0); -#ifdef WL_SURFACE_DAMAGE_BUFFER_SINCE_VERSION -if (input->display->wl.compositor_version >= WL_SURFACE_DAMAGE_BUFFER_SINCE_VERSION) - wl_surface_damage_buffer(input->cursor.surface, -0, 0, image->width, image->height); -else -#endif - wl_surface_damage(input->cursor.surface, - 0, 0, image->width, image->height); -wl_surface_commit(input->cursor.surface); - -if ((input->cursor.wl_cursor->image_count > 1) && -(!input->cursor.frame_cb)) - _pointer_cb_frame(input, NULL, 0); - } - - if (input->cursor.wl_cursor->image_count <= 1) - return ECORE_CALLBACK_CANCEL; - - delay = image->delay; - input->cursor.index = - (input->cursor.index + 1) % input->cursor.wl_cursor->image_count; + if (input->wl.pointer) + wl_pointer_set_cursor(input->wl.pointer, input->pointer.enter_serial, + input->cursor.surface, + input->cursor.hot_x, input->cursor.hot_y); - if (!input->cursor.timer) - { -input->cursor.timer = - ecore_timer_loop_add(delay / 1000.0, - _ecore_wl2_input_cursor_update, input); - } - else - ecore_timer_interval_set(input->cur
[EGIT] [core/efl] master 01/02: js: Fix Makefile location and linking of efl.node and tests
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=4cd2bd8a669ab0221c00c47dc99687d1ded32238 commit 4cd2bd8a669ab0221c00c47dc99687d1ded32238 Author: Felipe Magno de Almeida Date: Tue Oct 25 15:42:04 2016 -0200 js: Fix Makefile location and linking of efl.node and tests --- src/Makefile.am| 2 +- src/Makefile_Efl_Js.am | 77 ++ src/Makefile_Eolian_Js.am | 10 ++--- src/bindings/js/efl_js/efl_js.cc | 8 ++-- src/tests/eolian_js/eolian_js_suite.js | 3 +- 5 files changed, 44 insertions(+), 56 deletions(-) diff --git a/src/Makefile.am b/src/Makefile.am index cbf258e..9e12fdc 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -85,7 +85,7 @@ am__v_CP_0 = @echo " CP " $@; CP = cp if EFL_ENABLE_TESTS if HAVE_NODEJS -AM_TESTS_ENVIRONMENT += NODE_PATH='$(abs_builddir)/lib/efl_js:$(abs_builddir)/tests/eolian_js:$(abs_builddir)/tests/efl_js'; export NODE_PATH; +AM_TESTS_ENVIRONMENT += NODE_PATH='$(abs_builddir)/bin/efl_js:$(abs_builddir)/tests/eolian_js:$(abs_builddir)/tests/efl_js'; export NODE_PATH; endif endif endif diff --git a/src/Makefile_Efl_Js.am b/src/Makefile_Efl_Js.am index 734c9ed..64c643a 100644 --- a/src/Makefile_Efl_Js.am +++ b/src/Makefile_Efl_Js.am @@ -2,14 +2,14 @@ if HAVE_JS if HAVE_NODEJS -noinst_lib_LTLIBRARIES = lib/efl_js/libefl_node_js.la +noinst_lib_LTLIBRARIES = bindings/js/efl_js/libefl_js.la noinst_libdir = $(libdir)/efl_js -$(top_builddir)/src/lib/efl_js/efl.node: lib/efl_js/libefl_node_js.la - $(AM_V_CP)$(CP) $(top_builddir)/src/lib/efl_js/.libs/libefl_node_js.so $(top_builddir)/src/lib/efl_js/efl.node +bin/efl_js/efl.node: bindings/js/efl_js/libefl_js.la + $(AM_V_CP)$(CP) bindings/js/efl_js/.libs/libefl_js.so bin/efl_js/efl.node eflnodedir = $(libdir)/node_modules -eflnode_DATA = $(top_builddir)/src/lib/efl_js/efl.node +eflnode_DATA = bin/efl_js/efl.node CLEANFILES += ${eflnodedir_DATA} EXTRA_DIST2 += ${eflnodedir_DATA} @@ -133,9 +133,9 @@ installed_efljsheadersdir = $(includedir)/efl-js-@VMAJ@ dist_installed_efljsheaders_DATA = \ bindings/js/efl_js/Efl_Js.hh -lib_LTLIBRARIES += lib/efl_js/libefl_js.la +#lib_LTLIBRARIES += lib/efl_js/libefl_js.la -lib_efl_js_libefl_js_la_SOURCES = \ +bindings_js_efl_js_libefl_js_la_SOURCES = \ bindings/js/eina_js/eina_js_container.cc \ bindings/js/eina_js/eina_js_value.cc \ bindings/js/eina_js/eina_js_error.cc \ @@ -157,14 +157,15 @@ bindings/js/eldbus_js/eldbus_js_connection.cc \ bindings/js/eldbus_js/eldbus_js_message.cc \ bindings/js/eldbus_js/eldbus_js_object_mapper.cc \ bindings/js/eio_js/eio_js.cc \ +bindings/js/efl_js/efl_js.cc \ bindings/js/ethumb_js/ethumb_js_client.cc -nodist_lib_efl_js_libefl_js_la_SOURCES = \ +nodist_bindings_js_efl_js_libefl_js_la_SOURCES = \ bindings/js/efl_js/eolian_js_bindings.cc -bindings/js/efl_js/efl_js.cc $(lib_efl_js_libefl_js_la_SOURCES): $(ecore_eolian_cxx_hh) $(ecore_eolian_cxx_impl_hh) $(eo_eolian_cxx_hh) $(eo_eolian_cxx_impl_hh) $(efl_eolian_cxx_hh) $(efl_eolian_cxx_impl_hh) lib/ecore/Ecore.eo.hh +bindings/js/efl_js/efl_js.cc $(bindings_js_efl_js_libefl_js_la_SOURCES): $(ecore_eolian_cxx_public_hh) $(ecore_eolian_cxx_public_impl_hh) $(eo_eolian_cxx_public_hh) $(eo_eolian_cxx_public_impl_hh) $(efl_eolian_cxx_public_hh) $(efl_eolian_cxx_public_impl_hh) lib/ecore/Ecore.eo.hh -lib_efl_js_libefl_js_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ +bindings_js_efl_js_libefl_js_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/efl \ -I$(top_builddir)/src/lib/efl/interfaces/ \ -I$(top_builddir)/src/lib/evas/canvas/ \ @@ -187,24 +188,10 @@ lib_efl_js_libefl_js_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ @EINA_CXX_CFLAGS@ \ @ELEMENTARY_CFLAGS@ \ -D_EO_ADD_FALLBACK_FORCE=1 -lib_efl_js_libefl_js_la_LIBADD = @EFL_JS_LIBS@ -lib_efl_js_libefl_js_la_DEPENDENCIES = @EFL_JS_INTERNAL_LIBS@ -lib_efl_js_libefl_js_la_LIBTOOLFLAGS = --tag=disable-static -lib_efl_js_libefl_js_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ - -if HAVE_NODEJS -lib_efl_js_libefl_node_js_la_SOURCES = \ -bindings/js/efl_js/efl_js.cc - -lib_efl_js_libefl_node_js_la_CPPFLAGS = $(lib_efl_js_libefl_js_la_CPPFLAGS) -lib_efl_js_libefl_node_js_la_LIBADD = @USE_EFL_JS_LIBS@ -lib_efl_js_libefl_node_js_la_DEPENDENCIES = @USE_EFL_JS_INTERNAL_LIBS@ -lib_efl_js_libefl_node_js_la_LIBTOOLFLAGS = --tag=disable-static -lib_efl_js_libefl_node_js_la_LDFLAGS = -else -lib_efl_js_libefl_js_la_SOURCES += \ -bindings/js/efl_js/efl_js.cc -endif +bindings_js_efl_js_libefl_js_la_LIBADD = @EFL_JS_LIBS@ +bindings_js_efl_js_libefl_js_la_DEPENDENCIES = @EFL_JS_INTERNAL_LIBS@ +bindings_js_efl_js_libefl_js_la_LIBTOOLFLAGS = --tag=disable-static +bindings_js_efl_js_libefl_js_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ if EFL_ENABLE_TESTS @@ -236,11 +223,11 @@ tests/efl_js/benchmark_js_suite.js check_LTLIBRARIES += tests/efl_js/libbenchmark_object.la -test
[EGIT] [core/efl] master 02/02: js: Fix calling setAlignedInternalPointerField without a aligned value
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=a09ad5af7f4e1329490dd685c0b34e5c60cded5b commit a09ad5af7f4e1329490dd685c0b34e5c60cded5b Author: Felipe Magno de Almeida Date: Tue Oct 25 15:42:49 2016 -0200 js: Fix calling setAlignedInternalPointerField without a aligned value --- src/bindings/js/eina_js/eina_js_iterator.hh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bindings/js/eina_js/eina_js_iterator.hh b/src/bindings/js/eina_js/eina_js_iterator.hh index 7021a7b..6894406 100644 --- a/src/bindings/js/eina_js/eina_js_iterator.hh +++ b/src/bindings/js/eina_js/eina_js_iterator.hh @@ -66,8 +66,8 @@ inline v8::Local export_iterator(Eina_Iterator *i, ::eina_iterator_free(static_cast(i)); }; compatibility_set_pointer_internal_field(ret, 0, i); -compatibility_set_pointer_internal_field - (ret, 1, reinterpret_cast(deleter)); +// compatibility_set_pointer_internal_field +// (ret, 1, reinterpret_cast(deleter)); } return ret; --
[EGIT] [core/enlightenment] master 01/02: create substruct for E_Comp to put canvas objects into
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=ef33638c42cf6cd7f7580d6b00b0aa46eb27729f commit ef33638c42cf6cd7f7580d6b00b0aa46eb27729f Author: Mike Blumenkrantz Date: Tue Oct 25 12:01:17 2016 -0400 create substruct for E_Comp to put canvas objects into allow adding/removing objects in the future without breaking abi --- src/bin/e_comp.c| 53 + src/bin/e_comp.h| 14 ++--- src/bin/e_comp_canvas.c | 8 src/bin/e_comp_x.c | 2 +- 4 files changed, 43 insertions(+), 34 deletions(-) diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c index 3af7593..d8dcb07 100644 --- a/src/bin/e_comp.c +++ b/src/bin/e_comp.c @@ -200,28 +200,28 @@ _e_comp_fps_update(void) { if (conf->fps_show) { -if (e_comp->fps_bg) return; - -e_comp->fps_bg = evas_object_rectangle_add(e_comp->evas); -evas_object_color_set(e_comp->fps_bg, 0, 0, 0, 128); -evas_object_layer_set(e_comp->fps_bg, E_LAYER_MAX); -evas_object_name_set(e_comp->fps_bg, "e_comp->fps_bg"); -evas_object_lower(e_comp->fps_bg); -evas_object_show(e_comp->fps_bg); - -e_comp->fps_fg = evas_object_text_add(e_comp->evas); -evas_object_text_font_set(e_comp->fps_fg, "Sans", 10); -evas_object_text_text_set(e_comp->fps_fg, "???"); -evas_object_color_set(e_comp->fps_fg, 255, 255, 255, 255); -evas_object_layer_set(e_comp->fps_fg, E_LAYER_MAX); -evas_object_name_set(e_comp->fps_bg, "e_comp->fps_fg"); -evas_object_stack_above(e_comp->fps_fg, e_comp->fps_bg); -evas_object_show(e_comp->fps_fg); +if (e_comp->canvas->fps_bg) return; + +e_comp->canvas->fps_bg = evas_object_rectangle_add(e_comp->evas); +evas_object_color_set(e_comp->canvas->fps_bg, 0, 0, 0, 128); +evas_object_layer_set(e_comp->canvas->fps_bg, E_LAYER_MAX); +evas_object_name_set(e_comp->canvas->fps_bg, "e_comp->canvas->fps_bg"); +evas_object_lower(e_comp->canvas->fps_bg); +evas_object_show(e_comp->canvas->fps_bg); + +e_comp->canvas->fps_fg = evas_object_text_add(e_comp->evas); +evas_object_text_font_set(e_comp->canvas->fps_fg, "Sans", 10); +evas_object_text_text_set(e_comp->canvas->fps_fg, "???"); +evas_object_color_set(e_comp->canvas->fps_fg, 255, 255, 255, 255); +evas_object_layer_set(e_comp->canvas->fps_fg, E_LAYER_MAX); +evas_object_name_set(e_comp->canvas->fps_bg, "e_comp->canvas->fps_fg"); +evas_object_stack_above(e_comp->canvas->fps_fg, e_comp->canvas->fps_bg); +evas_object_show(e_comp->canvas->fps_fg); } else { -E_FREE_FUNC(e_comp->fps_fg, evas_object_del); -E_FREE_FUNC(e_comp->fps_bg, evas_object_del); +E_FREE_FUNC(e_comp->canvas->fps_fg, evas_object_del); +E_FREE_FUNC(e_comp->canvas->fps_bg, evas_object_del); } } @@ -425,9 +425,9 @@ _e_comp_cb_update(void) if (e_comp->frameskip >= conf->fps_average_range) { e_comp->frameskip = 0; - evas_object_text_text_set(e_comp->fps_fg, buf); + evas_object_text_text_set(e_comp->canvas->fps_fg, buf); } -evas_object_geometry_get(e_comp->fps_fg, NULL, NULL, &w, &h); +evas_object_geometry_get(e_comp->canvas->fps_fg, NULL, NULL, &w, &h); w += 8; h += 8; z = e_zone_current_get(); @@ -455,9 +455,9 @@ _e_comp_cb_update(void) break; } } -evas_object_move(e_comp->fps_bg, x, y); -evas_object_resize(e_comp->fps_bg, w, h); -evas_object_move(e_comp->fps_fg, x + 4, y + 4); +evas_object_move(e_comp->canvas->fps_bg, x, y); +evas_object_resize(e_comp->canvas->fps_bg, w, h); +evas_object_move(e_comp->canvas->fps_fg, x + 4, y + 4); } if (conf->lock_fps) { @@ -581,7 +581,7 @@ _e_comp_shapes_update_object_checker_function_thingy(Evas_Object *o) Eina_List *l; E_Zone *zone; - if (o == e_comp->bg_blank_object) return EINA_TRUE; + if (o == e_comp->canvas->bg_blank_object) return EINA_TRUE; EINA_LIST_FOREACH(e_comp->zones, l, zone) { if ((o == zone->over) || (o == zone->base)) return EINA_TRUE; @@ -851,7 +851,7 @@ _e_comp_free(E_Comp *c) if (c->nocomp_delay_timer) ecore_timer_del(c->nocomp_delay_timer); if (c->nocomp_override_timer) ecore_timer_del(c->nocomp_override_timer); ecore_job_del(c->shape_job); - + free(c->canvas); free(c); } @@ -1363,6 +1363,7 @@ e_comp_new(void) CRI("CANNOT REPLACE EXISTING COMPOSITOR"); e_comp = E_OBJECT_ALLOC(E_Comp, E_COMP_TYPE, _e_comp_free); if (!e_comp) return NULL; + e_comp->canvas = E_NEW(E_Comp_Canvas, 1); e_comp->render_animator = ecore_animator_add(_e_comp_cb_animator, NULL); ecore_animator_freeze(e_comp->re
[EGIT] [core/enlightenment] master 02/02: bump modapi
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=4251e1246259c9977534d231cf7fb5e1f19f28d7 commit 4251e1246259c9977534d231cf7fb5e1f19f28d7 Author: Mike Blumenkrantz Date: Tue Oct 25 12:02:15 2016 -0400 bump modapi --- src/bin/e_module.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/e_module.h b/src/bin/e_module.h index 19fd58e..ac07884 100644 --- a/src/bin/e_module.h +++ b/src/bin/e_module.h @@ -1,6 +1,6 @@ #ifdef E_TYPEDEFS -#define E_MODULE_API_VERSION 22 +#define E_MODULE_API_VERSION 23 typedef struct _E_Module E_Module; typedef struct _E_Module_Api E_Module_Api; --
[EGIT] [core/efl] master 01/01: eolian: remove type silencing stuff entirely
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=82ef73ca186208913dc1b91ab28d0be81b125f8e commit 82ef73ca186208913dc1b91ab28d0be81b125f8e Author: Daniel Kolesa Date: Tue Oct 25 18:02:23 2016 +0200 eolian: remove type silencing stuff entirely this was useful during transition, but not anymore --- src/bin/eolian/main.c | 9 +- src/bin/eolian_cxx/eolian_cxx.cc | 2 +- src/bindings/luajit/eolian.lua | 6 +- src/lib/eolian/Eolian.h| 3 +- src/lib/eolian/database_validate.c | 167 - src/lib/eolian/eolian_database.c | 4 +- src/lib/eolian/eolian_database.h | 2 +- 7 files changed, 81 insertions(+), 112 deletions(-) diff --git a/src/bin/eolian/main.c b/src/bin/eolian/main.c index 5946b83..3caf994 100644 --- a/src/bin/eolian/main.c +++ b/src/bin/eolian/main.c @@ -43,7 +43,6 @@ _print_usage(const char *progn, FILE *outf) " -o type:name specify a particular output filename\n" " -hprint this message and exit\n" " -vprint version and exit\n" - " -ssilence type errors in validation\n" "\n" "Available types:\n" " h: C header file (.h)\n" @@ -398,8 +397,7 @@ main(int argc, char **argv) char *outs[5] = { NULL, NULL, NULL, NULL, NULL }; int gen_what = 0; - Eina_Bool silent_types = EINA_FALSE; - for (int opt; (opt = getopt(argc, argv, "I:g:o:shv")) != -1;) + for (int opt; (opt = getopt(argc, argv, "I:g:o:hv")) != -1;) switch (opt) { case 0: @@ -451,9 +449,6 @@ main(int argc, char **argv) } else _fill_all_outs(outs, optarg); break; -case 's': - silent_types = EINA_TRUE; - break; case 'h': _print_usage(argv[0], stdout); goto end; @@ -485,7 +480,7 @@ main(int argc, char **argv) goto end; } - if (!eolian_database_validate(silent_types)) + if (!eolian_database_validate()) { fprintf(stderr, "eolian: failed validating database\n"); goto end; diff --git a/src/bin/eolian_cxx/eolian_cxx.cc b/src/bin/eolian_cxx/eolian_cxx.cc index 37d24bc..24a9dd6 100644 --- a/src/bin/eolian_cxx/eolian_cxx.cc +++ b/src/bin/eolian_cxx/eolian_cxx.cc @@ -252,7 +252,7 @@ database_load(options_type const& opts) << "Failed parsing: " << opts.in_file << "."; assert(false && "Error parsing input file"); } - if (!::eolian_database_validate(EINA_FALSE)) + if (!::eolian_database_validate()) { EINA_CXX_DOM_LOG_ERR(eolian_cxx::domain) << "Eolian failed validating database."; diff --git a/src/bindings/luajit/eolian.lua b/src/bindings/luajit/eolian.lua index 354156e..b5c2f7f 100644 --- a/src/bindings/luajit/eolian.lua +++ b/src/bindings/luajit/eolian.lua @@ -196,7 +196,7 @@ ffi.cdef [[ Eina_Bool eolian_system_directory_scan(); Eina_Bool eolian_all_eo_files_parse(); Eina_Bool eolian_all_eot_files_parse(); -Eina_Bool eolian_database_validate(Eina_Bool silent_types); +Eina_Bool eolian_database_validate(); const Eolian_Class *eolian_class_get_by_name(const char *class_name); const Eolian_Class *eolian_class_get_by_file(const char *file_name); const char *eolian_class_file_get(const Eolian_Class *klass); @@ -438,8 +438,8 @@ M.all_eot_files_get = function() return iterator.String_Iterator(eolian.eolian_all_eot_files_get()) end -M.database_validate = function(silent) -return eolian.eolian_database_validate((not not silent) or false) ~= 0 +M.database_validate = function() +return eolian.eolian_database_validate() ~= 0 end M.declaration_type = { diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h index 1ccabf7..6d57098 100644 --- a/src/lib/eolian/Eolian.h +++ b/src/lib/eolian/Eolian.h @@ -466,14 +466,13 @@ EAPI Eina_Bool eolian_all_eot_files_parse(void); /* * @brief Validates the database, printing errors and warnings. * - * @param[in] silent_types whether to silence type errors * @return EINA_TRUE on success, EINA_FALSE otherwise. * * Useful to catch type errors etc. early on. * * @ingroup Eolian */ -EAPI Eina_Bool eolian_database_validate(Eina_Bool silent_types); +EAPI Eina_Bool eolian_database_validate(); /* * @brief Gets a class by its name diff --git a/src/lib/eolian/database_validate.c b/src/lib/eolian/database_validate.c index aab20a5..4e93b4e 100644 --- a/src/lib/eolian/database_validate.c +++ b/src/lib/eolian/database_validate.c @@ -6,18 +6,8 @@ #include "eo_lexer.h" -typedef struct _Validator { - Eina_Bool silent_types; -} Validator; - -typedef struct _Val_Success { - const Validator *vs; - Eina_Bool success; -} Val_Success; - static Eina_Bool -_validate_ref(const Validator *vs EINA_UNUSED, const char *ref, - const Eoli
[EGIT] [core/efl] master 01/01: theme: slightly expand e/gadget/clock/digital/advanced sizer width
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=bbf189c9936220f9de95468d28995a640c2e319d commit bbf189c9936220f9de95468d28995a640c2e319d Author: Mike Blumenkrantz Date: Tue Oct 25 11:37:57 2016 -0400 theme: slightly expand e/gadget/clock/digital/advanced sizer width --- data/elementary/themes/edc/time.edc | 1 + 1 file changed, 1 insertion(+) diff --git a/data/elementary/themes/edc/time.edc b/data/elementary/themes/edc/time.edc index 31852f3..41674d7 100644 --- a/data/elementary/themes/edc/time.edc +++ b/data/elementary/themes/edc/time.edc @@ -87,6 +87,7 @@ group { "e/gadget/clock/digital/advanced"; nomouse; desc { rel1.to: "e.text"; rel2.to: "e.text.sub"; +rel2.offset: 3 0; } desc { "only"; rel.to: "e.text"; --
[EGIT] [core/efl] master 01/01: Edje_Edit: use correct description array accessing
furrymyad pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=aa423e7669e9faf40eb211ca457531439d10f4a1 commit aa423e7669e9faf40eb211ca457531439d10f4a1 Author: Vitalii Vorobiov Date: Tue Oct 25 18:22:50 2016 +0300 Edje_Edit: use correct description array accessing its a loop with j, but not with i kinda a little typo @fix --- src/lib/edje/edje_edit.c | 12 ++-- 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c index b9ba2d3..aa41124 100644 --- a/src/lib/edje/edje_edit.c +++ b/src/lib/edje/edje_edit.c @@ -3372,12 +3372,12 @@ edje_edit_part_del(Evas_Object *obj, const char *part) for (j = 0; j < real->part->other.desc_count; ++j) { - if (real->part->other.desc[i]->map.id_persp == rp->part->id) - real->part->other.desc[i]->map.id_persp = -1; - if (real->part->other.desc[i]->map.id_light == rp->part->id) - real->part->other.desc[i]->map.id_light = -1; - if (real->part->other.desc[i]->map.rot.id_center == rp->part->id) - real->part->other.desc[i]->map.rot.id_center = -1; + if (real->part->other.desc[j]->map.id_persp == rp->part->id) + real->part->other.desc[j]->map.id_persp = -1; + if (real->part->other.desc[j]->map.id_light == rp->part->id) + real->part->other.desc[j]->map.id_light = -1; + if (real->part->other.desc[j]->map.rot.id_center == rp->part->id) + real->part->other.desc[j]->map.rot.id_center = -1; } } --
[EGIT] [core/enlightenment] master 01/01: force min size on wireless popup during show
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=989675f31000b1b46506c1dc99a1a28f8580d961 commit 989675f31000b1b46506c1dc99a1a28f8580d961 Author: Mike Blumenkrantz Date: Tue Oct 25 11:25:41 2016 -0400 force min size on wireless popup during show box+list inside a ctxpopup may result in an unreliable min size at the time of show, so force the size wanted at this time in order to avoid positioning errors --- src/modules/wireless/wireless.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/modules/wireless/wireless.c b/src/modules/wireless/wireless.c index 2189363..f3721ba 100644 --- a/src/modules/wireless/wireless.c +++ b/src/modules/wireless/wireless.c @@ -946,6 +946,7 @@ _wireless_gadget_mouse_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, v zone = e_zone_current_get(); evas_object_resize(wireless_popup.popup, zone->w / 5, zone->h / 3); + evas_object_size_hint_min_set(box, zone->w / 5, zone->h / 3); evas_object_show(wireless_popup.popup); evas_object_event_callback_add(wireless_popup.popup, EVAS_CALLBACK_DEL, _wireless_popup_del, inst); } --
[EGIT] [core/efl] master 03/04: Revert "ecore-wl2: Remove all references to wl_cursor usage"
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=3a44b0fd172f143c32a89ac8aac28cbad6f4d1e9 commit 3a44b0fd172f143c32a89ac8aac28cbad6f4d1e9 Author: Chris Michael Date: Tue Oct 25 10:47:15 2016 -0400 Revert "ecore-wl2: Remove all references to wl_cursor usage" This reverts commit 173fda5c11fc083a0b274e404f0005a52b4bf128. Reverting this as we need to handle mouse pointers a different way. --- configure.ac | 2 +- src/lib/ecore_wl2/Ecore_Wl2.h | 1 + src/lib/ecore_wl2/ecore_wl2_input.c | 145 -- src/lib/ecore_wl2/ecore_wl2_private.h | 12 ++- src/lib/ecore_wl2/ecore_wl2_window.c | 3 +- 5 files changed, 152 insertions(+), 11 deletions(-) diff --git a/configure.ac b/configure.ac index d90b516..c743063 100644 --- a/configure.ac +++ b/configure.ac @@ -3646,7 +3646,7 @@ EFL_INTERNAL_DEPEND_PKG([ECORE_WL2], [efl]) EFL_INTERNAL_DEPEND_PKG([ECORE_WL2], [eina]) EFL_DEPEND_PKG([ECORE_WL2], [WAYLAND], - [wayland-server >= 1.11.0 wayland-client >= 1.11.0 xkbcommon >= 0.6.0]) + [wayland-server >= 1.11.0 wayland-client >= 1.11.0 wayland-cursor >= 1.11.0 xkbcommon >= 0.6.0]) EFL_EVAL_PKGS([ECORE_WL2]) diff --git a/src/lib/ecore_wl2/Ecore_Wl2.h b/src/lib/ecore_wl2/Ecore_Wl2.h index 27eca97..d45ed1a 100644 --- a/src/lib/ecore_wl2/Ecore_Wl2.h +++ b/src/lib/ecore_wl2/Ecore_Wl2.h @@ -4,6 +4,7 @@ # include # include # include +# include # include # define WL_HIDE_DEPRECATED diff --git a/src/lib/ecore_wl2/ecore_wl2_input.c b/src/lib/ecore_wl2/ecore_wl2_input.c index 5600fed..919d424 100644 --- a/src/lib/ecore_wl2/ecore_wl2_input.c +++ b/src/lib/ecore_wl2/ecore_wl2_input.c @@ -35,7 +35,7 @@ typedef struct _Ecore_Wl2_Mouse_Down_Info static Eina_Inlist *_ecore_wl2_mouse_down_info_list = NULL; static void _keyboard_cb_key(void *data, struct wl_keyboard *keyboard EINA_UNUSED, unsigned int serial, unsigned int timestamp, unsigned int keycode, unsigned int state); -/* static void _pointer_cb_frame(void *data, struct wl_callback *callback, unsigned int timestamp EINA_UNUSED); */ +static void _pointer_cb_frame(void *data, struct wl_callback *callback, unsigned int timestamp EINA_UNUSED); static Ecore_Wl2_Mouse_Down_Info * _ecore_wl2_input_mouse_down_info_get(int device) @@ -651,6 +651,41 @@ static const struct wl_pointer_listener _pointer_listener = NULL, /* axis_discrete */ }; +static const struct wl_callback_listener _pointer_surface_listener = +{ + _pointer_cb_frame +}; + +static void +_pointer_cb_frame(void *data, struct wl_callback *callback, unsigned int timestamp EINA_UNUSED) +{ + Ecore_Wl2_Input *input; + + input = data; + if (!input) return; + + if (callback) + { +if (callback != input->cursor.frame_cb) return; +wl_callback_destroy(callback); +input->cursor.frame_cb = NULL; + } + + if (!input->cursor.name) + { +_ecore_wl2_input_cursor_set(input, NULL); +return; + } + + if ((input->cursor.wl_cursor->image_count > 1) && + (!input->cursor.frame_cb)) + { +input->cursor.frame_cb = wl_surface_frame(input->cursor.surface); +wl_callback_add_listener(input->cursor.frame_cb, + &_pointer_surface_listener, input); + } +} + static void _keyboard_cb_keymap(void *data, struct wl_keyboard *keyboard EINA_UNUSED, unsigned int format, int fd, unsigned int size) { @@ -,9 +1146,18 @@ _seat_cb_capabilities(void *data, struct wl_seat *seat, enum wl_seat_capability input->wl.pointer = wl_seat_get_pointer(seat); wl_pointer_set_user_data(input->wl.pointer, input); wl_pointer_add_listener(input->wl.pointer, &_pointer_listener, input); + +if (!input->cursor.surface) + { + input->cursor.surface = + wl_compositor_create_surface(input->display->wl.compositor); + } } else if (!(caps & WL_SEAT_CAPABILITY_POINTER) && (input->wl.pointer)) { +if (input->cursor.surface) wl_surface_destroy(input->cursor.surface); +input->cursor.surface = NULL; + #ifdef WL_POINTER_RELEASE_SINCE_VERSION if (input->seat_version >= WL_POINTER_RELEASE_SINCE_VERSION) wl_pointer_release(input->wl.pointer); @@ -1180,19 +1224,74 @@ _ecore_wl2_input_cursor_setup(Ecore_Wl2_Input *input) input->cursor.size = 32; tmp = getenv("ECORE_WL_CURSOR_SIZE"); if (tmp) input->cursor.size = atoi(tmp); + + tmp = getenv("ECORE_WL_CURSOR_THEME_NAME"); + eina_stringshare_replace(&input->cursor.theme_name, tmp); + + if (!input->cursor.name) + input->cursor.name = eina_stringshare_add("left_ptr"); + + if (input->display->wl.shm) + { +input->cursor.theme = + wl_cursor_theme_load(input->cursor.theme_name, input->cursor.size, + input->display->wl.shm); + } } static Eina_B
[EGIT] [core/efl] master 02/04: Revert "elementary: Don't try to set pointer edj if there is no pointer"
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=13f77a2456c0a770e94e68f168a1ffda9e5298ae commit 13f77a2456c0a770e94e68f168a1ffda9e5298ae Author: Chris Michael Date: Tue Oct 25 10:46:42 2016 -0400 Revert "elementary: Don't try to set pointer edj if there is no pointer" This reverts commit 3686a8aa8982517acd3a761e06969cc259b00f18. Reverting this as we need to handle mouse pointers a different way. --- src/lib/elementary/efl_ui_win.c | 21 ++--- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c index df7702d..6d750b3 100644 --- a/src/lib/elementary/efl_ui_win.c +++ b/src/lib/elementary/efl_ui_win.c @@ -922,7 +922,6 @@ _elm_win_mouse_in(Ecore_Evas *ee) if (sd->wl.win) ecore_wl2_window_cursor_from_name_set(sd->wl.win, NULL); - if (!sd->pointer.obj) return; ecore_evas_object_cursor_set(sd->ee, sd->pointer.obj, ELM_OBJECT_LAYER_CURSOR, sd->pointer.hot_x, sd->pointer.hot_y); @@ -936,7 +935,6 @@ _elm_win_mouse_out(Ecore_Evas *ee) if (!sd) return; #ifdef HAVE_ELEMENTARY_WL2 - if (!sd->pointer.obj) return; sd->pointer.obj = ecore_evas_cursor_unset(sd->ee); #endif } @@ -3523,15 +3521,12 @@ _elm_win_frame_cb_move_start(void *data, if (sd->wl.win) ecore_wl2_window_cursor_from_name_set(sd->wl.win, NULL); - if (sd->pointer.obj) - { -if (!strcmp(source, "elm")) - _elm_theme_object_set(sd->obj, sd->pointer.obj, -"pointer", "base", "move"); -else - _elm_theme_object_set(sd->obj, sd->pointer.obj, -"pointer", "base", "default"); - } + if (!strcmp(source, "elm")) + _elm_theme_object_set(sd->obj, sd->pointer.obj, + "pointer", "base", "move"); + else + _elm_theme_object_set(sd->obj, sd->pointer.obj, + "pointer", "base", "default"); #else (void)source; #endif @@ -3560,7 +3555,6 @@ _elm_win_frame_cb_move_stop(void *data, #ifdef HAVE_ELEMENTARY_WL2 if (sd->wl.win) ecore_wl2_window_cursor_from_name_set(sd->wl.win, NULL); - if (!sd->pointer.obj) return; _elm_theme_object_set(sd->obj, sd->pointer.obj, "pointer", "base", "default"); #endif } @@ -3632,8 +3626,6 @@ _elm_win_frame_cb_resize_show(void *data, Evas_Coord mw = 1, mh = 1, hx = 0, hy = 0; int i; - if (!sd->pointer.obj) return; - i = sd->rot / 90; if (!strcmp(source, "elm.event.resize.t")) _elm_theme_object_set(sd->obj, sd->pointer.obj, "pointer", "base", @@ -3686,7 +3678,6 @@ _elm_win_frame_cb_resize_hide(void *data, if (sd->resizing) return; #ifdef HAVE_ELEMENTARY_WL2 - if (!sd->pointer.obj) return; _elm_theme_object_set(sd->obj, sd->pointer.obj, "pointer", "base", "default"); #endif } --
[EGIT] [core/efl] master 01/04: Revert "elementary: Don't always show pointer object"
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ce827f3481f6175d9390f370037f5b05f5d296b2 commit ce827f3481f6175d9390f370037f5b05f5d296b2 Author: Chris Michael Date: Tue Oct 25 10:46:15 2016 -0400 Revert "elementary: Don't always show pointer object" This reverts commit f56dc8d0c36d45d318f430fb04eae8b2dccd9f14. Reverting these as we need to handle mouse pointers a different way. --- src/lib/elementary/efl_ui_win.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c index 4f62271..df7702d 100644 --- a/src/lib/elementary/efl_ui_win.c +++ b/src/lib/elementary/efl_ui_win.c @@ -2773,8 +2773,7 @@ _elm_win_obj_intercept_show(void *data, #if 0 ecore_evas_show(sd->pointer.ee); #endif -if (evas_pointer_inside_get(sd->evas)) - evas_object_show(sd->pointer.obj); +evas_object_show(sd->pointer.obj); } evas_object_show(obj); #ifdef ELEMENTARY_X --
[EGIT] [core/efl] master 04/04: Revert "elementary: Provide EFL mouse pointers for Wayland Client applications"
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=0b290a260c4984f8de2f2f8d61cbd92df480e8ea commit 0b290a260c4984f8de2f2f8d61cbd92df480e8ea Author: Chris Michael Date: Tue Oct 25 10:50:43 2016 -0400 Revert "elementary: Provide EFL mouse pointers for Wayland Client applications" This reverts commit 0a46096337dcbde7b18e093518e3b0846a425053. Reverting these changes as we need to handle mouse pointer differently. --- src/lib/elementary/efl_ui_win.c | 158 +++- src/lib/elementary/els_cursor.c | 33 + 2 files changed, 64 insertions(+), 127 deletions(-) diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c index 6d750b3..6008828 100644 --- a/src/lib/elementary/efl_ui_win.c +++ b/src/lib/elementary/efl_ui_win.c @@ -919,23 +919,8 @@ _elm_win_mouse_in(Ecore_Evas *ee) _elm_win_throttle_ok = EINA_TRUE; if (sd->resizing) sd->resizing = EINA_FALSE; #ifdef HAVE_ELEMENTARY_WL2 - if (sd->wl.win) + if (sd->wl.win && (!sd->frame_obj)) ecore_wl2_window_cursor_from_name_set(sd->wl.win, NULL); - - ecore_evas_object_cursor_set(sd->ee, sd->pointer.obj, -ELM_OBJECT_LAYER_CURSOR, -sd->pointer.hot_x, sd->pointer.hot_y); -#endif -} - -static void -_elm_win_mouse_out(Ecore_Evas *ee) -{ - Efl_Ui_Win_Data *sd = _elm_win_associate_get(ee); - if (!sd) return; - -#ifdef HAVE_ELEMENTARY_WL2 - sd->pointer.obj = ecore_evas_cursor_unset(sd->ee); #endif } @@ -3518,15 +3503,10 @@ _elm_win_frame_cb_move_start(void *data, if (!sd) return; #ifdef HAVE_ELEMENTARY_WL2 - if (sd->wl.win) - ecore_wl2_window_cursor_from_name_set(sd->wl.win, NULL); - if (!strcmp(source, "elm")) - _elm_theme_object_set(sd->obj, sd->pointer.obj, - "pointer", "base", "move"); + ecore_wl2_window_cursor_from_name_set(sd->wl.win, ELM_CURSOR_HAND1); else - _elm_theme_object_set(sd->obj, sd->pointer.obj, - "pointer", "base", "default"); + ecore_wl2_window_cursor_from_name_set(sd->wl.win, NULL); #else (void)source; #endif @@ -3555,7 +3535,6 @@ _elm_win_frame_cb_move_stop(void *data, #ifdef HAVE_ELEMENTARY_WL2 if (sd->wl.win) ecore_wl2_window_cursor_from_name_set(sd->wl.win, NULL); - _elm_theme_object_set(sd->obj, sd->pointer.obj, "pointer", "base", "default"); #endif } @@ -3584,6 +3563,19 @@ static struct _resize_info _border_corner[4] = #endif static void +_elm_win_frame_obj_mouse_in(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ +#ifdef HAVE_ELEMENTARY_WL2 + Efl_Ui_Win_Data *sd = data; + + if (sd->wl.win) + ecore_wl2_window_cursor_from_name_set(sd->wl.win, NULL); +#else + (void)data; +#endif +} + +static void _elm_win_frame_obj_move(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, @@ -3623,44 +3615,34 @@ _elm_win_frame_cb_resize_show(void *data, if (sd->resizing) return; #ifdef HAVE_ELEMENTARY_WL2 - Evas_Coord mw = 1, mh = 1, hx = 0, hy = 0; int i; - i = sd->rot / 90; if (!strcmp(source, "elm.event.resize.t")) - _elm_theme_object_set(sd->obj, sd->pointer.obj, "pointer", "base", - _border_side[(0 + i) % 4].name); + ecore_wl2_window_cursor_from_name_set(sd->wl.win, + _border_side[(0 + i) % 4].name); else if (!strcmp(source, "elm.event.resize.b")) - _elm_theme_object_set(sd->obj, sd->pointer.obj, "pointer", "base", - _border_side[(2 + i) % 4].name); + ecore_wl2_window_cursor_from_name_set(sd->wl.win, + _border_side[(2 + i) % 4].name); else if (!strcmp(source, "elm.event.resize.l")) - _elm_theme_object_set(sd->obj, sd->pointer.obj, "pointer", "base", - _border_side[(1 + i) % 4].name); + ecore_wl2_window_cursor_from_name_set(sd->wl.win, + _border_side[(1 + i) % 4].name); else if (!strcmp(source, "elm.event.resize.r")) - _elm_theme_object_set(sd->obj, sd->pointer.obj, "pointer", "base", - _border_side[(3 + i) % 4].name); + ecore_wl2_window_cursor_from_name_set(sd->wl.win, + _border_side[(3 + i) % 4].name); else if (!strcmp(source, "elm.event.resize.tl")) - _elm_theme_object_set(sd->obj, sd->pointer.obj, "pointer", "base", - _border_corner[(0 + i) % 4].name); + ecore_wl2_window_cursor_from_name_set(sd->wl.win, + _border_corner[(0 + i) % 4].name); else if (!strcmp(source, "elm.event.resize.tr")) - _elm_theme_object_set(sd->obj, sd->pointer.obj, "pointer", "base", - _bo
[EGIT] [core/enlightenment] master 02/02: Revert "reset elementary softcursor config on shutdown"
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=2c096f685ca96bc3d58ffa8967d0108c55b6a4e7 commit 2c096f685ca96bc3d58ffa8967d0108c55b6a4e7 Author: Chris Michael Date: Tue Oct 25 11:05:22 2016 -0400 Revert "reset elementary softcursor config on shutdown" This reverts commit bdd290591c081f2e8935a7579b46e052367c8446. Reverting this as we need to find a better way to handle mouse pointers on EFL Wayland Clients. --- src/bin/e_comp_wl.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index e6d02a0..5a88430 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -2902,8 +2902,6 @@ e_comp_wl_shutdown(void) /* free(global); */ /* } */ - elm_config_softcursor_mode_set(ELM_SOFTCURSOR_MODE_AUTO); - if (e_comp_wl->wl.shm) wl_shm_destroy(e_comp_wl->wl.shm); _e_comp_wl_gl_shutdown(); --
[EGIT] [core/enlightenment] master 01/02: Revert "disable elementary softcursor mode for wayland compositing"
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=d4b9ad591efb02bc6977069069735dba1a2dcf7d commit d4b9ad591efb02bc6977069069735dba1a2dcf7d Author: Chris Michael Date: Tue Oct 25 11:04:57 2016 -0400 Revert "disable elementary softcursor mode for wayland compositing" This reverts commit f7592166eb37ca97837be505d6d8ab99342cf00e. Reverting this as we need to find a better way to handle mouse pointers for EFL Wayland Clients. --- src/bin/e_comp_wl.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index cf3c76e..e6d02a0 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -2831,7 +2831,6 @@ e_comp_wl_init(void) if (e_randr2_init()) e_randr2_screens_setup(-1, -1); elm_config_preferred_engine_set("wayland_shm"); -elm_config_softcursor_mode_set(ELM_SOFTCURSOR_MODE_OFF); } e_util_env_set("WAYLAND_DEBUG", "0"); e_util_env_set("ELM_DISPLAY", "wl"); --
[EGIT] [core/enlightenment] master 01/01: add dbus message 'org.enlightenment.wm.Window.SendToDesktop'
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=ec37884a3161914e41c14b041f302e9d21cdcf3c commit ec37884a3161914e41c14b041f302e9d21cdcf3c Author: Joshua McBeth Date: Tue Oct 25 07:13:47 2016 -0400 add dbus message 'org.enlightenment.wm.Window.SendToDesktop' Signed-off-by: Mike Blumenkrantz --- src/modules/msgbus/msgbus_window.c | 36 1 file changed, 36 insertions(+) diff --git a/src/modules/msgbus/msgbus_window.c b/src/modules/msgbus/msgbus_window.c index 2e7bb28..353957b 100644 --- a/src/modules/msgbus/msgbus_window.c +++ b/src/modules/msgbus/msgbus_window.c @@ -21,6 +21,7 @@ E_MSGBUS_WIN_ACTION_CB_PROTO(iconify); E_MSGBUS_WIN_ACTION_CB_PROTO(uniconify); E_MSGBUS_WIN_ACTION_CB_PROTO(maximize); E_MSGBUS_WIN_ACTION_CB_PROTO(unmaximize); +E_MSGBUS_WIN_ACTION_CB_PROTO(sendtodesktop); static const Eldbus_Method window_methods[] = { { "List", NULL, ELDBUS_ARGS({"a(si)", "array_of_window"}), _e_msgbus_window_list_cb, 0 }, @@ -31,6 +32,7 @@ static const Eldbus_Method window_methods[] = { { "Uniconify", ELDBUS_ARGS({"i", "window_id"}), NULL, _e_msgbus_window_uniconify_cb, 0 }, { "Maximize", ELDBUS_ARGS({"i", "window_id"}), NULL, _e_msgbus_window_maximize_cb, 0 }, { "Unmaximize", ELDBUS_ARGS({"i", "window_id"}), NULL, _e_msgbus_window_unmaximize_cb, 0 }, + { "SendToDesktop", ELDBUS_ARGS({"i","window_id"},{"i","zone"},{"i","desk_x"},{"i","desk_y"}), NULL, _e_msgbus_window_sendtodesktop_cb, 0 }, { NULL, NULL, NULL, NULL, 0} }; @@ -117,6 +119,40 @@ E_MSGBUS_WIN_ACTION_CB_BEGIN(unmaximize) e_client_unmaximize(ec, E_MAXIMIZE_BOTH); E_MSGBUS_WIN_ACTION_CB_END +static Eldbus_Message * +_e_msgbus_window_sendtodesktop_cb( const Eldbus_Service_Interface *iface EINA_UNUSED, const Eldbus_Message *msg) +{ + E_Client *ec; + E_Zone * zone; + E_Desk * desk; + Eina_List *l = NULL; + int xwin, zonenum, xdesk, ydesk; + + if (!eldbus_message_arguments_get(msg, "", &xwin, &zonenum, &xdesk, &ydesk)) + return eldbus_message_method_return_new(msg); + + ec = e_pixmap_find_client(E_PIXMAP_TYPE_X, xwin); + + if (ec) + { +EINA_LIST_FOREACH(e_comp->zones, l, zone) + { + if ((int)zone->num == zonenum) + { + if (xdesk < zone->desk_x_count && ydesk < zone->desk_y_count) +{ + desk = e_desk_at_xy_get(zone, xdesk, ydesk); + if (desk) e_client_desk_set(ec, desk); +} + } + } + } + + return eldbus_message_method_return_new(msg); + +} + + void msgbus_window_init(Eina_Array *ifaces) { Eldbus_Service_Interface *iface; --
[EGIT] [core/efl] master 08/16: eo_js: Instead of abort, throw an Exception
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c08eedfd11c7aed67bc5341d5cdb08765919ad24 commit c08eedfd11c7aed67bc5341d5cdb08765919ad24 Author: Lauro Moura Date: Mon Jul 11 16:38:40 2016 -0300 eo_js: Instead of abort, throw an Exception * When the constructor fails * On cast error. --- src/bindings/js/eina_js/eina_js_compatibility.hh | 35 ++-- src/bindings/js/eo_js/eo_js_constructor.hh | 15 ++ 2 files changed, 30 insertions(+), 20 deletions(-) diff --git a/src/bindings/js/eina_js/eina_js_compatibility.hh b/src/bindings/js/eina_js/eina_js_compatibility.hh index 7a46714..48cebc5 100644 --- a/src/bindings/js/eina_js/eina_js_compatibility.hh +++ b/src/bindings/js/eina_js/eina_js_compatibility.hh @@ -917,25 +917,32 @@ compatibility_return_type cast_function(compatibility_callback_info_type args) auto isolate = args.GetIsolate(); compatibility_handle_scope scope(isolate); v8::Local type; - if(args.Length() == 1 && (type = args[0])->IsString()) + try { - v8::Local self = args.This(); - v8::Local external = self->GetInternalField(0); - Eo* eo = static_cast(v8::External::Cast(*external)->Value()); - - v8::String::Utf8Value str(type->ToString()); - char* class_name = *str; - - auto ctor = ::efl::eina::js::get_class_constructor(class_name); - auto obj = new_v8_external_instance(ctor, ::eo_ref(eo), isolate); - efl::eina::js::make_weak(isolate, obj, [eo]{ ::eo_unref(eo); }); - return compatibility_return(obj, args); + if(args.Length() == 1 && (type = args[0])->IsString()) +{ + v8::Local self = args.This(); + v8::Local external = self->GetInternalField(0); + Eo* eo = static_cast(v8::External::Cast(*external)->Value()); + + v8::String::Utf8Value str(type->ToString()); + char* class_name = *str; + + auto ctor = ::efl::eina::js::get_class_constructor(class_name); + auto obj = new_v8_external_instance(ctor, ::eo_ref(eo), isolate); + efl::eina::js::make_weak(isolate, obj, [eo]{ ::eo_unref(eo); }); + return compatibility_return(obj, args); +} + else +{ + throw std::runtime_error("Type expected is different. Expected String type"); +} } - else + catch (std::runtime_error const& error) { eina::js::compatibility_throw (isolate, v8::Exception::TypeError - (eina::js::compatibility_new(isolate, "Type expected is different. Expected String type"))); + (eina::js::compatibility_new(isolate, error.what(; return compatibility_return(); } } diff --git a/src/bindings/js/eo_js/eo_js_constructor.hh b/src/bindings/js/eo_js/eo_js_constructor.hh index 6ca02ce..497f626 100644 --- a/src/bindings/js/eo_js/eo_js_constructor.hh +++ b/src/bindings/js/eo_js/eo_js_constructor.hh @@ -68,10 +68,7 @@ struct constructor_caller } else { - eina::js::compatibility_throw -(v8::Exception::TypeError - (eina::js::compatibility_new(args->GetIsolate(), "Expected more arguments for this call"))); - throw std::logic_error(""); + throw std::logic_error("Expected more arguments for this call"); } } @@ -114,7 +111,8 @@ struct constructor_caller , parent , eina::_mpl::for_each(constructors, call{eo_self, ¤t_index, &args}) ); -assert(eo != 0); +if (!eo) + throw std::logic_error("Failed to create object."); v8::Local self = args.This(); self->SetInternalField(0, eina::js::compatibility_new(args.GetIsolate(), eo)); efl::eina::js::make_weak(args.GetIsolate(), self @@ -123,7 +121,12 @@ struct constructor_caller eo_unref(eo); }); } -catch(std::logic_error const&) {} +catch(std::logic_error const& error) + { + eina::js::compatibility_throw + (v8::Exception::TypeError +(eina::js::compatibility_new(args.GetIsolate(), error.what(; + } } else { --
[EGIT] [core/efl] master 12/16: ecore: Add _SAFE when iterating the animators.
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6aa4486209056c1457b01b18eb4409daab6310a6 commit 6aa4486209056c1457b01b18eb4409daab6310a6 Author: Lauro Moura Date: Fri Aug 12 19:53:07 2016 -0300 ecore: Add _SAFE when iterating the animators. In some cases (like JS libuv events) an animator callback can trigger the deletion of an animator, changing the list being iterated. --- src/lib/ecore/ecore_anim.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib/ecore/ecore_anim.c b/src/lib/ecore/ecore_anim.c index 66d08cf..70c2f89 100644 --- a/src/lib/ecore/ecore_anim.c +++ b/src/lib/ecore/ecore_anim.c @@ -271,13 +271,14 @@ static Eina_Bool _do_tick(void) { Ecore_Animator *animator; + Eina_Inlist *tmp; EINA_INLIST_FOREACH(animators, animator) { animator->just_added = EINA_FALSE; } if (animators) eina_evlog("!FRAME", NULL, ecore_loop_time_get(), NULL); - EINA_INLIST_FOREACH(animators, animator) + EINA_INLIST_FOREACH_SAFE(animators, tmp, animator) { if ((!animator->delete_me) && (!animator->suspended) && --
[EGIT] [core/efl] master 04/16: eina_js: Fix log color persistence.
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=7869eeed530147f11035551c3a3fa1f12559570a commit 7869eeed530147f11035551c3a3fa1f12559570a Author: Lauro Moura Date: Tue Jul 5 19:10:03 2016 -0300 eina_js: Fix log color persistence. The c_ptr() passed to eina_log_register was being lost when saving the string into the map. --- src/bindings/js/eina_js/eina_js_log.cc | 7 --- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/bindings/js/eina_js/eina_js_log.cc b/src/bindings/js/eina_js/eina_js_log.cc index 415a827..ac461d9 100644 --- a/src/bindings/js/eina_js/eina_js_log.cc +++ b/src/bindings/js/eina_js/eina_js_log.cc @@ -28,7 +28,7 @@ v8::Local to_v8_string(v8::Isolate *isolate, const char *fmt, } static global_ref js_eina_log_print_cb_data; -static std::map js_eina_log_color_map; +static std::map js_eina_log_color_map; static void js_eina_log_print_cb(const Eina_Log_Domain *d, Eina_Log_Level level, const char *file, const char *fnc, int line, @@ -118,9 +118,9 @@ void register_log_domain_register(v8::Isolate *isolate, // We duplicate the color string as eina takes a const char* but does take care of // its lifetime, assuming a ever lasting string. -std::string color = *String::Utf8Value(args[1]); +const char *color = strdup(*String::Utf8Value(args[1])); int d = eina_log_domain_register(*String::Utf8Value(args[0]), - color.c_str()); + color); js_eina_log_color_map[d] = color; auto isolate = args.GetIsolate(); @@ -146,6 +146,7 @@ void register_log_domain_unregister(v8::Isolate *isolate, int domain = args[0]->NumberValue(); eina_log_domain_unregister(domain); +free((void*)js_eina_log_color_map[domain]); js_eina_log_color_map.erase(domain); return compatibility_return(); }; --
[EGIT] [core/efl] master 06/16: eolian-cxx: Normalize variabla name for generated C++ files in automake
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=2773f8301b2c8505fc4332933be58f6d81680111 commit 2773f8301b2c8505fc4332933be58f6d81680111 Author: Felipe Magno de Almeida Date: Wed Jul 6 14:08:12 2016 -0300 eolian-cxx: Normalize variabla name for generated C++ files in automake --- src/Makefile_Cxx.am | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Makefile_Cxx.am b/src/Makefile_Cxx.am index 52bdb76..5140207 100644 --- a/src/Makefile_Cxx.am +++ b/src/Makefile_Cxx.am @@ -125,6 +125,7 @@ installed_ecorecxxheadersdir = $(includedir)/ecore-cxx-@VMAJ@ dist_installed_ecorecxxheaders_DATA = \ bindings/cxx/ecore_cxx/Ecore.hh \ bindings/cxx/ecore_cxx/Ecore_Manual.hh + nodist_installed_ecorecxxheaders_DATA = $(ecore_eolian_cxx_hh) $(ecore_eolian_cxx_impl_hh) \ lib/ecore/Ecore.eo.hh --
[EGIT] [core/efl] master 05/16: eolian_js efl_js: Fix tests.
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=21cc5715ba728757f579d08ad4fe8e2d312610de commit 21cc5715ba728757f579d08ad4fe8e2d312610de Author: Lauro Moura Date: Tue Jul 5 19:14:49 2016 -0300 eolian_js efl_js: Fix tests. * Probably the idle refactor changed the order the callbacks are called. * Removed trailing * from class types --- src/tests/efl_js/ecore_js_suite.js | 4 ++-- src/tests/eolian_js/constructor_method_class.eo | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/tests/efl_js/ecore_js_suite.js b/src/tests/efl_js/ecore_js_suite.js index 85630af..804f27c 100755 --- a/src/tests/efl_js/ecore_js_suite.js +++ b/src/tests/efl_js/ecore_js_suite.js @@ -293,8 +293,8 @@ start_test("ecore idle", function () { efl.Ecore.Mainloop.begin(); assert(captured[0] === 4, "Ecore.Idle.add test"); -assert(captured[1] === 2, "Ecore.Idle.addEnterer test"); -assert(captured[2] === 3, "Ecore.Idle.addEnterer test two"); +assert(captured[1] === 3, "Ecore.Idle.addEnterer test"); +assert(captured[2] === 2, "Ecore.Idle.addEnterer test two"); assert(captured[3] === 1, "Ecore.Idle.addEntererBefore test"); assert(captured[4] === 5, "Ecore.Idle.addExiter test"); }); diff --git a/src/tests/eolian_js/constructor_method_class.eo b/src/tests/eolian_js/constructor_method_class.eo index 81860c2..034a9eb 100644 --- a/src/tests/eolian_js/constructor_method_class.eo +++ b/src/tests/eolian_js/constructor_method_class.eo @@ -41,10 +41,10 @@ class Constructor_Method_Class (Efl.Object) } classoutmethod1 { params { @in one: int; @in two: double; } - return: free(own(Constructor_Method_Class *), eo_unref) @warn_unused; + return: free(own(Constructor_Method_Class), eo_unref) @warn_unused; } classoutmethod2 { - params { @in one: int; @in two: double; @out out_class: own(Constructor_Method_Class *); } + params { @in one: int; @in two: double; @out out_class: own(Constructor_Method_Class); } } } implements { --
[EGIT] [core/efl] master 03/16: efl_js: Update registration functions
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ae3c74d879651a93a95bc83f5829a96459f6878f commit ae3c74d879651a93a95bc83f5829a96459f6878f Author: Lauro Moura Date: Tue Jul 5 19:04:01 2016 -0300 efl_js: Update registration functions After the Elm -> Efl.Ui and other changes. Also add extern C guards around private header (elm_widget). --- src/Makefile_Efl_Js.am | 4 +++- src/bindings/js/efl_js/efl_js.cc | 47 +++- 2 files changed, 30 insertions(+), 21 deletions(-) diff --git a/src/Makefile_Efl_Js.am b/src/Makefile_Efl_Js.am index e4b1d84..6b9a790 100644 --- a/src/Makefile_Efl_Js.am +++ b/src/Makefile_Efl_Js.am @@ -73,7 +73,9 @@ bindings/js/efl_js/eolian_js_bindings.cc: $(GENERATED_JS_BINDINGS) @echo @ECHO_E@ "#include " >> $(top_builddir)/src/bindings/js/efl_js/eolian_js_bindings.cc @echo @ECHO_E@ "#define ELM_INTERNAL_API_ARGESFSDFEFC" >> $(top_builddir)/src/bindings/js/efl_js/eolian_js_bindings.cc @echo @ECHO_E@ "#include " >> $(top_builddir)/src/bindings/js/efl_js/eolian_js_bindings.cc - @echo @ECHO_E@ "#include \n" >> $(top_builddir)/src/bindings/js/efl_js/eolian_js_bindings.cc + @echo @ECHO_E@ "extern \"C\" {" >> $(top_builddir)/src/bindings/js/efl_js/eolian_js_bindings.cc + @echo @ECHO_E@ "#include " >> $(top_builddir)/src/bindings/js/efl_js/eolian_js_bindings.cc + @echo @ECHO_E@ "}\n" >> $(top_builddir)/src/bindings/js/efl_js/eolian_js_bindings.cc @for i in $(GENERATED_JS_BINDINGS); do echo "#include <$$i>" >> $(top_builddir)/src/bindings/js/efl_js/eolian_js_bindings.cc; done CLEANFILES += bindings/js/efl_js/eolian_js_bindings.cc diff --git a/src/bindings/js/efl_js/efl_js.cc b/src/bindings/js/efl_js/efl_js.cc index 09c011b..8a5cec3 100644 --- a/src/bindings/js/efl_js/efl_js.cc +++ b/src/bindings/js/efl_js/efl_js.cc @@ -42,7 +42,6 @@ EAPI void eina_value_register(v8::Handle, v8::Isolate* isolate); EAPI void register_ecore_mainloop(v8::Handle global, v8::Isolate* isolate); namespace ecore { -EAPI void register_animator(v8::Handle global, v8::Isolate* isolate); EAPI void register_exe(v8::Handle global, v8::Isolate* isolate); EAPI void register_idler(v8::Handle global, v8::Isolate* isolate); EAPI void register_ecore(v8::Isolate* isolate, v8::Handle exports); @@ -73,19 +72,36 @@ EAPI void register_ecore_audio_out_pulse(v8::Handle global, v8::Isol EAPI void register_ecore_audio_out_sndfile(v8::Handle global, v8::Isolate* isolate); namespace efl { +EAPI void register_animator(v8::Handle global, v8::Isolate* isolate); EAPI void register_control(v8::Handle global, v8::Isolate* isolate); EAPI void register_file(v8::Handle global, v8::Isolate* isolate); EAPI void register_image(v8::Handle global, v8::Isolate* isolate); +EAPI void register_orientation(v8::Handle global, v8::Isolate* isolate); EAPI void register_player(v8::Handle global, v8::Isolate* isolate); EAPI void register_text(v8::Handle global, v8::Isolate* isolate); EAPI void register_text_properties(v8::Handle global, v8::Isolate* isolate); } +namespace efl { namespace ui { +EAPI void register_video(v8::Handle global, v8::Isolate* isolate); +EAPI void register_flip(v8::Handle global, v8::Isolate* isolate); +EAPI void register_frame(v8::Handle global, v8::Isolate* isolate); +EAPI void register_box(v8::Handle global, v8::Isolate* isolate); +}} + +namespace efl { namespace ui { namespace win { +EAPI void register_standard(v8::Handle global, v8::Isolate* isolate); +}}} + namespace eo { EAPI void register_abstract_class(v8::Handle global, v8::Isolate* isolate); EAPI void register_base(v8::Handle global, v8::Isolate* isolate); } +namespace efl { namespace canvas { +EAPI void register_rectangle(v8::Handle global, v8::Isolate* isolate); +}} + namespace evas { EAPI void register_box(v8::Handle global, v8::Isolate* isolate); EAPI void register_canvas(v8::Handle global, v8::Isolate* isolate); @@ -98,7 +114,6 @@ EAPI void register_line(v8::Handle global, v8::Isolate* isolate); EAPI void register_object(v8::Handle global, v8::Isolate* isolate); EAPI void register_object_smart(v8::Handle global, v8::Isolate* isolate); EAPI void register_out(v8::Handle global, v8::Isolate* isolate); -EAPI void register_rectangle(v8::Handle global, v8::Isolate* isolate); EAPI void register_scrollable_interface(v8::Handle global, v8::Isolate* isolate); EAPI void register_selectable_interface(v8::Handle global, v8::Isolate* isolate); EAPI void register_signal_interface(v8::Handle global, v8::Isolate* isolate); @@ -172,7 +187,6 @@ EAPI void register_fileselector_button(v8::Handle global, v8::Isolat EAPI void register_fileselector_entry(v8::Handle global, v8::Isolate* isolate); EAPI void register_flip(v8::Handle global, v8::Isolate* isolate); EAPI void register_flipselector(v8::Handle global, v8::Isolate* isolate); -EAPI void register_fra
[EGIT] [core/efl] master 02/16: eolian_js: Several fixes
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=966d51bf28e101ca9f26d37a4a62511d11574856 commit 966d51bf28e101ca9f26d37a4a62511d11574856 Author: Lauro Moura Date: Wed Jun 29 15:06:01 2016 -0300 eolian_js: Several fixes * Update after scope api change. * Add missing type mapping for new eolian types * Avoid generating protected properties We select the get/set as one (through TYPE_PROPERTY) in the first check for visibility. After 375179b47 it is possible to have different scopes for getters and setters. * Add pointer to complex tp and classes e984e5a removed the explicit pointer from classes and complex types in the eo files, handling them implicitly. * Avoid generating functions with void* Until further notice, they will not be automatically generated. * Avoid generating ref stuff from eo_base.eo * Warn when there are methods with the same name. --- src/bin/eolian_js/main.cc | 133 +++--- 1 file changed, 101 insertions(+), 32 deletions(-) diff --git a/src/bin/eolian_js/main.cc b/src/bin/eolian_js/main.cc index 5497d6d..c578608 100644 --- a/src/bin/eolian_js/main.cc +++ b/src/bin/eolian_js/main.cc @@ -154,7 +154,11 @@ _eolian_type_cpp_type_named_get(const Eolian_Type *tp, std::string const& caller {"iterator", "Eina_Iterator"}, {"hash", "Eina_Hash"}, {"list", "Eina_List"}, - {"promise", "Eina_Promise"} + {"promise", "Eina_Promise"}, + {"string", "const char*"}, + {"void_ptr", "void *"}, + {"stringshare", "Eina_Stringshare*"} + }; std::string type_name = eolian_type_name_get(tp); @@ -163,11 +167,43 @@ _eolian_type_cpp_type_named_get(const Eolian_Type *tp, std::string const& caller type_name = it->second; result += type_name; +if (tpt == EOLIAN_TYPE_CLASS || tpt == EOLIAN_TYPE_COMPLEX) +result += "*"; // Implied pointer + auto tpd = eolian_type_typedecl_get(tp); if (tpd && eolian_typedecl_type_get(tpd) == EOLIAN_TYPEDECL_STRUCT) { result = "efl::eina::js::make_struct_tag<" + result + ">"; } + +if (tpt == EOLIAN_TYPE_COMPLEX) + { + result = "efl::eina::js::make_complex_tag<" + result; + + bool has_subtypes = false; + const Eolian_Type *subtype = eolian_type_base_type_get(tp); + while (subtype) + { + auto t = _eolian_type_cpp_type_named_get(subtype, caller_class_prefix, need_name_getter); + auto k = type_class_name(subtype); + if (!k.empty()) + { + result += ", " + t + ", " + _class_name_getter(caller_class_prefix, k); + need_name_getter.insert(k); + } + else + { + result += ", " + t + ", ::efl::eina::js::nonclass_cls_name_getter"; + } + has_subtypes = true; + subtype = eolian_type_next_type_get(subtype); + } + + if (!has_subtypes) + throw eolian::js::incomplete_complex_type_error("Incomplete complex type"); + + result += ">"; + } } else if (tpt == EOLIAN_TYPE_VOID) result += "void"; @@ -175,7 +211,6 @@ _eolian_type_cpp_type_named_get(const Eolian_Type *tp, std::string const& caller { auto btp = eolian_type_base_type_get(tp); result += _eolian_type_cpp_type_named_get(btp, caller_class_prefix, need_name_getter); - const auto base_is_const = eolian_type_is_const(btp); Eolian_Type_Type btpt = EOLIAN_TYPE_UNKNOWN_TYPE; @@ -201,35 +236,6 @@ _eolian_type_cpp_type_named_get(const Eolian_Type *tp, std::string const& caller result += '*'; if (is_const) result += " const"; } - -if (btpt == EOLIAN_TYPE_COMPLEX) - { - result = "efl::eina::js::make_complex_tag<" + result; - - bool has_subtypes = false; - const Eolian_Type *subtype = eolian_type_base_type_get(btp); - while (subtype) - { - auto t = _eolian_type_cpp_type_named_get(subtype, caller_class_prefix, need_name_getter); - auto k = type_class_name(subtype); - if (!k.empty()) - { - result += ", " + t + ", " + _class_name_getter(caller_class_prefix, k); - need_name_getter.insert(k); - } - else - { - result += ", " + t + ", ::efl::eina::js::nonclass_cls_name_getter"; - } - has_subtypes = true; -
[EGIT] [core/efl] master 09/16: efl_js: Update JS examples
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=4f52588b3ce86e3bef7041d76d07eda58c41c79d commit 4f52588b3ce86e3bef7041d76d07eda58c41c79d Author: Lauro Moura Date: Tue Jul 26 18:21:02 2016 -0300 efl_js: Update JS examples Changing imports, functions, etc. Also export "cast" function for all eolian_js generated classes. --- src/bin/eolian_js/main.cc | 3 + src/bindings/js/efl_js/efl_js.cc| 5 +- src/examples/elementary/bg_example_01.js| 13 +-- src/examples/elementary/bg_example_02.js| 16 ++-- src/examples/elementary/box_js_example_01.js| 24 ++--- src/examples/elementary/box_js_example_02.js| 55 +-- src/examples/elementary/bubble_example_01.js| 31 +++--- src/examples/elementary/button_example_00.js| 8 +- src/examples/elementary/button_example_01.js| 120 src/examples/elementary/calendar_example_01.js | 12 +-- src/examples/elementary/calendar_example_02.js | 13 +-- src/examples/elementary/calendar_example_03.js | 12 +-- src/examples/elementary/calendar_example_04.js | 30 +++--- src/examples/elementary/calendar_example_05.js | 15 +-- src/examples/elementary/clock_example.js| 27 +++--- src/examples/elementary/datetime_example.js | 49 +- src/examples/elementary/icon_example_01.js | 11 +-- src/examples/elementary/layout_example.js | 44 + src/examples/elementary/menu_example_01.js | 11 +-- src/examples/elementary/popup_example_01.js | 12 +-- src/examples/elementary/radio_example_01.js | 56 +-- src/examples/elementary/separator_example_01.js | 40 src/examples/elementary/slider_example.js | 82 src/examples/elementary/spinner_example.js | 78 +++ src/examples/elementary/table_example_01.js | 16 ++-- src/examples/elementary/thumb_example_01.js | 36 --- src/examples/elementary/twitter_example_01.js | 56 ++- 27 files changed, 458 insertions(+), 417 deletions(-) diff --git a/src/bin/eolian_js/main.cc b/src/bin/eolian_js/main.cc index c578608..27ffe8a 100644 --- a/src/bin/eolian_js/main.cc +++ b/src/bin/eolian_js/main.cc @@ -997,6 +997,9 @@ int main(int argc, char** argv) } } + functions_ss << "\n prototype->Set(::efl::eina::js::compatibility_new(isolate, \"cast\"),\n" + " ::efl::eina::js::compatibility_new(isolate, &efl::eina::js::cast_function)->GetFunction());\n\n"; + // generate all events std::stringstream events_ss; auto generate_events = [&] (Eolian_Class const* klass) diff --git a/src/bindings/js/efl_js/efl_js.cc b/src/bindings/js/efl_js/efl_js.cc index 8a5cec3..a4b28d8 100644 --- a/src/bindings/js/efl_js/efl_js.cc +++ b/src/bindings/js/efl_js/efl_js.cc @@ -73,6 +73,7 @@ EAPI void register_ecore_audio_out_sndfile(v8::Handle global, v8::Is namespace efl { EAPI void register_animator(v8::Handle global, v8::Isolate* isolate); +EAPI void register_container(v8::Handle global, v8::Isolate* isolate); EAPI void register_control(v8::Handle global, v8::Isolate* isolate); EAPI void register_file(v8::Handle global, v8::Isolate* isolate); EAPI void register_image(v8::Handle global, v8::Isolate* isolate); @@ -87,6 +88,7 @@ EAPI void register_video(v8::Handle global, v8::Isolate* isolate); EAPI void register_flip(v8::Handle global, v8::Isolate* isolate); EAPI void register_frame(v8::Handle global, v8::Isolate* isolate); EAPI void register_box(v8::Handle global, v8::Isolate* isolate); +EAPI void register_image(v8::Handle global, v8::Isolate* isolate); }} namespace efl { namespace ui { namespace win { @@ -380,7 +382,7 @@ EAPI void init(v8::Handle exports) // elm::register_combobox(exports, v8::Isolate::GetCurrent()); // doesn't exist - // elm::register_container(exports, v8::Isolate::GetCurrent()); + efl::register_container(exports, v8::Isolate::GetCurrent()); elm::register_ctxpopup(exports, v8::Isolate::GetCurrent()); elm::register_datetime(exports, v8::Isolate::GetCurrent()); @@ -398,6 +400,7 @@ EAPI void init(v8::Handle exports) elm::register_flipselector(exports, v8::Isolate::GetCurrent()); efl::ui::register_frame(exports, v8::Isolate::GetCurrent()); efl::ui::register_box(exports, v8::Isolate::GetCurrent()); + efl::ui::register_image(exports, v8::Isolate::GetCurrent()); // crash // elm::register_gengrid(exports, v8::Isolate::GetCurrent()); diff --git a/src/examples/elementary/bg_example_01.js b/src/examples/elementary/bg_example_01.js index 227259b..2a4e921 100644 --- a/src/examples/elementary/bg_example_01.js +++ b/src/examples/elementary/bg_example_01.js @@ -1,13 +1,14 @@ -var elm = require('elm') +var efl = require('efl'); -win = new elm.Elm.WinStandard(null); -win.setTitle("Bg Plain
[EGIT] [core/efl] master 10/16: efl_js: Update after eo/efl api changes
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=508edf78c6be3165ef56e968e41e1cc875471024 commit 508edf78c6be3165ef56e968e41e1cc875471024 Author: Lauro Moura Date: Mon Aug 15 12:31:05 2016 -0300 efl_js: Update after eo/efl api changes --- src/Makefile_Efl_Js.am | 3 ++- src/bin/eolian_js/main.cc | 6 +++--- src/bindings/js/efl_js/efl_js.cc| 9 ++--- src/bindings/js/eina_js/eina_js_compatibility.hh| 8 src/bindings/js/eina_js/eina_js_get_value_from_c.hh | 8 src/bindings/js/eo_js/eo_js_construct_from_eo.hh| 4 ++-- src/bindings/js/eo_js/eo_js_constructor.hh | 14 +++--- src/bindings/js/eo_js/eo_js_event.hh| 2 +- src/tests/efl_js/benchmark_object_impl.cc | 6 +++--- src/tests/eolian_js/eolian_js_suite.cc | 2 +- 10 files changed, 29 insertions(+), 33 deletions(-) diff --git a/src/Makefile_Efl_Js.am b/src/Makefile_Efl_Js.am index 0bcb6bb..734c9ed 100644 --- a/src/Makefile_Efl_Js.am +++ b/src/Makefile_Efl_Js.am @@ -185,7 +185,8 @@ lib_efl_js_libefl_js_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ @EIO_JS_CFLAGS@ \ @ETHUMB_JS_CFLAGS@ \ @EINA_CXX_CFLAGS@ \ -@ELEMENTARY_CFLAGS@ +@ELEMENTARY_CFLAGS@ \ +-D_EO_ADD_FALLBACK_FORCE=1 lib_efl_js_libefl_js_la_LIBADD = @EFL_JS_LIBS@ lib_efl_js_libefl_js_la_DEPENDENCIES = @EFL_JS_INTERNAL_LIBS@ lib_efl_js_libefl_js_la_LIBTOOLFLAGS = --tag=disable-static diff --git a/src/bin/eolian_js/main.cc b/src/bin/eolian_js/main.cc index 27ffe8a..d38700c 100644 --- a/src/bin/eolian_js/main.cc +++ b/src/bin/eolian_js/main.cc @@ -328,7 +328,7 @@ _function_is_generatable(const Eolian_Function *function, Eolian_Function_Type f if (!_type_is_generatable(tp, add_pointer)) return false; -if (eolian_type_is_ref(tp) && _function_belongs_to(function, "Eo.Base")) +if (eolian_type_is_ref(tp) && _function_belongs_to(function, "Efl.Object")) return false; } @@ -655,7 +655,7 @@ int main(int argc, char** argv) , last; first != last; ++first) { std::stringstream ss; -bool should_reject_ref = file_basename == "eo_base.eo"; +bool should_reject_ref = file_basename == "efl_object.eo"; bool has_ref_field = false; auto tpd = &*first; @@ -669,7 +669,7 @@ int main(int argc, char** argv) EINA_CXX_DOM_LOG_ERR(eolian::js::domain) << "Could not get struct type name"; continue; } -else if(strcmp(struct_type_full_name, "Eo.Callback_Array_Item") == 0) +else if(strcmp(struct_type_full_name, "Efl.Callback_Array_Item") == 0) continue; std::string struct_c_name = struct_type_full_name; std::replace(struct_c_name.begin(), struct_c_name.end(), '.', '_'); diff --git a/src/bindings/js/efl_js/efl_js.cc b/src/bindings/js/efl_js/efl_js.cc index a4b28d8..093380f 100644 --- a/src/bindings/js/efl_js/efl_js.cc +++ b/src/bindings/js/efl_js/efl_js.cc @@ -72,6 +72,7 @@ EAPI void register_ecore_audio_out_pulse(v8::Handle global, v8::Isol EAPI void register_ecore_audio_out_sndfile(v8::Handle global, v8::Isolate* isolate); namespace efl { +EAPI void register_object(v8::Handle global, v8::Isolate* isolate); EAPI void register_animator(v8::Handle global, v8::Isolate* isolate); EAPI void register_container(v8::Handle global, v8::Isolate* isolate); EAPI void register_control(v8::Handle global, v8::Isolate* isolate); @@ -95,11 +96,6 @@ namespace efl { namespace ui { namespace win { EAPI void register_standard(v8::Handle global, v8::Isolate* isolate); }}} -namespace eo { -EAPI void register_abstract_class(v8::Handle global, v8::Isolate* isolate); -EAPI void register_base(v8::Handle global, v8::Isolate* isolate); -} - namespace efl { namespace canvas { EAPI void register_rectangle(v8::Handle global, v8::Isolate* isolate); }} @@ -314,8 +310,7 @@ EAPI void init(v8::Handle exports) efl::register_player(exports, v8::Isolate::GetCurrent()); efl::register_text(exports, v8::Isolate::GetCurrent()); // efl::register_text_properties(exports, v8::Isolate::GetCurrent()); -// eo::register_abstract_class(exports, v8::Isolate::GetCurrent()); -eo::register_base(exports, v8::Isolate::GetCurrent()); +efl::register_object(exports, v8::Isolate::GetCurrent()); #if 1 // evas::register_box(exports, v8::Isolate::GetCurrent()); // evas::register_canvas(exports, v8::Isolate::GetCurrent()); diff --git a/src/bindings/js/eina_js/eina_js_compatibility.hh b/src/bindings/js/eina_js/eina_js_compatibility.hh index 48cebc5..7b5c920 100644 --- a/src/bindings/js/eina_js/eina_js_compatibility.hh +++ b/src/bindings/js/eina_js/eina_js_compatibility.hh @@ -158,14 +158,14 @@ T container_wrap(T&& v) inline ::efl::eo::concrete container_wrap(Eo* v) { if
[EGIT] [core/efl] master 13/16: ecore_js: Add missing HandleScope to addTimeline
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=611498f0356411f1a8c1f1ae6d94e0bd587d5de4 commit 611498f0356411f1a8c1f1ae6d94e0bd587d5de4 Author: Lauro Moura Date: Fri Aug 26 17:18:13 2016 -0300 ecore_js: Add missing HandleScope to addTimeline --- src/bindings/js/ecore_js/ecore_js_animator.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/bindings/js/ecore_js/ecore_js_animator.cc b/src/bindings/js/ecore_js/ecore_js_animator.cc index 322db17..8e2011d 100644 --- a/src/bindings/js/ecore_js/ecore_js_animator.cc +++ b/src/bindings/js/ecore_js/ecore_js_animator.cc @@ -477,6 +477,7 @@ void register_animator_timeline_add(v8::Isolate *isolate, v8::Handle name) { using v8::Handle; +using v8::HandleScope; using v8::Local; using v8::Value; using v8::Undefined; @@ -498,6 +499,7 @@ void register_animator_timeline_add(v8::Isolate *isolate, = reinterpret_cast*>(data); auto o = persistent->handle(); auto isolate = v8::Isolate::GetCurrent(); +HandleScope handle_scope(isolate); Handle args = compatibility_new(isolate, pos); --
[EGIT] [core/efl] master 07/16: eolian-js: Fix dependency on Ecore.eo.hh
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c364844f673c75582c6c40f1e882b2c88b71d59b commit c364844f673c75582c6c40f1e882b2c88b71d59b Author: Felipe Magno de Almeida Date: Wed Jul 6 14:08:27 2016 -0300 eolian-js: Fix dependency on Ecore.eo.hh --- src/Makefile_Efl_Js.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Makefile_Efl_Js.am b/src/Makefile_Efl_Js.am index 6b9a790..0bcb6bb 100644 --- a/src/Makefile_Efl_Js.am +++ b/src/Makefile_Efl_Js.am @@ -162,7 +162,7 @@ bindings/js/ethumb_js/ethumb_js_client.cc nodist_lib_efl_js_libefl_js_la_SOURCES = \ bindings/js/efl_js/eolian_js_bindings.cc -bindings/js/efl_js/efl_js.cc $(lib_efl_js_libefl_js_la_SOURCES): $(generated_ecore_cxx_all) $(generated_eo_cxx_bindings) $(generated_efl_cxx_all) +bindings/js/efl_js/efl_js.cc $(lib_efl_js_libefl_js_la_SOURCES): $(ecore_eolian_cxx_hh) $(ecore_eolian_cxx_impl_hh) $(eo_eolian_cxx_hh) $(eo_eolian_cxx_impl_hh) $(efl_eolian_cxx_hh) $(efl_eolian_cxx_impl_hh) lib/ecore/Ecore.eo.hh lib_efl_js_libefl_js_la_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ -I$(top_srcdir)/src/lib/efl \ --
[EGIT] [core/efl] master 14/16: efl_js: Export Canvas Object and Group
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=500ed1e40b37dd89412cdf8fe178a8961d5d3790 commit 500ed1e40b37dd89412cdf8fe178a8961d5d3790 Author: Lauro Moura Date: Fri Aug 26 17:18:50 2016 -0300 efl_js: Export Canvas Object and Group --- src/bindings/js/efl_js/efl_js.cc | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/bindings/js/efl_js/efl_js.cc b/src/bindings/js/efl_js/efl_js.cc index c83d98d..d64546a 100644 --- a/src/bindings/js/efl_js/efl_js.cc +++ b/src/bindings/js/efl_js/efl_js.cc @@ -97,6 +97,8 @@ EAPI void register_standard(v8::Handle global, v8::Isolate* isolate) }}} namespace efl { namespace canvas { +EAPI void register_object(v8::Handle global, v8::Isolate* isolate); +EAPI void register_group(v8::Handle global, v8::Isolate* isolate); EAPI void register_rectangle(v8::Handle global, v8::Isolate* isolate); }} @@ -322,7 +324,8 @@ EAPI void init(v8::Handle exports) // evas::register_grid(exports, v8::Isolate::GetCurrent()); // evas::register_image(exports, v8::Isolate::GetCurrent()); // evas::register_line(exports, v8::Isolate::GetCurrent()); -// evas::register_object(exports, v8::Isolate::GetCurrent()); +efl::canvas::register_object(exports, v8::Isolate::GetCurrent()); +efl::canvas::register_group(exports, v8::Isolate::GetCurrent()); // evas::register_object_smart(exports, v8::Isolate::GetCurrent()); // evas::register_out(exports, v8::Isolate::GetCurrent()); efl::canvas::register_rectangle(exports, v8::Isolate::GetCurrent()); --
[EGIT] [core/efl] master 11/16: efl_js: Enable Ethumb support for Elm.
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=620454e43dc4eff9af89fd5302c15a8a5b796d2c commit 620454e43dc4eff9af89fd5302c15a8a5b796d2c Author: Lauro Moura Date: Thu Aug 4 16:28:30 2016 -0300 efl_js: Enable Ethumb support for Elm. --- src/bindings/js/efl_js/efl_js.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/bindings/js/efl_js/efl_js.cc b/src/bindings/js/efl_js/efl_js.cc index 093380f..c83d98d 100644 --- a/src/bindings/js/efl_js/efl_js.cc +++ b/src/bindings/js/efl_js/efl_js.cc @@ -266,6 +266,8 @@ EAPI void init(v8::Handle exports) static char* argv[] = {const_cast("node")}; ::elm_init(1, argv); + ::elm_need_ethumb(); + elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_HIDDEN); try --
[EGIT] [core/efl] master 15/16: eo: Fix compilation of macro in C++ because of goto
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6dc0a07a8582d5436ed1783d28033f48f3f8c8cc commit 6dc0a07a8582d5436ed1783d28033f48f3f8c8cc Author: Felipe Magno de Almeida Date: Tue Oct 25 12:21:12 2016 -0200 eo: Fix compilation of macro in C++ because of goto Moved variable cross-definition to the top, so no more cross-definition between goto would happen. --- src/lib/eo/Eo.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/lib/eo/Eo.h b/src/lib/eo/Eo.h index c5b4e75..4ca0713 100644 --- a/src/lib/eo/Eo.h +++ b/src/lib/eo/Eo.h @@ -747,13 +747,14 @@ typedef struct _Efl_Object_Call_Cache #define EFL_FUNC_COMMON_OP(Obj, Name, DefRet) \ static EFL_FUNC_TLS Efl_Object_Call_Cache ___cache; /* static 0 by default */ \ Efl_Object_Op_Call_Data ___call; \ - if (EINA_UNLIKELY((___cache.op == EFL_NOOP) || \ + _Eo_##Name##_func _func_;\ + if (EINA_UNLIKELY((___cache.op == EFL_NOOP) || \ (___cache.generation != _efl_object_init_generation))) \ goto __##Name##_op_create; /* yes a goto - see below */ \ __##Name##_op_create_done: \ if (!_efl_object_call_resolve((Eo *) Obj, #Name, &___call, &___cache, \ __FILE__, __LINE__)) return DefRet; \ - _Eo_##Name##_func _func_ = (_Eo_##Name##_func) ___call.func; + _func_ = (_Eo_##Name##_func) ___call.func; // yes this looks ugly with gotos BUT it moves rare "init" handling code // out of the hot path and thus l1 instruction cach prefetch etc. so it --
[EGIT] [core/efl] master 01/16: eo_js: Update event callback after return removal.
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=4ce9a424561af584bdb4638d5e848d168d48d9bc commit 4ce9a424561af584bdb4638d5e848d168d48d9bc Author: Lauro Moura Date: Wed Jun 29 17:23:31 2016 -0300 eo_js: Update event callback after return removal. --- src/bindings/js/eo_js/eo_js_event.hh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/bindings/js/eo_js/eo_js_event.hh b/src/bindings/js/eo_js/eo_js_event.hh index 283b018..45d023e 100644 --- a/src/bindings/js/eo_js/eo_js_event.hh +++ b/src/bindings/js/eo_js/eo_js_event.hh @@ -54,7 +54,7 @@ inline v8::Local get_event_info(void*, v8::Isolate* isolate, co } template -inline Eina_Bool event_callback(void* data, Efl_Event const* eo_event) +inline void event_callback(void* data, Efl_Event const* eo_event) { v8::Isolate* isolate = v8::Isolate::GetCurrent(); v8::HandleScope handle_scope(isolate); @@ -67,8 +67,6 @@ inline Eina_Bool event_callback(void* data, Efl_Event const* eo_event) get_event_info(eo_event->info, isolate, event->event_info->class_name) }; event->function.handle()->Call(eina::js::compatibility_global(), 2, call_args); - - return EO_CALLBACK_CONTINUE; } inline eina::js::compatibility_return_type on_event(eina::js::compatibility_callback_info_type args) --
[EGIT] [core/efl] master 16/16: js: Fix compilation of new data types in JS binding
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=297415cc53ebf7746642eb2e1c6c011b441bea01 commit 297415cc53ebf7746642eb2e1c6c011b441bea01 Author: Felipe Magno de Almeida Date: Tue Oct 25 12:21:34 2016 -0200 js: Fix compilation of new data types in JS binding --- src/Makefile_Eolian_Js.am | 4 ++-- src/bin/eolian_js/main.cc | 3 ++- src/bindings/js/eina_js/eina_js_compatibility.hh| 6 ++ src/bindings/js/eina_js/eina_js_get_value.hh| 13 + src/bindings/js/eina_js/eina_js_get_value_from_c.hh | 7 +++ src/bindings/js/eo_js/eo_js_constructor.hh | 2 +- 6 files changed, 31 insertions(+), 4 deletions(-) diff --git a/src/Makefile_Eolian_Js.am b/src/Makefile_Eolian_Js.am index b15fa87..8f6ba5c 100644 --- a/src/Makefile_Eolian_Js.am +++ b/src/Makefile_Eolian_Js.am @@ -52,7 +52,7 @@ tests_eolian_js_libeolian_js_suite_la_CPPFLAGS = \ -DTESTS_BUILD_DIR=\"$(top_builddir)/src/tests/eolian_js\" \ @CHECK_CFLAGS@ @EOLIAN_CXX_CFLAGS@ @EINA_JS_CFLAGS@ @EO_JS_CFLAGS@ \ @EOLIAN_CFLAGS@ @EINA_CFLAGS@ @EO_CFLAGS@ @ECORE_CFLAGS@ @EINA_CXX_CFLAGS@ \ -@EO_JS_CFLAGS@ @EO_CXX_CFLAGS@ +@EO_JS_CFLAGS@ @EO_CXX_CFLAGS@ @ECORE_CXX_CFLAGS@ tests_eolian_js_libeolian_js_suite_la_LIBADD = \ @CHECK_LIBS@ @USE_EO_LIBS@ @USE_EINA_LIBS@ @USE_EOLIAN_LIBS@ @USE_EFL_JS_LIBS@ tests_eolian_js_libeolian_js_suite_la_DEPENDENCIES = @USE_EINA_INTERNAL_LIBS@ @USE_EO_INTERNAL_LIBS@ @USE_EFL_JS_INTERNAL_LIBS@ @@ -109,7 +109,7 @@ tests_eolian_js_eolian_js_suite_CPPFLAGS = \ -DTESTS_BUILD_DIR=\"$(top_builddir)/src/tests/eolian_js\" \ @CHECK_CFLAGS@ @EOLIAN_CXX_CFLAGS@ @EINA_JS_CFLAGS@ @EO_JS_CFLAGS@ @EFL_JS_CFLAGS@ \ @EOLIAN_CFLAGS@ @EINA_CFLAGS@ @EO_CFLAGS@ @ECORE_CFLAGS@ @EINA_CXX_CFLAGS@ \ -@EO_JS_CFLAGS@ @EO_CXX_CFLAGS@ @EFL_JS_CFLAGS@ +@EO_JS_CFLAGS@ @EO_CXX_CFLAGS@ @EFL_JS_CFLAGS@ @ECORE_CXX_CFLAGS@ tests_eolian_js_eolian_js_suite_LDADD = \ @CHECK_LIBS@ @USE_EO_LIBS@ @USE_EINA_LIBS@ @USE_EOLIAN_LIBS@ @USE_EFL_JS_LIBS@ @USE_EVAS_LIBS@ @USE_EFL_JS_LIBS@ diff --git a/src/bin/eolian_js/main.cc b/src/bin/eolian_js/main.cc index d38700c..14d4e65 100644 --- a/src/bin/eolian_js/main.cc +++ b/src/bin/eolian_js/main.cc @@ -157,7 +157,8 @@ _eolian_type_cpp_type_named_get(const Eolian_Type *tp, std::string const& caller {"promise", "Eina_Promise"}, {"string", "const char*"}, {"void_ptr", "void *"}, - {"stringshare", "Eina_Stringshare*"} + {"stringshare", "Eina_Stringshare*"}, + {"future", "Efl_Future*"} }; diff --git a/src/bindings/js/eina_js/eina_js_compatibility.hh b/src/bindings/js/eina_js/eina_js_compatibility.hh index 7b5c920..37a9457 100644 --- a/src/bindings/js/eina_js/eina_js_compatibility.hh +++ b/src/bindings/js/eina_js/eina_js_compatibility.hh @@ -308,6 +308,12 @@ R wrap_value(T v, value_tag>) return R {v}; } +template +R wrap_value(T const& v, value_tag>) +{ + return R {const_cast(&v)}; +} + template struct _libv8_isolate_test { diff --git a/src/bindings/js/eina_js/eina_js_get_value.hh b/src/bindings/js/eina_js/eina_js_get_value.hh index 856e21f..3a96970 100644 --- a/src/bindings/js/eina_js/eina_js_get_value.hh +++ b/src/bindings/js/eina_js/eina_js_get_value.hh @@ -111,6 +111,19 @@ inline Eo* get_value_from_javascript return get_value_from_javascript(v, isolate, class_name, value_tag(), throw_js_exception); } +// Futures +template +Eo* get_value_from_javascript + (v8::Local + , v8::Isolate* + , const char* + , value_tag> + , bool = true) +{ + throw std::logic_error(""); + return nullptr; +} + template inline T get_value_from_javascript (v8::Local v diff --git a/src/bindings/js/eina_js/eina_js_get_value_from_c.hh b/src/bindings/js/eina_js/eina_js_get_value_from_c.hh index 4d71229..f949ae6 100644 --- a/src/bindings/js/eina_js/eina_js_get_value_from_c.hh +++ b/src/bindings/js/eina_js/eina_js_get_value_from_c.hh @@ -200,6 +200,13 @@ get_value_from_c(efl::eina::js::complex_tag v, v8::Isolat template inline v8::Local +get_value_from_c(efl::eina::js::complex_tag, v8::Isolate*, const char*) +{ + throw std::logic_error(""); +} + +template +inline v8::Local get_value_from_c(efl::eina::js::complex_tag v, v8::Isolate* isolate, const char* class_name) { // TODO implement const accessor? diff --git a/src/bindings/js/eo_js/eo_js_constructor.hh b/src/bindings/js/eo_js/eo_js_constructor.hh index 191eb9d..e0c0f2f 100644 --- a/src/bindings/js/eo_js/eo_js_constructor.hh +++ b/src/bindings/js/eo_js/eo_js_constructor.hh @@ -109,7 +109,7 @@ struct constructor_caller Eo* eo = efl_add (klass , parent - , eina::_mpl::for_each(constructors, call{efl_self, ¤t_index, &args}) + , eina::_mpl::for_each(constructors, call{efl_added, ¤t_index, &args}) ); if (!eo)
[EGIT] [core/efl] master 08/09: docs: interfaces: document missing structs in gfx interfaces
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=820d8f23f02771cd7646cfc35c949e98772f9be3 commit 820d8f23f02771cd7646cfc35c949e98772f9be3 Author: Stefan Schmidt Date: Tue Oct 25 15:23:50 2016 +0200 docs: interfaces: document missing structs in gfx interfaces --- src/lib/efl/interfaces/efl_gfx_types.eot | 27 ++- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/src/lib/efl/interfaces/efl_gfx_types.eot b/src/lib/efl/interfaces/efl_gfx_types.eot index 3483a77..db6962d 100644 --- a/src/lib/efl/interfaces/efl_gfx_types.eot +++ b/src/lib/efl/interfaces/efl_gfx_types.eot @@ -110,10 +110,10 @@ struct Efl.Gfx.Gradient.Stop struct Efl.Gfx.Stroke.Color { [[Internal structure for @Efl.Gfx.Stroke.]] - r: int; - g: int; - b: int; - a: int; + r: int; [[The component R color of the stroke]] + g: int; [[The component G color of the stroke]] + b: int; [[The component B color of the stroke]] + a: int; [[The component A color of the stroke]] } struct Efl.Gfx.Stroke @@ -122,19 +122,20 @@ struct Efl.Gfx.Stroke Describes the properties to define the path stroke. @since 1.14 ]] - scale: double; - width: double; - centered: double; - color: Efl.Gfx.Stroke.Color; - dash: Efl.Gfx.Dash*; - dash_length: uint; - cap: Efl.Gfx.Cap; - join: Efl.Gfx.Join; + scale: double; [[Stroke scale]] + width: double; [[Stroke width]] + centered: double; [[Stroke centered]] + color: Efl.Gfx.Stroke.Color; [[Stroke color]] + dash: Efl.Gfx.Dash*; [[Stroke dash]] + dash_length: uint; [[Stroke dash length]] + cap: Efl.Gfx.Cap; [[Stroke cap]] + join: Efl.Gfx.Join; [[Stroke join]] } struct Efl.Gfx.Shape.Public { - stroke: Efl.Gfx.Stroke; + [[Public shape]] + stroke: Efl.Gfx.Stroke; [[Internal representation as stroke]] } enum Efl.Gfx.Border_Fill_Mode --
[EGIT] [core/efl] master 09/09: docs: gfx interfaces: fix some typos in docs
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=89a4d2766438309ee13ee042f0a8c2bc47cd1a7d commit 89a4d2766438309ee13ee042f0a8c2bc47cd1a7d Author: Stefan Schmidt Date: Tue Oct 25 15:26:05 2016 +0200 docs: gfx interfaces: fix some typos in docs --- src/lib/efl/interfaces/efl_gfx_types.eot | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/lib/efl/interfaces/efl_gfx_types.eot b/src/lib/efl/interfaces/efl_gfx_types.eot index db6962d..29841a6 100644 --- a/src/lib/efl/interfaces/efl_gfx_types.eot +++ b/src/lib/efl/interfaces/efl_gfx_types.eot @@ -36,7 +36,7 @@ enum Efl.Gfx.Path.Command_Type { move_to, [[The next point is the start point of a sub path.]] line_to, [[The next point is used to draw a line from current point.]] cubic_to, [[The next three point is used to draw a cubic bezier curve from current point.]] - close, [[Close the curent subpath by drawing a line between current point and the first point of current subpath.]] + close, [[Close the current subpath by drawing a line between current point and the first point of current subpath.]] last [[Sentinel value to indicate last enum field during iteration]] } @@ -91,7 +91,7 @@ struct Efl.Gfx.Dash { @since 1.14 ]] length: double; [[Dash drawing length.]] - gap: double; [[Distance bettwen two dashes.]] + gap: double; [[Distance between two dashes.]] } struct Efl.Gfx.Gradient.Stop @@ -103,8 +103,8 @@ struct Efl.Gfx.Gradient.Stop offset: double; [[The location of the gradient stop within the gradient vector]] r: int; [[The component R color of the gradient stop]] g: int; [[The component G color of the gradient stop]] - b: int; [[The component B color of the graident stop]] - a: int; [[The component A color of the graident stop]] + b: int; [[The component B color of the gradient stop]] + a: int; [[The component A color of the gradient stop]] } struct Efl.Gfx.Stroke.Color --
[EGIT] [core/efl] master 03/09: docs: tree wide enum sentinel value documentation
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=7df301d8572de9f5eae74b3ccceb2e2c5a429439 commit 7df301d8572de9f5eae74b3ccceb2e2c5a429439 Author: Stefan Schmidt Date: Mon Oct 24 20:33:26 2016 +0200 docs: tree wide enum sentinel value documentation --- src/lib/efl/interfaces/efl_gfx_types.eot | 10 +- src/lib/elementary/elm_gesture_layer.eo| 2 +- src/lib/elementary/elm_interface_scrollable.eo | 4 ++-- src/lib/elementary/elm_map.eo | 8 src/lib/elementary/elm_photocam.eo | 2 +- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/lib/efl/interfaces/efl_gfx_types.eot b/src/lib/efl/interfaces/efl_gfx_types.eot index 04a7e93..00c8f4d 100644 --- a/src/lib/efl/interfaces/efl_gfx_types.eot +++ b/src/lib/efl/interfaces/efl_gfx_types.eot @@ -23,7 +23,7 @@ enum Efl.Gfx.Colorspace { enum Efl.Gfx.Render_Op { blend = 0, [[Alpha blending onto destination (default); d = d*(1-sa) + s.]] copy = 1, [[Copy source to destination; d = s.]] - last + last [[Sentinel value to indicate last enum field during iteration]] } enum Efl.Gfx.Path.Command_Type { @@ -35,7 +35,7 @@ enum Efl.Gfx.Path.Command_Type { line_to, [[The next point is used to draw a line from current point.]] cubic_to, [[The next three point is used to draw a cubic bezier curve from current point.]] close, [[Close the curent subpath by drawing a line between current point and the first point of current subpath.]] - last [[Not a valid command, but last one according to this version header.]] + last [[Sentinel value to indicate last enum field during iteration]] } enum Efl.Gfx.Cap { @@ -47,7 +47,7 @@ enum Efl.Gfx.Cap { butt = 0, [[The end of lines is rendered as a full stop on the last point itself.]] round, [[The end of lines is rendered as a half-circle around the last point.]] square,[[The end of lines is rendered as a square around the last point.]] - last [[End of enum value.]] + last [[Sentinel value to indicate last enum field during iteration]] } enum Efl.Gfx.Join @@ -59,7 +59,7 @@ enum Efl.Gfx.Join miter = 0, [[Used to render rounded line joins. Circular arcs are used to join two lines smoothly.]] round, [[Used to render beveled line joins. The outer corner of the joined lines is filled by enclosing the triangular region of the corner with a straight line between the outer corners of each stroke.]] bevel, [[Used to render mitered line joins. The intersection of the strokes is clipped at a line perpendicular to the bisector of the angle between the strokes, at the distance from the intersection of the segments equal to the product of the miter limit value and the border radius. This prevents long spikes being created.]] - last [[End of enum value]] + last [[Sentinel value to indicate last enum field during iteration]] } enum Efl.Gfx.Gradient.Spread @@ -71,7 +71,7 @@ enum Efl.Gfx.Gradient.Spread pad, [[The area is filled with the closest stop color. This is the default.]] reflect, [[The gradient is reflected outside the gradient area.]] repeat, [[The gradient is repeated outside the gradient area.]] - last [[End of enum value]] + last [[Sentinel value to indicate last enum field during iteration]] } enum Efl.Gfx.Fill.Rule diff --git a/src/lib/elementary/elm_gesture_layer.eo b/src/lib/elementary/elm_gesture_layer.eo index f02db39..d2a1f19 100644 --- a/src/lib/elementary/elm_gesture_layer.eo +++ b/src/lib/elementary/elm_gesture_layer.eo @@ -16,7 +16,7 @@ enum Elm.Gesture.Type n_flicks, [[N fingers flick gesture]] zoom, [[Zoom]] rotate, [[Rotate]] - last + last [[Sentinel value to indicate last enum field during iteration]] } enum Elm.Gesture.State diff --git a/src/lib/elementary/elm_interface_scrollable.eo b/src/lib/elementary/elm_interface_scrollable.eo index 0e23c55..adaf5ca 100644 --- a/src/lib/elementary/elm_interface_scrollable.eo +++ b/src/lib/elementary/elm_interface_scrollable.eo @@ -14,7 +14,7 @@ enum Elm.Scroller.Policy auto = 0, [[Show scrollbars as needed]] on, [[Always show scrollbars]] off, [[Never show scrollbars]] - last + last [[Sentinel value to indicate last enum field during iteration]] } enum Elm.Scroller.Single_Direction @@ -26,7 +26,7 @@ enum Elm.Scroller.Single_Direction none = 0, [[Scroll every direction]] soft, [[Scroll single direction if the direction is certain]] hard, [[Scroll only single direction]] - last + last [[Sentinel value to indicate last enum field during iteration]] } enum Elm.Scroller.Movement_Block diff --git a/src/lib/elementary/elm_map.eo b/src/lib/elementary/elm_map.eo index d47e046..7f47ff8 100644 --- a/src/lib/elementary/elm_map.eo +++ b/src/lib/elementary/elm_map.eo @@ -24,7 +24,7 @@ enum Elm.Map.Zoom_Mode manual,[[Zoom controlled manually by elm_map_zoom_set(). It's set by de
[EGIT] [core/efl] master 02/02: eolian gen: add -s for silencing type errors in validation
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=306aba78487120144ec455a274259f59e253fb6c commit 306aba78487120144ec455a274259f59e253fb6c Author: Daniel Kolesa Date: Tue Oct 25 16:01:54 2016 +0200 eolian gen: add -s for silencing type errors in validation --- src/bin/eolian/main.c | 9 +++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/bin/eolian/main.c b/src/bin/eolian/main.c index 8c8cb72..5946b83 100644 --- a/src/bin/eolian/main.c +++ b/src/bin/eolian/main.c @@ -43,6 +43,7 @@ _print_usage(const char *progn, FILE *outf) " -o type:name specify a particular output filename\n" " -hprint this message and exit\n" " -vprint version and exit\n" + " -ssilence type errors in validation\n" "\n" "Available types:\n" " h: C header file (.h)\n" @@ -397,7 +398,8 @@ main(int argc, char **argv) char *outs[5] = { NULL, NULL, NULL, NULL, NULL }; int gen_what = 0; - for (int opt; (opt = getopt(argc, argv, "I:g:o:hvV")) != -1;) + Eina_Bool silent_types = EINA_FALSE; + for (int opt; (opt = getopt(argc, argv, "I:g:o:shv")) != -1;) switch (opt) { case 0: @@ -449,6 +451,9 @@ main(int argc, char **argv) } else _fill_all_outs(outs, optarg); break; +case 's': + silent_types = EINA_TRUE; + break; case 'h': _print_usage(argv[0], stdout); goto end; @@ -480,7 +485,7 @@ main(int argc, char **argv) goto end; } - if (!eolian_database_validate(EINA_FALSE)) + if (!eolian_database_validate(silent_types)) { fprintf(stderr, "eolian: failed validating database\n"); goto end; --
[EGIT] [core/efl] master 01/09: elm: remove no longer needed Elm.App.View_State
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c8e4ae21d8aa6f438365259ee4bbf67da5b1367f commit c8e4ae21d8aa6f438365259ee4bbf67da5b1367f Author: Stefan Schmidt Date: Mon Oct 24 19:52:00 2016 +0200 elm: remove no longer needed Elm.App.View_State Left over from the elm app server/client removal. Hidden in an eo type file this was overlooked. --- src/lib/elementary/elm_general.eot | 9 - 1 file changed, 9 deletions(-) diff --git a/src/lib/elementary/elm_general.eot b/src/lib/elementary/elm_general.eot index eed0c98..f407613 100644 --- a/src/lib/elementary/elm_general.eot +++ b/src/lib/elementary/elm_general.eot @@ -212,15 +212,6 @@ enum Efl.Ui.Focus.Move_Policy Left, Right, Up, Down, Tab, or Shift+Tab.]] } -enum Elm.App.View_State -{ - unknown = 0, - live, - paused, - closed, - shallow, -} - enum Elm.Prefs.Reset_Mode { [[Modes of resetting a prefs widget. --
[EGIT] [core/efl] master 05/09: docs: ecore_con: document missing HTTP enums
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=a6022c170264dc29074212b280e2d946093e203a commit a6022c170264dc29074212b280e2d946093e203a Author: Stefan Schmidt Date: Tue Oct 25 13:03:46 2016 +0200 docs: ecore_con: document missing HTTP enums --- src/lib/ecore_con/efl_net_dialer_http.eo | 7 +- src/lib/ecore_con/efl_net_http_types.eot | 146 --- 2 files changed, 78 insertions(+), 75 deletions(-) diff --git a/src/lib/ecore_con/efl_net_dialer_http.eo b/src/lib/ecore_con/efl_net_dialer_http.eo index f9ceae2..b8c327d 100644 --- a/src/lib/ecore_con/efl_net_dialer_http.eo +++ b/src/lib/ecore_con/efl_net_dialer_http.eo @@ -1,9 +1,10 @@ import efl_net_http_types; enum Efl.Net.Dialer.Http.Primary_Mode { -auto, -download, -upload, +[[Primary HTTP mode]] +auto, [[HTTP auto mode]] +download, [[HTTP download mode]] +upload, [[HTTP upload mode]] } class Efl.Net.Dialer.Http (Efl.Loop_User, Efl.Net.Dialer, Efl.Io.Sizer) { diff --git a/src/lib/ecore_con/efl_net_http_types.eot b/src/lib/ecore_con/efl_net_http_types.eot index 895297f..328f59d 100644 --- a/src/lib/ecore_con/efl_net_http_types.eot +++ b/src/lib/ecore_con/efl_net_http_types.eot @@ -22,89 +22,91 @@ enum Efl.Net.Http.Authentication_Method { } enum Efl.Net.Http.Status { -[[Common HTTP status codes]] +[[Common HTTP status codes. A more detailed description on the various HTTPS status codes can be +found one Wikipedia: https://en.wikipedia.org/wiki/List_of_HTTP_status_codes]] -unknown = 0, [[unknown status, likely not connected]] +unknown = 0, [[HTTP status code: Unknown, likely not connected]] /* Informational: 1xx */ -continue = 100, -switching_protocols = 101, -checkpoint = 103, /* unofficial extension */ -processing = 102, +continue = 100, [[HTTP status code: continue]] +switching_protocols = 101, [[HTTP status code: switching protocols]] +checkpoint = 103, [[HTTP status code: checkpoint (unofficial extension)]] +processing = 102, [[HTTP status code: processing]] /* success: 2xx */ -ok = 200, -created = 201, -accepted = 202, -non_authoritative_information = 203, -no_content = 204, -reset_content = 205, -partial_content = 206, -multi_status = 207, -already_reported = 208, -im_used = 226, +ok = 200, [[HTTP status code: OK]] +created = 201, [[HTTP status code: created]] +accepted = 202, [[HTTP status code: accepted]] +non_authoritative_information = 203, [[HTTP status code: non authoritative information]] +no_content = 204, [[HTTP status code: no content]] +reset_content = 205, [[HTTP status code: reset content]] +partial_content = 206, [[HTTP status code: partial content]] +multi_status = 207, [[HTTP status code: multi status]] +already_reported = 208, [[HTTP status code: already reported]] +im_used = 226, [[HTTP status code: IM used]] /* redirection: 3xx */ -multiple_choices = 300, -moved_permanently = 301, -found = 302, -see_other = 303, -not_modified = 304, -use_proxy = 305, -switch_proxy = 306, -temporary_redirect = 307, -permanent_redirect = 308, +multiple_choices = 300, [[HTTP status code: multiple choices]] +moved_permanently = 301, [[HTTP status code: moved permanently]] +found = 302, [[HTTP status code: found]] +see_other = 303, [[HTTP status code: see other]] +not_modified = 304, [[HTTP status code: not modified]] +use_proxy = 305, [[HTTP status code: use proxy]] +switch_proxy = 306, [[HTTP status code: switch proxy]] +temporary_redirect = 307, [[HTTP status code: temporary redirect]] +permanent_redirect = 308, [[HTTP status code: permanent redirect]] /* client error: 4xx */ -bad_request = 400, -unauthorized = 401, -payment_required = 402, -forbidden = 403, -not_found = 404, -method_not_allowed = 405, -not_acceptable = 406, -proxy_authentication_required = 407, -request_timeout = 408, -conflict = 409, -gone = 410, -length_required = 411, -precondition_failed = 412, -payload_too_large = 413, -uri_too_long = 414, -unsupported_media_type = 415, -range_not_satisfiable = 416, -expectation_failed = 417, -misdirected_request = 421, -unprocessable_entity = 422, -locked = 423, -failed_dependency = 424, -upgrade_required = 426, -precondition_required = 428, -too_many_requests = 429, -request_header_fields_too_large = 431, -login_timeout = 440, /* unofficial extension */ -no_response = 444, /* unofficial extension */ -retry_with = 449, /* unofficial extension */ -blocked_by_windows_parental_controls = 450, /* unofficial extension */ -unavailable_for_legal_reasons = 451, -ssl_certificate_error = 495, /* unofficial extension */ -ssl_certificate_required = 496, /* unofficial exte
[EGIT] [core/efl] master 04/09: docs: elm_icon: fully document elm_icon eo file
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=fee28a5b1655c02244cb63e6ccc9c5eef8991f8c commit fee28a5b1655c02244cb63e6ccc9c5eef8991f8c Author: Stefan Schmidt Date: Mon Oct 24 20:51:04 2016 +0200 docs: elm_icon: fully document elm_icon eo file --- src/lib/elementary/elm_icon.eo | 12 +++- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/lib/elementary/elm_icon.eo b/src/lib/elementary/elm_icon.eo index da79c23..6d56165 100644 --- a/src/lib/elementary/elm_icon.eo +++ b/src/lib/elementary/elm_icon.eo @@ -1,13 +1,15 @@ enum Elm.Icon.Type { + [[Elementary icon types]] legacy: elm_icon; - none, - file, - standard + none, [[Icon has no type set]] + file, [[Icon is of type file]] + standard [[Icon is of type standard]] } class Elm.Icon (Efl.Ui.Image) { + [[Elementary Icon Class]] legacy_prefix: elm_icon; eo_prefix: elm_obj_icon; event_prefix: elm_icon; @@ -22,8 +24,8 @@ class Elm.Icon (Efl.Ui.Image) Efl.File.file.set; } events { - thumb,done; - thumb,error; + thumb,done; [[Called when thumb nailing is successfully done]] + thumb,error; [[Called when thumb nailing failed]] } } --
[EGIT] [core/efl] master 02/09: docs: harmonise use of enum sentinel description in eo files
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ef814db4900f97cd387cc729f06ee579c085998b commit ef814db4900f97cd387cc729f06ee579c085998b Author: Stefan Schmidt Date: Mon Oct 24 19:57:13 2016 +0200 docs: harmonise use of enum sentinel description in eo files --- src/lib/ecore_audio/ecore_audio.eo | 2 +- src/lib/ector/ector_renderer.eo | 2 +- src/lib/edje/edje_types.eot | 2 +- src/lib/elementary/elm_bg.eo | 2 +- src/lib/elementary/elm_calendar.eo | 2 +- src/lib/elementary/elm_dayselector.eo| 2 +- src/lib/elementary/elm_general.eot | 4 ++-- src/lib/elementary/elm_interface_fileselector.eo | 4 ++-- src/lib/elementary/elm_popup.eo | 2 +- src/lib/elementary/elm_web.eo| 2 +- 10 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/lib/ecore_audio/ecore_audio.eo b/src/lib/ecore_audio/ecore_audio.eo index 5d08762..3c37cc3 100644 --- a/src/lib/ecore_audio/ecore_audio.eo +++ b/src/lib/ecore_audio/ecore_audio.eo @@ -8,7 +8,7 @@ enum Ecore.Audio.Format { ogg, [[OGG]] flac, [[FLAC, the Free Lossless Audio Codec]] mp3, [[MP3 (not supported)]] -last [[Sentinel value, do not use]] +last [[Sentinel value to indicate last enum field during iteration]] } class Ecore.Audio (Efl.Object) diff --git a/src/lib/ector/ector_renderer.eo b/src/lib/ector/ector_renderer.eo index b2ac222..61fc3fb 100644 --- a/src/lib/ector/ector_renderer.eo +++ b/src/lib/ector/ector_renderer.eo @@ -6,7 +6,7 @@ enum Ector.Quality best, [[Best quality]] good, [[Good quality]] fast, [[Lower quality]] - last, [[Sentinel]] + last, [[Sentinel value to indicate last enum field during iteration]] } abstract Ector.Renderer (Efl.Object) diff --git a/src/lib/edje/edje_types.eot b/src/lib/edje/edje_types.eot index d78487e..78c3bed 100644 --- a/src/lib/edje/edje_types.eot +++ b/src/lib/edje/edje_types.eot @@ -134,7 +134,7 @@ enum Edje.External.Param_Type { bool, [[Parameter value is boolean.]] choice, [[Parameter value is one of a set of predefined string choices.]] - max [[Sentinel. Don't use.]] + max [[Sentinel value to indicate last enum field during iteration]] } struct Edje.External.Param { diff --git a/src/lib/elementary/elm_bg.eo b/src/lib/elementary/elm_bg.eo index bf5a377..1351123 100644 --- a/src/lib/elementary/elm_bg.eo +++ b/src/lib/elementary/elm_bg.eo @@ -10,7 +10,7 @@ enum Elm.Bg.Option scale, [[Scale the background image, retaining aspect ratio (default).]] stretch, [[Stretch the background image to fill the widget's area.]] tile, [[Tile background image at its original size.]] - last [[Sentinel value, also used to indicate errors.]] + last [[Sentinel value to indicate last enum field during iteration. Also used to indicate errors]] } class Elm.Bg (Elm.Layout, Efl.File) diff --git a/src/lib/elementary/elm_calendar.eo b/src/lib/elementary/elm_calendar.eo index 247455e..3b14fa5 100644 --- a/src/lib/elementary/elm_calendar.eo +++ b/src/lib/elementary/elm_calendar.eo @@ -37,7 +37,7 @@ enum Elm.Calendar.Weekday thursday, [[Thursday weekday]] friday, [[Friday weekday]] saturday, [[Saturday weekday]] - last [[Sentinel value to mark last entry]] + last [[Sentinel value to indicate last enum field during iteration]] } enum Elm.Calendar.Select.Mode diff --git a/src/lib/elementary/elm_dayselector.eo b/src/lib/elementary/elm_dayselector.eo index f7dee78..abcb8bb 100644 --- a/src/lib/elementary/elm_dayselector.eo +++ b/src/lib/elementary/elm_dayselector.eo @@ -14,7 +14,7 @@ enum Elm.Dayselector.Day thu,[[Indicates Thursday.]] fri,[[Indicates Friday.]] sat,[[Indicates Saturday.]] - max [[Sentinel value, don't use.]] + max [[Sentinel value to indicate last enum field during iteration]] } class Elm.Dayselector (Elm.Layout) diff --git a/src/lib/elementary/elm_general.eot b/src/lib/elementary/elm_general.eot index f407613..c078bfa 100644 --- a/src/lib/elementary/elm_general.eot +++ b/src/lib/elementary/elm_general.eot @@ -92,7 +92,7 @@ enum Elm.Policy @since 1.8 ]] - last + last [[Sentinel value to indicate last enum field during iteration]] } enum Elm.Policy.Quit @@ -177,7 +177,7 @@ enum Elm.Wrap.Type char, [[Char wrap - wrap between characters.]] word, [[Word wrap - wrap in allowed wrapping points (as defined in the unicode standard).]] mixed,[[Mixed wrap - Word wrap, and if that fails, char wrap.]] - last + last [[Sentinel value to indicate last enum field during iteration]] } enum Elm.Focus_Direction diff --git a/src/lib/elementary/elm_interface_fileselector.eo b/src/lib/elementary/elm_interface_fileselector.eo index 3d18012..9366e84 100644 --- a/src/lib/elementary/elm_interface_fileselector.eo +++ b/src/l
[EGIT] [core/efl] master 07/09: docs: document all missing enums
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=1ed2b0fbde07d6ae58ff9219eba26350f4471d80 commit 1ed2b0fbde07d6ae58ff9219eba26350f4471d80 Author: Stefan Schmidt Date: Tue Oct 25 15:09:59 2016 +0200 docs: document all missing enums With this commit we reach 100% enum doc coverage. The fields in the enums are still at 91%, but there is progress on that front as well. --- src/lib/ecore_audio/ecore_audio.eo| 1 + src/lib/elementary/elm_gengrid.eo | 5 +++-- src/lib/elementary/elm_sys_notify.eo | 1 + src/lib/elementary/elm_widget.eo | 7 --- src/lib/evas/canvas/efl_canvas_text_cursor.eo | 1 + 5 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/lib/ecore_audio/ecore_audio.eo b/src/lib/ecore_audio/ecore_audio.eo index 3c37cc3..234ef7d 100644 --- a/src/lib/ecore_audio/ecore_audio.eo +++ b/src/lib/ecore_audio/ecore_audio.eo @@ -2,6 +2,7 @@ type @extern Ecore.Audio.Vio: __undefined_type; /* FIXME: Had function pointer m type @extern efl_key_data_free_func: __undefined_type; /* FIXME: Function pointers not allowed. */ enum Ecore.Audio.Format { +[[Ecore audio format type]] auto, [[Automatically detect the format (for inputs)]] raw, [[RAW samples (float)]] wav, [[WAV format]] diff --git a/src/lib/elementary/elm_gengrid.eo b/src/lib/elementary/elm_gengrid.eo index fc7231e..0553f32 100644 --- a/src/lib/elementary/elm_gengrid.eo +++ b/src/lib/elementary/elm_gengrid.eo @@ -3,8 +3,9 @@ import ecore_types; enum Elm.Gengrid.Reorder_Type { - normal, [[ normal reorder type ]] - swap[[ swap reorder type ]] + [[Gengrid reorder modes]] + normal, [[Normal reorder type]] + swap[[Swap reorder type]] } class Elm.Gengrid (Elm.Layout, Elm.Interface_Scrollable, diff --git a/src/lib/elementary/elm_sys_notify.eo b/src/lib/elementary/elm_sys_notify.eo index db04299..5282db5 100644 --- a/src/lib/elementary/elm_sys_notify.eo +++ b/src/lib/elementary/elm_sys_notify.eo @@ -1,5 +1,6 @@ enum Elm.Sys_Notify.Server { + [[System notification server types]] none = 0, [[No notificationserver (disables notifications)]] dbus = 1 << 0 [[Use DBus as a notification server]] } diff --git a/src/lib/elementary/elm_widget.eo b/src/lib/elementary/elm_widget.eo index 6c8a131..10f0d5f 100644 --- a/src/lib/elementary/elm_widget.eo +++ b/src/lib/elementary/elm_widget.eo @@ -19,9 +19,10 @@ enum Elm.Activate enum Elm.Theme.Apply { - failed = 0, - default = 1, - success = 3 + [[Return codes when a Elementary theme is applied]] + failed = 0, [[Failed to apply theme]] + default = 1, [[Default return value]] + success = 3 [[Success to apply theme]] } struct Elm.Tooltip; diff --git a/src/lib/evas/canvas/efl_canvas_text_cursor.eo b/src/lib/evas/canvas/efl_canvas_text_cursor.eo index 4a7b97b..6317bf6 100644 --- a/src/lib/evas/canvas/efl_canvas_text_cursor.eo +++ b/src/lib/evas/canvas/efl_canvas_text_cursor.eo @@ -1,5 +1,6 @@ enum Efl.Canvas.Text.Cursor.Type { + [[Text cursor types]] before, under } --
[EGIT] [core/efl] master 06/09: docs: efl interfaces: document enums accross interfaces eo files
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=7d698bbfc1d305607436b8c164d04eeae250647a commit 7d698bbfc1d305607436b8c164d04eeae250647a Author: Stefan Schmidt Date: Tue Oct 25 15:08:33 2016 +0200 docs: efl interfaces: document enums accross interfaces eo files --- src/lib/efl/interfaces/efl_gfx_buffer.eo | 9 + src/lib/efl/interfaces/efl_gfx_types.eot | 3 +++ src/lib/efl/interfaces/efl_image_animated.eo | 1 + src/lib/efl/interfaces/efl_io_positioner.eo | 7 --- src/lib/efl/interfaces/efl_text_types.eot| 11 ++- 5 files changed, 19 insertions(+), 12 deletions(-) diff --git a/src/lib/efl/interfaces/efl_gfx_buffer.eo b/src/lib/efl/interfaces/efl_gfx_buffer.eo index daa829b..bde430a 100644 --- a/src/lib/efl/interfaces/efl_gfx_buffer.eo +++ b/src/lib/efl/interfaces/efl_gfx_buffer.eo @@ -3,10 +3,11 @@ import eina_types; /* FIXME: this is very very low level. expose to apps? */ enum Efl.Gfx.Buffer.Access_Mode { - none = 0x0, - read = 0x1, - write = 0x2, - cow = 0x4, [[Forces copy-on-write if already mapped as read-only. Requires write.]] + [[Graphics buffer access mode]] + none = 0x0, [[No buffer access]] + read = 0x1, [[Read access to buffer]] + write = 0x2, [[Write aces to buffer]] + cow = 0x4, [[Forces copy-on-write if already mapped as read-only. Requires write.]] } /* FIXME: YUV and other planar formats are not properly handled in this API! */ diff --git a/src/lib/efl/interfaces/efl_gfx_types.eot b/src/lib/efl/interfaces/efl_gfx_types.eot index 00c8f4d..3483a77 100644 --- a/src/lib/efl/interfaces/efl_gfx_types.eot +++ b/src/lib/efl/interfaces/efl_gfx_types.eot @@ -1,4 +1,5 @@ enum Efl.Gfx.Colorspace { + [[Graphics colorspace type]] argb, [[ARGB 32 bits per pixel, high-byte is Alpha, accessed one 32bit word at a time.]] ycbcr422p601_pl, [[YCbCr 4:2:2 Planar, ITU.BT-601 specifications. The data pointed to is just an array of row pointer, pointing to the Y rows, then the Cb, then Cr rows.]] ycbcr422p709_pl, [[YCbCr 4:2:2 Planar, ITU.BT-709 specifications. The data pointed to is just an array of row pointer, pointing to the Y rows, then the Cb, then Cr rows.]] @@ -21,6 +22,7 @@ enum Efl.Gfx.Colorspace { } enum Efl.Gfx.Render_Op { + [[Graphics render operation mode]] blend = 0, [[Alpha blending onto destination (default); d = d*(1-sa) + s.]] copy = 1, [[Copy source to destination; d = s.]] last [[Sentinel value to indicate last enum field during iteration]] @@ -180,6 +182,7 @@ enum Efl.Gfx.Size.Hint.Aspect enum Efl.Image.Load.Error { + [[Image load error type]] none = 0, [[No error on load]] generic = 1,[[A non-specific error occurred]] does_not_exist = 2, [[File (or file path) does not exist]] diff --git a/src/lib/efl/interfaces/efl_image_animated.eo b/src/lib/efl/interfaces/efl_image_animated.eo index 18e7ad1..7799c90 100644 --- a/src/lib/efl/interfaces/efl_image_animated.eo +++ b/src/lib/efl/interfaces/efl_image_animated.eo @@ -2,6 +2,7 @@ /* type @extern Evas.Animated_Loop_Hint: int; */ enum Efl.Image.Animated.Loop_Hint { + [[Image animation loop modes]] none = 0, [[No looping order specified.]] loop = 1, [[Standard loop: 1->2->3->1->2->3->1]] pingpong = 2[[Ping-pong bouncing loop: 1->2->3->2->1->2->3->1]] diff --git a/src/lib/efl/interfaces/efl_io_positioner.eo b/src/lib/efl/interfaces/efl_io_positioner.eo index 1c25b77..7e4c791 100644 --- a/src/lib/efl/interfaces/efl_io_positioner.eo +++ b/src/lib/efl/interfaces/efl_io_positioner.eo @@ -1,9 +1,10 @@ import eina_types; enum Efl.Io.Positioner.Whence { -start, [[seek from start of the stream/file]] -current, [[seek from current position]] -end, [[seek from the end of stream/file]] +[[Seek position modes]] +start, [[Seek from start of the stream/file]] +current, [[Seek from current position]] +end, [[Seek from the end of stream/file]] } mixin Efl.Io.Positioner { diff --git a/src/lib/efl/interfaces/efl_text_types.eot b/src/lib/efl/interfaces/efl_text_types.eot index c44f0ec..199fdb0 100644 --- a/src/lib/efl/interfaces/efl_text_types.eot +++ b/src/lib/efl/interfaces/efl_text_types.eot @@ -1,7 +1,8 @@ enum Efl.Text.Bidirectional_Type { - natural = 0, - neutral = 0, - ltr, - rtl, - inherit + [[Bidirectionaltext type]] + natural = 0, [[Natural text type, same as neutral]] + neutral = 0, [[Neutral text type, same as natural]] + ltr, [[Left to right text type]] + rtl, [[Right to left text type]] + inherit [[Inherit text type]] } --
[EGIT] [core/efl] master 01/02: eolian gen: always validate database
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=3758d5b9fa002479aff67ac64a1ebf25cf26f570 commit 3758d5b9fa002479aff67ac64a1ebf25cf26f570 Author: Daniel Kolesa Date: Tue Oct 25 15:59:41 2016 +0200 eolian gen: always validate database --- src/bin/eolian/main.c | 6 ++ 1 file changed, 6 insertions(+) diff --git a/src/bin/eolian/main.c b/src/bin/eolian/main.c index 1b29327..8c8cb72 100644 --- a/src/bin/eolian/main.c +++ b/src/bin/eolian/main.c @@ -480,6 +480,12 @@ main(int argc, char **argv) goto end; } + if (!eolian_database_validate(EINA_FALSE)) + { +fprintf(stderr, "eolian: failed validating database\n"); +goto end; + } + _fill_all_outs(outs, input); const char *eobn = _get_filename(input); --
[EGIT] [core/efl] master 01/01: ecore con: fix invalid doc reference
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=08f11e2c4616af62a0a9e4353dc98281d64475da commit 08f11e2c4616af62a0a9e4353dc98281d64475da Author: Daniel Kolesa Date: Tue Oct 25 15:54:46 2016 +0200 ecore con: fix invalid doc reference Fixes T4761 (also spank @barbieri) --- src/lib/ecore_con/efl_net_server_udp.eo | 2 +- src/lib/ecore_con/efl_net_socket_udp.eo | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/ecore_con/efl_net_server_udp.eo b/src/lib/ecore_con/efl_net_server_udp.eo index b1908d4..e3b0df2 100644 --- a/src/lib/ecore_con/efl_net_server_udp.eo +++ b/src/lib/ecore_con/efl_net_server_udp.eo @@ -54,7 +54,7 @@ class Efl.Net.Server.Udp (Efl.Net.Server.Fd) { The multicast address should be in the format: - IP@INTERFACE + IP\@INTERFACE With '\@INTERFACE' being optional, such as: diff --git a/src/lib/ecore_con/efl_net_socket_udp.eo b/src/lib/ecore_con/efl_net_socket_udp.eo index 40e4169..4934bd9 100644 --- a/src/lib/ecore_con/efl_net_socket_udp.eo +++ b/src/lib/ecore_con/efl_net_socket_udp.eo @@ -76,7 +76,7 @@ class Efl.Net.Socket.Udp (Efl.Net.Socket.Fd) { The multicast address should be in the format: - IP@INTERFACE + IP\@INTERFACE With '\@INTERFACE' being optional, such as: --
[EGIT] [tools/eflete] master 01/01: property_group: use correct currently selected resource on property filtering
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=56de9e0cb73aef0c5424035d28885d845e25962e commit 56de9e0cb73aef0c5424035d28885d845e25962e Author: Vitalii Vorobiov Date: Tue Oct 25 15:26:12 2016 +0300 property_group: use correct currently selected resource on property filtering Fixes T4690 --- src/bin/ui/property/property_group.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/bin/ui/property/property_group.c b/src/bin/ui/property/property_group.c index 3ccf9c2..1469386 100644 --- a/src/bin/ui/property/property_group.c +++ b/src/bin/ui/property/property_group.c @@ -441,6 +441,8 @@ _filter_cb(Property_Attribute *pa) return !!(pa->filter_data.part_types & PART_MASK(((Part2 *)group_pd.group->current_selected)->type)); else if (group_pd.group->current_selected->common.type == RESOURCE2_TYPE_STATE) return !!(pa->filter_data.part_types & PART_MASK(((State2 *)group_pd.group->current_selected)->part->type)); + else if (group_pd.group->current_selected->common.type == RESOURCE2_TYPE_ITEM) + return !!(pa->filter_data.part_types & PART_MASK(((Part_Item2 *)group_pd.group->current_selected)->part->type)); else if (group_pd.group->current_selected->common.type == RESOURCE2_TYPE_PROGRAM) return !!(pa->filter_data.action_types & ACTION_MASK(((Program2 *)group_pd.group->current_selected)->type)); else --
Re: [E-devel] Python-Efl doesn't compile
Thanks for that. Everything was working fine except the Python lookups as root due to profile.d or whatever alternatives seemingly not contributing to the sudo environment. It would benefit from more investigation but for now it's working with Python-efl as well. Cheers, Andy On Tue, 25 Oct 2016 at 11:10, Jérémy Zurcher wrote: > On Tuesday 25 October 2016 10:41, Al Poole wrote : > > > > > > > > > With a distro maintainer hat on a script like this shouldn't install to > > > /usr by default that will cause alot of issues with package managers > etc > > > so either /usr/local or /opt is the correct place, at the same time > this > > > means that the script probably needs to make some symlinks into /etc > and > > > have a way to reset them. > > > > > > I'll add don't use /usr/local either as that's where FreeBSD and > OpenBSD > > store third-party _packages_. > > > > So that leaves.../opt or /sw or whatever you like, probably /opt! > > I use PREFIX=/opt/efl for years now, > > compile efl with : > --with-dbus-services=/usr/share/dbus-1/services > > compile enlightenment with >--sysconfdir=/etc --libexecdir=$PREFIX/lib/enlightenment > > and generate >echo "$PREFIX/lib" > /etc/ld.so.conf.d/efl.conf > > and >echo -e "export EFLDIR=$PREFIX\nexport PATH=\$PATH:\$EFLDIR/bin\nexport > PKG_CONFIG_PATH=\$PKG_CONFIG_PATH:\$EFLDIR/lib/pkgconfig" > > /etc/profile.d/efl.sh > > it works like a charm ;) > > > > ! :) > > > -- > > The Command Line: Reinvented for Modern Developers > > Did the resurgence of CLI tooling catch you by surprise? > > Reconnect with the command line and become more productive. > > Learn the new .NET and ASP.NET CLI. Get your free copy! > > http://sdm.link/telerik > > ___ > > enlightenment-devel mailing list > > enlightenment-devel@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > --- Hell'O from Yverdoom > > Jérémy (jeyzu) > > > -- > The Command Line: Reinvented for Modern Developers > Did the resurgence of CLI tooling catch you by surprise? > Reconnect with the command line and become more productive. > Learn the new .NET and ASP.NET CLI. Get your free copy! > http://sdm.link/telerik > ___ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > -- The Command Line: Reinvented for Modern Developers Did the resurgence of CLI tooling catch you by surprise? Reconnect with the command line and become more productive. Learn the new .NET and ASP.NET CLI. Get your free copy! http://sdm.link/telerik ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 01/02: efl_net_server_udp_client: add missing part of name.
barbieri pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6d1a54ed8ec80f0fe145130457d79dac372c0fed commit 6d1a54ed8ec80f0fe145130457d79dac372c0fed Author: Gustavo Sverzut Barbieri Date: Mon Oct 24 19:47:15 2016 -0200 efl_net_server_udp_client: add missing part of name. --- src/lib/ecore_con/ecore_con_private.h | 2 +- src/lib/ecore_con/efl_net_server_udp.c| 2 +- src/lib/ecore_con/efl_net_server_udp_client.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/ecore_con/ecore_con_private.h b/src/lib/ecore_con/ecore_con_private.h index 035ba19..b8c67e6 100644 --- a/src/lib/ecore_con/ecore_con_private.h +++ b/src/lib/ecore_con/ecore_con_private.h @@ -397,7 +397,7 @@ void ecore_con_mempool_shutdown(void); #define AI_V4MAPPED 0 #endif -void _efl_net_server_udp_init(Eo *client, SOCKET fd, const struct sockaddr *addr, socklen_t addrlen, const char *str); +void _efl_net_server_udp_client_init(Eo *client, SOCKET fd, const struct sockaddr *addr, socklen_t addrlen, const char *str); void _efl_net_server_udp_client_feed(Eo *client, Eina_Rw_Slice slice); Eina_Bool efl_net_ip_port_fmt(char *buf, int buflen, const struct sockaddr *addr); diff --git a/src/lib/ecore_con/efl_net_server_udp.c b/src/lib/ecore_con/efl_net_server_udp.c index 33fe1db..8b5e078 100644 --- a/src/lib/ecore_con/efl_net_server_udp.c +++ b/src/lib/ecore_con/efl_net_server_udp.c @@ -283,7 +283,7 @@ _efl_net_server_udp_efl_net_server_fd_process_incoming_data(Eo *o, Efl_Net_Serve efl_io_closer_close_on_destructor_set(efl_added, EINA_TRUE), efl_net_socket_address_local_set(efl_added, efl_net_server_address_get(o)), -_efl_net_server_udp_init(efl_added, fd, (const struct sockaddr *)&addr, addrlen, str), +_efl_net_server_udp_client_init(efl_added, fd, (const struct sockaddr *)&addr, addrlen, str), efl_io_writer_can_write_set(efl_added, EINA_TRUE)); if (!client) { diff --git a/src/lib/ecore_con/efl_net_server_udp_client.c b/src/lib/ecore_con/efl_net_server_udp_client.c index b1e2592..c569295 100644 --- a/src/lib/ecore_con/efl_net_server_udp_client.c +++ b/src/lib/ecore_con/efl_net_server_udp_client.c @@ -89,7 +89,7 @@ _efl_net_server_udp_client_efl_object_destructor(Eo *o, Efl_Net_Server_Udp_Clien } void -_efl_net_server_udp_init(Eo *o, SOCKET fd, const struct sockaddr *addr, socklen_t addrlen, const char *str) +_efl_net_server_udp_client_init(Eo *o, SOCKET fd, const struct sockaddr *addr, socklen_t addrlen, const char *str) { Efl_Net_Server_Udp_Client_Data *pd = efl_data_scope_get(o, MY_CLASS); pd->fd = fd; --
[EGIT] [core/efl] master 02/02: efl_net_*_udp: make UDP usable, including multicast.
barbieri pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=cd53f9bad21128bffc6bf4f6f481e2642be2d4dd commit cd53f9bad21128bffc6bf4f6f481e2642be2d4dd Author: Gustavo Sverzut Barbieri Date: Tue Oct 25 10:03:34 2016 -0200 efl_net_*_udp: make UDP usable, including multicast. This was a huge work, but now UDP is usable as seen in the examples. Instead of relying on 'connect()', just do 'sendto()' and 'recvfrom()' as they are universal. Multicast address can only be connected in IPv4, IPv6 wasn't working and I'm not sure the IPv4 is portable to other platforms. Dialer will auto-join multicast groups is the dialed address is one. Multicast properties such as time to live (hops) and loopback can be configured. When joining multicast groups, the local address/interface can be configured by 'IP@IFACE' format, with '@IFACE' being optional. Dialers will now auto-bind, so it can receive data as dialers are expected to be bi-directional. One can manually specify the binding address if there is such need. Since datagrams must be read in their full size, otherwise the remaining bits are dropped, expose next_datagram_size_query() in both Efl.Net.Socket.Udp and Efl.Net.Server.Udp.Client. To finalize UDP for real we need to introduce an 'Efl_Net_Ip_Address' structure to serve as both IPv4 and IPv6 and expose 'sendto()' and 'recvfrom()'. These will come later as this commit is already too big. --- src/examples/ecore/efl_net_dialer_udp_example.c | 68 ++- src/examples/ecore/efl_net_server_example.c | 39 +- src/lib/ecore_con/ecore_con.c | 316 +++- src/lib/ecore_con/ecore_con_private.h | 91 src/lib/ecore_con/efl_net_dialer_udp.c | 199 ++-- src/lib/ecore_con/efl_net_dialer_udp.eo | 19 + src/lib/ecore_con/efl_net_server_udp.c | 214 - src/lib/ecore_con/efl_net_server_udp.eo | 70 +++ src/lib/ecore_con/efl_net_server_udp_client.c | 10 + src/lib/ecore_con/efl_net_server_udp_client.eo | 11 + src/lib/ecore_con/efl_net_socket_udp.c | 614 ++-- src/lib/ecore_con/efl_net_socket_udp.eo | 127 + 12 files changed, 1642 insertions(+), 136 deletions(-) diff --git a/src/examples/ecore/efl_net_dialer_udp_example.c b/src/examples/ecore/efl_net_dialer_udp_example.c index 846a17c..dccbb5e 100644 --- a/src/examples/ecore/efl_net_dialer_udp_example.c +++ b/src/examples/ecore/efl_net_dialer_udp_example.c @@ -12,15 +12,33 @@ static int needed_reads = 0; static void _connected(void *data EINA_UNUSED, const Efl_Event *event) { - fprintf(stderr, "INFO: connected %s\n", - efl_net_dialer_address_dial_get(event->object)); + fprintf(stderr, + "INFO: connected to '%s' (%s)\n" + "INFO: - local address=%s\n" + "INFO: - read-after-write=%d reads required\n" + "INFO: - cork=%hhu\n" + "INFO: - timeout_dial=%fs\n" + "INFO: - reuse address=%hhu\n" + "INFO: - reuse port=%hhu\n" + "INFO: - multicast TTL: %u\n" + "INFO: - multicast loopback: %u\n" + "INFO: - multicast groups:\n", + efl_net_dialer_address_dial_get(event->object), + efl_net_socket_address_remote_get(event->object), + efl_net_socket_address_local_get(event->object), + needed_reads, + efl_net_socket_udp_cork_get(event->object), + efl_net_dialer_timeout_dial_get(event->object), + efl_net_socket_udp_reuse_address_get(event->object), + efl_net_socket_udp_reuse_port_get(event->object), + efl_net_socket_udp_multicast_time_to_live_get(event->object), + efl_net_socket_udp_multicast_loopback_get(event->object)); } static void _can_read(void *data EINA_UNUSED, const Efl_Event *event) { - char buf[1024]; - Eina_Rw_Slice rw_slice = {.mem = buf, .len = sizeof(buf)}; + Eina_Rw_Slice rw_slice; Eina_Error err; Eina_Bool can_read = efl_io_reader_can_read_get(event->object); @@ -33,9 +51,15 @@ _can_read(void *data EINA_UNUSED, const Efl_Event *event) if (!needed_reads) return; + rw_slice.len = efl_net_socket_udp_next_datagram_size_query(event->object); + rw_slice.mem = malloc(rw_slice.len); + EINA_SAFETY_ON_NULL_RETURN(rw_slice.mem); err = efl_io_reader_read(event->object, &rw_slice); if (err) { +free(rw_slice.mem); +if (err == EAGAIN) /* EAGAIN for spurious packets */ + return; fprintf(stderr, "ERROR: could not read: %s\n", eina_error_msg_get(err)); retval = EXIT_FAILURE; ecore_main_loop_quit(); @@ -50,6 +74,7 @@ _can_read(void *data EINA_UNUSED, const Efl_Event *event) retval = EXIT_SUCCESS; ecore_main_loop_quit(); } + free(rw_slice.mem); } static void @@ -149,10 +174,16
[EGIT] [core/enlightenment] master 01/01: reset elementary softcursor config on shutdown
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=bdd290591c081f2e8935a7579b46e052367c8446 commit bdd290591c081f2e8935a7579b46e052367c8446 Author: Chris Michael Date: Tue Oct 25 07:44:41 2016 -0400 reset elementary softcursor config on shutdown This is needed because if we shutdown E then try to run EFL apps in Weston, the Elm Softcursor mode would have been saved as 'off' so we should be sure to reset this. Signed-off-by: Chris Michael --- src/bin/e_comp_wl.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 8607427..cf3c76e 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -2903,6 +2903,8 @@ e_comp_wl_shutdown(void) /* free(global); */ /* } */ + elm_config_softcursor_mode_set(ELM_SOFTCURSOR_MODE_AUTO); + if (e_comp_wl->wl.shm) wl_shm_destroy(e_comp_wl->wl.shm); _e_comp_wl_gl_shutdown(); --
Re: [E-devel] Python-Efl doesn't compile
On Tuesday 25 October 2016 10:41, Al Poole wrote : > > > > > > With a distro maintainer hat on a script like this shouldn't install to > > /usr by default that will cause alot of issues with package managers etc > > so either /usr/local or /opt is the correct place, at the same time this > > means that the script probably needs to make some symlinks into /etc and > > have a way to reset them. > > > > I'll add don't use /usr/local either as that's where FreeBSD and OpenBSD > store third-party _packages_. > > So that leaves.../opt or /sw or whatever you like, probably /opt! I use PREFIX=/opt/efl for years now, compile efl with : --with-dbus-services=/usr/share/dbus-1/services compile enlightenment with --sysconfdir=/etc --libexecdir=$PREFIX/lib/enlightenment and generate echo "$PREFIX/lib" > /etc/ld.so.conf.d/efl.conf and echo -e "export EFLDIR=$PREFIX\nexport PATH=\$PATH:\$EFLDIR/bin\nexport PKG_CONFIG_PATH=\$PKG_CONFIG_PATH:\$EFLDIR/lib/pkgconfig" > /etc/profile.d/efl.sh it works like a charm ;) > > ! :) > -- > The Command Line: Reinvented for Modern Developers > Did the resurgence of CLI tooling catch you by surprise? > Reconnect with the command line and become more productive. > Learn the new .NET and ASP.NET CLI. Get your free copy! > http://sdm.link/telerik > ___ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel --- Hell'O from Yverdoom Jérémy (jeyzu) -- The Command Line: Reinvented for Modern Developers Did the resurgence of CLI tooling catch you by surprise? Reconnect with the command line and become more productive. Learn the new .NET and ASP.NET CLI. Get your free copy! http://sdm.link/telerik ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Python-Efl doesn't compile
On 10/25/2016 08:11 PM, Al Poole wrote: >> >> >> With a distro maintainer hat on a script like this shouldn't install to >> /usr by default that will cause alot of issues with package managers etc >> so either /usr/local or /opt is the correct place, at the same time this >> means that the script probably needs to make some symlinks into /etc and >> have a way to reset them. >> >> I'll add don't use /usr/local either as that's where FreeBSD and OpenBSD > store third-party _packages_. > > So that leaves.../opt or /sw or whatever you like, probably /opt! > > ! :) Well essentially this script is a 3rd party package so unless the BSD packages people are working on are also installing to /usr/local it should be fine. -- 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 -- The Command Line: Reinvented for Modern Developers Did the resurgence of CLI tooling catch you by surprise? Reconnect with the command line and become more productive. Learn the new .NET and ASP.NET CLI. Get your free copy! http://sdm.link/telerik___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Python-Efl doesn't compile
> > > With a distro maintainer hat on a script like this shouldn't install to > /usr by default that will cause alot of issues with package managers etc > so either /usr/local or /opt is the correct place, at the same time this > means that the script probably needs to make some symlinks into /etc and > have a way to reset them. > > I'll add don't use /usr/local either as that's where FreeBSD and OpenBSD store third-party _packages_. So that leaves.../opt or /sw or whatever you like, probably /opt! ! :) -- The Command Line: Reinvented for Modern Developers Did the resurgence of CLI tooling catch you by surprise? Reconnect with the command line and become more productive. Learn the new .NET and ASP.NET CLI. Get your free copy! http://sdm.link/telerik ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 01/01: emotion - add vpath support for file_set on emotion objects
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=534c3c91b79268fa03383f85ffe51782ca47c112 commit 534c3c91b79268fa03383f85ffe51782ca47c112 Author: Carsten Haitzler (Rasterman) Date: Tue Oct 25 18:34:25 2016 +0900 emotion - add vpath support for file_set on emotion objects this completes my todo list for vpath path support at least for now (evas images, edje objects and emotion objects). now vpath's work for these too. --- src/lib/emotion/emotion_smart.c | 13 - 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/lib/emotion/emotion_smart.c b/src/lib/emotion/emotion_smart.c index 52ae0e6..bc3a7eb 100644 --- a/src/lib/emotion/emotion_smart.c +++ b/src/lib/emotion/emotion_smart.c @@ -374,17 +374,28 @@ _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; + eina_stringshare_replace(&sd->file, file); emotion_engine_instance_file_close(sd->engine_instance); evas_object_image_data_set(sd->obj, NULL); evas_object_image_size_set(sd->obj, 1, 1); _emotion_image_data_zero(sd->obj); sd->open = 0; -if (!emotion_engine_instance_file_open(sd->engine_instance, sd->file)) + +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); +file2 = efl_vpath_file_result_get(file_obj); + +if (!emotion_engine_instance_file_open(sd->engine_instance, file2)) { WRN("Couldn't open file=%s", sd->file); + efl_del(file_obj); return EINA_FALSE; } +efl_del(file_obj); DBG("successfully opened file=%s", sd->file); sd->pos = 0.0; if (sd->play) emotion_engine_instance_play(sd->engine_instance, 0.0); --
Re: [E-devel] Python-Efl doesn't compile
On 10/25/2016 07:22 PM, Davide Andreoli wrote: > 2016-10-25 1:08 GMT+02:00 Simon Lees : > >> >> >> On 10/25/2016 08:58 AM, Andrew Williams wrote: >>> That could work but it may have needed lots more env passed in. On IRC >> dave >>> pointed out that sudo -E should work, and it did :) >>> >> While it works it also adds additional security risks due to the >> potential for environment variable injection so its use should be >> strongly discouraged. >> > > indeed, and also it is not supported everywhere, it is probably easy > to find systems where it is not allowed by sudo config. > > The real problem here is that Efler (by default) install stuff in /opt/efler > that is a non standard place. You will have tons of issues in systems > different than yours, fe: how installed efl apps will find the installed > libs? > are you installing something in /etc/ld.so.conf.d ? > > I think that Efler should not change the PREFIX by default, just don't > pass --prefix so that the system can choose the best place to install > ...of course let the user override it > With a distro maintainer hat on a script like this shouldn't install to /usr by default that will cause alot of issues with package managers etc so either /usr/local or /opt is the correct place, at the same time this means that the script probably needs to make some symlinks into /etc and have a way to reset them. > > >> >>> On Mon, 24 Oct 2016 at 20:46, Massimo Maiurana >> wrote: >>> Uh? I usually install in /opt/e17 via sudo just exporting PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/e17/lib/pkgconfig, maybe you can set something similar in your scripts. Bye Massimo Andrew Williams ha scritto il 24/10/2016 alle 20:59: > Hi, > > The sudo python setup.py install does not work as sodos pkgconfig >> cannot > find efl it seems... > > Andy > > On Mon, 24 Oct 2016 at 18:26, Davide Andreoli > wrote: > >> 2016-10-23 21:42 GMT+02:00 Andrew Williams : >> >>> My apologies you are quite right - it is building just fine. Sorry >> for >>> that, my info was out of date >>> >> >> :) >> >> >>> I can't get it installed however - perhaps you can help? Regular user >>> cannot write to site-packages but sudo does not have efl paths setup. Is >> it >>> possible to make it work like the main build so your user does all of the >>> building and sudo can blindly install? >>> >> >> sure, try: >> python setup.py build >> sudo python setup.py install >> >> >>> >>> Many thanks indeed - if I solve this I can include it in Efler as I >> hoped. >>> (And egitu and a bunch of those great apps) >>> >> >> Great, If you add it to efler I highly suggest to go with python3 by >> default, >> just use python3 in all the setup.py commands. >> >> (and sadly I have no time to maintain egitu atm, it have some small issues, >> but it's usable, I use it every time I use git, it just have some >> issue >> with refreshing >> the contents at the correct time) >> >> >>> >>> Andrew >>> >>> On Sun, 23 Oct 2016 at 20:29, Davide Andreoli < >> d...@gurumeditation.it> >>> wrote: >>> 2016-10-22 16:18 GMT+02:00 Andrew Williams : > I'm pretty sure the python bindings have not been updated in a >> while. >>> As > our development moves on so quickly these unmaintained portions >> fall behind > fast. > really sure? did you follow the git commit list? maybe you missed my commits from the last week We (me and kuuko) do our best to keep the bindings in sync also >> during >>> the development phases. We usually are behind efl by one week or so! I'm a bit offended that you put python-efl in the "unmaintained" >> land, seems all my effort to constantly update the bindings to #FollowTheWhiteRabbit really goes into the void :( btw, you are just wrong: python-efl is one of the most maintained >> bit outside the core libs, and is currently in sync with efl master :P > > If we can resolve this then I will be able to pop python-efl and >> the >>> apps > that rely on it into the Efler app installer :) > > Andrew > > On Sat, 22 Oct 2016 at 12:58 Massimo Maiurana wrote: > >> I don't know if it's something wrong in my setup, but lately >> I'm not able to build Python bindings anymore. I attach the build >> log to >> preserve its lines length. >> >> -- >> Massimo Maiurana >> Ragusa (RG) >> >> > -- >>>
Re: [E-devel] Python-Efl doesn't compile
Yeah, Each system should have a prefix that best suits it. Between OS and even Linux distributions prefix changes could be difficult to accommodate, at least completely. I don't suppose the prefix matters so much if EFLer fully respects that. Maybe it should be down to the judgement of those adding support to EFLer for their chosen OS. On Tue, Oct 25, 2016 at 9:59 AM, Andrew Williams wrote: > Hi, > > Actually this is not caused by efler - default is /usr/local and that also > is not in default path so the same problem exists with a vanilla setup. > > One of the design requirements for efler was that it is isolated and so can > be easily removed if needed - thus a prefix. > Is saves confusion with what is managed and what is not. > > The environment is managed by sourcing an efler supplied env file and it > works without custom setup (tested). > > Andy > On Tue, 25 Oct 2016 at 09:53, Davide Andreoli > wrote: > > > 2016-10-25 1:08 GMT+02:00 Simon Lees : > > > > > > > > > > > On 10/25/2016 08:58 AM, Andrew Williams wrote: > > > > That could work but it may have needed lots more env passed in. On > IRC > > > dave > > > > pointed out that sudo -E should work, and it did :) > > > > > > > While it works it also adds additional security risks due to the > > > potential for environment variable injection so its use should be > > > strongly discouraged. > > > > > > > indeed, and also it is not supported everywhere, it is probably easy > > to find systems where it is not allowed by sudo config. > > > > The real problem here is that Efler (by default) install stuff in > > /opt/efler > > that is a non standard place. You will have tons of issues in systems > > different than yours, fe: how installed efl apps will find the installed > > libs? > > are you installing something in /etc/ld.so.conf.d ? > > > > I think that Efler should not change the PREFIX by default, just don't > > pass --prefix so that the system can choose the best place to install > > ...of course let the user override it > > > > > > > > > > > > > On Mon, 24 Oct 2016 at 20:46, Massimo Maiurana > > > wrote: > > > > > > > >> Uh? > > > >> > > > >> I usually install in /opt/e17 via sudo just exporting > > > >> PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/e17/lib/pkgconfig, maybe you > can > > > >> set something similar in your scripts. > > > >> > > > >> Bye > > > >> Massimo > > > >> > > > >> Andrew Williams ha scritto il 24/10/2016 alle 20:59: > > > >>> Hi, > > > >>> > > > >>> The sudo python setup.py install does not work as sodos pkgconfig > > > cannot > > > >>> find efl it seems... > > > >>> > > > >>> Andy > > > >>> > > > >>> On Mon, 24 Oct 2016 at 18:26, Davide Andreoli < > > d...@gurumeditation.it> > > > >>> wrote: > > > >>> > > > 2016-10-23 21:42 GMT+02:00 Andrew Williams >: > > > > > > > My apologies you are quite right - it is building just fine. > Sorry > > > for > > > > that, my info was out of date > > > > > > > > > > :) > > > > > > > > > > I can't get it installed however - perhaps you can help? Regular > > user > > > > cannot write to site-packages but sudo does not have efl paths > > setup. > > > >> Is > > > it > > > > possible to make it work like the main build so your user does > all > > of > > > >> the > > > > building and sudo can blindly install? > > > > > > > > > > sure, try: > > > python setup.py build > > > sudo python setup.py install > > > > > > > > > > > > > > Many thanks indeed - if I solve this I can include it in Efler > as I > > > hoped. > > > > (And egitu and a bunch of those great apps) > > > > > > > > > > Great, If you add it to efler I highly suggest to go with python3 > by > > > default, > > > just use python3 in all the setup.py commands. > > > > > > (and sadly I have no time to maintain egitu atm, it have some > small > > > >> issues, > > > but it's usable, I use it every time I use git, it just have some > > > issue > > > with refreshing > > > the contents at the correct time) > > > > > > > > > > > > > > Andrew > > > > > > > > On Sun, 23 Oct 2016 at 20:29, Davide Andreoli < > > > d...@gurumeditation.it> > > > > wrote: > > > > > > > >> 2016-10-22 16:18 GMT+02:00 Andrew Williams < > a...@andywilliams.me > > >: > > > >> > > > >>> I'm pretty sure the python bindings have not been updated in a > > > while. > > > > As > > > >>> our development moves on so quickly these unmaintained portions > > > fall > > > >> behind > > > >>> fast. > > > >>> > > > >> > > > >> really sure? did you follow the git commit list? maybe you > missed > > my > > > >> commits from the last week > > > >> We (me and kuuko) do our best to keep the bindings in sync also > > > during > > > > the > > > >> development phases. We usually are behind efl by one week or so! > > > >> > > > >> I'm a bit of
Re: [E-devel] Making documentation for all elements of a eo file mandatory for new files
On Tue, 25 Oct 2016 10:15:52 +0200 Stefan Schmidt said: > Hello. > > On 25/10/16 05:04, Carsten Haitzler (The Rasterman) wrote: > > On Sat, 22 Oct 2016 00:43:30 +0200 Stefan Schmidt > > said: > > > >> Hello. > >> > >> TL;DR: If you are committing new eo files I expect them to have full > >> docs from now one. Also help with the ones you are currently working on. > > > > this is actually looking pretty decent below now in terms of progress. :) > > Indeed. :) > > With some more patches I've been working on right now I'm at 80% total > coverage. In the process I also try to sort out some in-consistencies of > wording when i spot them, but quality wise there is still a lot to be > done which hopefully comes in a second phase. thumbs up on this. very good. :) -- - Codito, ergo sum - "I code, therefore I am" -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- The Command Line: Reinvented for Modern Developers Did the resurgence of CLI tooling catch you by surprise? Reconnect with the command line and become more productive. Learn the new .NET and ASP.NET CLI. Get your free copy! http://sdm.link/telerik ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Schedule discussion for 1.19
On Tue, 25 Oct 2016 10:08:58 +0200 Stefan Schmidt said: > Hello. > > On 25/10/16 03:56, Carsten Haitzler (The Rasterman) wrote: > > On Mon, 24 Oct 2016 10:49:27 +0200 Stefan Schmidt > > said: > > > >> Hello. > >> > >> On 13/09/16 00:31, Simon Lees wrote: > >>> > >>> > >>> On 09/13/2016 12:28 AM, Stefan Schmidt wrote: > Hello. > > On 10/09/16 01:29, Cedric BAIL wrote: > > Hello, > > > > I fully agree with Andrew. I have yet to review what still need to be > > done regarding Efl new interface task, but I hope that 1.19 will be > > our final call. We do now have time to cleanup example and check that > > things look fine. > > Please correct me if I did not get you two correctly here. > > You both think we should release 1.19 only once the interface work is > fully done? Be it in 3 months or in a year? > > >>> > >>> I think we should still aim for whatever has been set but the interface > >>> work should be treated as a showstopper bug ie if something is still > >>> missing or not quite finished we wait. > >> > >> Makes me think of e17. :P > > > > eo+interfaces is a massive amount of work. it's re-doing 50% of our api and > > design that has been built up over a decade+. it's done by a fairly small > > crew too. and the rest of the ship has to keep moving. it's not surprising > > it's taking a long time. > > > Understood. Maybe the comment was not to nice. This was not meant as > blaming towards interfaces taking long. I can see the huge amount of > work this takes. My problem really was the stalling of releases (and > thus keep all the other work going on in git only) by making interfaces > a blocker for 1.19. > > It seems I can come with Cedric and JP (at least) to a conclusion here. > Things are moving again. :) it seems so. just want everyone to know how big a task this is and why its so hard to schedule a time release AND a feature together. -- - Codito, ergo sum - "I code, therefore I am" -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- The Command Line: Reinvented for Modern Developers Did the resurgence of CLI tooling catch you by surprise? Reconnect with the command line and become more productive. Learn the new .NET and ASP.NET CLI. Get your free copy! http://sdm.link/telerik ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Python-Efl doesn't compile
Hi, Actually this is not caused by efler - default is /usr/local and that also is not in default path so the same problem exists with a vanilla setup. One of the design requirements for efler was that it is isolated and so can be easily removed if needed - thus a prefix. Is saves confusion with what is managed and what is not. The environment is managed by sourcing an efler supplied env file and it works without custom setup (tested). Andy On Tue, 25 Oct 2016 at 09:53, Davide Andreoli wrote: > 2016-10-25 1:08 GMT+02:00 Simon Lees : > > > > > > > On 10/25/2016 08:58 AM, Andrew Williams wrote: > > > That could work but it may have needed lots more env passed in. On IRC > > dave > > > pointed out that sudo -E should work, and it did :) > > > > > While it works it also adds additional security risks due to the > > potential for environment variable injection so its use should be > > strongly discouraged. > > > > indeed, and also it is not supported everywhere, it is probably easy > to find systems where it is not allowed by sudo config. > > The real problem here is that Efler (by default) install stuff in > /opt/efler > that is a non standard place. You will have tons of issues in systems > different than yours, fe: how installed efl apps will find the installed > libs? > are you installing something in /etc/ld.so.conf.d ? > > I think that Efler should not change the PREFIX by default, just don't > pass --prefix so that the system can choose the best place to install > ...of course let the user override it > > > > > > > > On Mon, 24 Oct 2016 at 20:46, Massimo Maiurana > > wrote: > > > > > >> Uh? > > >> > > >> I usually install in /opt/e17 via sudo just exporting > > >> PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/e17/lib/pkgconfig, maybe you can > > >> set something similar in your scripts. > > >> > > >> Bye > > >> Massimo > > >> > > >> Andrew Williams ha scritto il 24/10/2016 alle 20:59: > > >>> Hi, > > >>> > > >>> The sudo python setup.py install does not work as sodos pkgconfig > > cannot > > >>> find efl it seems... > > >>> > > >>> Andy > > >>> > > >>> On Mon, 24 Oct 2016 at 18:26, Davide Andreoli < > d...@gurumeditation.it> > > >>> wrote: > > >>> > > 2016-10-23 21:42 GMT+02:00 Andrew Williams : > > > > > My apologies you are quite right - it is building just fine. Sorry > > for > > > that, my info was out of date > > > > > > > :) > > > > > > > I can't get it installed however - perhaps you can help? Regular > user > > > cannot write to site-packages but sudo does not have efl paths > setup. > > >> Is > > it > > > possible to make it work like the main build so your user does all > of > > >> the > > > building and sudo can blindly install? > > > > > > > sure, try: > > python setup.py build > > sudo python setup.py install > > > > > > > > > > Many thanks indeed - if I solve this I can include it in Efler as I > > hoped. > > > (And egitu and a bunch of those great apps) > > > > > > > Great, If you add it to efler I highly suggest to go with python3 by > > default, > > just use python3 in all the setup.py commands. > > > > (and sadly I have no time to maintain egitu atm, it have some small > > >> issues, > > but it's usable, I use it every time I use git, it just have some > > issue > > with refreshing > > the contents at the correct time) > > > > > > > > > > Andrew > > > > > > On Sun, 23 Oct 2016 at 20:29, Davide Andreoli < > > d...@gurumeditation.it> > > > wrote: > > > > > >> 2016-10-22 16:18 GMT+02:00 Andrew Williams >: > > >> > > >>> I'm pretty sure the python bindings have not been updated in a > > while. > > > As > > >>> our development moves on so quickly these unmaintained portions > > fall > > >> behind > > >>> fast. > > >>> > > >> > > >> really sure? did you follow the git commit list? maybe you missed > my > > >> commits from the last week > > >> We (me and kuuko) do our best to keep the bindings in sync also > > during > > > the > > >> development phases. We usually are behind efl by one week or so! > > >> > > >> I'm a bit offended that you put python-efl in the "unmaintained" > > land, > > >> seems all my effort to constantly update the bindings to > > >> #FollowTheWhiteRabbit > > >> really goes into the void :( > > >> > > >> btw, you are just wrong: python-efl is one of the most maintained > > bit > > >> outside > > >> the core libs, and is currently in sync with efl master :P > > >> > > >> > > >> > > >>> > > >>> If we can resolve this then I will be able to pop python-efl and > > the > > > apps > > >>> that rely on it into the Efler app installer :) > > >>> > > >>> Andrew > > >>> > > >>> On Sat, 22 Oct 2016 at 12:58 Massimo Maiurana < > maiur...@gmail.com> > > >>
Re: [E-devel] Python-Efl doesn't compile
2016-10-25 1:08 GMT+02:00 Simon Lees : > > > On 10/25/2016 08:58 AM, Andrew Williams wrote: > > That could work but it may have needed lots more env passed in. On IRC > dave > > pointed out that sudo -E should work, and it did :) > > > While it works it also adds additional security risks due to the > potential for environment variable injection so its use should be > strongly discouraged. > indeed, and also it is not supported everywhere, it is probably easy to find systems where it is not allowed by sudo config. The real problem here is that Efler (by default) install stuff in /opt/efler that is a non standard place. You will have tons of issues in systems different than yours, fe: how installed efl apps will find the installed libs? are you installing something in /etc/ld.so.conf.d ? I think that Efler should not change the PREFIX by default, just don't pass --prefix so that the system can choose the best place to install ...of course let the user override it > > > On Mon, 24 Oct 2016 at 20:46, Massimo Maiurana > wrote: > > > >> Uh? > >> > >> I usually install in /opt/e17 via sudo just exporting > >> PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/e17/lib/pkgconfig, maybe you can > >> set something similar in your scripts. > >> > >> Bye > >> Massimo > >> > >> Andrew Williams ha scritto il 24/10/2016 alle 20:59: > >>> Hi, > >>> > >>> The sudo python setup.py install does not work as sodos pkgconfig > cannot > >>> find efl it seems... > >>> > >>> Andy > >>> > >>> On Mon, 24 Oct 2016 at 18:26, Davide Andreoli > >>> wrote: > >>> > 2016-10-23 21:42 GMT+02:00 Andrew Williams : > > > My apologies you are quite right - it is building just fine. Sorry > for > > that, my info was out of date > > > > :) > > > > I can't get it installed however - perhaps you can help? Regular user > > cannot write to site-packages but sudo does not have efl paths setup. > >> Is > it > > possible to make it work like the main build so your user does all of > >> the > > building and sudo can blindly install? > > > > sure, try: > python setup.py build > sudo python setup.py install > > > > > > Many thanks indeed - if I solve this I can include it in Efler as I > hoped. > > (And egitu and a bunch of those great apps) > > > > Great, If you add it to efler I highly suggest to go with python3 by > default, > just use python3 in all the setup.py commands. > > (and sadly I have no time to maintain egitu atm, it have some small > >> issues, > but it's usable, I use it every time I use git, it just have some > issue > with refreshing > the contents at the correct time) > > > > > > Andrew > > > > On Sun, 23 Oct 2016 at 20:29, Davide Andreoli < > d...@gurumeditation.it> > > wrote: > > > >> 2016-10-22 16:18 GMT+02:00 Andrew Williams : > >> > >>> I'm pretty sure the python bindings have not been updated in a > while. > > As > >>> our development moves on so quickly these unmaintained portions > fall > >> behind > >>> fast. > >>> > >> > >> really sure? did you follow the git commit list? maybe you missed my > >> commits from the last week > >> We (me and kuuko) do our best to keep the bindings in sync also > during > > the > >> development phases. We usually are behind efl by one week or so! > >> > >> I'm a bit offended that you put python-efl in the "unmaintained" > land, > >> seems all my effort to constantly update the bindings to > >> #FollowTheWhiteRabbit > >> really goes into the void :( > >> > >> btw, you are just wrong: python-efl is one of the most maintained > bit > >> outside > >> the core libs, and is currently in sync with efl master :P > >> > >> > >> > >>> > >>> If we can resolve this then I will be able to pop python-efl and > the > > apps > >>> that rely on it into the Efler app installer :) > >>> > >>> Andrew > >>> > >>> On Sat, 22 Oct 2016 at 12:58 Massimo Maiurana > >> wrote: > >>> > I don't know if it's something wrong in my setup, but lately > I'm not able to build Python bindings anymore. I attach the build > log > >> to > preserve its lines length. > > -- > Massimo Maiurana > Ragusa (RG) > > > >>> -- > Check out the vibrant tech community on one of the world's most > engaging tech sites, SlashDot.org! http://sdm.link/slashdot > ___ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > >>> ---
Re: [E-devel] Python-Efl doesn't compile
2016-10-25 0:27 GMT+02:00 Andrew Williams : > By way of an additional apology Python-efl can now be installed / managed > from efler. > > I have not got any of the great Python apps in there yet as it's currently > only capable of using the e.org git - is there any reason why egitu etc > are > available only on GitHub? > for one simple reason: github is better than our git+phab infra :) ...it's faster, it's always up, and it's more feature rich. in the e repo you can find at least espionage (dbus inspector) and epour (bittorrent client), both should be quite well maintained and stable. > > Thanks for the help, > Andy > On Mon, 24 Oct 2016 at 20:46, Massimo Maiurana wrote: > > > Uh? > > > > I usually install in /opt/e17 via sudo just exporting > > PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/opt/e17/lib/pkgconfig, maybe you can > > set something similar in your scripts. > > > > Bye > > Massimo > > > > Andrew Williams ha scritto il 24/10/2016 alle 20:59: > > > Hi, > > > > > > The sudo python setup.py install does not work as sodos pkgconfig > cannot > > > find efl it seems... > > > > > > Andy > > > > > > On Mon, 24 Oct 2016 at 18:26, Davide Andreoli > > > wrote: > > > > > >> 2016-10-23 21:42 GMT+02:00 Andrew Williams : > > >> > > >>> My apologies you are quite right - it is building just fine. Sorry > for > > >>> that, my info was out of date > > >>> > > >> > > >> :) > > >> > > >> > > >>> I can't get it installed however - perhaps you can help? Regular user > > >>> cannot write to site-packages but sudo does not have efl paths setup. > > Is > > >> it > > >>> possible to make it work like the main build so your user does all of > > the > > >>> building and sudo can blindly install? > > >>> > > >> > > >> sure, try: > > >> python setup.py build > > >> sudo python setup.py install > > >> > > >> > > >>> > > >>> Many thanks indeed - if I solve this I can include it in Efler as I > > >> hoped. > > >>> (And egitu and a bunch of those great apps) > > >>> > > >> > > >> Great, If you add it to efler I highly suggest to go with python3 by > > >> default, > > >> just use python3 in all the setup.py commands. > > >> > > >> (and sadly I have no time to maintain egitu atm, it have some small > > issues, > > >> but it's usable, I use it every time I use git, it just have some > issue > > >> with refreshing > > >> the contents at the correct time) > > >> > > >> > > >>> > > >>> Andrew > > >>> > > >>> On Sun, 23 Oct 2016 at 20:29, Davide Andreoli < > d...@gurumeditation.it> > > >>> wrote: > > >>> > > 2016-10-22 16:18 GMT+02:00 Andrew Williams : > > > > > I'm pretty sure the python bindings have not been updated in a > while. > > >>> As > > > our development moves on so quickly these unmaintained portions > fall > > behind > > > fast. > > > > > > > really sure? did you follow the git commit list? maybe you missed my > > commits from the last week > > We (me and kuuko) do our best to keep the bindings in sync also > during > > >>> the > > development phases. We usually are behind efl by one week or so! > > > > I'm a bit offended that you put python-efl in the "unmaintained" > land, > > seems all my effort to constantly update the bindings to > > #FollowTheWhiteRabbit > > really goes into the void :( > > > > btw, you are just wrong: python-efl is one of the most maintained > bit > > outside > > the core libs, and is currently in sync with efl master :P > > > > > > > > > > > > If we can resolve this then I will be able to pop python-efl and > the > > >>> apps > > > that rely on it into the Efler app installer :) > > > > > > Andrew > > > > > > On Sat, 22 Oct 2016 at 12:58 Massimo Maiurana > > wrote: > > > > > >> I don't know if it's something wrong in my setup, but lately > > >> I'm not able to build Python bindings anymore. I attach the build > > >> log > > to > > >> preserve its lines length. > > >> > > >> -- > > >> Massimo Maiurana > > >> Ragusa (RG) > > >> > > >> > > > -- > > >> Check out the vibrant tech community on one of the world's most > > >> engaging tech sites, SlashDot.org! http://sdm.link/slashdot > > >> ___ > > >> enlightenment-devel mailing list > > >> enlightenment-devel@lists.sourceforge.net > > >> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > >> > > > > > > -- > > > Check out the vibrant tech community on one of the world's most > > > engaging tech sites, SlashDot.org! http://sdm.link/slashdot > > > ___ > > > enlightenment-devel mailing list > > > enlightenment-devel@lists.sourceforge.net > > > https://l
Re: [E-devel] Making documentation for all elements of a eo file mandatory for new files
Hello. On 25/10/16 05:04, Carsten Haitzler (The Rasterman) wrote: > On Sat, 22 Oct 2016 00:43:30 +0200 Stefan Schmidt > said: > >> Hello. >> >> TL;DR: If you are committing new eo files I expect them to have full >> docs from now one. Also help with the ones you are currently working on. > > this is actually looking pretty decent below now in terms of progress. :) Indeed. :) With some more patches I've been working on right now I'm at 80% total coverage. In the process I also try to sort out some in-consistencies of wording when i spot them, but quality wise there is still a lot to be done which hopefully comes in a second phase. regards Stefan Schmidt -- The Command Line: Reinvented for Modern Developers Did the resurgence of CLI tooling catch you by surprise? Reconnect with the command line and become more productive. Learn the new .NET and ASP.NET CLI. Get your free copy! http://sdm.link/telerik ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Schedule discussion for 1.19
Hello. On 25/10/16 03:56, Carsten Haitzler (The Rasterman) wrote: > On Mon, 24 Oct 2016 10:49:27 +0200 Stefan Schmidt > said: > >> Hello. >> >> On 13/09/16 00:31, Simon Lees wrote: >>> >>> >>> On 09/13/2016 12:28 AM, Stefan Schmidt wrote: Hello. On 10/09/16 01:29, Cedric BAIL wrote: > Hello, > > I fully agree with Andrew. I have yet to review what still need to be > done regarding Efl new interface task, but I hope that 1.19 will be > our final call. We do now have time to cleanup example and check that > things look fine. Please correct me if I did not get you two correctly here. You both think we should release 1.19 only once the interface work is fully done? Be it in 3 months or in a year? >>> >>> I think we should still aim for whatever has been set but the interface >>> work should be treated as a showstopper bug ie if something is still >>> missing or not quite finished we wait. >> >> Makes me think of e17. :P > > eo+interfaces is a massive amount of work. it's re-doing 50% of our api and > design that has been built up over a decade+. it's done by a fairly small crew > too. and the rest of the ship has to keep moving. it's not surprising it's > taking a long time. Understood. Maybe the comment was not to nice. This was not meant as blaming towards interfaces taking long. I can see the huge amount of work this takes. My problem really was the stalling of releases (and thus keep all the other work going on in git only) by making interfaces a blocker for 1.19. It seems I can come with Cedric and JP (at least) to a conclusion here. Things are moving again. :) regards Stefan Schmidt -- The Command Line: Reinvented for Modern Developers Did the resurgence of CLI tooling catch you by surprise? Reconnect with the command line and become more productive. Learn the new .NET and ASP.NET CLI. Get your free copy! http://sdm.link/telerik ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel