[EGIT] [core/efl] master 01/03: evas/cserve2: Fix new Coverity issues
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=10f80df01825066987452b11a9ec78540c64 commit 10f80df01825066987452b11a9ec78540c64 Author: Jean-Philippe Andre jp.an...@samsung.com Date: Tue Oct 29 13:54:15 2013 +0900 evas/cserve2: Fix new Coverity issues Nothing extraordinary here. Most potential crashes are extremely unlikely. - Fix CID 1113444 - Fix CID 1113442 - Fix CID 1113441 (Logically dead code, can not be NULL) - Fix CID 1113440: Explicit null dereferenced This is actually an impossible situation. Fixed by checking for nullity and printing out some error messages instead of just crashing. - Fix CID 1113439: Dereference after null check Logically impossible code as both idxpath and datapath must be either set or null at the same time. Change the if logic to tell Coverity there's no bug. - Fix CID 1113438 (Argument cannot be negative) Fix wrong check of return value from shm_open. - Fix CID 1113437 (Argument cannot be negative) Fix wrong check of return value from shm_open. - Fix CID 1113436 (Dereference null return value) This case really shouldn't happen. But the extra check does not hurt. - Fix CID 1113435 (Dereference before null check) Check for nullity after map open. - Fix CID 1113434 (Extra sizeof expression) Debug buggy debug tool :) - Fix CID 1113433 (Uninitialized scalar variable) Insignificant issue: only prints wrong debug logs :) - Fix CID 1113431 (Uninitialized scalar value) Check if (!found) only to print out logs. Not a big deal if found was invalid. - Fix CID 1039462 (Logically dead code) --- src/bin/evas/dummy_slave.c | 2 +- src/bin/evas/evas_cserve2_cache.c | 10 ++ src/bin/evas/evas_cserve2_index.c | 2 -- src/bin/evas/evas_cserve2_shm.c| 4 ++-- src/bin/evas/evas_cserve2_shm_debug.c | 4 ++-- src/lib/evas/cache2/evas_cache2.c | 2 +- src/lib/evas/cserve2/evas_cs2_client.c | 19 ++- 7 files changed, 26 insertions(+), 17 deletions(-) diff --git a/src/bin/evas/dummy_slave.c b/src/bin/evas/dummy_slave.c index a64ec53..9b56380 100644 --- a/src/bin/evas/dummy_slave.c +++ b/src/bin/evas/dummy_slave.c @@ -170,7 +170,7 @@ int main(int c, char **v) Error_Type err; const char *file, *key; p = params; - file = (const char *)(p + sizeof(*p)); + file = (const char *)(p + 1); key = file + strlen(file) + 1; if ((err = image_open(file, key, result)) != CSERVE2_NONE) error_send(wfd, err); diff --git a/src/bin/evas/evas_cserve2_cache.c b/src/bin/evas/evas_cserve2_cache.c index 9f92543..4c20a72 100644 --- a/src/bin/evas/evas_cserve2_cache.c +++ b/src/bin/evas/evas_cserve2_cache.c @@ -1588,8 +1588,8 @@ _image_entry_new(Client *client, int rid, ref = eina_hash_find(client-files.referencing, client_file_id); if (!ref) { -ERR(Couldn't find file id: %d, for image id: %d, -client_file_id, image_id); +ERR(Couldn't find file id for client image id: %d, +client_file_id); cserve2_client_error_send(client, rid, CSERVE2_INVALID_CACHE); return NULL; @@ -2373,7 +2373,7 @@ _font_entry_debug_size_cb(const Eina_Hash *hash EINA_UNUSED, // name if (fe-src-name) { -str = cserve2_shared_string_get(fe-src-file); +str = cserve2_shared_string_get(fe-src-name); di-size+= strlen(str) + 1; } @@ -2769,8 +2769,10 @@ try_again: 0, unscaled, buf, sizeof(buf)); if (!orig_entry) return -1; - image_id = orig_entry-base.id; orig_data = _image_data_find(ENTRYID(orig_entry)); + if (!orig_data) return -1; + + image_id = ENTRYID(orig_entry); orig_data-unused = EINA_TRUE; fentry = _file_entry_find(orig_data-file_id); fentry-images = eina_list_append(fentry-images, orig_entry); diff --git a/src/bin/evas/evas_cserve2_index.c b/src/bin/evas/evas_cserve2_index.c index e6b13ce..f0d6f71 100644 --- a/src/bin/evas/evas_cserve2_index.c +++ b/src/bin/evas/evas_cserve2_index.c @@ -581,8 +581,6 @@ _shared_index_entry_get_by_id(Shared_Index *si, unsigned int id) for (cur = start_high; cur si-sa-header-count; cur++) { obj = (Index_Entry *) (base + (elemsize * cur)); -if (!obj) - return NULL; if (!obj-id) return NULL; if (obj-id == id) diff --git a/src/bin/evas/evas_cserve2_shm.c b/src/bin/evas/evas_cserve2_shm.c index d95afc7..6ccfbcd 100644 ---
[EGIT] [core/efl] master 02/03: evas/cserve2: Fix CID 1039286 (Resource leak)
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=44f89bb8ade404604867fd270d53a3952ba513df commit 44f89bb8ade404604867fd270d53a3952ba513df Author: Jean-Philippe Andre jp.an...@samsung.com Date: Tue Oct 29 15:03:14 2013 +0900 evas/cserve2: Fix CID 1039286 (Resource leak) Close socket in case of connection failure. --- src/lib/evas/cserve2/evas_cs2_client.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib/evas/cserve2/evas_cs2_client.c b/src/lib/evas/cserve2/evas_cs2_client.c index 5410b0b..0d5fe2c 100644 --- a/src/lib/evas/cserve2/evas_cs2_client.c +++ b/src/lib/evas/cserve2/evas_cs2_client.c @@ -187,6 +187,7 @@ _server_connect(void) if (errno == EACCES) { ERR(not authorized to connect to cserve2!); + close(s); return EINA_FALSE; } ERR(cserve2 connect failed: [%d] %s. Retrying..., errno, strerror(errno)); @@ -196,6 +197,7 @@ _server_connect(void) if (errno == EINTR) { WRN(received interruption while trying to connect to cserve2!); + close(s); return EINA_FALSE; } --
[EGIT] [core/efl] master 03/03: evas/cserve2: Fix error path in evas_cache2_image_writable()
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=aa6d4a3756b8f173d091ccf9f5751b910d6a6b62 commit aa6d4a3756b8f173d091ccf9f5751b910d6a6b62 Author: Jean-Philippe Andre jp.an...@samsung.com Date: Tue Oct 29 15:12:58 2013 +0900 evas/cserve2: Fix error path in evas_cache2_image_writable() Return NULL and check for nullity in the only calling function. Fixes CID 1039461 (Logically dead code) --- src/lib/evas/cache2/evas_cache2.c | 10 -- src/modules/evas/engines/software_generic/evas_engine.c | 9 - 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/lib/evas/cache2/evas_cache2.c b/src/lib/evas/cache2/evas_cache2.c index 35cceb6..d4b2b53 100644 --- a/src/lib/evas/cache2/evas_cache2.c +++ b/src/lib/evas/cache2/evas_cache2.c @@ -1089,15 +1089,13 @@ evas_cache2_image_writable(Image_Entry *im) evas_cache2_image_pixels(im), im-flags.alpha, im-space); if (!im2) - goto on_error; + { +ERR(Could not create a copy of this image (%dx%d), im-w, im-h); +return NULL; + } evas_cache2_image_close(im); return im2; - -on_error: - if (im2) - _evas_cache2_image_entry_delete(cache, im2); - return NULL; } EAPI Image_Entry * diff --git a/src/modules/evas/engines/software_generic/evas_engine.c b/src/modules/evas/engines/software_generic/evas_engine.c index 57766ef..b3ab2ce 100644 --- a/src/modules/evas/engines/software_generic/evas_engine.c +++ b/src/modules/evas/engines/software_generic/evas_engine.c @@ -1087,7 +1087,14 @@ eng_image_data_get(void *data EINA_UNUSED, void *image, int to_write, DATA32 **i if (err) *err = error; if (to_write) - im = (RGBA_Image *)evas_cache2_image_writable(im-cache_entry); + { + im = (RGBA_Image *)evas_cache2_image_writable(im-cache_entry); + if (!im) + { + *image_data = NULL; + return NULL; + } + } } else #endif --
[EGIT] [core/efl] master 01/02: Don't send mouse_up or mouse_down events unless we have a focused surface
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=d1d0090706274025e9be85e15eb7da7537252641 commit d1d0090706274025e9be85e15eb7da7537252641 Author: Chris Michael cp.mich...@samsung.com Date: Tue Oct 29 08:01:41 2013 + Don't send mouse_up or mouse_down events unless we have a focused surface Signed-off-by: Chris Michael cp.mich...@samsung.com --- src/lib/ecore_wayland/ecore_wl_input.c | 11 +++ 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/lib/ecore_wayland/ecore_wl_input.c b/src/lib/ecore_wayland/ecore_wl_input.c index e458d71..2cdc1ec 100644 --- a/src/lib/ecore_wayland/ecore_wl_input.c +++ b/src/lib/ecore_wayland/ecore_wl_input.c @@ -469,13 +469,16 @@ _ecore_wl_input_cb_pointer_button(void *data, struct wl_pointer *pointer EINA_UN if ((input-pointer_focus) (!input-grab) (state)) ecore_wl_input_grab(input, input-pointer_focus, button); -_ecore_wl_input_mouse_down_send(input, input-pointer_focus, -0, button, timestamp); +if (input-pointer_focus) + _ecore_wl_input_mouse_down_send(input, input-pointer_focus, + 0, button, timestamp); } else { -_ecore_wl_input_mouse_up_send(input, input-pointer_focus, - 0, button, timestamp); +if (input-pointer_focus) + _ecore_wl_input_mouse_up_send(input, input-pointer_focus, +0, button, timestamp); + if ((input-grab) (input-grab_button == button) (!state)) ecore_wl_input_ungrab(input); } --
[EGIT] [core/efl] master 02/02: If mouse is already inside the ecore_evas, then we don't need to call the mouse_in function of the ecore_evas.
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=49dfea556657baed6cfbd8bc4c8389b79c3858aa commit 49dfea556657baed6cfbd8bc4c8389b79c3858aa Author: Chris Michael cp.mich...@samsung.com Date: Tue Oct 29 08:04:05 2013 + If mouse is already inside the ecore_evas, then we don't need to call the mouse_in function of the ecore_evas. Signed-off-by: Chris Michael cp.mich...@samsung.com --- src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c | 7 +++ 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c index 15bb93c..45832f0 100644 --- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c +++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c @@ -101,11 +101,9 @@ _ecore_evas_wl_common_cb_mouse_in(void *data EINA_UNUSED, int type EINA_UNUSED, ee = ecore_event_window_match(ev-window); if ((!ee) || (ee-ignore_events)) return ECORE_CALLBACK_PASS_ON; if (ev-window != ee-prop.window) return ECORE_CALLBACK_PASS_ON; - if (ee-func.fn_mouse_in) ee-func.fn_mouse_in(ee); - - if (ee-in) - return ECORE_CALLBACK_PASS_ON; + if (ee-in) return ECORE_CALLBACK_PASS_ON; + if (ee-func.fn_mouse_in) ee-func.fn_mouse_in(ee); ecore_event_evas_modifier_lock_update(ee-evas, ev-modifiers); evas_event_feed_mouse_in(ee-evas, ev-timestamp, NULL); _ecore_evas_mouse_move_process(ee, ev-x, ev-y, ev-timestamp); @@ -125,6 +123,7 @@ _ecore_evas_wl_common_cb_mouse_out(void *data EINA_UNUSED, int type EINA_UNUSED, ee = ecore_event_window_match(ev-window); if ((!ee) || (ee-ignore_events)) return ECORE_CALLBACK_PASS_ON; if (ev-window != ee-prop.window) return ECORE_CALLBACK_PASS_ON; + if (ee-in) { ecore_event_evas_modifier_lock_update(ee-evas, ev-modifiers); --
Re: [E-devel] Weekly news from the automated build and QA front
Hello. On 10/28/2013 06:29 PM, Bertrand Jacquin wrote: Hi in there, Not that next report may give different results as the 1th november, main gcc release will be switch for gcc 4.8.1. Ah, right. Thanks for the reminder. I'm running one machine with 4.8.1 here so I don't expect to many problems. Just more warnings maybe. regards Stefan Schmidt -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 01/01: On a focus_in event, if the ecore_evas already has focus, don't resend a focus in. Similar change for focus_out also.
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=40a2dfc8701ff78de73669d059e87535fb39795e commit 40a2dfc8701ff78de73669d059e87535fb39795e Author: Chris Michael cp.mich...@samsung.com Date: Tue Oct 29 08:41:48 2013 + On a focus_in event, if the ecore_evas already has focus, don't resend a focus in. Similar change for focus_out also. Signed-off-by: Chris Michael cp.mich...@samsung.com --- src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c index 45832f0..5373c62 100644 --- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c +++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c @@ -106,7 +106,6 @@ _ecore_evas_wl_common_cb_mouse_in(void *data EINA_UNUSED, int type EINA_UNUSED, if (ee-func.fn_mouse_in) ee-func.fn_mouse_in(ee); ecore_event_evas_modifier_lock_update(ee-evas, ev-modifiers); evas_event_feed_mouse_in(ee-evas, ev-timestamp, NULL); - _ecore_evas_mouse_move_process(ee, ev-x, ev-y, ev-timestamp); ee-in = EINA_TRUE; return ECORE_CALLBACK_PASS_ON; } @@ -147,6 +146,7 @@ _ecore_evas_wl_common_cb_focus_in(void *data EINA_UNUSED, int type EINA_UNUSED, ee = ecore_event_window_match(ev-win); if ((!ee) || (ee-ignore_events)) return ECORE_CALLBACK_PASS_ON; if (ev-win != ee-prop.window) return ECORE_CALLBACK_PASS_ON; + if (ee-prop.focused) return ECORE_CALLBACK_PASS_ON; ee-prop.focused = 1; evas_focus_in(ee-evas); if (ee-func.fn_focus_in) ee-func.fn_focus_in(ee); @@ -165,6 +165,7 @@ _ecore_evas_wl_common_cb_focus_out(void *data EINA_UNUSED, int type EINA_UNUSED, ee = ecore_event_window_match(ev-win); if ((!ee) || (ee-ignore_events)) return ECORE_CALLBACK_PASS_ON; if (ev-win != ee-prop.window) return ECORE_CALLBACK_PASS_ON; + if (!ee-prop.focused) return ECORE_CALLBACK_PASS_ON; evas_focus_out(ee-evas); ee-prop.focused = 0; if (ee-func.fn_focus_out) ee-func.fn_focus_out(ee); --
Re: [E-devel] [EGIT] [core/efl] master 03/03: async render - alpha set. if not visible dont WAIT. do it now.
On Mon, 28 Oct 2013 17:13:08 -0200 Ulisses Furquim uliss...@gmail.com said: Hi Raster, On Mon, Oct 28, 2013 at 12:47 AM, Carsten Haitzler ras...@rasterman.com wrote: On Fri, 18 Oct 2013 15:19:00 -0300 Ulisses Furquim uliss...@gmail.com said: Raster, On Wed, Oct 16, 2013 at 8:58 PM, Carsten Haitzler ras...@rasterman.com wrote: On Wed, 16 Oct 2013 12:26:26 -0300 Ulisses Furquim uliss...@gmail.com said: Raster, On Wed, Oct 16, 2013 at 12:01 PM, Carsten Haitzler ras...@rasterman.com wrote: raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=06c3c0cd0c0e2af7279470ab5b3fd3100e1499db commit 06c3c0cd0c0e2af7279470ab5b3fd3100e1499db Author: Carsten Haitzler (Rasterman) ras...@rasterman.com Date: Thu Oct 17 00:00:05 2013 +0900 async render - alpha set. if not visible dont WAIT. do it now. --- src/modules/ecore_evas/engines/x/ecore_evas_x.c | 11 --- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/modules/ecore_evas/engines/x/ecore_evas_x.c b/src/modules/ecore_evas/engines/x/ecore_evas_x.c index 627dd15..69e0709 100644 --- a/src/modules/ecore_evas/engines/x/ecore_evas_x.c +++ b/src/modules/ecore_evas/engines/x/ecore_evas_x.c @@ -2284,10 +2284,15 @@ _ecore_evas_x_alpha_set(Ecore_Evas *ee, int alpha) { if (ee-in_async_render) { - ee-delayed.alpha = alpha; - ee-delayed.alpha_changed = EINA_TRUE; - return; + if (ee-visible) + { + ee-delayed.alpha = alpha; + ee-delayed.alpha_changed = EINA_TRUE; + return; + } } +if (ee-in_async_render) +evas_sync(ee-evas); Why? We're syncing just to apply the alpha for those not visible? Your commit message is wrong because we are WAITING on this sync call before the _alpha_do(). Thus it's almost the same as letting the alpha be set the delayed way. Unless I'm missing anything we're not gaining anything with this patch. no sync - segv. sync - no segv. (inside evas async rendering where an xob is null). since changing to alpha destroys and recreates the window id... not surprising. Do you have a backtrace? I did some quick testing but no segv for me. i did have one... it was in the async flush code - the one where the mainloop inline does its putimage to the window... but the xob was NULL (i didn't even check more than that because i instantly had the twinge that h i bet the xob creation failed due to invalid window id or something and thus why its null.. when the code is ASSUMING window id doesnt change during rendering... thus simple - ensure rendering is done before we change window id. :) Window ID shouldn't change during rendering, that's the point of having delayed operations. :-) Like Gustavo said I'm interested to know what really was the problem because I don't think we should be solving everything by adding evas_sync() calls everywhere. the window id does change. that's the core issue here. it is destroyed and re-created as that is the only way we can switch the visual of the window :) (given ecore-x). thus why i forced the wait for async to finish... :) also remember any properties set on the window before are then lost and we rely on ecore-evas to restore the ones it knows about (and has remembered to restore). if we delay UNCONDITIONALLY (which is what it did before the change - regardless of visibility) we WAIT until the window has already rendered something (which likely is after a show that came AFTER the set to alpha), and then now that we rendered and showed... we destroy and re-create again... when we could have happily just done it without delay/wait and avoided artifacts on invisible windows. :) I understood what you and Mike meant, thanks. But the way it works is that if we are not async rendering it'll be done with no delay and if we are async rendering then it'll be delayed until the old frame is completely rendered and no new frames will be sent to render because we actively drop frames! Thus I don't think that setting alpha would destroy any new content rendered and showed but only old ones. Does that make sense? the problem is we are messing with a window and its properties... and the code expects to mess with it there and then.. but it gets deferred until later .. and this leads to inconsistency issues. as best i saw a primary one is that UNTIL we render yet again the window stays hidden. (invisible). and our render was over already... Hmm.. Raster, please, we need to have this information better on commits messages or elsewhere. I'm trying to make sure we fix things the proper way but without information is really difficult to help.
Re: [E-devel] [RFC] configure options for maintainers
On Mon, 28 Oct 2013 11:49:20 +0100 Guillaume Friloux guillaume.fril...@asp64.com said: On 28/10/2013 03:49, Carsten Haitzler (The Rasterman) wrote: great.. but how do you EXTRACT this info then from the lib? :) it's a lib.. it can't execute on its own... and printfing such strings on every fn call is just anti-social :) Its actually possible, but needs some hack. glibc does it : /lib/libc-2.18.so GNU C Library (GNU libc) stable release version 2.18, by Roland McGrath et al. Copyright (C) 2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Compiled by GNU CC version 4.8.1 20130725 (prerelease). Compiled on a Linux 3.10.6 system on 2013-09-24. Available extensions: crypt add-on version 2.1 by Michael Glad and others GNU Libidn by Simon Josefsson Native POSIX Threads Library by Ulrich Drepper et al BIND-8.2.3-T5B libc ABIs: UNIQUE IFUNC For bug reporting instructions, please see: https://bugs.archlinux.org/. well well well.. i never knew that! they made it a PIE executable? -- - Codito, ergo sum - I code, therefore I am -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Weekly news from the automated build and QA front
Hello, On Tue, Oct 29, 2013 at 5:31 PM, Stefan Schmidt s.schm...@samsung.com wrote: On 10/28/2013 06:29 PM, Bertrand Jacquin wrote: Not that next report may give different results as the 1th november, main gcc release will be switch for gcc 4.8.1. Ah, right. Thanks for the reminder. I'm running one machine with 4.8.1 here so I don't expect to many problems. Just more warnings maybe. Speaking of warning, I discovered this plugins for jenkins : https://wiki.jenkins-ci.org/display/JENKINS/Valgrind+Plugin Do you think it would be possible to roll that along our tests ? -- Cedric BAIL -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Weekly news from the automated build and QA front
Hello. On 10/29/2013 09:38 AM, Cedric BAIL wrote: Hello, On Tue, Oct 29, 2013 at 5:31 PM, Stefan Schmidt s.schm...@samsung.com wrote: On 10/28/2013 06:29 PM, Bertrand Jacquin wrote: Not that next report may give different results as the 1th november, main gcc release will be switch for gcc 4.8.1. Ah, right. Thanks for the reminder. I'm running one machine with 4.8.1 here so I don't expect to many problems. Just more warnings maybe. Speaking of warning, I discovered this plugins for jenkins : https://wiki.jenkins-ci.org/display/JENKINS/Valgrind+Plugin Do you think it would be possible to roll that along our tests ? Anything specific you expect from it? We have address-sanitizer running which I always expected to be on par with Valgrinds memcheck functionality. Am I wrong with this? Daniel? The graphs might be nice. I added it to my todo list and will check if we can have it running. Don't expect anything withing the next one or two weeks due to the transfer and relocation though. regards Stefan Schmidt -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [bindings/python/python-efl] master 01/03: Add more useful settings in their default values to setup.
kuuko pushed a commit to branch master. http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=567ba9cda290c2f023ad37d3d275fe16fa296678 commit 567ba9cda290c2f023ad37d3d275fe16fa296678 Author: Kai Huuhko kai.huu...@gmail.com Date: Mon Oct 28 23:40:17 2013 +0200 Add more useful settings in their default values to setup. --- setup.cfg | 6 ++ setup.py | 5 +++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 000..df0260b --- /dev/null +++ b/setup.cfg @@ -0,0 +1,6 @@ +[build_ext] +# Uncomment this to disable assertions +#define=PYREX_WITHOUT_ASSERTIONS + +[build_doc] +builder=html diff --git a/setup.py b/setup.py index e76faa0..302af23 100755 --- a/setup.py +++ b/setup.py @@ -47,8 +47,9 @@ if os.path.exists(os.path.join(os.getcwd(), efl, eo, efl.eo.pyx)): import Cython.Compiler.Options assert StrictVersion(Cython.__version__) = StrictVersion(min_ver) -Cython.Compiler.Options.fast_fail = True # stop compilation on first error -Cython.Compiler.Options.annotate = False # HTML file annotation generation +Cython.Compiler.Options.fast_fail = True # Stop compilation on first error +Cython.Compiler.Options.annotate = False # Generates HTML files with annotated source +Cython.Compiler.Options.docstrings = True # Set to False to disable docstrings except (ImportError, AssertionError): raise SystemExit(Requires Cython = %s (http://cython.org/) % min_ver) --
[EGIT] [bindings/python/python-efl] master 03/03: Elementary: Add some TODO code comments
kuuko pushed a commit to branch master. http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=ada7a8c07ed24fce500529e9b8fe4037cc19cc79 commit ada7a8c07ed24fce500529e9b8fe4037cc19cc79 Author: Kai Huuhko kai.huu...@gmail.com Date: Tue Oct 29 12:36:08 2013 +0200 Elementary: Add some TODO code comments --- efl/elementary/multibuttonentry.pyx | 4 efl/elementary/object.pyx | 7 ++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/efl/elementary/multibuttonentry.pyx b/efl/elementary/multibuttonentry.pyx index 9d8f326..33df0c0 100644 --- a/efl/elementary/multibuttonentry.pyx +++ b/efl/elementary/multibuttonentry.pyx @@ -238,6 +238,10 @@ cdef class MultiButtonEntry(Object): def __init__(self, evasObject parent, *args, **kwargs): self._set_obj(elm_multibuttonentry_add(parent.obj)) self._set_properties_from_keyword_args(kwargs) +# +# TODO: Add callbacks for item added and item deleted, inject +# the python instance into Elm_Object_Item's data +# property entry: The Entry object child of the multibuttonentry. diff --git a/efl/elementary/object.pyx b/efl/elementary/object.pyx index 4c64b20..d171e73 100644 --- a/efl/elementary/object.pyx +++ b/efl/elementary/object.pyx @@ -491,7 +491,7 @@ cdef class Object(evasObject): children and so on) of the given object looking for a child with the name of *name*. If the child is found the object is returned, or None is returned. You can set the name of an object with -:py:func:`name_set()`. If the name is not unique within the child +:py:attr:`nameefl.evas.Object.name`. If the name is not unique within the child objects (or the tree is ``recurse`` is greater than 0) then it is undefined as to which child of that name is returned, so ensure the name is unique amongst children. If recurse is set to -1 it will @@ -552,6 +552,11 @@ cdef class Object(evasObject): def disabled_get(self): return bool(elm_object_disabled_get(self.obj)) +# +# TODO: Remove this? Or make it a module level function. No sense +# in trying to check here since we're guaranteed to be an +# elm object. +# def widget_check(self): widget_check() - bool --
[EGIT] [bindings/python/python-efl] master 02/03: Edje: Fix unit test paths and skip a couple segfaulting tests.
kuuko pushed a commit to branch master. http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=05f288ec7f5f8b98ec94f169cbea881534f31d78 commit 05f288ec7f5f8b98ec94f169cbea881534f31d78 Author: Kai Huuhko kai.huu...@gmail.com Date: Tue Oct 29 06:25:23 2013 +0200 Edje: Fix unit test paths and skip a couple segfaulting tests. Decorator test fails but I'm not sure if the test is simply wrong. Dave, can you check? --- tests/edje/test_01_basics.py | 3 ++- tests/edje/test_02_object.py | 3 ++- tests/edje/test_03_external.py | 8 tests/edje/test_04_edit.py | 37 - tests/edje/test_05_decorators.py | 10 ++ 5 files changed, 34 insertions(+), 27 deletions(-) diff --git a/tests/edje/test_01_basics.py b/tests/edje/test_01_basics.py index 318a35a..c639b0a 100644 --- a/tests/edje/test_01_basics.py +++ b/tests/edje/test_01_basics.py @@ -5,7 +5,8 @@ from efl import edje import os, unittest -theme_file = os.path.join(os.path.dirname(__file__), theme.edj) +theme_path = os.path.dirname(os.path.abspath(__file__)) +theme_file = os.path.join(theme_path, theme.edj) class TestBasics(unittest.TestCase): diff --git a/tests/edje/test_02_object.py b/tests/edje/test_02_object.py index 6cd7efc..0d354fd 100644 --- a/tests/edje/test_02_object.py +++ b/tests/edje/test_02_object.py @@ -6,7 +6,8 @@ from efl import edje import os, unittest -theme_file = os.path.join(os.path.dirname(__file__), theme.edj) +theme_path = os.path.dirname(os.path.abspath(__file__)) +theme_file = os.path.join(theme_path, theme.edj) class TestEdjeObject(unittest.TestCase): diff --git a/tests/edje/test_03_external.py b/tests/edje/test_03_external.py index 6b2a5c5..a5dad0f 100644 --- a/tests/edje/test_03_external.py +++ b/tests/edje/test_03_external.py @@ -44,8 +44,8 @@ from efl.elementary.video import Video from efl.elementary.web import Web - -theme_file = os.path.join(os.path.dirname(__file__), theme.edj) +theme_path = os.path.dirname(os.path.abspath(__file__)) +theme_file = os.path.join(theme_path, theme.edj) class TestElementaryExternal(unittest.TestCase): @@ -55,7 +55,7 @@ class TestElementaryExternal(unittest.TestCase): viewport=(0, 0, 400, 500)) self.canvas.engine_info_set(self.canvas.engine_info_get()) self.theme = edje.Edje(self.canvas, file=theme_file, group=main) - + def tearDown(self): self.theme.delete() self.canvas.delete() @@ -370,7 +370,7 @@ class TestElementaryExternal(unittest.TestCase): if __name__ == '__main__': unittest.main(verbosity=2) - + elementary.shutdown() edje.shutdown() ecore.shutdown() diff --git a/tests/edje/test_04_edit.py b/tests/edje/test_04_edit.py index 3f73b89..7ee2543 100644 --- a/tests/edje/test_04_edit.py +++ b/tests/edje/test_04_edit.py @@ -9,15 +9,16 @@ from efl.edje_edit import EdjeEdit, Text_Style, Text_Style_Tag, Color_Class, \ import os, unittest, shutil -orig_theme_file = os.path.join(os.path.dirname(__file__), theme.edj) -theme_file = os.path.join(os.path.dirname(__file__), theme_working.edj) +theme_path = os.path.dirname(os.path.abspath(__file__)) +orig_theme_file = os.path.join(theme_path, theme.edj) +theme_file = os.path.join(theme_path, theme_working.edj) class TestEdjeEditBase(unittest.TestCase): def setUp(self): # copy the edje file to a temp one as we are going to edit it shutil.copy(orig_theme_file, theme_file) - + self.canvas = evas.Canvas(method=buffer, size=(400, 500), viewport=(0, 0, 400, 500)) @@ -51,18 +52,18 @@ class TestEdjeEditGeneral(unittest.TestCase): def testGeneral(self): self.assertEqual(self.o.compiler_get(), edje_cc) -self.assertEqual(self.o.file_get(), (theme_file, main)) -# o.print_internal_status() # FIXME this crash badly +self.assertEqual(self.o.file_get(), (unicode(theme_file), umain)) +# self.o.print_internal_status() # FIXME this crash badly def testGroup(self): g = self.o.current_group self.assertEqual((g.w_min, g.w_max), (200, 400)) self.assertEqual((g.h_min, g.h_max), (200, 400)) - + g.w_min = g.h_min = 201 g.w_max = g.h_max = 401 - + self.assertEqual((g.w_min, g.w_max), (201, 401)) self.assertEqual((g.h_min, g.h_max), (201, 401)) @@ -85,36 +86,36 @@ class TestEdjeEditGeneral(unittest.TestCase): self.assertEqual(self.o.data_get(key1), value1) self.assertEqual(self.o.data_get(key2), value2) - + self.o.data_set(key1, new_value1) self.o.data_set(key2, new_value2) self.assertEqual(self.o.data_get(key1), new_value1) self.assertEqual(self.o.data_get(key2), new_value2) - + self.o.data_add(key5, value5)
Re: [E-devel] [RFC] configure options for maintainers
On 29/10/2013 00:58, Carsten Haitzler (The Rasterman) wrote: On Mon, 28 Oct 2013 11:49:20 +0100 Guillaume Friloux guillaume.fril...@asp64.com said: On 28/10/2013 03:49, Carsten Haitzler (The Rasterman) wrote: great.. but how do you EXTRACT this info then from the lib? :) it's a lib.. it can't execute on its own... and printfing such strings on every fn call is just anti-social :) Its actually possible, but needs some hack. glibc does it : /lib/libc-2.18.so GNU C Library (GNU libc) stable release version 2.18, by Roland McGrath et al. Copyright (C) 2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Compiled by GNU CC version 4.8.1 20130725 (prerelease). Compiled on a Linux 3.10.6 system on 2013-09-24. Available extensions: crypt add-on version 2.1 by Michael Glad and others GNU Libidn by Simon Josefsson Native POSIX Threads Library by Ulrich Drepper et al BIND-8.2.3-T5B libc ABIs: UNIQUE IFUNC For bug reporting instructions, please see: https://bugs.archlinux.org/. well well well.. i never knew that! they made it a PIE executable? Small exemple there : http://rachid.koucha.free.fr/tech_corner/executable_lib.html There is a nice article on linux magazine france n°164, too bad you aint french (but nobodies perfect) attachment: guillaume_friloux.vcf-- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Weekly news from the automated build and QA front
On Tue, Oct 29, 2013 at 7:01 PM, Stefan Schmidt s.schm...@samsung.com wrote: On 10/29/2013 09:38 AM, Cedric BAIL wrote: On Tue, Oct 29, 2013 at 5:31 PM, Stefan Schmidt s.schm...@samsung.com wrote: On 10/28/2013 06:29 PM, Bertrand Jacquin wrote: Not that next report may give different results as the 1th november, main gcc release will be switch for gcc 4.8.1. Ah, right. Thanks for the reminder. I'm running one machine with 4.8.1 here so I don't expect to many problems. Just more warnings maybe. Speaking of warning, I discovered this plugins for jenkins : https://wiki.jenkins-ci.org/display/JENKINS/Valgrind+Plugin Do you think it would be possible to roll that along our tests ? Anything specific you expect from it? We have address-sanitizer running which I always expected to be on par with Valgrinds memcheck functionality. Am I wrong with this? Daniel? Am I wrong that address-sanitizer doesn't give us information on memory leak ? The graphs might be nice. I added it to my todo list and will check if we can have it running. Don't expect anything withing the next one or two weeks due to the transfer and relocation though. Yup, the grice is the neat things here. And don't worry it's not really urgent, can wait for tomorrow morning ;-) -- Cedric BAIL -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Weekly news from the automated build and QA front
Hello. On 10/29/2013 10:50 AM, Cedric BAIL wrote: On Tue, Oct 29, 2013 at 7:01 PM, Stefan Schmidt s.schm...@samsung.com wrote: On 10/29/2013 09:38 AM, Cedric BAIL wrote: On Tue, Oct 29, 2013 at 5:31 PM, Stefan Schmidt s.schm...@samsung.com wrote: On 10/28/2013 06:29 PM, Bertrand Jacquin wrote: Not that next report may give different results as the 1th november, main gcc release will be switch for gcc 4.8.1. Ah, right. Thanks for the reminder. I'm running one machine with 4.8.1 here so I don't expect to many problems. Just more warnings maybe. Speaking of warning, I discovered this plugins for jenkins : https://wiki.jenkins-ci.org/display/JENKINS/Valgrind+Plugin Do you think it would be possible to roll that along our tests ? Anything specific you expect from it? We have address-sanitizer running which I always expected to be on par with Valgrinds memcheck functionality. Am I wrong with this? Daniel? Am I wrong that address-sanitizer doesn't give us information on memory leak ? Aehm, yeah. You are right. No idea how I could forget about this. :) The graphs might be nice. I added it to my todo list and will check if we can have it running. Don't expect anything withing the next one or two weeks due to the transfer and relocation though. Yup, the grice is the neat things here. And don't worry it's not really urgent, can wait for tomorrow morning ;-) :) regards Stefan Schmidt -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/elementary] master 01/02: elm/win: Put framespace set code in a common place.
antognolli pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=e1ebba54bd57819dd1c50347f0a2e5d562505d1a commit e1ebba54bd57819dd1c50347f0a2e5d562505d1a Author: Rafael Antognolli rafael.antogno...@intel.com Date: Tue Oct 29 08:42:41 2013 -0200 elm/win: Put framespace set code in a common place. A little refactory that hopefully will prevent future mistakes when changing this code. --- src/lib/elm_win.c | 45 + 1 file changed, 17 insertions(+), 28 deletions(-) diff --git a/src/lib/elm_win.c b/src/lib/elm_win.c index 5bfc452..fa41545 100644 --- a/src/lib/elm_win.c +++ b/src/lib/elm_win.c @@ -2199,25 +2199,18 @@ static struct _resize_info _border_corner[4] = #endif static void -_elm_win_frame_obj_move(void *data, -Evas *e __UNUSED__, -Evas_Object *obj __UNUSED__, -void *event_info __UNUSED__) +_elm_win_frame_obj_update(Elm_Win_Smart_Data *sd) { - Elm_Win_Smart_Data *sd; int fx, fy, fw, fh; int ox, oy, ow, oh; int sx, sy, sw, sh; int x, y, w, h; - - if (!(sd = data)) return; - if (!sd-client_obj) return; - evas_object_geometry_get(sd-frame_obj, fx, fy, fw, fh); evas_object_geometry_get(sd-client_obj, ox, oy, ow, oh); evas_object_geometry_get(sd-spacer_obj, sx, sy, sw, sh); evas_output_framespace_get(sd-evas, x, y, w, h); + if ((x != (ox - fx)) || (y != (oy - fy)) || (w != (fw - ow)) || (h != (fh - oh))) { @@ -2231,35 +2224,31 @@ _elm_win_frame_obj_move(void *data, } static void +_elm_win_frame_obj_move(void *data, +Evas *e __UNUSED__, +Evas_Object *obj __UNUSED__, +void *event_info __UNUSED__) +{ + Elm_Win_Smart_Data *sd; + + if (!(sd = data)) return; + if (!sd-client_obj) return; + + _elm_win_frame_obj_update(sd); +} + +static void _elm_win_frame_obj_resize(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { Elm_Win_Smart_Data *sd; - int fx, fy, fw, fh; - int ox, oy, ow, oh; - int sx, sy, sw, sh; - int x, y, w, h; if (!(sd = data)) return; if (!sd-client_obj) return; - evas_object_geometry_get(sd-frame_obj, fx, fy, fw, fh); - evas_object_geometry_get(sd-client_obj, ox, oy, ow, oh); - evas_object_geometry_get(sd-spacer_obj, sx, sy, sw, sh); - - evas_output_framespace_get(sd-evas, x, y, w, h); - if ((x != (ox - fx)) || (y != (oy - fy)) || - (w != (fw - ow)) || (h != (fh - oh))) - { -evas_output_framespace_set(sd-evas, (ox - fx), (oy - fy), - (fw - ow), (fh - oh)); - } - -#ifdef HAVE_ELEMENTARY_WAYLAND - ecore_wl_window_opaque_region_set(sd-wl.win, -fx, -(fy - sy), sw, sh); -#endif + _elm_win_frame_obj_update(sd); } static void --
[EGIT] [core/elementary] master 02/02: elm/win: Do not force maximized status.
antognolli pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=ea3b9ea0f932f9d4446bb3d3a902908a12bcd3de commit ea3b9ea0f932f9d4446bb3d3a902908a12bcd3de Author: Rafael Antognolli rafael.antogno...@intel.com Date: Tue Oct 29 08:39:40 2013 -0200 elm/win: Do not force maximized status. When receiving a maximize event from the maximize button, do not force sd-maximized. We must wait for a state change event, just like when a window is maximized by the elm_win_maximized_set function. This will ensure that a maximized smart event is sent. Additionally, send a elm,state,maximized signal to the edje theme, so it can update shadows and window decorations correctly. --- src/lib/elm_win.c | 29 + 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/src/lib/elm_win.c b/src/lib/elm_win.c index fa41545..19f9cbc 100644 --- a/src/lib/elm_win.c +++ b/src/lib/elm_win.c @@ -2368,17 +2368,38 @@ _elm_win_frame_cb_minimize(void *data, } static void +_elm_win_frame_maximized_state_update(Elm_Win_Smart_Data *sd, Eina_Bool maximized) +{ + const char *emission; + + if (maximized) + emission = elm,state,maximized; + else + emission = elm,state,unmaximized; + + edje_object_signal_emit(sd-frame_obj, emission, elm); + edje_object_message_signal_process(sd-frame_obj); + evas_object_smart_calculate(sd-frame_obj); + + _elm_win_frame_obj_update(sd); +} + +static void _elm_win_frame_cb_maximize(void *data, Evas_Object *obj __UNUSED__, const char *sig __UNUSED__, const char *source __UNUSED__) { + Eina_Bool value; ELM_WIN_DATA_GET(data, sd); if (!sd) return; - if (sd-maximized) sd-maximized = EINA_FALSE; - else sd-maximized = EINA_TRUE; - TRAP(sd, maximized_set, sd-maximized); + if (sd-maximized) value = EINA_FALSE; + else value = EINA_TRUE; + + _elm_win_frame_maximized_state_update(sd, value); + + TRAP(sd, maximized_set, value); } static void @@ -3835,7 +3856,7 @@ _maximized_set(Eo *obj EINA_UNUSED, void *_pd, va_list *list) Eina_Bool maximized = va_arg(*list, int); Elm_Win_Smart_Data *sd = _pd; -// sd-maximized = maximized; + _elm_win_frame_maximized_state_update(sd, maximized); // YYY: handle if sd-img_obj TRAP(sd, maximized_set, maximized); #ifdef HAVE_ELEMENTARY_X --
Re: [E-devel] [RFC] configure options for maintainers
On 10/28/13 18:21, Carsten Haitzler wrote: On Mon, 28 Oct 2013 17:31:44 +0900 Cedric BAIL cedric.b...@free.fr said: On Mon, Oct 28, 2013 at 4:27 PM, Carsten Haitzler ras...@rasterman.com wrote: On Mon, 28 Oct 2013 14:45:38 +0900 Cedric BAIL cedric.b...@free.fr said: On Mon, Oct 28, 2013 at 11:49 AM, Carsten Haitzler ras...@rasterman.com wrote: On Sat, 12 Oct 2013 11:43:33 +0900 Jérôme Pinot ngc...@gmail.com said: great.. but how do you EXTRACT this info then from the lib? :) it's a lib.. it can't execute on its own... and printfing such strings on every fn call is just anti-social :) I would have said : #define EFL_BUILD_DISTRO MyDistro #define EFL_BUILD_VENDOR Main Tainer f...@bar.org #define EFL_BUILD_VERSION 42 ummm... ok - and so then we have tyo rely on application executables specifically finding these and printfing them or stuffing them into dialogs? We could put those variable also in the pkg-config, but I was inclined on using that in our .e-crashdump.txt infra. So plain C code there. that's the point i was hinting at.. if its just some strings inside the libs... then we need special stuff to extract it. if we add it to pc files or otherwise make it easy to find... then thats useful. What about this? https://phab.enlightenment.org/D288 Hi, During the Enlightenment French League^W^W dinner, we had this idea of having a configure option for the EFL to setup a string identifying the compiler/maintainer/distribution of the build. Several projects use this kind of string, for instance TexLive, LibreOffice or POV-Ray. It can be use to find quickly the maintainer, to generate automatic bug reports and most important, blame someone else (not you, no, really). There are several way to accomplish this during configuration: POV-Ray uses the COMPILED_BY=Main Tainer f...@bar.org environment variable TexLive uses --with-banner-add=Tex Live 2013/MyDistro Main Tainer f...@bar.org LibreOffice uses several options: --with-distro=MyDistro --with-vendor=Main Tainer f...@bar.org --with-build-version=42 It seems to me that the LibreOffice options are better. What do you think about this? -- Jérôme Pinot http://ngc891.blogdns.net/ signature.asc Description: Digital signature -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [RFC] configure options for maintainers
On Tue, 29 Oct 2013 11:47:37 +0100 Guillaume Friloux guillaume.fril...@asp64.com said: On 29/10/2013 00:58, Carsten Haitzler (The Rasterman) wrote: On Mon, 28 Oct 2013 11:49:20 +0100 Guillaume Friloux guillaume.fril...@asp64.com said: On 28/10/2013 03:49, Carsten Haitzler (The Rasterman) wrote: great.. but how do you EXTRACT this info then from the lib? :) it's a lib.. it can't execute on its own... and printfing such strings on every fn call is just anti-social :) Its actually possible, but needs some hack. glibc does it : /lib/libc-2.18.so GNU C Library (GNU libc) stable release version 2.18, by Roland McGrath et al. Copyright (C) 2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Compiled by GNU CC version 4.8.1 20130725 (prerelease). Compiled on a Linux 3.10.6 system on 2013-09-24. Available extensions: crypt add-on version 2.1 by Michael Glad and others GNU Libidn by Simon Josefsson Native POSIX Threads Library by Ulrich Drepper et al BIND-8.2.3-T5B libc ABIs: UNIQUE IFUNC For bug reporting instructions, please see: https://bugs.archlinux.org/. well well well.. i never knew that! they made it a PIE executable? Small exemple there : http://rachid.koucha.free.fr/tech_corner/executable_lib.html There is a nice article on linux magazine france n°164, too bad you aint french (but nobodies perfect) tres interessant. :P... -- - Codito, ergo sum - I code, therefore I am -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/efl] master 03/03: async render - alpha set. if not visible dont WAIT. do it now.
Raster, On Mon, Oct 28, 2013 at 10:03 PM, Carsten Haitzler ras...@rasterman.com wrote: On Mon, 28 Oct 2013 17:13:08 -0200 Ulisses Furquim uliss...@gmail.com said: Hi Raster, On Mon, Oct 28, 2013 at 12:47 AM, Carsten Haitzler ras...@rasterman.com wrote: On Fri, 18 Oct 2013 15:19:00 -0300 Ulisses Furquim uliss...@gmail.com said: Raster, On Wed, Oct 16, 2013 at 8:58 PM, Carsten Haitzler ras...@rasterman.com wrote: On Wed, 16 Oct 2013 12:26:26 -0300 Ulisses Furquim uliss...@gmail.com said: Raster, On Wed, Oct 16, 2013 at 12:01 PM, Carsten Haitzler ras...@rasterman.com wrote: raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=06c3c0cd0c0e2af7279470ab5b3fd3100e1499db commit 06c3c0cd0c0e2af7279470ab5b3fd3100e1499db Author: Carsten Haitzler (Rasterman) ras...@rasterman.com Date: Thu Oct 17 00:00:05 2013 +0900 async render - alpha set. if not visible dont WAIT. do it now. --- src/modules/ecore_evas/engines/x/ecore_evas_x.c | 11 --- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/modules/ecore_evas/engines/x/ecore_evas_x.c b/src/modules/ecore_evas/engines/x/ecore_evas_x.c index 627dd15..69e0709 100644 --- a/src/modules/ecore_evas/engines/x/ecore_evas_x.c +++ b/src/modules/ecore_evas/engines/x/ecore_evas_x.c @@ -2284,10 +2284,15 @@ _ecore_evas_x_alpha_set(Ecore_Evas *ee, int alpha) { if (ee-in_async_render) { - ee-delayed.alpha = alpha; - ee-delayed.alpha_changed = EINA_TRUE; - return; + if (ee-visible) + { + ee-delayed.alpha = alpha; + ee-delayed.alpha_changed = EINA_TRUE; + return; + } } +if (ee-in_async_render) +evas_sync(ee-evas); Why? We're syncing just to apply the alpha for those not visible? Your commit message is wrong because we are WAITING on this sync call before the _alpha_do(). Thus it's almost the same as letting the alpha be set the delayed way. Unless I'm missing anything we're not gaining anything with this patch. no sync - segv. sync - no segv. (inside evas async rendering where an xob is null). since changing to alpha destroys and recreates the window id... not surprising. Do you have a backtrace? I did some quick testing but no segv for me. i did have one... it was in the async flush code - the one where the mainloop inline does its putimage to the window... but the xob was NULL (i didn't even check more than that because i instantly had the twinge that h i bet the xob creation failed due to invalid window id or something and thus why its null.. when the code is ASSUMING window id doesnt change during rendering... thus simple - ensure rendering is done before we change window id. :) Window ID shouldn't change during rendering, that's the point of having delayed operations. :-) Like Gustavo said I'm interested to know what really was the problem because I don't think we should be solving everything by adding evas_sync() calls everywhere. the window id does change. that's the core issue here. it is destroyed and re-created as that is the only way we can switch the visual of the window :) (given ecore-x). thus why i forced the wait for async to finish... :) also remember any properties set on the window before are then lost and we rely on ecore-evas to restore the ones it knows about (and has remembered to restore). *During* rendering it shouldn't, have you read what I wrote?! :-) if we delay UNCONDITIONALLY (which is what it did before the change - regardless of visibility) we WAIT until the window has already rendered something (which likely is after a show that came AFTER the set to alpha), and then now that we rendered and showed... we destroy and re-create again... when we could have happily just done it without delay/wait and avoided artifacts on invisible windows. :) I understood what you and Mike meant, thanks. But the way it works is that if we are not async rendering it'll be done with no delay and if we are async rendering then it'll be delayed until the old frame is completely rendered and no new frames will be sent to render because we actively drop frames! Thus I don't think that setting alpha would destroy any new content rendered and showed but only old ones. Does that make sense? the problem is we are messing with a window and its properties... and the code expects to mess with it there and then.. but it gets deferred until later .. and this leads to inconsistency issues. as best i saw a primary one is that UNTIL we render yet again the window stays hidden. (invisible). and our render was over already... Hmm.. Raster, please, we need to have this
Re: [E-devel] [RFC] configure options for maintainers
On Tue, 29 Oct 2013 20:52:08 +0900 Jérôme Pinot ngc...@gmail.com said: On 10/28/13 18:21, Carsten Haitzler wrote: On Mon, 28 Oct 2013 17:31:44 +0900 Cedric BAIL cedric.b...@free.fr said: On Mon, Oct 28, 2013 at 4:27 PM, Carsten Haitzler ras...@rasterman.com wrote: On Mon, 28 Oct 2013 14:45:38 +0900 Cedric BAIL cedric.b...@free.fr said: On Mon, Oct 28, 2013 at 11:49 AM, Carsten Haitzler ras...@rasterman.com wrote: On Sat, 12 Oct 2013 11:43:33 +0900 Jérôme Pinot ngc...@gmail.com said: great.. but how do you EXTRACT this info then from the lib? :) it's a lib.. it can't execute on its own... and printfing such strings on every fn call is just anti-social :) I would have said : #define EFL_BUILD_DISTRO MyDistro #define EFL_BUILD_VENDOR Main Tainer f...@bar.org #define EFL_BUILD_VERSION 42 ummm... ok - and so then we have tyo rely on application executables specifically finding these and printfing them or stuffing them into dialogs? We could put those variable also in the pkg-config, but I was inclined on using that in our .e-crashdump.txt infra. So plain C code there. that's the point i was hinting at.. if its just some strings inside the libs... then we need special stuff to extract it. if we add it to pc files or otherwise make it easy to find... then thats useful. What about this? https://phab.enlightenment.org/D288 and missing the next bit... how to expose it... :) Hi, During the Enlightenment French League^W^W dinner, we had this idea of having a configure option for the EFL to setup a string identifying the compiler/maintainer/distribution of the build. Several projects use this kind of string, for instance TexLive, LibreOffice or POV-Ray. It can be use to find quickly the maintainer, to generate automatic bug reports and most important, blame someone else (not you, no, really). There are several way to accomplish this during configuration: POV-Ray uses the COMPILED_BY=Main Tainer f...@bar.org environment variable TexLive uses --with-banner-add=Tex Live 2013/MyDistro Main Tainer f...@bar.org LibreOffice uses several options: --with-distro=MyDistro --with-vendor=Main Tainer f...@bar.org --with-build-version=42 It seems to me that the LibreOffice options are better. What do you think about this? -- Jérôme Pinot http://ngc891.blogdns.net/ -- - Codito, ergo sum - I code, therefore I am -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/efl] master 03/03: async render - alpha set. if not visible dont WAIT. do it now.
On Tue, 29 Oct 2013 10:20:33 -0200 Ulisses Furquim uliss...@gmail.com said: Raster, On Mon, Oct 28, 2013 at 10:03 PM, Carsten Haitzler ras...@rasterman.com wrote: On Mon, 28 Oct 2013 17:13:08 -0200 Ulisses Furquim uliss...@gmail.com said: Hi Raster, On Mon, Oct 28, 2013 at 12:47 AM, Carsten Haitzler ras...@rasterman.com wrote: On Fri, 18 Oct 2013 15:19:00 -0300 Ulisses Furquim uliss...@gmail.com said: Raster, On Wed, Oct 16, 2013 at 8:58 PM, Carsten Haitzler ras...@rasterman.com wrote: On Wed, 16 Oct 2013 12:26:26 -0300 Ulisses Furquim uliss...@gmail.com said: Raster, On Wed, Oct 16, 2013 at 12:01 PM, Carsten Haitzler ras...@rasterman.com wrote: raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=06c3c0cd0c0e2af7279470ab5b3fd3100e1499db commit 06c3c0cd0c0e2af7279470ab5b3fd3100e1499db Author: Carsten Haitzler (Rasterman) ras...@rasterman.com Date: Thu Oct 17 00:00:05 2013 +0900 async render - alpha set. if not visible dont WAIT. do it now. --- src/modules/ecore_evas/engines/x/ecore_evas_x.c | 11 --- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/modules/ecore_evas/engines/x/ecore_evas_x.c b/src/modules/ecore_evas/engines/x/ecore_evas_x.c index 627dd15..69e0709 100644 --- a/src/modules/ecore_evas/engines/x/ecore_evas_x.c +++ b/src/modules/ecore_evas/engines/x/ecore_evas_x.c @@ -2284,10 +2284,15 @@ _ecore_evas_x_alpha_set(Ecore_Evas *ee, int alpha) { if (ee-in_async_render) { - ee-delayed.alpha = alpha; - ee-delayed.alpha_changed = EINA_TRUE; - return; + if (ee-visible) + { + ee-delayed.alpha = alpha; + ee-delayed.alpha_changed = EINA_TRUE; + return; + } } +if (ee-in_async_render) +evas_sync(ee-evas); Why? We're syncing just to apply the alpha for those not visible? Your commit message is wrong because we are WAITING on this sync call before the _alpha_do(). Thus it's almost the same as letting the alpha be set the delayed way. Unless I'm missing anything we're not gaining anything with this patch. no sync - segv. sync - no segv. (inside evas async rendering where an xob is null). since changing to alpha destroys and recreates the window id... not surprising. Do you have a backtrace? I did some quick testing but no segv for me. i did have one... it was in the async flush code - the one where the mainloop inline does its putimage to the window... but the xob was NULL (i didn't even check more than that because i instantly had the twinge that h i bet the xob creation failed due to invalid window id or something and thus why its null.. when the code is ASSUMING window id doesnt change during rendering... thus simple - ensure rendering is done before we change window id. :) Window ID shouldn't change during rendering, that's the point of having delayed operations. :-) Like Gustavo said I'm interested to know what really was the problem because I don't think we should be solving everything by adding evas_sync() calls everywhere. the window id does change. that's the core issue here. it is destroyed and re-created as that is the only way we can switch the visual of the window :) (given ecore-x). thus why i forced the wait for async to finish... :) also remember any properties set on the window before are then lost and we rely on ecore-evas to restore the ones it knows about (and has remembered to restore). *During* rendering it shouldn't, have you read what I wrote?! :-) yes - i read it... but it DOES ... if you make the changes and remove the deferred change in alpha and do it there and then. i made that change before any commit made it anywhere... and segv land it was. thus need to sync and wait so rendering is done - then window can be destroyed+created safely. if we delay UNCONDITIONALLY (which is what it did before the change - regardless of visibility) we WAIT until the window has already rendered something (which likely is after a show that came AFTER the set to alpha), and then now that we rendered and showed... we destroy and re-create again... when we could have happily just done it without delay/wait and avoided artifacts on invisible windows. :) I understood what you and Mike meant, thanks. But the way it works is that if we are not async rendering it'll be done with no delay and if we are async rendering then it'll be delayed until the old frame is completely rendered and no new frames will be sent to render because we actively drop frames! Thus I don't think that setting alpha
Re: [E-devel] [EGIT] [core/efl] master 03/03: async render - alpha set. if not visible dont WAIT. do it now.
Hello. Mike requested me to let you know that he also explains things in his second reply (16.10.2013) which you seem to ignore. On 10/29/2013 12:20 PM, Ulisses Furquim wrote: [snap] I was trying to understand the bug being fixed and yes, it's minor and I can just leave it as that. However, we need to improve the way we do development as an open source project. It's kind of embarrassing that we don't have proper usage of version control, good commit messages, reviews, release schedule and so on. :-/ And you thing that will improve just by complaining about it? It will definitely not. It only improves if you actively work on changing things. I few examples for you what did improve over the last 1.5 years: o Daniel and Tom migrated us over to git and helped people with using is as well as bringing in best practices piece by piece (developer repos and branches, possible merge work flows, complains about commit messages) o Daniel and I did a lot of work to get CI up to speed and improved it in various ways o I started to do coverity builds and other QA stuff to raise awareness o During the latest dev day we discussed about release and raster suggested a time based schedule (just think about this. I would never seen that coming some time ago). I signed up for doing the first trial of this for the 1.9 efl release. That are just a few things. I actually think we improved a lot over the last 1.5 years. Still not where I want us to be but we are making more progress than I hoped for. All things only works if someone steps up and ACTIVELY does something. You want more review? Great! There has been a chance with the cserv2 branch just recently but nobody really did a public review. I see you doing reviews on the async stuff which is good but if you want more people doing it you need to lead by doing so yourself even on other patches. Don't complain about everything is shitty just because you don't like how this one patch was handled. Look at the whole picture and improve by actively helping out where help is needed. And yes, we should discuss this in a different thread regards Stefan Schmidt -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [RFC] configure options for maintainers
On Tuesday 29 October 2013 11:47, Guillaume Friloux wrote : On 29/10/2013 00:58, Carsten Haitzler (The Rasterman) wrote: On Mon, 28 Oct 2013 11:49:20 +0100 Guillaume Friloux guillaume.fril...@asp64.com said: On 28/10/2013 03:49, Carsten Haitzler (The Rasterman) wrote: great.. but how do you EXTRACT this info then from the lib? :) it's a lib.. it can't execute on its own... and printfing such strings on every fn call is just anti-social :) Its actually possible, but needs some hack. glibc does it : /lib/libc-2.18.so GNU C Library (GNU libc) stable release version 2.18, by Roland McGrath et al. Copyright (C) 2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Compiled by GNU CC version 4.8.1 20130725 (prerelease). Compiled on a Linux 3.10.6 system on 2013-09-24. Available extensions: crypt add-on version 2.1 by Michael Glad and others GNU Libidn by Simon Josefsson Native POSIX Threads Library by Ulrich Drepper et al BIND-8.2.3-T5B libc ABIs: UNIQUE IFUNC For bug reporting instructions, please see: https://bugs.archlinux.org/. well well well.. i never knew that! they made it a PIE executable? Small exemple there : http://rachid.koucha.free.fr/tech_corner/executable_lib.html There is a nice article on linux magazine france n°164, too bad you aint french (but nobodies perfect) I read half of it in the news kiosk last week ;) thanks for the link !! begin:vcard fn:Guillaume Friloux n:Friloux;Guillaume org:ASP64;RD email;internet:guillaume.fril...@asp64.com title:Linux C Dev x-mozilla-html:FALSE version:2.1 end:vcard -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ 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) -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [admin/devs] master 01/01: dev--
lfelipe pushed a commit to branch master. http://git.enlightenment.org/admin/devs.git/commit/?id=0c76c52eb1d45b5391c78e3eb1245f4321620556 commit 0c76c52eb1d45b5391c78e3eb1245f4321620556 Author: Luis Felipe Strano Moraes luis.str...@gmail.com Date: Tue Oct 29 15:17:10 2013 -0200 dev-- haven't been working on anything e-related recently --- lfelipe/id_rsa.pub | 1 - lfelipe/info.txt | 9 - 2 files changed, 10 deletions(-) diff --git a/lfelipe/id_rsa.pub b/lfelipe/id_rsa.pub deleted file mode 100644 index 0b6ee4d..000 --- a/lfelipe/id_rsa.pub +++ /dev/null @@ -1 +0,0 @@ -ssh-rsa B3NzaC1yc2EBIwAAAQEA1QDVDA+CkAJLbwS5OLi2Ts/DCbIpc0buzttvavnzRPs9mTb7Cf/fQg6uSoiXDKi0+acRUZ6HMZW01/ACkLzrrcIvQnP/wqhvZICSTK5NR1cL562Z938M9IYkeJzkLWN5Ftk/hnuTu+c6OGVGfeT2lpz/34qPcgvewvXZ/dSgXP5IzRr/AfF5uOmsn5r30L6/t0HTWvK13wXbd17cl/Ls1/5DhzSBhqce7UHqfCdDSAOz/N/kQua/EMnFTelnKrcK3X8RTgA99DHJLDzQt8qneUkCz+OJgmavvHdtBxf5DOZl2VCSoXkAvyRyHGIozaii9rRr7u0HWZ2V5NKFAGqmuw== lfelipe@annie diff --git a/lfelipe/info.txt b/lfelipe/info.txt deleted file mode 100644 index 3fc8d81..000 --- a/lfelipe/info.txt +++ /dev/null @@ -1,9 +0,0 @@ -Login:lfelipe -IRC Nick: lfelipe -Cloak:developer/lfelipe -Name: Luis Felipe Strano Moraes -Location: Campinas, Brazil -E-Mail: -lfel...@profusion.mobi -Contributing: Evas, Ecore, Edje, Epsilon, Efreet -Group:Libraries -Platform: Ubuntu (Linux) --
Re: [E-devel] Weekly news from the automated build and QA front
Hello Is the test result from efl/src/tests/* stuffs? The functional (or line) coverage would be lower than I though. It would be a nice point to contribute on my side. :) Sincerely, Shinwoo Kim. On Tue, Oct 29, 2013 at 8:02 PM, Stefan Schmidt s.schm...@samsung.comwrote: Hello. On 10/29/2013 10:50 AM, Cedric BAIL wrote: On Tue, Oct 29, 2013 at 7:01 PM, Stefan Schmidt s.schm...@samsung.com wrote: On 10/29/2013 09:38 AM, Cedric BAIL wrote: On Tue, Oct 29, 2013 at 5:31 PM, Stefan Schmidt s.schm...@samsung.com wrote: On 10/28/2013 06:29 PM, Bertrand Jacquin wrote: Not that next report may give different results as the 1th november, main gcc release will be switch for gcc 4.8.1. Ah, right. Thanks for the reminder. I'm running one machine with 4.8.1 here so I don't expect to many problems. Just more warnings maybe. Speaking of warning, I discovered this plugins for jenkins : https://wiki.jenkins-ci.org/display/JENKINS/Valgrind+Plugin Do you think it would be possible to roll that along our tests ? Anything specific you expect from it? We have address-sanitizer running which I always expected to be on par with Valgrinds memcheck functionality. Am I wrong with this? Daniel? Am I wrong that address-sanitizer doesn't give us information on memory leak ? Aehm, yeah. You are right. No idea how I could forget about this. :) The graphs might be nice. I added it to my todo list and will check if we can have it running. Don't expect anything withing the next one or two weeks due to the transfer and relocation though. Yup, the grice is the neat things here. And don't worry it's not really urgent, can wait for tomorrow morning ;-) :) regards Stefan Schmidt -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] enventor release. (Tom, Read this)
whoa! ninja takes off a mask here. On Mon, Oct 28, 2013 at 3:58 PM, ChunEon Park her...@naver.com wrote: ok, that will be the first but last request. -Regards, Hermet- -Original Message- From: Steven@este...@enlightenment.org To: Enlightenment developer list enlightenment-devel@lists.sourceforge.net; Cc: Sent: 2013-10-24 (목) 10:16:58 Subject: Re: [E-devel] enventor release. (Tom, Read this) On Thu, Oct 24, 2013 at 1:46 AM, Daniel Juyung Seo seojuyung2@gmail.com wrote: On Thu, Oct 24, 2013 at 8:31 AM, Bertrand Jacquin beber@meleeweb.net wrote: On 2013-10-23 12:24, ChunEon Park wrote: As far as our plan, efl 1.8 will be released in the next month. I'm getting to release enventor 0.1 also along with the efl 1.8. So, I gonna put the enventor under the tools repository at this point If nobody object to me. Tom or Daniel, could you please migrate the enventor from my private repo to tools? Done. I made a copy of your repo, so you're free to remove your personal repo. http://git.enlightenment.org/tools/enventor.git/ Cool Beber! Thanks for your job. reminder : it's not his job ;) Many thx to him ! Daniel Juyung Seo (SeoZ) -- Beber -- October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register http://pubads.g.doubleclick.net/gampad/clk?id=60135991iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[E-devel] [Question] Key event related
Dear all, Hello. after i press and release space key while right arrow key is pressed. the right arrow key press event does not occur before release and press right arrow key again. this is a normal operation on X environment. then how can i implement a shooting game on this environment. my main actor could fire while he moves to right side. but he can not move anymore after the fire stopped before the right arrow key is released and pressed. Sincerely, Shinwoo Kim. -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[E-devel] Is there *real* documentation for edje?
I am trying to write an alternitive version of the Enlightenment's 'start menu', where instead of a cascade menu it is a three column thingy (I am not sure what this sort of menu is called), something like this (from Mint): ftp://ftp.deepsoft.com/ftp/pub/deepwoods/Other/RibbonMenu.png But I am having a hard time figuring out how to do this. The documentation for edje leaves a lot to be desired and the API for enlightenment itself is pretty much not documented at all. I am a skilled C programmer, but without useful documentation it is very hard to program... -- Robert Heller -- 978-544-6933 / hel...@deepsoft.com Deepwoods Software-- http://www.deepsoft.com/ () ascii ribbon campaign -- against html e-mail /\ www.asciiribbon.org -- against proprietary attachments -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Is there *real* documentation for edje?
Le 29/10/2013 20:14, Robert Heller a écrit : I am trying to write an alternitive version of the Enlightenment's 'start menu', where instead of a cascade menu it is a three column thingy (I am not sure what this sort of menu is called), something like this (from Mint): ftp://ftp.deepsoft.com/ftp/pub/deepwoods/Other/RibbonMenu.png But I am having a hard time figuring out how to do this. The documentation for edje leaves a lot to be desired and the API for enlightenment itself is pretty much not documented at all. I am a skilled C programmer, but without useful documentation it is very hard to program... For people trying to look linked image : ftp://ftp.deepsoft.com/pub/deepwoods/Other/RibbonMenu.png As i am not involved in GUI libs of EFLs, ill let others answer you. -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/efl] master 01/02: ecore/wayland: Add some getters.
This is looking good antognolli :) Thank you for keeping to the existing formatting ;) There is one thing that I would prefer tho .. for internal/private functions (ie: Not exposed API functions), can we prefix with _ please ?? ie: +struct wl_compositor * +ecore_wl_compositor_get(void) +{ + if ((!_ecore_wl_disp) || (!_ecore_wl_disp-wl.display)) + return NULL; + + _ecore_wl_init_wait(); + + return _ecore_wl_disp-wl.compositor; +} into +struct wl_compositor * +_ecore_wl_compositor_get(void) +{ + if ((!_ecore_wl_disp) || (!_ecore_wl_disp-wl.display)) + return NULL; + + _ecore_wl_init_wait(); + + return _ecore_wl_disp-wl.compositor; +} The underscore just makes it really easy quick to determine that it's an internal function. That aside, Nice work !! :) Cheers, dh On 10/29/13 21:18, Rafael Antognolli wrote: antognolli pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=06d6bf0dba9f0cc20075c84507bec2cbdb96aa6b commit 06d6bf0dba9f0cc20075c84507bec2cbdb96aa6b Author: Rafael Antognolli rafael.antogno...@intel.com Date: Tue Oct 29 18:40:33 2013 -0200 ecore/wayland: Add some getters. This centralizes the place where we have to wait for the init to have finished before first using the compositor. It's also part of the later step of hiding Ecore_Wl_* private structs. --- src/lib/ecore_wayland/Ecore_Wayland.h| 10 ++ src/lib/ecore_wayland/ecore_wl.c | 22 ++ src/lib/ecore_wayland/ecore_wl_private.h | 3 +++ src/lib/ecore_wayland/ecore_wl_subsurf.c | 13 +++-- src/lib/ecore_wayland/ecore_wl_window.c | 6 +++--- 5 files changed, 45 insertions(+), 9 deletions(-) diff --git a/src/lib/ecore_wayland/Ecore_Wayland.h b/src/lib/ecore_wayland/Ecore_Wayland.h index 9ba7636..7828281 100644 --- a/src/lib/ecore_wayland/Ecore_Wayland.h +++ b/src/lib/ecore_wayland/Ecore_Wayland.h @@ -496,6 +496,16 @@ EAPI struct wl_shm *ecore_wl_shm_get(void); EAPI struct wl_display *ecore_wl_display_get(void); /** + * Retrieves the Compositor interface. + * + * This interface is used by clients to request the creation of surfaces and + * regions. + * + * @return The current wayland compositor interface + * @since 1.8 + */ + +/** * Retrieves the size of the current screen. * * @param w where to return the width. May be NULL. Returns 0 on error. diff --git a/src/lib/ecore_wayland/ecore_wl.c b/src/lib/ecore_wayland/ecore_wl.c index 451aa79..f763675 100644 --- a/src/lib/ecore_wayland/ecore_wl.c +++ b/src/lib/ecore_wayland/ecore_wl.c @@ -272,6 +272,28 @@ ecore_wl_registry_get(void) return _ecore_wl_disp-wl.registry; } +struct wl_compositor * +ecore_wl_compositor_get(void) +{ + if ((!_ecore_wl_disp) || (!_ecore_wl_disp-wl.display)) + return NULL; + + _ecore_wl_init_wait(); + + return _ecore_wl_disp-wl.compositor; +} + +struct wl_subcompositor * +ecore_wl_subcompositor_get(void) +{ + if ((!_ecore_wl_disp) || (!_ecore_wl_disp-wl.display)) + return NULL; + + _ecore_wl_init_wait(); + + return _ecore_wl_disp-wl.subcompositor; +} + EAPI void ecore_wl_screen_size_get(int *w, int *h) { diff --git a/src/lib/ecore_wayland/ecore_wl_private.h b/src/lib/ecore_wayland/ecore_wl_private.h index b83aae3..d615f0f 100644 --- a/src/lib/ecore_wayland/ecore_wl_private.h +++ b/src/lib/ecore_wayland/ecore_wl_private.h @@ -97,4 +97,7 @@ void _ecore_wl_events_shutdown(void); void _ecore_wl_subsurfs_del_all(Ecore_Wl_Window *win); +struct wl_compositor *ecore_wl_compositor_get(void); +struct wl_subcompositor *ecore_wl_subcompositor_get(void); + #endif diff --git a/src/lib/ecore_wayland/ecore_wl_subsurf.c b/src/lib/ecore_wayland/ecore_wl_subsurf.c index 4e144fa..d59810d 100644 --- a/src/lib/ecore_wayland/ecore_wl_subsurf.c +++ b/src/lib/ecore_wayland/ecore_wl_subsurf.c @@ -23,19 +23,22 @@ ecore_wl_subsurf_create(Ecore_Wl_Window *win) struct wl_subsurface *subsurface; struct wl_surface *surface; Ecore_Wl_Subsurf *ess; + struct wl_subcompositor *subcomp; LOGFN(__FILE__, __LINE__, __FUNCTION__); if (!win) return NULL; if (!win-surface) return NULL; - if (!_ecore_wl_disp-wl.subcompositor) return NULL; - surface = wl_compositor_create_surface(_ecore_wl_disp-wl.compositor); + subcomp = ecore_wl_subcompositor_get(); + if (!subcomp) return NULL; + + surface = wl_compositor_create_surface(ecore_wl_compositor_get()); if (!surface) return NULL; subsurface = wl_subcompositor_get_subsurface - (_ecore_wl_disp-wl.subcompositor, surface, win-surface); + (subcomp, surface, win-surface); if (!subsurface) { wl_surface_destroy(surface); @@ -171,7 +174,6 @@ ecore_wl_subsurf_sync_set(Ecore_Wl_Subsurf *ess, Eina_Bool val) EAPI void
[E-devel] Monitor/output parameter for fullscreen
Hey everyone, Our current API for setting a window as fullscreen does not support specifying which output/display/monitor should be used as fullscreen. However, wayland does support it. Would it make sense to have such parameter in the fullscreen_set API? Or should it be a wayland-only API? For the latter case, how would we do that? Maybe exposing an API that allows to set the preferred output, and then when fullscreen_set is called, it just uses that one? There's also a need to specify how the output should be referred to. Using an (unsigned) int, where 0 is the first output, 1 is the second, etc? Or maybe allowing to specify something like always the biggest one in area, or the widest one, or whatever... any thoughts? That reminds me that we still have another problem. APIs such ecore_wl_screen_size_get() return only the screen size of the first monitor, not both. What about a common API to select which output we are talking about, that must be called before any call that would refer to a specific output? The problem with this is that it would make code very wayland-specific :-/ I don't have many other ideas to fix this, other than having a generic way to refer to an output, and add it all over the ecore_evas APIs. -- Rafael Antognolli -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 01/02: ecore/wayland: Add some getters.
antognolli pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=06d6bf0dba9f0cc20075c84507bec2cbdb96aa6b commit 06d6bf0dba9f0cc20075c84507bec2cbdb96aa6b Author: Rafael Antognolli rafael.antogno...@intel.com Date: Tue Oct 29 18:40:33 2013 -0200 ecore/wayland: Add some getters. This centralizes the place where we have to wait for the init to have finished before first using the compositor. It's also part of the later step of hiding Ecore_Wl_* private structs. --- src/lib/ecore_wayland/Ecore_Wayland.h| 10 ++ src/lib/ecore_wayland/ecore_wl.c | 22 ++ src/lib/ecore_wayland/ecore_wl_private.h | 3 +++ src/lib/ecore_wayland/ecore_wl_subsurf.c | 13 +++-- src/lib/ecore_wayland/ecore_wl_window.c | 6 +++--- 5 files changed, 45 insertions(+), 9 deletions(-) diff --git a/src/lib/ecore_wayland/Ecore_Wayland.h b/src/lib/ecore_wayland/Ecore_Wayland.h index 9ba7636..7828281 100644 --- a/src/lib/ecore_wayland/Ecore_Wayland.h +++ b/src/lib/ecore_wayland/Ecore_Wayland.h @@ -496,6 +496,16 @@ EAPI struct wl_shm *ecore_wl_shm_get(void); EAPI struct wl_display *ecore_wl_display_get(void); /** + * Retrieves the Compositor interface. + * + * This interface is used by clients to request the creation of surfaces and + * regions. + * + * @return The current wayland compositor interface + * @since 1.8 + */ + +/** * Retrieves the size of the current screen. * * @param w where to return the width. May be NULL. Returns 0 on error. diff --git a/src/lib/ecore_wayland/ecore_wl.c b/src/lib/ecore_wayland/ecore_wl.c index 451aa79..f763675 100644 --- a/src/lib/ecore_wayland/ecore_wl.c +++ b/src/lib/ecore_wayland/ecore_wl.c @@ -272,6 +272,28 @@ ecore_wl_registry_get(void) return _ecore_wl_disp-wl.registry; } +struct wl_compositor * +ecore_wl_compositor_get(void) +{ + if ((!_ecore_wl_disp) || (!_ecore_wl_disp-wl.display)) + return NULL; + + _ecore_wl_init_wait(); + + return _ecore_wl_disp-wl.compositor; +} + +struct wl_subcompositor * +ecore_wl_subcompositor_get(void) +{ + if ((!_ecore_wl_disp) || (!_ecore_wl_disp-wl.display)) + return NULL; + + _ecore_wl_init_wait(); + + return _ecore_wl_disp-wl.subcompositor; +} + EAPI void ecore_wl_screen_size_get(int *w, int *h) { diff --git a/src/lib/ecore_wayland/ecore_wl_private.h b/src/lib/ecore_wayland/ecore_wl_private.h index b83aae3..d615f0f 100644 --- a/src/lib/ecore_wayland/ecore_wl_private.h +++ b/src/lib/ecore_wayland/ecore_wl_private.h @@ -97,4 +97,7 @@ void _ecore_wl_events_shutdown(void); void _ecore_wl_subsurfs_del_all(Ecore_Wl_Window *win); +struct wl_compositor *ecore_wl_compositor_get(void); +struct wl_subcompositor *ecore_wl_subcompositor_get(void); + #endif diff --git a/src/lib/ecore_wayland/ecore_wl_subsurf.c b/src/lib/ecore_wayland/ecore_wl_subsurf.c index 4e144fa..d59810d 100644 --- a/src/lib/ecore_wayland/ecore_wl_subsurf.c +++ b/src/lib/ecore_wayland/ecore_wl_subsurf.c @@ -23,19 +23,22 @@ ecore_wl_subsurf_create(Ecore_Wl_Window *win) struct wl_subsurface *subsurface; struct wl_surface *surface; Ecore_Wl_Subsurf *ess; + struct wl_subcompositor *subcomp; LOGFN(__FILE__, __LINE__, __FUNCTION__); if (!win) return NULL; if (!win-surface) return NULL; - if (!_ecore_wl_disp-wl.subcompositor) return NULL; - surface = wl_compositor_create_surface(_ecore_wl_disp-wl.compositor); + subcomp = ecore_wl_subcompositor_get(); + if (!subcomp) return NULL; + + surface = wl_compositor_create_surface(ecore_wl_compositor_get()); if (!surface) return NULL; subsurface = wl_subcompositor_get_subsurface - (_ecore_wl_disp-wl.subcompositor, surface, win-surface); + (subcomp, surface, win-surface); if (!subsurface) { wl_surface_destroy(surface); @@ -171,7 +174,6 @@ ecore_wl_subsurf_sync_set(Ecore_Wl_Subsurf *ess, Eina_Bool val) EAPI void ecore_wl_subsurf_opaque_region_set(Ecore_Wl_Subsurf *ess, int x, int y, int w, int h) { - Ecore_Wl_Window *parent; struct wl_region *region = NULL; LOGFN(__FILE__, __LINE__, __FUNCTION__); @@ -180,8 +182,7 @@ ecore_wl_subsurf_opaque_region_set(Ecore_Wl_Subsurf *ess, int x, int y, int w, i if ((w 0) (h 0)) { -parent = ess-parent_win; -region = wl_compositor_create_region(parent-display-wl.compositor); +region = wl_compositor_create_region(ecore_wl_compositor_get()); wl_region_add(region, x, y, w, h); wl_surface_set_opaque_region(ess-surface, region); wl_region_destroy(region); diff --git a/src/lib/ecore_wayland/ecore_wl_window.c b/src/lib/ecore_wayland/ecore_wl_window.c index 4ec78c8..b924691 100644 --- a/src/lib/ecore_wayland/ecore_wl_window.c +++ b/src/lib/ecore_wayland/ecore_wl_window.c @@ -252,7 +252,7 @@ ecore_wl_window_surface_create(Ecore_Wl_Window *win) { if (!win) return NULL; if (win-surface) return win-surface; - win-surface =
[EGIT] [core/efl] master 02/02: ecore/wayland: Oops, initialize member of malloc'ed struct.
antognolli pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=cb0f6171a88e3fe779ea27e22608adee3d62c4ee commit cb0f6171a88e3fe779ea27e22608adee3d62c4ee Author: Rafael Antognolli rafael.antogno...@intel.com Date: Tue Oct 29 19:14:59 2013 -0200 ecore/wayland: Oops, initialize member of malloc'ed struct. --- src/lib/ecore_wayland/ecore_wl.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/ecore_wayland/ecore_wl.c b/src/lib/ecore_wayland/ecore_wl.c index f763675..b3ec5df 100644 --- a/src/lib/ecore_wayland/ecore_wl.c +++ b/src/lib/ecore_wayland/ecore_wl.c @@ -204,6 +204,7 @@ ecore_wl_init(const char *name) _ecore_wl_window_init(); _ecore_wl_events_init(); + _ecore_wl_disp-init_done = EINA_FALSE; callback = wl_display_sync(_ecore_wl_disp-wl.display); wl_callback_add_listener(callback, _ecore_wl_init_sync_listener, _ecore_wl_disp); --
[EGIT] [core/efl] master 01/01: ecore/wayland: Using underscore on private functions.
antognolli pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=047e3bf113f1129ffdd829b6ae0fd370a5677963 commit 047e3bf113f1129ffdd829b6ae0fd370a5677963 Author: Rafael Antognolli rafael.antogno...@intel.com Date: Tue Oct 29 19:32:00 2013 -0200 ecore/wayland: Using underscore on private functions. --- src/lib/ecore_wayland/ecore_wl.c | 4 ++-- src/lib/ecore_wayland/ecore_wl_private.h | 4 ++-- src/lib/ecore_wayland/ecore_wl_subsurf.c | 6 +++--- src/lib/ecore_wayland/ecore_wl_window.c | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/lib/ecore_wayland/ecore_wl.c b/src/lib/ecore_wayland/ecore_wl.c index b3ec5df..bb0c5fe 100644 --- a/src/lib/ecore_wayland/ecore_wl.c +++ b/src/lib/ecore_wayland/ecore_wl.c @@ -274,7 +274,7 @@ ecore_wl_registry_get(void) } struct wl_compositor * -ecore_wl_compositor_get(void) +_ecore_wl_compositor_get(void) { if ((!_ecore_wl_disp) || (!_ecore_wl_disp-wl.display)) return NULL; @@ -285,7 +285,7 @@ ecore_wl_compositor_get(void) } struct wl_subcompositor * -ecore_wl_subcompositor_get(void) +_ecore_wl_subcompositor_get(void) { if ((!_ecore_wl_disp) || (!_ecore_wl_disp-wl.display)) return NULL; diff --git a/src/lib/ecore_wayland/ecore_wl_private.h b/src/lib/ecore_wayland/ecore_wl_private.h index d615f0f..581774b 100644 --- a/src/lib/ecore_wayland/ecore_wl_private.h +++ b/src/lib/ecore_wayland/ecore_wl_private.h @@ -97,7 +97,7 @@ void _ecore_wl_events_shutdown(void); void _ecore_wl_subsurfs_del_all(Ecore_Wl_Window *win); -struct wl_compositor *ecore_wl_compositor_get(void); -struct wl_subcompositor *ecore_wl_subcompositor_get(void); +struct wl_compositor *_ecore_wl_compositor_get(void); +struct wl_subcompositor *_ecore_wl_subcompositor_get(void); #endif diff --git a/src/lib/ecore_wayland/ecore_wl_subsurf.c b/src/lib/ecore_wayland/ecore_wl_subsurf.c index d59810d..dd883ac 100644 --- a/src/lib/ecore_wayland/ecore_wl_subsurf.c +++ b/src/lib/ecore_wayland/ecore_wl_subsurf.c @@ -30,10 +30,10 @@ ecore_wl_subsurf_create(Ecore_Wl_Window *win) if (!win) return NULL; if (!win-surface) return NULL; - subcomp = ecore_wl_subcompositor_get(); + subcomp = _ecore_wl_subcompositor_get(); if (!subcomp) return NULL; - surface = wl_compositor_create_surface(ecore_wl_compositor_get()); + surface = wl_compositor_create_surface(_ecore_wl_compositor_get()); if (!surface) return NULL; @@ -182,7 +182,7 @@ ecore_wl_subsurf_opaque_region_set(Ecore_Wl_Subsurf *ess, int x, int y, int w, i if ((w 0) (h 0)) { -region = wl_compositor_create_region(ecore_wl_compositor_get()); +region = wl_compositor_create_region(_ecore_wl_compositor_get()); wl_region_add(region, x, y, w, h); wl_surface_set_opaque_region(ess-surface, region); wl_region_destroy(region); diff --git a/src/lib/ecore_wayland/ecore_wl_window.c b/src/lib/ecore_wayland/ecore_wl_window.c index b924691..0de39d9 100644 --- a/src/lib/ecore_wayland/ecore_wl_window.c +++ b/src/lib/ecore_wayland/ecore_wl_window.c @@ -252,7 +252,7 @@ ecore_wl_window_surface_create(Ecore_Wl_Window *win) { if (!win) return NULL; if (win-surface) return win-surface; - win-surface = wl_compositor_create_surface(ecore_wl_compositor_get()); + win-surface = wl_compositor_create_surface(_ecore_wl_compositor_get()); win-surface_id = wl_proxy_get_id((struct wl_proxy *)win-surface); return win-surface; } @@ -610,7 +610,7 @@ ecore_wl_window_input_region_set(Ecore_Wl_Window *win, int x, int y, int w, int struct wl_region *region = NULL; region = - wl_compositor_create_region(ecore_wl_compositor_get()); + wl_compositor_create_region(_ecore_wl_compositor_get()); wl_region_add(region, x, y, w, h); wl_surface_set_input_region(win-surface, region); wl_region_destroy(region); @@ -640,7 +640,7 @@ ecore_wl_window_opaque_region_set(Ecore_Wl_Window *win, int x, int y, int w, int struct wl_region *region = NULL; region = - wl_compositor_create_region(ecore_wl_compositor_get()); + wl_compositor_create_region(_ecore_wl_compositor_get()); switch (win-rotation) { --
Re: [E-devel] [EGIT] [core/efl] master 01/02: ecore/wayland: Add some getters.
On Tue, Oct 29, 2013 at 7:25 PM, Chris Michael devilho...@comcast.net wrote: This is looking good antognolli :) Thank you for keeping to the existing formatting ;) There is one thing that I would prefer tho .. for internal/private functions (ie: Not exposed API functions), can we prefix with _ please ?? Done ;) ie: +struct wl_compositor * +ecore_wl_compositor_get(void) +{ + if ((!_ecore_wl_disp) || (!_ecore_wl_disp-wl.display)) + return NULL; + + _ecore_wl_init_wait(); + + return _ecore_wl_disp-wl.compositor; +} into +struct wl_compositor * +_ecore_wl_compositor_get(void) +{ + if ((!_ecore_wl_disp) || (!_ecore_wl_disp-wl.display)) + return NULL; + + _ecore_wl_init_wait(); + + return _ecore_wl_disp-wl.compositor; +} The underscore just makes it really easy quick to determine that it's an internal function. That aside, Nice work !! :) Cheers, dh On 10/29/13 21:18, Rafael Antognolli wrote: antognolli pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=06d6bf0dba9f0cc20075c84507bec2cbdb96aa6b commit 06d6bf0dba9f0cc20075c84507bec2cbdb96aa6b Author: Rafael Antognolli rafael.antogno...@intel.com Date: Tue Oct 29 18:40:33 2013 -0200 ecore/wayland: Add some getters. This centralizes the place where we have to wait for the init to have finished before first using the compositor. It's also part of the later step of hiding Ecore_Wl_* private structs. --- src/lib/ecore_wayland/Ecore_Wayland.h| 10 ++ src/lib/ecore_wayland/ecore_wl.c | 22 ++ src/lib/ecore_wayland/ecore_wl_private.h | 3 +++ src/lib/ecore_wayland/ecore_wl_subsurf.c | 13 +++-- src/lib/ecore_wayland/ecore_wl_window.c | 6 +++--- 5 files changed, 45 insertions(+), 9 deletions(-) diff --git a/src/lib/ecore_wayland/Ecore_Wayland.h b/src/lib/ecore_wayland/Ecore_Wayland.h index 9ba7636..7828281 100644 --- a/src/lib/ecore_wayland/Ecore_Wayland.h +++ b/src/lib/ecore_wayland/Ecore_Wayland.h @@ -496,6 +496,16 @@ EAPI struct wl_shm *ecore_wl_shm_get(void); EAPI struct wl_display *ecore_wl_display_get(void); /** + * Retrieves the Compositor interface. + * + * This interface is used by clients to request the creation of surfaces and + * regions. + * + * @return The current wayland compositor interface + * @since 1.8 + */ + +/** * Retrieves the size of the current screen. * * @param w where to return the width. May be NULL. Returns 0 on error. diff --git a/src/lib/ecore_wayland/ecore_wl.c b/src/lib/ecore_wayland/ecore_wl.c index 451aa79..f763675 100644 --- a/src/lib/ecore_wayland/ecore_wl.c +++ b/src/lib/ecore_wayland/ecore_wl.c @@ -272,6 +272,28 @@ ecore_wl_registry_get(void) return _ecore_wl_disp-wl.registry; } +struct wl_compositor * +ecore_wl_compositor_get(void) +{ + if ((!_ecore_wl_disp) || (!_ecore_wl_disp-wl.display)) + return NULL; + + _ecore_wl_init_wait(); + + return _ecore_wl_disp-wl.compositor; +} + +struct wl_subcompositor * +ecore_wl_subcompositor_get(void) +{ + if ((!_ecore_wl_disp) || (!_ecore_wl_disp-wl.display)) + return NULL; + + _ecore_wl_init_wait(); + + return _ecore_wl_disp-wl.subcompositor; +} + EAPI void ecore_wl_screen_size_get(int *w, int *h) { diff --git a/src/lib/ecore_wayland/ecore_wl_private.h b/src/lib/ecore_wayland/ecore_wl_private.h index b83aae3..d615f0f 100644 --- a/src/lib/ecore_wayland/ecore_wl_private.h +++ b/src/lib/ecore_wayland/ecore_wl_private.h @@ -97,4 +97,7 @@ void _ecore_wl_events_shutdown(void); void _ecore_wl_subsurfs_del_all(Ecore_Wl_Window *win); +struct wl_compositor *ecore_wl_compositor_get(void); +struct wl_subcompositor *ecore_wl_subcompositor_get(void); + #endif diff --git a/src/lib/ecore_wayland/ecore_wl_subsurf.c b/src/lib/ecore_wayland/ecore_wl_subsurf.c index 4e144fa..d59810d 100644 --- a/src/lib/ecore_wayland/ecore_wl_subsurf.c +++ b/src/lib/ecore_wayland/ecore_wl_subsurf.c @@ -23,19 +23,22 @@ ecore_wl_subsurf_create(Ecore_Wl_Window *win) struct wl_subsurface *subsurface; struct wl_surface *surface; Ecore_Wl_Subsurf *ess; + struct wl_subcompositor *subcomp; LOGFN(__FILE__, __LINE__, __FUNCTION__); if (!win) return NULL; if (!win-surface) return NULL; - if (!_ecore_wl_disp-wl.subcompositor) return NULL; - surface = wl_compositor_create_surface(_ecore_wl_disp-wl.compositor); + subcomp = ecore_wl_subcompositor_get(); + if (!subcomp) return NULL; + + surface = wl_compositor_create_surface(ecore_wl_compositor_get()); if (!surface) return NULL; subsurface = wl_subcompositor_get_subsurface - (_ecore_wl_disp-wl.subcompositor, surface, win-surface); + (subcomp, surface, win-surface); if (!subsurface) { wl_surface_destroy(surface); @@ -171,7 +174,6 @@
Re: [E-devel] [EGIT] [core/efl] master 01/02: ecore/wayland: Add some getters.
On 10/29/13 21:38, Rafael Antognolli wrote: On Tue, Oct 29, 2013 at 7:25 PM, Chris Michael devilho...@comcast.net wrote: This is looking good antognolli :) Thank you for keeping to the existing formatting ;) There is one thing that I would prefer tho .. for internal/private functions (ie: Not exposed API functions), can we prefix with _ please ?? Done ;) Thanks mate ;) dh ie: +struct wl_compositor * +ecore_wl_compositor_get(void) +{ + if ((!_ecore_wl_disp) || (!_ecore_wl_disp-wl.display)) + return NULL; + + _ecore_wl_init_wait(); + + return _ecore_wl_disp-wl.compositor; +} into +struct wl_compositor * +_ecore_wl_compositor_get(void) +{ + if ((!_ecore_wl_disp) || (!_ecore_wl_disp-wl.display)) + return NULL; + + _ecore_wl_init_wait(); + + return _ecore_wl_disp-wl.compositor; +} The underscore just makes it really easy quick to determine that it's an internal function. That aside, Nice work !! :) Cheers, dh On 10/29/13 21:18, Rafael Antognolli wrote: antognolli pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=06d6bf0dba9f0cc20075c84507bec2cbdb96aa6b commit 06d6bf0dba9f0cc20075c84507bec2cbdb96aa6b Author: Rafael Antognolli rafael.antogno...@intel.com Date: Tue Oct 29 18:40:33 2013 -0200 ecore/wayland: Add some getters. This centralizes the place where we have to wait for the init to have finished before first using the compositor. It's also part of the later step of hiding Ecore_Wl_* private structs. --- src/lib/ecore_wayland/Ecore_Wayland.h| 10 ++ src/lib/ecore_wayland/ecore_wl.c | 22 ++ src/lib/ecore_wayland/ecore_wl_private.h | 3 +++ src/lib/ecore_wayland/ecore_wl_subsurf.c | 13 +++-- src/lib/ecore_wayland/ecore_wl_window.c | 6 +++--- 5 files changed, 45 insertions(+), 9 deletions(-) diff --git a/src/lib/ecore_wayland/Ecore_Wayland.h b/src/lib/ecore_wayland/Ecore_Wayland.h index 9ba7636..7828281 100644 --- a/src/lib/ecore_wayland/Ecore_Wayland.h +++ b/src/lib/ecore_wayland/Ecore_Wayland.h @@ -496,6 +496,16 @@ EAPI struct wl_shm *ecore_wl_shm_get(void); EAPI struct wl_display *ecore_wl_display_get(void); /** + * Retrieves the Compositor interface. + * + * This interface is used by clients to request the creation of surfaces and + * regions. + * + * @return The current wayland compositor interface + * @since 1.8 + */ + +/** * Retrieves the size of the current screen. * * @param w where to return the width. May be NULL. Returns 0 on error. diff --git a/src/lib/ecore_wayland/ecore_wl.c b/src/lib/ecore_wayland/ecore_wl.c index 451aa79..f763675 100644 --- a/src/lib/ecore_wayland/ecore_wl.c +++ b/src/lib/ecore_wayland/ecore_wl.c @@ -272,6 +272,28 @@ ecore_wl_registry_get(void) return _ecore_wl_disp-wl.registry; } +struct wl_compositor * +ecore_wl_compositor_get(void) +{ + if ((!_ecore_wl_disp) || (!_ecore_wl_disp-wl.display)) + return NULL; + + _ecore_wl_init_wait(); + + return _ecore_wl_disp-wl.compositor; +} + +struct wl_subcompositor * +ecore_wl_subcompositor_get(void) +{ + if ((!_ecore_wl_disp) || (!_ecore_wl_disp-wl.display)) + return NULL; + + _ecore_wl_init_wait(); + + return _ecore_wl_disp-wl.subcompositor; +} + EAPI void ecore_wl_screen_size_get(int *w, int *h) { diff --git a/src/lib/ecore_wayland/ecore_wl_private.h b/src/lib/ecore_wayland/ecore_wl_private.h index b83aae3..d615f0f 100644 --- a/src/lib/ecore_wayland/ecore_wl_private.h +++ b/src/lib/ecore_wayland/ecore_wl_private.h @@ -97,4 +97,7 @@ void _ecore_wl_events_shutdown(void); void _ecore_wl_subsurfs_del_all(Ecore_Wl_Window *win); +struct wl_compositor *ecore_wl_compositor_get(void); +struct wl_subcompositor *ecore_wl_subcompositor_get(void); + #endif diff --git a/src/lib/ecore_wayland/ecore_wl_subsurf.c b/src/lib/ecore_wayland/ecore_wl_subsurf.c index 4e144fa..d59810d 100644 --- a/src/lib/ecore_wayland/ecore_wl_subsurf.c +++ b/src/lib/ecore_wayland/ecore_wl_subsurf.c @@ -23,19 +23,22 @@ ecore_wl_subsurf_create(Ecore_Wl_Window *win) struct wl_subsurface *subsurface; struct wl_surface *surface; Ecore_Wl_Subsurf *ess; + struct wl_subcompositor *subcomp; LOGFN(__FILE__, __LINE__, __FUNCTION__); if (!win) return NULL; if (!win-surface) return NULL; - if (!_ecore_wl_disp-wl.subcompositor) return NULL; - surface = wl_compositor_create_surface(_ecore_wl_disp-wl.compositor); + subcomp = ecore_wl_subcompositor_get(); + if (!subcomp) return NULL; + + surface = wl_compositor_create_surface(ecore_wl_compositor_get()); if (!surface) return NULL; subsurface = wl_subcompositor_get_subsurface - (_ecore_wl_disp-wl.subcompositor, surface, win-surface); + (subcomp, surface, win-surface); if
Re: [E-devel] Monitor/output parameter for fullscreen
On Tue, Oct 29, 2013 at 7:26 PM, Rafael Antognolli antogno...@gmail.com wrote: Hey everyone, Our current API for setting a window as fullscreen does not support specifying which output/display/monitor should be used as fullscreen. However, wayland does support it. Would it make sense to have such parameter in the fullscreen_set API? Or should it be a wayland-only API? I'd say a new function fullscreen_at_display_set(Display_ID *did) /* NULL = unset */ the current version remains and sets on current display. Alternatively we could just move the window to another display before making that fullscreen, no idea if this is okay. For the latter case, how would we do that? Maybe exposing an API that allows to set the preferred output, and then when fullscreen_set is called, it just uses that one? I'd say we need to make this in one go, unless we want some kind of general assignment to one display (not just for FS mode). There's also a need to specify how the output should be referred to. Using an (unsigned) int, where 0 is the first output, 1 is the second, etc? Or maybe allowing to specify something like always the biggest one in area, or the widest one, or whatever... any thoughts? We'd need a way to enumerate the displays (or whatever we call them, like zone, etc), they should return their properties such as size, position (?), capabilities (3d/stereo? color? what do we have here?) and some string to make it easy to debug. we have the handle to it, so it can be windowsystem agnostic (Display_ID *, which can be implemented differently for windows, x11, wayland...) That reminds me that we still have another problem. APIs such ecore_wl_screen_size_get() return only the screen size of the first monitor, not both. same as above, this should be based on current window (if there is a window handle) or the first one (if there is not, alterntively we can state it will refer to screen the mouse is over, but I guess this is incorrect and makes everything less predictable). What about a common API to select which output we are talking about, that must be called before any call that would refer to a specific output? The problem with this is that it would make code very wayland-specific :-/ how so? just use the opaque handlers and abstract stuff in there. -- Gustavo Sverzut Barbieri -- Mobile: +55 (19) 9225-2202 Contact: http://www.gustavobarbieri.com.br/contact -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 01/01: ecore_x/xlib/ecore_x_vsync.c uses dlopen and dlsym, but configure.ac only checks for this for the XCB variant. This results in linker errors when using strict linker fl
yoz pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6b130d8b18e5077f4a5fe0fefe534a73053fcb08 commit 6b130d8b18e5077f4a5fe0fefe534a73053fcb08 Author: Albin Tonnerre lu...@debian.org Date: Tue Oct 29 23:25:54 2013 +0100 ecore_x/xlib/ecore_x_vsync.c uses dlopen and dlsym, but configure.ac only checks for this for the XCB variant. This results in linker errors when using strict linker flags (-Wl,-z,defs) --- configure.ac | 3 +++ 1 file changed, 3 insertions(+) diff --git a/configure.ac b/configure.ac index 2060040..413264a 100644 --- a/configure.ac +++ b/configure.ac @@ -2772,6 +2772,9 @@ if test x${want_x11_xlib} = xyes ; then AC_DEFINE([HAVE_ECORE_X_XLIB], [1], [Defined to 1 if Xlib is enabled.]) HAVE_ECORE_X_BACKEND=HAVE_ECORE_X_XLIB + + EFL_EVAL_PKGS([ECORE_X]) + EFL_CHECK_FUNCS([ECORE_X], [dlopen dlsym]) fi ## XCB --
[EGIT] [core/elementary] master 01/01: elm_conform.c: Use more ELM_SAFE_FREE macros.
seoz pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=8f523ed25329b25845fc8d679dac1cd9ce2542d1 commit 8f523ed25329b25845fc8d679dac1cd9ce2542d1 Author: Daniel Juyung Seo seojuyu...@gmail.com Date: Tue Oct 29 22:49:43 2013 +0900 elm_conform.c: Use more ELM_SAFE_FREE macros. --- src/lib/elm_conform.c | 21 ++--- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/src/lib/elm_conform.c b/src/lib/elm_conform.c index f73c921..9636ab8 100644 --- a/src/lib/elm_conform.c +++ b/src/lib/elm_conform.c @@ -248,11 +248,8 @@ _conformant_parts_swallow(Evas_Object *obj) evas_object_color_set(sd-virtualkeypad, 0, 0, 0, 0); elm_layout_content_set(obj, VIRTUALKEYPAD_PART, sd-virtualkeypad); } - else if (sd-virtualkeypad) - { -evas_object_del(sd-virtualkeypad); -sd-virtualkeypad = NULL; - } + else + ELM_SAFE_FREE(sd-virtualkeypad, evas_object_del); //Clipboard if (edje_object_part_exists(wd-resize_obj, CLIPBOARD_PART)) @@ -269,11 +266,8 @@ _conformant_parts_swallow(Evas_Object *obj) evas_object_color_set(sd-clipboard, 0, 0, 0, 0); elm_layout_content_set(obj, CLIPBOARD_PART, sd-clipboard); } - else if (sd-clipboard) - { -evas_object_del(sd-clipboard); -sd-clipboard = NULL; - } + else + ELM_SAFE_FREE(sd-clipboard, evas_object_del); //Softkey if (edje_object_part_exists(wd-resize_obj, SOFTKEY_PART)) @@ -290,11 +284,8 @@ _conformant_parts_swallow(Evas_Object *obj) evas_object_color_set(sd-softkey, 0, 0, 0, 0); elm_layout_content_set(obj, SOFTKEY_PART, sd-softkey); } - else if (sd-softkey) - { -evas_object_del(sd-softkey); -sd-softkey = NULL; - } + else + ELM_SAFE_FREE(sd-softkey, evas_object_del); } static Eina_Bool --
[EGIT] [core/elementary] master 01/01: [image] - Added support for clicked callback on Return/space/KP_Enter key press.
seoz pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=6ee48d9a9f3ee14c2594928b0e57c37cead27e44 commit 6ee48d9a9f3ee14c2594928b0e57c37cead27e44 Author: Amitesh Singh amitesh...@samsung.com Date: Wed Oct 30 08:32:43 2013 +0900 [image] - Added support for clicked callback on Return/space/KP_Enter key press. Summary: [image] - Added support for clicked callback on Return/space/KP_Enter key press. Reviewers: seoz, Hermet Differential Revision: https://phab.enlightenment.org/D278 --- src/bin/test.c | 2 ++ src/bin/test_image.c | 54 +++- src/lib/elm_image.c | 33 3 files changed, 88 insertions(+), 1 deletion(-) diff --git a/src/bin/test.c b/src/bin/test.c old mode 100644 new mode 100755 index e6c3707..963f386 --- a/src/bin/test.c +++ b/src/bin/test.c @@ -209,6 +209,7 @@ void test_popup(void *data, Evas_Object *obj, void *event_info); void test_dayselector(void *data, Evas_Object *obj, void *event_info); void test_image(void *data, Evas_Object *obj, void *event_info); void test_remote_image(void *data, Evas_Object *obj, void *event_info); +void test_click_image(void *data, Evas_Object *obj, void *event_info); void test_external_button(void *data, Evas_Object *obj, void *event_info); void test_external_slider(void *data, Evas_Object *obj, void *event_info); void test_external_scroller(void *data, Evas_Object *obj, void *event_info); @@ -539,6 +540,7 @@ add_tests: ADD_TEST(NULL, Images, Thumb, test_thumb); ADD_TEST(NULL, Images, Image, test_image); ADD_TEST(NULL, Images, Image Remote, test_remote_image); + ADD_TEST(NULL, Images, Image Click, test_click_image); ADD_TEST(NULL, Images, Slideshow, test_slideshow); #ifdef HAVE_EMOTION ADD_TEST(NULL, Images, Video, test_video); diff --git a/src/bin/test_image.c b/src/bin/test_image.c old mode 100644 new mode 100755 index cef56fd..3119462 --- a/src/bin/test_image.c +++ b/src/bin/test_image.c @@ -53,7 +53,6 @@ test_image(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_in elm_image_resizable_set(im, EINA_TRUE, EINA_TRUE); evas_object_size_hint_weight_set(im, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(im, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_box_pack_end(box, im); evas_object_show(im); @@ -133,4 +132,57 @@ test_remote_image(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *e evas_object_resize(win, 320, 480); evas_object_show(win); } + +static void +_img_clicked_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) +{ + Elm_Transit *trans; + + fprintf(stderr, %p - clicked\n, obj); + + trans = elm_transit_add(); + elm_transit_object_add(trans, data); + elm_transit_effect_rotation_add(trans, 0, 180); + elm_transit_duration_set(trans, 5.0); + elm_transit_go(trans); +} + +void +test_click_image(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + Evas_Object *win, *box, *im, *label; + + win = elm_win_util_standard_add(image test, Image Test); + elm_win_autodel_set(win, EINA_TRUE); + elm_win_focus_highlight_enabled_set(win, EINA_TRUE); + + box = elm_box_add(win); + evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_win_resize_object_add(win, box); + evas_object_show(box); + + im = elm_image_add(win); + elm_object_focus_allow_set(im, EINA_TRUE); + char buf[PATH_MAX]; + snprintf(buf, sizeof(buf), %s/images/logo.png, elm_app_data_dir_get()); + elm_image_file_set(im, buf, NULL); + elm_image_resizable_set(im, EINA_TRUE, EINA_TRUE); + evas_object_size_hint_weight_set(im, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(im, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_smart_callback_add(im, clicked, _img_clicked_cb, im); + elm_box_pack_end(box, im); + evas_object_show(im); + + label = elm_label_add(win); + elm_object_text_set(label, bPress Return/Space/KP_Return key on image to transit./b); + evas_object_size_hint_weight_set(label, 0.0, 0.0); + evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_box_pack_end(box, label); + evas_object_show(label); + + elm_object_focus_set(im, EINA_TRUE); + + evas_object_resize(win, 320, 480); + evas_object_show(win); +} #endif diff --git a/src/lib/elm_image.c b/src/lib/elm_image.c old mode 100644 new mode 100755 index 517d340..676d801 --- a/src/lib/elm_image.c +++ b/src/lib/elm_image.c @@ -31,6 +31,12 @@ static const Evas_Smart_Cb_Description _smart_callbacks[] = { }; static void +_activate(Evas_Object *obj) +{ + evas_object_smart_callback_call(obj, SIG_CLICKED, NULL); +} + +static void _on_image_preloaded(void *data, Evas *e __UNUSED__, Evas_Object *obj, @@ -631,6 +637,32 @@ _elm_image_smart_theme(Eo *obj, void *_pd
[EGIT] [core/efl] master 01/01: Return Eina_Bool value for method which deleting style from edje_edit object.
seoz pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=1b802b0e3a62cabb03f41754596675c61938a682 commit 1b802b0e3a62cabb03f41754596675c61938a682 Author: m.biliavskyi m.biliavs...@samsung.com Date: Wed Oct 30 08:40:11 2013 +0900 Return Eina_Bool value for method which deleting style from edje_edit object. Summary: This patch start returning Eina_Bool for deleting style from edje edit object to catch those error. Reviewers: cedric CC: reutskiy.v.v, seoz Differential Revision: https://phab.enlightenment.org/D290 --- src/lib/edje/Edje_Edit.h | 4 +++- src/lib/edje/edje_edit.c | 9 - 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/lib/edje/Edje_Edit.h b/src/lib/edje/Edje_Edit.h index 40626db..1a6d037 100644 --- a/src/lib/edje/Edje_Edit.h +++ b/src/lib/edje/Edje_Edit.h @@ -572,8 +572,10 @@ EAPI Eina_Bool edje_edit_style_add(Evas_Object *obj, const char *style); * * @param obj Object being edited. * @param style Style to delete. + * + * @return EINA_TRUE if successful, EINA_FALSE otherwise. */ -EAPI void edje_edit_style_del(Evas_Object *obj, const char *style); +EAPI Eina_Bool edje_edit_style_del(Evas_Object *obj, const char *style); /** Get the list of all the tags name in the given text style. * diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c index 1999f49..90cb4cf 100644 --- a/src/lib/edje/edje_edit.c +++ b/src/lib/edje/edje_edit.c @@ -1590,16 +1590,15 @@ edje_edit_style_add(Evas_Object * obj, const char* style) return EINA_TRUE; } -EAPI void +EAPI Eina_Bool edje_edit_style_del(Evas_Object * obj, const char* style) { Edje_Style *s; - GET_ED_OR_RETURN(); - //printf(DEL STYLE '%s'\n, style); + GET_ED_OR_RETURN(EINA_FALSE); s = _edje_edit_style_get(ed, style); - if (!s) return; + if (!s) return EINA_FALSE; ed-file-styles = eina_list_remove(ed-file-styles, s); @@ -1622,9 +1621,9 @@ edje_edit_style_del(Evas_Object * obj, const char* style) free(s); s = NULL; s = NULL; + return EINA_TRUE; } - EAPI Eina_List * edje_edit_style_tags_list_get(Evas_Object * obj, const char* style) { --
[EGIT] [core/elementary] master 02/02: NEWS/ChangeLog: Updated NEWS/ChangeLog entry for image click addition on key event.
seoz pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=e1dd6e12fce6813b5faf6352ce569e76ed4e4a0c commit e1dd6e12fce6813b5faf6352ce569e76ed4e4a0c Author: Daniel Juyung Seo seojuyu...@gmail.com Date: Wed Oct 30 08:52:17 2013 +0900 NEWS/ChangeLog: Updated NEWS/ChangeLog entry for image click addition on key event. --- ChangeLog | 4 NEWS | 1 + 2 files changed, 5 insertions(+) diff --git a/ChangeLog b/ChangeLog index a1657cd..fbeecc7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1723,3 +1723,7 @@ 2013-10-23 Christophe Sadoine * spinner: added signals spinner,drag,start and spinner,drag,stop. + +2013-10-30 Amitesh Singh (_ami_) + +* image: Add support for clicked callback on Return/space/KP_Enter key press. diff --git a/NEWS b/NEWS index edaf5a9..8481107 100644 --- a/NEWS +++ b/NEWS @@ -100,6 +100,7 @@ Additions: * Add elm_fileselector_multi_select_set/get() and elm_fileselector_selected_paths_get to support multi-selection. * Add elm_fileselector_hidden_visible_set/get() to show or hide hidden files/directories. * Add signals spinner,drag,start and spinner,drag,stop to the spinner widget. + * Add support for clicked callback on Return/space/KP_Enter key press for image. Improvements: --
[EGIT] [core/elementary] master 01/02: test_image.c: enhance image click example to look better.
seoz pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=00f667562bbca6b332cc3d6d140df5588c7fefc2 commit 00f667562bbca6b332cc3d6d140df5588c7fefc2 Author: Daniel Juyung Seo seojuyu...@gmail.com Date: Wed Oct 30 08:49:09 2013 +0900 test_image.c: enhance image click example to look better. - Keep the final state. - Rotate according to the final state. --- src/bin/test_image.c | 15 +-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/bin/test_image.c b/src/bin/test_image.c index 3119462..37875ab 100755 --- a/src/bin/test_image.c +++ b/src/bin/test_image.c @@ -137,13 +137,24 @@ static void _img_clicked_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) { Elm_Transit *trans; + static int degree = 0; fprintf(stderr, %p - clicked\n, obj); trans = elm_transit_add(); elm_transit_object_add(trans, data); - elm_transit_effect_rotation_add(trans, 0, 180); - elm_transit_duration_set(trans, 5.0); + if (degree == 0) + { +elm_transit_effect_rotation_add(trans, 0, 180); +degree = 180; + } + else + { +elm_transit_effect_rotation_add(trans, 180, 360); +degree = 0; + } + elm_transit_duration_set(trans, 3.0); + elm_transit_objects_final_state_keep_set(trans, EINA_TRUE); elm_transit_go(trans); } --
Re: [E-devel] Weekly news from the automated build and QA front
On Wed, Oct 30, 2013 at 2:34 AM, Kim Shinwoo kimcinoo@gmail.com wrote: Hello Is the test result from efl/src/tests/* stuffs? The functional (or line) coverage would be lower than I though. It would be a nice point to contribute on my side. :) Sincerely, Shinwoo Kim. Yes please Shinwoo. Welcome your contribution :) Daniel Juyung Seo (SeoZ) On Tue, Oct 29, 2013 at 8:02 PM, Stefan Schmidt s.schm...@samsung.com wrote: Hello. On 10/29/2013 10:50 AM, Cedric BAIL wrote: On Tue, Oct 29, 2013 at 7:01 PM, Stefan Schmidt s.schm...@samsung.com wrote: On 10/29/2013 09:38 AM, Cedric BAIL wrote: On Tue, Oct 29, 2013 at 5:31 PM, Stefan Schmidt s.schm...@samsung.com wrote: On 10/28/2013 06:29 PM, Bertrand Jacquin wrote: Not that next report may give different results as the 1th november, main gcc release will be switch for gcc 4.8.1. Ah, right. Thanks for the reminder. I'm running one machine with 4.8.1 here so I don't expect to many problems. Just more warnings maybe. Speaking of warning, I discovered this plugins for jenkins : https://wiki.jenkins-ci.org/display/JENKINS/Valgrind+Plugin Do you think it would be possible to roll that along our tests ? Anything specific you expect from it? We have address-sanitizer running which I always expected to be on par with Valgrinds memcheck functionality. Am I wrong with this? Daniel? Am I wrong that address-sanitizer doesn't give us information on memory leak ? Aehm, yeah. You are right. No idea how I could forget about this. :) The graphs might be nice. I added it to my todo list and will check if we can have it running. Don't expect anything withing the next one or two weeks due to the transfer and relocation though. Yup, the grice is the neat things here. And don't worry it's not really urgent, can wait for tomorrow morning ;-) :) regards Stefan Schmidt -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Weekly news from the automated build and QA front
Hello, On Wed, Oct 30, 2013 at 2:34 AM, Kim Shinwoo kimcinoo@gmail.com wrote: Is the test result from efl/src/tests/* stuffs? Yes, they are ! The functional (or line) coverage would be lower than I though. It would be a nice point to contribute on my side. :) For people who didn't saw those tests coverage in the past, you can see them here : https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/coverage/html/index.html You can locally run them and generate your own local report by configuring efl with '--with-test=coverage' and all patch on that matter do help ! Thanks and nice to see you around, -- Cedric BAIL -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Weekly news from the automated build and QA front
On Wed, Oct 30, 2013 at 10:00 AM, Cedric BAIL cedric.b...@free.fr wrote: Hello, On Wed, Oct 30, 2013 at 2:34 AM, Kim Shinwoo kimcinoo@gmail.com wrote: Is the test result from efl/src/tests/* stuffs? Yes, they are ! The functional (or line) coverage would be lower than I though. It would be a nice point to contribute on my side. :) For people who didn't saw those tests coverage in the past, you can see them here : https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/lastSuccessfulBuild/artifact/coverage/html/index.html You can locally run them and generate your own local report by configuring efl with '--with-test=coverage' and all patch on that matter do help ! Well this is quite usuful. Thanks for the information. Elementary should have the test cases as well IMO. Daniel Juyung Seo (SeoZ) Thanks and nice to see you around, -- Cedric BAIL -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 01/01: EvasGL: cleaning up unnecessary code.
sung pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=9bb4c4869199118d9d16c87edc5084e8d1d49fb7 commit 9bb4c4869199118d9d16c87edc5084e8d1d49fb7 Author: Sung W. Park dunamis.p...@samsung.com Date: Wed Oct 30 10:47:52 2013 +0900 EvasGL: cleaning up unnecessary code. Cleaning up unnecessary code. --- src/modules/evas/engines/gl_common/evas_gl_core.c | 50 -- src/modules/evas/engines/gl_common/evas_gl_core.h | 7 --- .../evas/engines/gl_common/evas_gl_core_private.h | 1 - 3 files changed, 58 deletions(-) diff --git a/src/modules/evas/engines/gl_common/evas_gl_core.c b/src/modules/evas/engines/gl_common/evas_gl_core.c index a065bd4..e5009cd 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_core.c +++ b/src/modules/evas/engines/gl_common/evas_gl_core.c @@ -1869,38 +1869,6 @@ evgl_direct_info_clear() rsc-direct.enabled = EINA_FALSE; } -/* -void -evgl_direct_img_obj_set(Evas_Object *img, int rot) -{ - EVGL_Resource *rsc; - - if (!(rsc=_evgl_tls_resource_get())) return; - - // Normally direct rendering isn't allowed if alpha is on and - // rotation is not 0. BUT, if override is on, allow it. - if (rot!=0) - { -if (evgl_engine-direct_override) - rsc-direct.img = img; -else - rsc-direct.img = NULL; - } - else - rsc-direct.img = img; -} - -Evas_Object * -evgl_direct_img_obj_get() -{ - EVGL_Resource *rsc; - - if (!(rsc=_evgl_tls_resource_get())) return NULL; - - return rsc-direct.img; -} -*/ - Evas_GL_API * evgl_api_get() { @@ -1909,24 +1877,6 @@ evgl_api_get() return gl_funcs; } - -/* -void -evgl_direct_img_clip_set(int c, int x, int y, int w, int h) -{ - EVGL_Resource *rsc; - - if (!(rsc=_evgl_tls_resource_get())) return; - - rsc-master_clip = c; - rsc-clip[0] = x; - rsc-clip[1] = y; - rsc-clip[2] = w; - rsc-clip[3] = h; - -} -*/ - void evgl_direct_override_get(int *override, int *force_off) { diff --git a/src/modules/evas/engines/gl_common/evas_gl_core.h b/src/modules/evas/engines/gl_common/evas_gl_core.h index bbd5b24..587e8b0 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_core.h +++ b/src/modules/evas/engines/gl_common/evas_gl_core.h @@ -33,16 +33,9 @@ int evgl_native_surface_get(EVGL_Surface *sfc, Evas_Native_Surface *ns) Evas_GL_API *evgl_api_get(); int evgl_direct_rendered(); - -/* -extern void evgl_direct_img_obj_set(Evas_Object *img, int rot); -extern Evas_Object *evgl_direct_img_obj_get(); -*/ - void evgl_direct_info_set(int win_w, int win_h, int rot, int img_x, int img_y, int img_w, int img_h, int clip_x, int clip_y, int clip_w, int clip_h); void evgl_direct_info_clear(); -//extern void evgl_direct_img_clip_set(int c, int x, int y, int w, int h); void evgl_direct_override_get(int *override, int *force_off); #endif //_EVAS_GL_CORE_H diff --git a/src/modules/evas/engines/gl_common/evas_gl_core_private.h b/src/modules/evas/engines/gl_common/evas_gl_core_private.h index 37e8cc5..254da65 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_core_private.h +++ b/src/modules/evas/engines/gl_common/evas_gl_core_private.h @@ -212,7 +212,6 @@ struct _EVGL_Resource struct { EVGLNative_Surface surface; int rendered; -//Evas_Object *img; int rot; int win_w; --
Re: [E-devel] Is there *real* documentation for edje?
Hello, On Wed, Oct 30, 2013 at 6:04 AM, Guillaume Friloux guillaume.fril...@gmail.com wrote: Le 29/10/2013 20:14, Robert Heller a écrit : I am trying to write an alternitive version of the Enlightenment's 'start menu', where instead of a cascade menu it is a three column thingy (I am not sure what this sort of menu is called), something like this (from Mint): ftp://ftp.deepsoft.com/ftp/pub/deepwoods/Other/RibbonMenu.png But I am having a hard time figuring out how to do this. The documentation for edje leaves a lot to be desired and the API for enlightenment itself is pretty much not documented at all. I am a skilled C programmer, but without useful documentation it is very hard to program... For people trying to look linked image : ftp://ftp.deepsoft.com/pub/deepwoods/Other/RibbonMenu.png As i am not involved in GUI libs of EFLs, ill let others answer you. I am not sure this is doable with just theme in E. It seems to not only change the look of the menu, but also its navigation. I may be wrong, but it may require to write a new module to have this specific menu. -- Cedric BAIL -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [bindings/python/python-efl] master 01/03: Eo: Speed up, and fix a cornercase in, _properties_from_keyword_args.
kuuko pushed a commit to branch master. http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=be547283f0b832c7027e7a1e184a0ac8507f65d9 commit be547283f0b832c7027e7a1e184a0ac8507f65d9 Author: Kai Huuhko kai.huu...@gmail.com Date: Wed Oct 30 03:12:35 2013 +0200 Eo: Speed up, and fix a cornercase in, _properties_from_keyword_args. hasattr tries getattr which can be variedly slow, so check dict instead. This also fixes it in cases where the property doesn't have a __get__ function. --- efl/eo/efl.eo.pyx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/efl/eo/efl.eo.pyx b/efl/eo/efl.eo.pyx index 45a113e..b0d40fe 100644 --- a/efl/eo/efl.eo.pyx +++ b/efl/eo/efl.eo.pyx @@ -200,8 +200,9 @@ cdef class Eo(object): Py_INCREF(self) cdef void _set_properties_from_keyword_args(self, dict kwargs) except *: +cdef list cls_list = dir(self) for k, v in kwargs.items(): -assert hasattr(self, k), %s has no attribute with the name %s. % (self, k) +assert k in cls_list, %s has no attribute with the name %s. % (self, k) setattr(self, k, v) def is_deleted(self): --
[EGIT] [bindings/python/python-efl] master 02/03: Elementary.actionslider: Fix a string return value to be unicode
kuuko pushed a commit to branch master. http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=db4483a88c14031deaf0fdb6deeffb31fac8001d commit db4483a88c14031deaf0fdb6deeffb31fac8001d Author: Kai Huuhko kai.huu...@gmail.com Date: Wed Oct 30 04:27:18 2013 +0200 Elementary.actionslider: Fix a string return value to be unicode --- efl/elementary/actionslider.pyx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/efl/elementary/actionslider.pyx b/efl/elementary/actionslider.pyx index 63b210f..54d6f5b 100644 --- a/efl/elementary/actionslider.pyx +++ b/efl/elementary/actionslider.pyx @@ -118,10 +118,10 @@ cdef class Actionslider(LayoutClass): def __get__(self): -return elm_actionslider_selected_label_get(self.obj) +return _ctouni(elm_actionslider_selected_label_get(self.obj)) def selected_label_get(self): -return elm_actionslider_selected_label_get(self.obj) +return _ctouni(elm_actionslider_selected_label_get(self.obj)) property indicator_pos: Indicator position. --
[EGIT] [bindings/python/python-efl] master 03/03: Elementary: Start making examples more examplary.
kuuko pushed a commit to branch master. http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=b3f501b387b2ebad838f90c9da8d7fbfd287134c commit b3f501b387b2ebad838f90c9da8d7fbfd287134c Author: Kai Huuhko kai.huu...@gmail.com Date: Wed Oct 30 04:28:55 2013 +0200 Elementary: Start making examples more examplary. --- examples/elementary/test.py | 99 ++-- examples/elementary/test_3d.py | 121 ++- examples/elementary/test_access.py | 47 +++--- examples/elementary/test_actionslider.py | 100 ++--- examples/elementary/test_bg.py | 68 - examples/elementary/test_box.py | 250 +++ 6 files changed, 239 insertions(+), 446 deletions(-) diff --git a/examples/elementary/test.py b/examples/elementary/test.py index c05682b..42e0587 100755 --- a/examples/elementary/test.py +++ b/examples/elementary/test.py @@ -3,7 +3,7 @@ import logging elog = logging.getLogger(efl) -elog.setLevel(logging.DEBUG) +elog.setLevel(logging.INFO) elog_form = logging.Formatter([%(name)s] %(levelname)s - %(message)s) elog_hdlr = logging.StreamHandler() @@ -12,15 +12,15 @@ elog_hdlr.setFormatter(elog_form) elog.addHandler(elog_hdlr) eolog = logging.getLogger(efl.eo) -eolog.setLevel(logging.DEBUG) +eolog.setLevel(logging.INFO) import os -from efl import evas +from efl.evas import EVAS_HINT_EXPAND, EVAS_HINT_FILL from efl import elementary -from efl.elementary.window import Window +from efl.elementary.window import StandardWindow from efl.elementary.background import Background -from efl.elementary.box import Box +from efl.elementary.box import Box, ELM_BOX_LAYOUT_FLOW_HORIZONTAL from efl.elementary.button import Button from efl.elementary.frame import Frame from efl.elementary.label import Label @@ -28,7 +28,10 @@ from efl.elementary.check import Check from efl.elementary.entry import Entry from efl.elementary.scroller import Scroller -elog.setLevel(logging.INFO) +elog.setLevel(logging.DEBUG) + +EXPAND_BOTH = EVAS_HINT_EXPAND, EVAS_HINT_EXPAND +FILL_BOTH = EVAS_HINT_FILL, EVAS_HINT_FILL items = [ (Core Libs, [ @@ -204,25 +207,24 @@ def selected_cb(o, mod, func): def menu_create(search, win): tbx.clear() for category in items: -frame = Frame(win) -frame.size_hint_weight_set(evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND) -frame.size_hint_align_set(evas.EVAS_HINT_FILL, evas.EVAS_HINT_FILL) -frame.text = category[0] +frame = Frame(win, +size_hint_weight=EXPAND_BOTH, size_hint_align=FILL_BOTH, +text=category[0] +) frame.show() tbx.pack_end(frame) -tbx2 = Box(win) -tbx2.layout_set(elementary.ELM_BOX_LAYOUT_FLOW_HORIZONTAL) -tbx2.size_hint_weight_set(evas.EVAS_HINT_EXPAND, 0.0) -tbx2.size_hint_align_set(evas.EVAS_HINT_FILL, 0.0) +tbx2 = Box(win, layout=ELM_BOX_LAYOUT_FLOW_HORIZONTAL, +size_hint_weight=(EVAS_HINT_EXPAND, 0.0), +size_hint_align=(EVAS_HINT_FILL, 0.0) +) frame.content_set(tbx2) tbx2.show() cnt = 0 for test in category[1]: if (search == None) or (test[0].lower().find(search.lower()) -1): -bt = Button(win) -bt.text = test[0] +bt = Button(win, text=test[0]) bt.callback_clicked_add(selected_cb, test[1], test[2]) bt.show() tbx2.pack_end(bt) @@ -245,71 +247,58 @@ def cb_filter(en, win): if __name__ == __main__: elementary.init() -win = Window(test, elementary.ELM_WIN_BASIC) -win.title_set(python-elementary test application) +win = StandardWindow(test, python-elementary test application) win.callback_delete_request_add(destroy, test1, test2, str3=test3, str4=test4) -bg = Background(win) -win.resize_object_add(bg) -bg.size_hint_weight_set(evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND) -bg.show() - -box0 = Box(win) -box0.size_hint_weight_set(evas.EVAS_HINT_EXPAND, evas.EVAS_HINT_EXPAND) +box0 = Box(win, size_hint_weight=EXPAND_BOTH) win.resize_object_add(box0) box0.show() -fr = Frame(win) -fr.text_set(Information) -box0.pack_end(fr) -fr.show() - lb = Label(win) -lb.text_set(Please select a test from the list belowbr - by clicking the test button to show thebr - test window.) -fr.content_set(lb) +lb.text = Please select a test from the list belowbr \ +by clicking the test button to show thebr \ +test window. lb.show() -tg = Check(win) -tg.style = toggle -tg.text = UI-Mirroring: +fr = Frame(win, text=Information, content=lb) +box0.pack_end(fr) +fr.show() + +tg = Check(win, style=toggle, text=UI-Mirroring:) tg.callback_changed_add(cb_mirroring)
Re: [E-devel] Is there *real* documentation for edje?
On Tue, 29 Oct 2013 15:14:07 -0400 Robert Heller hel...@deepsoft.com said: I am trying to write an alternitive version of the Enlightenment's 'start menu', where instead of a cascade menu it is a three column thingy (I am not sure what this sort of menu is called), something like this (from Mint): ftp://ftp.deepsoft.com/ftp/pub/deepwoods/Other/RibbonMenu.png well that link doesn't work... no data. :) But I am having a hard time figuring out how to do this. The documentation for edje leaves a lot to be desired and the API for enlightenment itself is pretty much not documented at all. I am a skilled C programmer, but without useful documentation it is very hard to program... edje has a full reference. people have pointed to it already. there are intro docs all around. but like most things - the rest is look at examples and build from there. i personally find documentation obtuse and wasteful compared to examples. you may perfer wandering through docs. i spent my early unix learning years reading every manual page i could find - but frankly, reading someone elses shell scripts and then just referring to a manual for reference was by far easier and more productive.. now what i think your core problem here is, that you can't figure out how to do what you want.. because you literally can't do it in edje. you want to fundamentally change the behaviour and layout of a menu. not just re-shuffle some things, but change its core and that means you need to head off into the land of code. e_menu.c is where the entire menu code is. you wish to have similar functionality but different arrangement and that is a whole new kettle of fish. edje is merely a building-block to produce the gui elements you then lay out in code. -- - Codito, ergo sum - I code, therefore I am -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Eo API change and C++ binding
Hi Felipe, I think Cedric told you but we have a project for the boilerplate that is called Eolian. You describe a Eo class in JSON format (at least for the moment according to the vote that was in the ml) and then can generate the EO1/2 API functions, legacy functions, classes information in live access and bindings. So I think your project and ours are just overlapping and will create more issues than help everyone. What I understood is that you had to create all the Eina types in C++ and a few examples of the classes in C++ and we take your work and generate it from our meta-data. Please update me. Thank you Daniel (JackDanielZ) On 10/29/2013 01:17 AM, Vinícius dos Santos Oliveira wrote: Em Seg, 2013-10-28 às 21:03 -0200, Felipe Magno de Almeida escreveu: Also, The C++ binding is not just the generated headers, there is going to be a EINA-specific C++ API and more classes that will help with MVC and other helpful abstractions that aren't attainable with generated code. The generated C++, though, gives a type-safe layer and makes evolution easier and safer as EFL evolves. If good documentation is written, then I'll want to use EFL++ instead of Qt in my now-stalled bomberman-like game somewhere in the future. I hope you succeed with this work. =) -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Android is increasing in popularity, but the open development platform that developers love is also attractive to malware creators. Download this white paper to learn more about secure code signing practices that can help keep Android apps secure. http://pubads.g.doubleclick.net/gampad/clk?id=65839951iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel