Re: [E-devel] Coding a 'modal' dialog in E17
On Wed, Sep 11, 2013 at 12:45 PM, Robert Heller hel...@deepsoft.com wrote: At Wed, 11 Sep 2013 03:25:57 +0200 Enlightenment developer list enlightenment-devel@lists.sourceforge.net wrote: On Tue, Sep 10, 2013 at 7:45 PM, Robert Heller hel...@deepsoft.com wrote: At Tue, 10 Sep 2013 17:51:38 +0100 Michael Blumenkrantz michael.blumenkra...@gmail.com wrote: On Tue, 10 Sep 2013 12:34:21 -0400 Robert Heller hel...@deepsoft.com wrote: I am in the process of modifying E17 (I want to add so additional functionality to the file manager). One of the things I need to be able to do is have a 'modal' dialog, that is a dislog box that grabs the focus and causes the program (the file manager) to wait. I want events to be processed, but I want psuedo code like this: dialog = make_dialog(...); show(dialog); wait_for(dialog); The 'wait_for()' call would not return until the OK button or Cancel (close) button on the dialog has been clicked. It is not clear how to do this -- the documentation does not seem to cover this case (or I can't it in the documentation). Any pointers would be helpful. Thanks in advance. yeahhh you can't do that. what you CAN do is something like the uhh...modules/conf_theme/e_int_config_wallpaper.c dialog does. you set the parent dialog (though make sure you do this AFTER you show both dialogs or it won't work) to set up your modal: the first param is your intended modal, the second is the parent window which is getting blocked. then you can basically just wait for the modal to die and you'll know that there will be no events on the parent. I'll say this, however: we STRONGLY discourage the use of modal dialogs in e. unless you have a really good reason for it, I'm unlikely to accept any patches which introduce modal dialogs. Yes, I fully understand the 'evils' of modal dialogs, but there are times when it is the only option. In this case I am interfacing to a library that has a callback that wants some input (a passphrase) and I cannot just return without the passphrase and I don't know (in advance) if the passphrase is even needed or what the hint for the passphrase is (this info gets passed into the callback). And the callback might be called again if the passphrase is wrong. I may implement this with a subprocess, but then the subprocess itself will need to have a modal dialog. I am only interested a *local* type modal dialog. I did have exactly the same problem with all the stupid ssh library out there that where never designed to be integrated into a GUI. At the end, solution where tested in that order : - Use the library from a thread. - Implementation of ecore_coroutine, to be able to put a function in standby and go back to the main loop. - Use ssh binary and ecore_exe. - Implement a ssh library that does it right. I am now working on the fourth solution, all previous attemps resulted in failure. Take it as an hint on what you are trying to do and maybe jump directly to that solution. I have no idea what your library is doing, but I can tell you, it will be painful ! It was *easy* when I interfaced this library with Tcl/Tk. (Tcl/Tk handles events and event loops differently -- one of the big advanges of a scripting language.) The library is actually libgpgme. I *guess* I could fork a Tcl/Tk script, except the dialog box that will pop up for the passphrase will look totally out-of-place (won't be visually compatible with E). Tcl/Tk was a scripting language :-) That can hide a lot of things. As for libgpgme, it is yet another library that wasn't designed for GUI in mind. So you can try with Ecore coroutine if you want. Also according to the documentation, it seems possible that libgpgme trigger the execution of a daemon to ask for the pass phrase. That smell like it could completely block E if that code was triggered from E... -- Cedric BAIL -- How ServiceNow helps IT people transform IT departments: 1. Consolidate legacy IT systems to a single system of record for IT 2. Standardize and globalize service processes across IT 3. Implement zero-touch automation to replace manual, redundant tasks http://pubads.g.doubleclick.net/gampad/clk?id=5127iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] SVN to Git: final few steps
On Mon, Sep 9, 2013 at 4:50 PM, Tom Hacohen tom.haco...@samsung.com wrote: Dear friends and enemies, As you may have noticed, we have changed our whole infrastructure to from SVN to Git. In that process we have migrated most of the individual repositories (directories) from our SVN to their respective Git repositories. We have reached a point in which people rarely ever commit to our SVN repository. Therefore, it is time to ditch to SVN altogether. We are currently working on migrating the whole SVN repository (with full history) to a read only Git repository on our server. This change will happen sometime this week. This means, that as of now, you shouldn't commit to SVN any more (we will change that to be read only soon). Please let me know about any projects you would like to see migrated to Git that we haven't migrated already, and we will do our best to migrate them as soon as possible. Hey, I've finished migrating the svn repo to git. It's available at: http://git.enlightenment.org/legacy/subversion-history.git/ Please use this from now on, or more precisely, please don't use this at all. Our SVN is dead, get over it. Please let me know if you see any issues with the migration. Cheers, Tom. -- How ServiceNow helps IT people transform IT departments: 1. Consolidate legacy IT systems to a single system of record for IT 2. Standardize and globalize service processes across IT 3. Implement zero-touch automation to replace manual, redundant tasks http://pubads.g.doubleclick.net/gampad/clk?id=5127iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Coding a 'modal' dialog in E17
On Tue, 10 Sep 2013 23:45:20 -0400 Robert Heller hel...@deepsoft.com said: At Wed, 11 Sep 2013 03:25:57 +0200 Enlightenment developer list enlightenment-devel@lists.sourceforge.net wrote: On Tue, Sep 10, 2013 at 7:45 PM, Robert Heller hel...@deepsoft.com wrote: At Tue, 10 Sep 2013 17:51:38 +0100 Michael Blumenkrantz michael.blumenkra...@gmail.com wrote: On Tue, 10 Sep 2013 12:34:21 -0400 Robert Heller hel...@deepsoft.com wrote: I am in the process of modifying E17 (I want to add so additional functionality to the file manager). One of the things I need to be able to do is have a 'modal' dialog, that is a dislog box that grabs the focus and causes the program (the file manager) to wait. I want events to be processed, but I want psuedo code like this: dialog = make_dialog(...); show(dialog); wait_for(dialog); The 'wait_for()' call would not return until the OK button or Cancel (close) button on the dialog has been clicked. It is not clear how to do this -- the documentation does not seem to cover this case (or I can't it in the documentation). Any pointers would be helpful. Thanks in advance. yeahhh you can't do that. what you CAN do is something like the uhh...modules/conf_theme/e_int_config_wallpaper.c dialog does. you set the parent dialog (though make sure you do this AFTER you show both dialogs or it won't work) to set up your modal: the first param is your intended modal, the second is the parent window which is getting blocked. then you can basically just wait for the modal to die and you'll know that there will be no events on the parent. I'll say this, however: we STRONGLY discourage the use of modal dialogs in e. unless you have a really good reason for it, I'm unlikely to accept any patches which introduce modal dialogs. Yes, I fully understand the 'evils' of modal dialogs, but there are times when it is the only option. In this case I am interfacing to a library that has a callback that wants some input (a passphrase) and I cannot just return without the passphrase and I don't know (in advance) if the passphrase is even needed or what the hint for the passphrase is (this info gets passed into the callback). And the callback might be called again if the passphrase is wrong. I may implement this with a subprocess, but then the subprocess itself will need to have a modal dialog. I am only interested a *local* type modal dialog. I did have exactly the same problem with all the stupid ssh library out there that where never designed to be integrated into a GUI. At the end, solution where tested in that order : - Use the library from a thread. - Implementation of ecore_coroutine, to be able to put a function in standby and go back to the main loop. - Use ssh binary and ecore_exe. - Implement a ssh library that does it right. I am now working on the fourth solution, all previous attemps resulted in failure. Take it as an hint on what you are trying to do and maybe jump directly to that solution. I have no idea what your library is doing, but I can tell you, it will be painful ! It was *easy* when I interfaced this library with Tcl/Tk. (Tcl/Tk handles events and event loops differently -- one of the big advanges of a scripting language.) The library is actually libgpgme. I *guess* I could fork a Tcl/Tk script, except the dialog box that will pop up for the passphrase will look totally out-of-place (won't be visually compatible with E). if you hope that in doing system() you can block and wait for the dialog and it will work... you will be wrong. :) -- - Codito, ergo sum - I code, therefore I am -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- How ServiceNow helps IT people transform IT departments: 1. Consolidate legacy IT systems to a single system of record for IT 2. Standardize and globalize service processes across IT 3. Implement zero-touch automation to replace manual, redundant tasks http://pubads.g.doubleclick.net/gampad/clk?id=5127iu=/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/elementary] master 01/01: elc_fileselector : Select path which user typed on path_entry.
Yes, it doesn't send selected signal if wrong path is given in path entry. Regards, Ryuan Choi 2013/9/11 ChunEon Park her...@naver.com Hi, As far as i understood your patch, Now, it doesn't send selected signal to apps if the path is not exist? -Regards, Hermet- -Original Message- From: Ryuan Choi - Enlightenment Gitno-re...@enlightenment.org To: enlightenment-...@lists.sourceforge.net; Cc: Sent: 2013-09-10 (화) 19:12:21 Subject: [EGIT] [core/elementary] master 01/01: elc_fileselector : Select path which user typed on path_entry. ryuan pushed a commit to branch master. commit 74f308df90026fca68ef366f68a12ce9741b2b2b Author: Ryuan Choi ryuan.choi@gmail.com Date: Tue Sep 10 18:47:30 2013 +0900 elc_fileselector : Select path which user typed on path_entry. Summary: In fileselector, user can write directory path or file path which they want. If then, fileselector navigates path when directory path is given, but just send a selected signal without real selection when file path or wrong path is given. With this path, - fileselector will navigate (if needed) and select file with signal when file path is given. - no action when wrong path is given. --- ChangeLog5 ++ NEWS 1 + src/lib/elc_fileselector.c 149 -- src/lib/elm_widget_fileselector.h1 + 4 files changed, 118 insertions(+), 38 deletions(-) diff --git a/ChangeLog b/ChangeLog index d957f29..9b701ef 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1598,3 +1598,8 @@ * ProgressBar: Added support for more than one progress status in a single progress bar + +2013-09-10 Ryuan Choi (ryuan) + +* elc_fileselector : Navigate (if needed) and select file with selected +signal when user typed file path on path_entry. diff --git a/NEWS b/NEWS index 2a3ed46..b14ad6c 100644 --- a/NEWS +++ b/NEWS @@ -277,6 +277,7 @@ Fixes: This prevents the asynchronous states between ime and conformant. * Flip : Fix the flip page to not flip on a direction if the direction is disabled. * Spinner : change part name to access.text from access_text on default style. + * Fix fileselector only send selected signal without selection when file path is typed on the path entry. Removals: diff --git a/src/lib/elc_fileselector.c b/src/lib/elc_fileselector.c index ef73b6a..742ac30 100644 --- a/src/lib/elc_fileselector.c +++ b/src/lib/elc_fileselector.c @@ -393,6 +393,7 @@ _ls_main_cb(void *data, const Eina_File_Direct_Info *info) { Listing_Request *lreq = data; + Elm_Object_Item *item; int itcn = ELM_FILE_UNKNOW; if (eio_file_check(handler)) return; @@ -416,16 +417,26 @@ _ls_main_cb(void *data, } if (lreq-sd-mode == ELM_FILESELECTOR_LIST) - elm_genlist_item_sorted_insert(lreq-sd-files_list, list_itc[itcn], -eina_stringshare_add(info-path), -lreq-parent_it, -((lreq-sd-expand) (itcn == ELM_DIRECTORY)) -? ELM_GENLIST_ITEM_TREE : ELM_GENLIST_ITEM_NONE, -_file_list_cmp, NULL, NULL); + { +item = elm_genlist_item_sorted_insert(lreq-sd-files_list, list_itc[itcn], + eina_stringshare_add(info-path), + lreq-parent_it, + ((lreq-sd-expand) (itcn == ELM_DIRECTORY)) + ? ELM_GENLIST_ITEM_TREE : ELM_GENLIST_ITEM_NONE, + _file_list_cmp, NULL, NULL); + +if (lreq-selected !strcmp(info-path, lreq-selected)) + elm_genlist_item_selected_set(item, EINA_TRUE); + } else if (lreq-sd-mode == ELM_FILESELECTOR_GRID) - elm_gengrid_item_sorted_insert(lreq-sd-files_grid, grid_itc[itcn], -eina_stringshare_add(info-path), -_file_grid_cmp, NULL, NULL); + { +item = elm_gengrid_item_sorted_insert(lreq-sd-files_grid, grid_itc[itcn], + eina_stringshare_add(info-path), + _file_grid_cmp, NULL, NULL); + +if (lreq-selected !strcmp(info-path, lreq-selected)) + elm_gengrid_item_selected_set(item, EINA_TRUE); + } } static void @@ -434,6 +445,7 @@ _listing_request_cleanup(Listing_Request *lreq) EINA_REFCOUNT_UNREF(lreq-sd) _elm_fileselector_smart_del_do(lreq-sd); eina_stringshare_del(lreq-path); + eina_stringshare_del(lreq-selected); free(lreq); } @@ -468,7 +480,8 @@ _ls_error_cb(void *data, Eio_File *handler, int error __UNUSED__) static void _populate(Evas_Object
Re: [E-devel] [Enlightenment-release] Releases pending
Hi, On 2013-09-11 00:36, Eduardo Lima (Etrunko) wrote: We now have tarballs up for testing in under the new pre-releases directory: http://download.enlightenment.org/pre-releases/efl-1.7.9/ http://download.enlightenment.org/pre-releases/enlightenment-0.17.5/ IMHO, it's bad to name tarball 'e_dbus-1.7.9.tar.bz2' (here for e_dbus exemple). Think about google bot and other crawlers that will put in the first result 'e_dbus-1.7.9.tar.bz2' corresponding to the pre-release directory, and this even when release will happenning, people will not see pre-releases subdirectory at first. Also, it may lead to misunderstood from people that will already have a file named e_dbus-1.7.9.tar.bz2 in their directory. Naming them e_dbus-1.7.9_pre1.Tar.bz2 in preferable or anything else that is not the final tarball name. -- How ServiceNow helps IT people transform IT departments: 1. Consolidate legacy IT systems to a single system of record for IT 2. Standardize and globalize service processes across IT 3. Implement zero-touch automation to replace manual, redundant tasks http://pubads.g.doubleclick.net/gampad/clk?id=5127iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [Enlightenment-release] Releases pending
I'll shove these updates in the Bodhi testing repo tomorrow night. They should get some good testing there. Are you all just skipping a 1.7.8 release for efls then? ~Jeff Hoogland Bodhi Linux - http://www.bodhilinux.com/ On Sep 11, 2013 8:00 AM, Bertrand Jacquin be...@meleeweb.net wrote: Hi, On 2013-09-11 00:36, Eduardo Lima (Etrunko) wrote: We now have tarballs up for testing in under the new pre-releases directory: http://download.enlightenment.org/pre-releases/efl-1.7.9/ http://download.enlightenment.org/pre-releases/enlightenment-0.17.5/ IMHO, it's bad to name tarball 'e_dbus-1.7.9.tar.bz2' (here for e_dbus exemple). Think about google bot and other crawlers that will put in the first result 'e_dbus-1.7.9.tar.bz2' corresponding to the pre-release directory, and this even when release will happenning, people will not see pre-releases subdirectory at first. Also, it may lead to misunderstood from people that will already have a file named e_dbus-1.7.9.tar.bz2 in their directory. Naming them e_dbus-1.7.9_pre1.Tar.bz2 in preferable or anything else that is not the final tarball name. -- How ServiceNow helps IT people transform IT departments: 1. Consolidate legacy IT systems to a single system of record for IT 2. Standardize and globalize service processes across IT 3. Implement zero-touch automation to replace manual, redundant tasks http://pubads.g.doubleclick.net/gampad/clk?id=5127iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- How ServiceNow helps IT people transform IT departments: 1. Consolidate legacy IT systems to a single system of record for IT 2. Standardize and globalize service processes across IT 3. Implement zero-touch automation to replace manual, redundant tasks http://pubads.g.doubleclick.net/gampad/clk?id=5127iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [Enlightenment-release] Releases pending
2013/9/11 Jeff Hoogland jeffhoogl...@linux.com: I'll shove these updates in the Bodhi testing repo tomorrow night. They should get some good testing there. Are you all just skipping a 1.7.8 release for efls then? 1.7.8 was released together with E 0.17.4 last month: https://phab.enlightenment.org/phame/live/3/post/new_efl_stable_release_1_7_8_and_enlightenment_0_17_4/ -- Eduardo de Barros Lima ◤✠◢ ebl...@gmail.com -- How ServiceNow helps IT people transform IT departments: 1. Consolidate legacy IT systems to a single system of record for IT 2. Standardize and globalize service processes across IT 3. Implement zero-touch automation to replace manual, redundant tasks http://pubads.g.doubleclick.net/gampad/clk?id=5127iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [Enlightenment-release] Releases pending
Right, brainfart moment. Any ideas when we will see a 1.8.0 EFL release? ~Jeff Hoogland Bodhi Linux - http://www.bodhilinux.com/ On Sep 11, 2013 8:52 AM, Eduardo Lima (Etrunko) ebl...@gmail.com wrote: 2013/9/11 Jeff Hoogland jeffhoogl...@linux.com: I'll shove these updates in the Bodhi testing repo tomorrow night. They should get some good testing there. Are you all just skipping a 1.7.8 release for efls then? 1.7.8 was released together with E 0.17.4 last month: https://phab.enlightenment.org/phame/live/3/post/new_efl_stable_release_1_7_8_and_enlightenment_0_17_4/ -- Eduardo de Barros Lima ◤✠◢ ebl...@gmail.com -- How ServiceNow helps IT people transform IT departments: 1. Consolidate legacy IT systems to a single system of record for IT 2. Standardize and globalize service processes across IT 3. Implement zero-touch automation to replace manual, redundant tasks http://pubads.g.doubleclick.net/gampad/clk?id=5127iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- How ServiceNow helps IT people transform IT departments: 1. Consolidate legacy IT systems to a single system of record for IT 2. Standardize and globalize service processes across IT 3. Implement zero-touch automation to replace manual, redundant tasks http://pubads.g.doubleclick.net/gampad/clk?id=5127iu=/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 02/02: eo: add eo_childrens_iterator_new().
* Cedric Bail - Enlightenment Git no-re...@enlightenment.org [2013-09-11 00:11:20 -0700]: cedric pushed a commit to branch master. commit cd77853222d1c11d71da4ca9066abe35390dcd5e Author: Cedric Bail cedric.b...@samsung.com Date: Wed Sep 11 16:08:06 2013 +0900 eo: add eo_childrens_iterator_new(). s/childrens/children/ ? The goal would be to replace the smart children list and friends. The problem is that they differ in content. Smart children and Eo children are the same, but Elm children and them differ. If I put this function as a virtual, it would be possible to override the list of children and if we start using it in Evas render loop, that could result in weird behavior. I have added the use of a simplified Eina_Trash mempool kind of feature to have some fast path for allocation if we start using it in Evas render loop. --- src/lib/eo/Eo.h | 9 src/lib/eo/eo.c | 113 src/lib/eo/eo_private.h | 26 +++ 3 files changed, 130 insertions(+), 18 deletions(-) diff --git a/src/lib/eo/Eo.h b/src/lib/eo/Eo.h index 049dcaa..4921f6d 100644 --- a/src/lib/eo/Eo.h +++ b/src/lib/eo/Eo.h @@ -797,6 +797,15 @@ EAPI Eo *eo_add_internal(const char *file, int line, const Eo_Class *klass, Eo * EAPI Eo *eo_parent_get(const Eo *obj); /** + * @brief Get an iterator on all childrens + * @param obj the object to get the childrens from. + * @return a pointer to an Eina_Iterator containing all the childrens. + * + * @see eo_parent_set() + */ +EAPI Eina_Iterator *eo_childrens_iterator_new(Eo *obj_id); + +/** * @brief Set the parent of an object * @param obj the object to get the parent of. * @param parent the new parent. diff --git a/src/lib/eo/eo.c b/src/lib/eo/eo.c index 835eb86..1985a57 100644 --- a/src/lib/eo/eo.c +++ b/src/lib/eo/eo.c @@ -687,7 +687,7 @@ eo_class_funcs_set(Eo_Class *klass_id, const Eo_Op_Func_Description *func_descs) static void eo_class_free(_Eo_Class *klass) { - void *object; + void *data; if (klass-constructed) { @@ -697,10 +697,14 @@ eo_class_free(_Eo_Class *klass) _dich_func_clean_all(klass); } - EINA_TRASH_CLEAN(klass-trash, object) - free(object); + EINA_TRASH_CLEAN(klass-objects.trash, data) + free(data); - eina_lock_free(klass-trash_lock); + EINA_TRASH_CLEAN(klass-iterators.trash, data) + free(data); + + eina_lock_free(klass-objects.trash_lock); + eina_lock_free(klass-iterators.trash_lock); free(klass); } @@ -893,7 +897,8 @@ eo_class_new(const Eo_Class_Description *desc, const Eo_Class *parent_id, ...) klass = calloc(1, _eo_class_sz + extn_sz + mro_sz + mixins_sz); EINA_MAGIC_SET(klass, EO_CLASS_EINA_MAGIC); - eina_lock_new(klass-trash_lock); + eina_lock_new(klass-objects.trash_lock); + eina_lock_new(klass-iterators.trash_lock); klass-parent = parent; klass-desc = desc; klass-extensions = (const _Eo_Class **) ((char *) klass + _eo_class_sz); @@ -1077,6 +1082,96 @@ eo_parent_set(Eo *obj_id, const Eo *parent_id) return EINA_TRUE; } +/* Children accessor */ +typedef struct _Eo_Children_Iterator Eo_Children_Iterator; +struct _Eo_Children_Iterator +{ + Eina_Iterator iterator; + Eina_List *current; + _Eo *obj; + Eo *obj_id; + +}; + +static Eina_Bool +_eo_children_iterator_next(Eo_Children_Iterator *it, void **data) +{ + if (!it-current) return EINA_FALSE; + + if (data) *data = eina_list_data_get(it-current); + it-current = eina_list_next(it-current); + + return EINA_TRUE; +} + +static Eo * +_eo_children_iterator_container(Eo_Children_Iterator *it) +{ + return it-obj_id; +} + +static void +_eo_children_iterator_free(Eo_Children_Iterator *it) +{ + _Eo_Class *klass; + _Eo *obj; + + klass = (_Eo_Class*) it-obj-klass; + obj = it-obj; + + eina_lock_take(klass-iterators.trash_lock); + if (klass-iterators.trash_count 8) + { +klass-iterators.trash_count++; +eina_trash_push(klass-iterators.trash, it); + } + else + { +free(it); + } + eina_lock_release(klass-iterators.trash_lock); + + _eo_unref(obj); +} + +EAPI Eina_Iterator * +eo_childrens_iterator_new(Eo *obj_id) +{ + Eo_Children_Iterator *it; + _Eo_Class *klass; + + EO_OBJ_POINTER_RETURN_VAL(obj_id, obj, NULL); + + if (!obj-children) return NULL; + + klass = (_Eo_Class*) obj-klass; + + eina_lock_take(klass-iterators.trash_lock); + it = eina_trash_pop(klass-iterators.trash); + if (it) + { +klass-iterators.trash_count--; +memset(it, 0, sizeof (Eo_Children_Iterator)); + } + else + { +it = calloc(1, sizeof (Eo_Children_Iterator)); + } + eina_lock_release(klass-iterators.trash_lock); + if (!it) return NULL; + + EINA_MAGIC_SET(it-iterator,
Re: [E-devel] [EGIT] [core/efl] master 02/02: eo: add eo_childrens_iterator_new().
On Wed, Sep 11, 2013 at 4:11 AM, Cedric Bail - Enlightenment Git no-re...@enlightenment.org wrote: cedric pushed a commit to branch master. commit cd77853222d1c11d71da4ca9066abe35390dcd5e Author: Cedric Bail cedric.b...@samsung.com Date: Wed Sep 11 16:08:06 2013 +0900 eo: add eo_childrens_iterator_new(). The goal would be to replace the smart children list and friends. The problem is that they differ in content. Smart children and Eo children are the same, but Elm children and them differ. If I put this function as a virtual, it would be possible to override the list of children and if we start using it in Evas render loop, that could result in weird behavior. 1st, as glima pointed out children is already plural form, no need for trailing s 2nd, I think this may cause a confusion. If one want all the Eo whose eo_parent_get() is X, they may want to call eo_children_iterator_new(X), but this virtual may not return that exact list, but a subset. I don't remember exactly about the Elm case, but I recall we had cases where one object is bound to another without being member_add(), in that case eo_children_iterator_new() would return objects that eo_parent_get(child) != X. I see what you're trying to do, but I don't know if the naming is correct. -- Gustavo Sverzut Barbieri -- Mobile: +55 (19) 9225-2202 Contact: http://www.gustavobarbieri.com.br/contact -- How ServiceNow helps IT people transform IT departments: 1. Consolidate legacy IT systems to a single system of record for IT 2. Standardize and globalize service processes across IT 3. Implement zero-touch automation to replace manual, redundant tasks http://pubads.g.doubleclick.net/gampad/clk?id=5127iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] File /usr/lib/pkconfig/eo.pc and EO name
On Tue, Sep 10, 2013 at 10:21 PM, Cedric BAIL cedric.b...@free.fr wrote: On Wed, Sep 11, 2013 at 2:32 AM, Carsten Haitzler ras...@rasterman.com wrote: On Tue, 10 Sep 2013 22:02:02 +0200 Côme BERNIGAUD come.bernig...@laposte.net said: Le 09/09/2013 15:43, Tom Hacohen a écrit : On 03/09/13 22:25, Côme BERNIGAUD wrote: Hello, I saw that there is a new component named EO in the EFLs. EO is already a library, it stands for «Evolving Objects» : http://eodev.sourceforge.net/ This is causing trouble, at least for one file: /usr/lib/pkgconfig/eo.pc is the pkgconfig for evolving objects, which is already used by several projects over the past years. So it might be a good thing if you could rename at least this file. Côme PS: The problem was found when trying to install the AUR package efl-git on ArchLinux, but I'm pretty sure this file is from upstream. Unfortunately it's really annoying to change it. After discussing it on IRC and thinking about all the pain involved, we decided not to change anything. We don't want to change the library name itself, that is, we like eo. Changing just the pc file creates a lot of issues with our build system which does a lot of things automatically and assumes a specific template to be followed. libXX.so, XX.pc and etc. That is a very sad decision. It means people won't be able to install both EO and the EFL… The filename eo.pc was already used since several years by EO, it's childish to just ignore that and take the same name. You should indeed use a pattern like efl/xx.pc or efl_xx.pc because if you intend to keep using two-letters names, you'll find a lot of them are already in use. Someone was also anxious about eo.h names or such, I just checked, and libeo is also using: /usr/include/eo folder /usr/share/eo folder /usr/lib/libeo.a file /usr/lib/libeo.so file Which might also conflict with your EO thing (I did not check, just thought these files might conflict) the libeo.so/a and include dirs will conflict. here is the problem. all of efl follow a pattern. the configure and makefiles all use macros to define the pc, include etc. etc. etc. stuff as they all follow the same design pattern - the same template and same standard. making eo different is a pain in the butt and is going to lead to a bunch of exceptions and not following the design pattern which leads to problems with packaging or otherwise maintenance. so our choice is change eo to something else (and making it short was a primary goal, and e_ is already taken by ... e so we'd have to go changing 100,000+ lines of code in e to avoid it), so we have eo... eob is longer etc. as is eobj etc. it's not childish - it's not being ignored, it's just that the alternative solutions are unpalatable. we'd have to go over 500,000 lines of code and change them to use something other than eo_ and EO_ etc. etc. to change the lib namespace... the decision is not made lightly or childishly. it's simply going to have to be a conflict :( at least for now. one day we will merge a lot of efl into libefl.so and likely includes will move into an efl subdir, have an efl.pc etc. etc. so the conflict will eventually go away, but that day is not today. that day is efl 2.0 and its still years off. eo is one of those migration path elements on the way there - it's unifying our object model and putting in the basics to improve our interfaces. CHANGING efl to use efl subdirs for pc files already creates an api break and that MEANS efl 2.0 and we are not breaking api for a minimum of 5 years following efl 1.0 releases. that's a level of stability i wanted to keep and i'm not backing down on that as backing down means developers can't trust in stability and every time we violate that trust we prove that we are unable to give them a base to build on. thus my desire for a 5 year guaranntee. even beyond those 5 years there will likely be an efl 1.x compat layer that is on top of the efl 2 stuff (just like we do today with eo already and existing efl). so it's not childish, it's a decision that you may not like, and it means there is a conflict, and that will stay, but the number of people ACTUALLY affected by the conflict i believe will be very small. at least until efl 2 ... as above. Maybe a stupid idea, but do we still need an eo.pc ? Why not just an efl.pc for all the new library that never went released outside of EFL ? That would solve the problem and the distribution can rename the library or put it somewhere else as long as efl.pc, it would be fine. problem is how you filter libraries from efl.pc you want to link. Say you wrote a single daemon using only eina, then you'd be linking with eo/evas... everything from efl.pc? -- Gustavo Sverzut Barbieri -- Mobile: +55 (19) 9225-2202 Contact: http://www.gustavobarbieri.com.br/contact
Re: [E-devel] Releases pending
2013/9/10 Simon si...@simotek.net: On 09/11/2013 02:19 AM, Michael Blumenkrantz wrote: EFL 1.7.9 and E17.5 are currently pending. Standby for bugs and explosions, and remember to blame antognolli for anything that goes wrong. Has anyone tested if the splash screen issue in E17.4 got fixed? I'm not comfortable upgrading the openSUSE repo's until i know that issue has been fixed. (They probably won't get updated anyway because we have a feature freeze friday and i won't get time before then). This is the sole reason for 0.17.5 existing in first place. The fix should be there, yes, but we need people to confirm it. Regards, Etrunko -- Eduardo de Barros Lima ◤✠◢ ebl...@gmail.com -- How ServiceNow helps IT people transform IT departments: 1. Consolidate legacy IT systems to a single system of record for IT 2. Standardize and globalize service processes across IT 3. Implement zero-touch automation to replace manual, redundant tasks http://pubads.g.doubleclick.net/gampad/clk?id=5127iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [Enlightenment-release] Releases pending
On 09/11/13 12:03, Eduardo Lima (Etrunko) wrote: 2013/9/11 Bertrand Jacquin be...@meleeweb.net: Hi, On 2013-09-11 00:36, Eduardo Lima (Etrunko) wrote: We now have tarballs up for testing in under the new pre-releases directory: http://download.enlightenment.org/pre-releases/efl-1.7.9/ http://download.enlightenment.org/pre-releases/enlightenment-0.17.5/ IMHO, it's bad to name tarball 'e_dbus-1.7.9.tar.bz2' (here for e_dbus exemple). Think about google bot and other crawlers that will put in the first result 'e_dbus-1.7.9.tar.bz2' corresponding to the pre-release directory, and this even when release will happenning, people will not see pre-releases subdirectory at first. Also, it may lead to misunderstood from people that will already have a file named e_dbus-1.7.9.tar.bz2 in their directory. Naming them e_dbus-1.7.9_pre1.Tar.bz2 in preferable or anything else that is not the final tarball name. It is already enough work to update configure.ac, ChangeLogs and NEWS for all 17 packages we ship, and I for myself am not doing it all over again only to remove a 'pre' tag. The idea is to move the tarballs to the release directory and remove the pre-release one whenever the packages are tested and good to go. You don't have to change the configure.ac and friends, just rename the final tarball. You see, last time for 1.7.8, there was problem to fix so new packages were uploaded again with the exact same name. I, myself, couldn't figure which one of the tarballs were patched as they got all the same timestamp. I do believe that different code tarballs should have different names. If it's too difficult, at least give some checksums of the final tarballs so people could check what they have without downloading them all over again. -- Jérôme Pinot http://ngc891.blogdns.net/ signature.asc Description: Digital signature -- How ServiceNow helps IT people transform IT departments: 1. Consolidate legacy IT systems to a single system of record for IT 2. Standardize and globalize service processes across IT 3. Implement zero-touch automation to replace manual, redundant tasks http://pubads.g.doubleclick.net/gampad/clk?id=5127iu=/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/enlightenment] master 01/01: fix comp fullscreen nocomp detection to work properly given comp changes
ughhh this makes my head hurt. can you make a list of possible cases which weren't covered by the previous code so that I can at least improve this for e19? On Wed, 11 Sep 2013 09:03:18 -0700 Carsten Haitzler (Rasterman) - Enlightenment Git no-re...@enlightenment.org wrote: raster pushed a commit to branch master. commit 2ca1a5a5d4aaeb346c4209415dedc75399e0b518 Author: Carsten Haitzler (Rasterman) ras...@rasterman.com Date: Thu Sep 12 01:23:23 2013 +0900 fix comp fullscreen nocomp detection to work properly given comp changes --- src/bin/e_comp.c | 108 +-- 1 file changed, 106 insertions(+), 2 deletions(-) diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c index faf7e9a..c4a3ffd 100644 --- a/src/bin/e_comp.c +++ b/src/bin/e_comp.c @@ -200,6 +200,96 @@ _e_comp_child_hide(E_Comp_Win *cw) } } +static Eina_Bool +_e_comp_visible_object_clip_is(Evas_Object *obj) +{ + Evas_Object *clip; + int a; + + clip = evas_object_clip_get(obj); + if (!evas_object_visible_get(clip)) return EINA_FALSE; + evas_object_color_get(clip, NULL, NULL, NULL, a); + if (a = 0) return EINA_FALSE; + if (evas_object_clip_get(clip)) + return _e_comp_visible_object_clip_is(clip); + return EINA_TRUE; +} + +static Eina_Bool +_e_comp_visible_object_is(Evas_Object *obj, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h) +{ + const char *type = evas_object_type_get(obj); + Evas_Coord xx, yy, ww, hh; + + if (!type) return EINA_FALSE; + evas_object_geometry_get(obj, xx, yy, ww, hh); + if (E_INTERSECTS(x, y, w, h, xx, yy, ww, hh)) + { +if ((evas_object_visible_get(obj)) + (!evas_object_clipees_get(obj)) + ) + { + int a; + + evas_object_color_get(obj, NULL, NULL, NULL, a); + if (a 0) + { + if ((!strcmp(type, rectangle)) || + (!strcmp(type, image)) || + (!strcmp(type, text)) || + (!strcmp(type, textblock)) || + (!strcmp(type, textgrid)) || + (!strcmp(type, polygon)) || + (!strcmp(type, line))) +{ + if (evas_object_clip_get(obj)) + return _e_comp_visible_object_clip_is(obj); + return EINA_TRUE; +} + else +{ + Eina_List *children; + + if ((children = evas_object_smart_members_get(obj))) + { +Eina_List *l; +Evas_Object *o; + +EINA_LIST_FOREACH(children, l, o) + { + if (_e_comp_visible_object_is(o, x, y, w, h)) + { + if (evas_object_clip_get(o)) +{ + children = eina_list_free(children); + return _e_comp_visible_object_clip_is(o); +} + children = eina_list_free(children); + return EINA_TRUE; + } + } +eina_list_free(children); + } +} + } + } + } + return EINA_FALSE; +} + +static Eina_Bool +_e_comp_visible_object_is_above(Evas_Object *obj, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h) +{ + Evas_Object *above; + + for (above = evas_object_above_get(obj); above; +above = evas_object_above_get(above)) + { +if (_e_comp_visible_object_is(above, x, y, w, h)) return EINA_TRUE; + } + return EINA_FALSE; +} + static E_Comp_Win * _e_comp_fullscreen_check(E_Comp *c) { @@ -212,11 +302,25 @@ _e_comp_fullscreen_check(E_Comp *c) continue; if (!cw-bd) continue; if ((cw-x == 0) (cw-y == 0) -((cw-bd-client.w) = c-man-w) -((cw-bd-client.h) = c-man-h) +((cw-bd-client.w) == c-man-w) +((cw-bd-client.h) == c-man-h) +(cw-bd-client_inset.l == 0) (cw-bd-client_inset.r == 0) +(cw-bd-client_inset.t == 0) (cw-bd-client_inset.b == 0) (!cw-argb) (!cw-shaped) (!cw-bg_win) ) { + // check for objects above... + Evas_Object *parent = NULL, *o = NULL; + + o = cw-obj; + do + { +
Re: [E-devel] [EGIT] [core/efl] master 01/02: Readd the master clip for rendering of wayland engines.
Hey dh, On Wed, Sep 11, 2013 at 10:11 AM, Chris Michael - Enlightenment Git no-re...@enlightenment.org wrote: devilhorns pushed a commit to branch master. commit d673cbc3982399a11be74a42f909e68b0f380dea Author: Chris Michael cp.mich...@samsung.com Date: Wed Sep 11 13:00:23 2013 +0100 Readd the master clip for rendering of wayland engines. NB: Master clip is needed so that things don't draw outside the client area. NB: This is a partial fix. Still a work in progress. Some remaining issues with some various elm_tests that use evas_map. Signed-off-by: Chris Michael cp.mich...@samsung.com --- src/lib/evas/canvas/evas_render.c | 67 +++ 1 file changed, 67 insertions(+) diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c index 3f8d942..bdf147a 100644 --- a/src/lib/evas/canvas/evas_render.c +++ b/src/lib/evas/canvas/evas_render.c @@ -1538,6 +1538,7 @@ evas_render_updates_internal(Evas *eo_e, #ifdef EVAS_RENDER_DEBUG_TIMING double start_time = _time_get(); #endif + Eina_Rectangle clip_rect; MAGIC_CHECK(eo_e, Evas, MAGIC_EVAS); return EINA_FALSE; @@ -1582,6 +1583,51 @@ evas_render_updates_internal(Evas *eo_e, e-render_objects, redraw_all); + if (!strncmp(e-engine.module-definition-name, wayland, 7)) + { +/* check for master clip */ +if (!e-framespace.clip) + { + e-framespace.clip = evas_object_rectangle_add(eo_e); + evas_object_color_set(e-framespace.clip, 255, 255, 255, 255); + evas_object_move(e-framespace.clip, 0, 0); + evas_object_resize(e-framespace.clip, +e-viewport.w - e-framespace.w, +e-viewport.h - e-framespace.h); + evas_object_show(e-framespace.clip); + } + +/* setup master clip rectangle for comparison to objects */ +EINA_RECTANGLE_SET(clip_rect, e-framespace.x, e-framespace.y, + e-viewport.w - e-framespace.w, + e-viewport.h - e-framespace.h); + +for (i = 0; i e-render_objects.count; ++i) + { + Eina_Rectangle obj_rect; + + obj = eina_array_data_get(e-render_objects, i); + if (obj-delete_me) continue; + if (obj-is_frame) continue; + if (obj-object == e-framespace.clip) continue; + + /* setup object rectangle for comparison to clip rectangle */ + EINA_RECTANGLE_SET(obj_rect, +obj-cur-geometry.x, obj-cur-geometry.y, +obj-cur-geometry.w, obj-cur-geometry.h); + + /* check if this object intersects with the master clip */ + if (!eina_rectangles_intersect(clip_rect, obj_rect)) + continue; + + if (!evas_object_clip_get(obj-object)) + { + /* clip this object to the master clip */ + evas_object_clip_set(obj-object, e-framespace.clip); + } + } + } + /* phase 1.5. check if the video should be inlined or stay in their overlay */ alpha = e-engine.func-canvas_alpha_get(e-engine.data.output, e-engine.data.context); @@ -1914,6 +1960,27 @@ evas_render_updates_internal(Evas *eo_e, } } + if (!strncmp(e-engine.module-definition-name, wayland, 7)) + { +/* unclip objects from master clip */ +for (i = 0; i e-render_objects.count; ++i) + { + obj = eina_array_data_get(e-render_objects, i); + if (obj-is_frame) continue; + if (obj-object == e-framespace.clip) continue; + + if (evas_object_clip_get(obj-object) == e-framespace.clip) + { + /* unclip this object from the master clip */ + evas_object_clip_unset(obj-object); + } + } + +/* delete master clip */ +evas_object_del(e-framespace.clip); +e-framespace.clip = NULL; + } + e-changed = EINA_FALSE; e-viewport.changed = EINA_FALSE; e-output.changed = EINA_FALSE; I see what you tried here, and I did something similar but it seems that you added the unclip stuff to the right place, so at least the canvas doesn't get maked as changed after you unclip these objects. But what about the clipped/unclipped objects? When you change their clipper, these objects are going to be marked as changed, and even if they don't change any other property on the next mainloop, they might have to be repainted again because the clip cache will be invalidated... well, I didn't test it, but it's what I'm assuming now.
Re: [E-devel] [Enlightenment-release] Releases pending
2013/9/11 Bertrand Jacquin be...@meleeweb.net: Hi, On 2013-09-11 00:36, Eduardo Lima (Etrunko) wrote: We now have tarballs up for testing in under the new pre-releases directory: http://download.enlightenment.org/pre-releases/efl-1.7.9/ http://download.enlightenment.org/pre-releases/enlightenment-0.17.5/ IMHO, it's bad to name tarball 'e_dbus-1.7.9.tar.bz2' (here for e_dbus exemple). Think about google bot and other crawlers that will put in the first result 'e_dbus-1.7.9.tar.bz2' corresponding to the pre-release directory, and this even when release will happenning, people will not see pre-releases subdirectory at first. Also, it may lead to misunderstood from people that will already have a file named e_dbus-1.7.9.tar.bz2 in their directory. Naming them e_dbus-1.7.9_pre1.Tar.bz2 in preferable or anything else that is not the final tarball name. It is already enough work to update configure.ac, ChangeLogs and NEWS for all 17 packages we ship, and I for myself am not doing it all over again only to remove a 'pre' tag. The idea is to move the tarballs to the release directory and remove the pre-release one whenever the packages are tested and good to go. -- Eduardo de Barros Lima ◤✠◢ ebl...@gmail.com -- How ServiceNow helps IT people transform IT departments: 1. Consolidate legacy IT systems to a single system of record for IT 2. Standardize and globalize service processes across IT 3. Implement zero-touch automation to replace manual, redundant tasks http://pubads.g.doubleclick.net/gampad/clk?id=5127iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [Enlightenment-release] Releases pending
Hi, On Wed, Sep 11, 2013 at 6:11 PM, Bertrand Jacquin be...@meleeweb.net wrote: On 2013-09-11 17:03, Eduardo Lima (Etrunko) wrote: 2013/9/11 Bertrand Jacquin be...@meleeweb.net: Hi, On 2013-09-11 00:36, Eduardo Lima (Etrunko) wrote: We now have tarballs up for testing in under the new pre-releases directory: http://download.enlightenment.org/pre-releases/efl-1.7.9/ http://download.enlightenment.org/pre-releases/enlightenment-0.17.5/ IMHO, it's bad to name tarball 'e_dbus-1.7.9.tar.bz2' (here for e_dbus exemple). Think about google bot and other crawlers that will put in the first result 'e_dbus-1.7.9.tar.bz2' corresponding to the pre-release directory, and this even when release will happenning, people will not see pre-releases subdirectory at first. Also, it may lead to misunderstood from people that will already have a file named e_dbus-1.7.9.tar.bz2 in their directory. Naming them e_dbus-1.7.9_pre1.Tar.bz2 in preferable or anything else that is not the final tarball name. It is already enough work to update configure.ac, ChangeLogs and NEWS for all 17 packages we ship, and I for myself am not doing it all over again only to remove a 'pre' tag. The idea is to move the tarballs to the release directory and remove the pre-release one whenever the packages are tested and good to go. This should not need any manual changes. You could for example add a v1.7.9_pre1 tag on a commit, and then run a 'make dist' that does all needed things for you. As almost all projects does. I also think that it would be cool if we had that. But unfortunately I have to agree with Etrunko that it's a pain in the ass, at least the way that it is now, where EFL 1.7 is split across several packages. It's not just make dist, but make dist on every package, at least twice (one for pre-release and another for the real release), adding/changing/removing the preN tag. And if we do that, would be even better to do it all correctly: update dependencies accordingly, NEWS, ChangeLog, etc, as Etrunko said. I don't think it's worth the effort for 1.7 yet, maybe we can do it after 1.8 release where it will be a lot easier (single tree for core efl, elementary and enlightenment). Just my 2 cents. -- Rafael Antognolli -- How ServiceNow helps IT people transform IT departments: 1. Consolidate legacy IT systems to a single system of record for IT 2. Standardize and globalize service processes across IT 3. Implement zero-touch automation to replace manual, redundant tasks http://pubads.g.doubleclick.net/gampad/clk?id=5127iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [Enlightenment-release] Releases pending
On 2013-09-11 17:03, Eduardo Lima (Etrunko) wrote: 2013/9/11 Bertrand Jacquin be...@meleeweb.net: Hi, On 2013-09-11 00:36, Eduardo Lima (Etrunko) wrote: We now have tarballs up for testing in under the new pre-releases directory: http://download.enlightenment.org/pre-releases/efl-1.7.9/ http://download.enlightenment.org/pre-releases/enlightenment-0.17.5/ IMHO, it's bad to name tarball 'e_dbus-1.7.9.tar.bz2' (here for e_dbus exemple). Think about google bot and other crawlers that will put in the first result 'e_dbus-1.7.9.tar.bz2' corresponding to the pre-release directory, and this even when release will happenning, people will not see pre-releases subdirectory at first. Also, it may lead to misunderstood from people that will already have a file named e_dbus-1.7.9.tar.bz2 in their directory. Naming them e_dbus-1.7.9_pre1.Tar.bz2 in preferable or anything else that is not the final tarball name. It is already enough work to update configure.ac, ChangeLogs and NEWS for all 17 packages we ship, and I for myself am not doing it all over again only to remove a 'pre' tag. The idea is to move the tarballs to the release directory and remove the pre-release one whenever the packages are tested and good to go. This should not need any manual changes. You could for example add a v1.7.9_pre1 tag on a commit, and then run a 'make dist' that does all needed things for you. As almost all projects does. -- How ServiceNow helps IT people transform IT departments: 1. Consolidate legacy IT systems to a single system of record for IT 2. Standardize and globalize service processes across IT 3. Implement zero-touch automation to replace manual, redundant tasks http://pubads.g.doubleclick.net/gampad/clk?id=5127iu=/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/enlightenment] master 01/01: fix comp fullscreen nocomp detection to work properly given comp changes
On Wed, 11 Sep 2013 17:16:16 +0100 Michael Blumenkrantz michael.blumenkra...@gmail.com said: ughhh this makes my head hurt. can you make a list of possible cases which weren't covered by the previous code so that I can at least improve this for e19? any window at 0,0 and = or than screen caused nocomp to kick in. even if shelf was on top op it. that meant titlebar vanished etc. i also tried to cover detecting other evas objects on top that could be visible. it's simple. window must MATCH framebuffer size (manager or root size in this case and be at 0,0. that means the client image object region, not the frame which is done all in canvas. you should have no visible evas objects on top of this in the comp canvas that need to be drawn on top of blended etc. etc. and of course the client image obj (client) should have no shape or argb state. solid, not-shaped. oh.. and the client image obj.. need to be.. VISIBLE... :) On Wed, 11 Sep 2013 09:03:18 -0700 Carsten Haitzler (Rasterman) - Enlightenment Git no-re...@enlightenment.org wrote: raster pushed a commit to branch master. commit 2ca1a5a5d4aaeb346c4209415dedc75399e0b518 Author: Carsten Haitzler (Rasterman) ras...@rasterman.com Date: Thu Sep 12 01:23:23 2013 +0900 fix comp fullscreen nocomp detection to work properly given comp changes --- src/bin/e_comp.c | 108 +-- 1 file changed, 106 insertions(+), 2 deletions(-) diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c index faf7e9a..c4a3ffd 100644 --- a/src/bin/e_comp.c +++ b/src/bin/e_comp.c @@ -200,6 +200,96 @@ _e_comp_child_hide(E_Comp_Win *cw) } } +static Eina_Bool +_e_comp_visible_object_clip_is(Evas_Object *obj) +{ + Evas_Object *clip; + int a; + + clip = evas_object_clip_get(obj); + if (!evas_object_visible_get(clip)) return EINA_FALSE; + evas_object_color_get(clip, NULL, NULL, NULL, a); + if (a = 0) return EINA_FALSE; + if (evas_object_clip_get(clip)) + return _e_comp_visible_object_clip_is(clip); + return EINA_TRUE; +} + +static Eina_Bool +_e_comp_visible_object_is(Evas_Object *obj, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h) +{ + const char *type = evas_object_type_get(obj); + Evas_Coord xx, yy, ww, hh; + + if (!type) return EINA_FALSE; + evas_object_geometry_get(obj, xx, yy, ww, hh); + if (E_INTERSECTS(x, y, w, h, xx, yy, ww, hh)) + { +if ((evas_object_visible_get(obj)) + (!evas_object_clipees_get(obj)) + ) + { + int a; + + evas_object_color_get(obj, NULL, NULL, NULL, a); + if (a 0) + { + if ((!strcmp(type, rectangle)) || + (!strcmp(type, image)) || + (!strcmp(type, text)) || + (!strcmp(type, textblock)) || + (!strcmp(type, textgrid)) || + (!strcmp(type, polygon)) || + (!strcmp(type, line))) +{ + if (evas_object_clip_get(obj)) + return _e_comp_visible_object_clip_is(obj); + return EINA_TRUE; +} + else +{ + Eina_List *children; + + if ((children = evas_object_smart_members_get(obj))) + { +Eina_List *l; +Evas_Object *o; + +EINA_LIST_FOREACH(children, l, o) + { + if (_e_comp_visible_object_is(o, x, y, w, h)) + { + if (evas_object_clip_get(o)) +{ + children = eina_list_free (children); + return _e_comp_visible_object_clip_is(o); +} + children = eina_list_free(children); + return EINA_TRUE; + } + } +eina_list_free(children); + } +} + } + } + } + return EINA_FALSE; +} + +static Eina_Bool +_e_comp_visible_object_is_above(Evas_Object *obj, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h) +{ + Evas_Object *above; + + for (above = evas_object_above_get(obj); above; +above = evas_object_above_get(above)) + { +if
[E-devel] About evas_object_clip_set() function ~~
Hello, guys On latest Evas library, Can I use only rectangle as image clipper?? ... 212if (clip-type != o_rect_type) 213 { 214 ERR(For now a clip on other object than a rectangle is disabled); 215 return; 216 } ... In latest Evas, I can find above things, but I really want to use circle mask image as image clipper. ; ( Is there any idea? -- How ServiceNow helps IT people transform IT departments: 1. Consolidate legacy IT systems to a single system of record for IT 2. Standardize and globalize service processes across IT 3. Implement zero-touch automation to replace manual, redundant tasks http://pubads.g.doubleclick.net/gampad/clk?id=5127iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] About evas_object_clip_set() function ~~
On Thu, 12 Sep 2013 10:41:39 +0900 이준호 eso...@gmail.com said: Hello, guys On latest Evas library, Can I use only rectangle as image clipper?? ... 212if (clip-type != o_rect_type) 213 { 214 ERR(For now a clip on other object than a rectangle is disabled); 215 return; 216 } ... In latest Evas, I can find above things, but I really want to use circle mask image as image clipper. ; ( Is there any idea? that code is there for a reason... it's correct. :) -- How ServiceNow helps IT people transform IT departments: 1. Consolidate legacy IT systems to a single system of record for IT 2. Standardize and globalize service processes across IT 3. Implement zero-touch automation to replace manual, redundant tasks http://pubads.g.doubleclick.net/gampad/clk?id=5127iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- - Codito, ergo sum - I code, therefore I am -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- How ServiceNow helps IT people transform IT departments: 1. Consolidate legacy IT systems to a single system of record for IT 2. Standardize and globalize service processes across IT 3. Implement zero-touch automation to replace manual, redundant tasks http://pubads.g.doubleclick.net/gampad/clk?id=5127iu=/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/elementary] master 01/01: elementary - revert ddc3cf80ce0a50a9161fcb212d3414f5d7b5898c
Hi, I reverted elm_object_item_get() API. Cedric, Raster, Daniel, Me together discussed for more proper way instead of the API. In the end, Cedric suggested to return the rectangle object that's a kind of fake object of the object item's real object. and All of us agreed on it. Now, I will add 2 more APIs elm_object_item_object_track(), elm_object_item_object_untrack() to return/retrieve the fake object. Maybe, all guys will be happy with these APis. If you have some other idea or whatever opinions, please reply on this email. Thank you. -Regards, Hermet- -Original Message- From: ChunEon Park - Enlightenment Gitno-re...@enlightenment.org To: enlightenment-...@lists.sourceforge.net; Cc: Sent: 2013-09-12 (목) 14:15:15 Subject: [EGIT] [core/elementary] master 01/01: elementary - revert ddc3cf80ce0a50a9161fcb212d3414f5d7b5898c hermet pushed a commit to branch master. commit 9558537385f0a402b1725076b7a6ea1c540fd39a Author: ChunEon Park hermet@hermet.pe.kr Date: Thu Sep 12 14:13:59 2013 +0900 elementary - revert ddc3cf80ce0a50a9161fcb212d3414f5d7b5898c We have a plan to add more proper API. --- ChangeLog 4 NEWS1 - src/lib/elm_main.c 6 -- src/lib/elm_object_item.h 21 - src/lib/elm_widget.c7 --- src/lib/elm_widget.h1 - 6 files changed, 40 deletions(-) diff --git a/ChangeLog b/ChangeLog index c06f86f..ff18f8c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1582,10 +1582,6 @@ * Bg: Add bg reset feature. -2013-09-02 ChunEon Park (Hermet) - -* Widget: Introduce elm_object_item_object_get() API. - 2013-09-04 Ryuan Choi (ryuan) * elm_config : profile may be broken when clicked reset button in profiles tab diff --git a/NEWS b/NEWS index 5cb62b2..3d536c0 100644 --- a/NEWS +++ b/NEWS @@ -85,7 +85,6 @@ Additions: * Add elm_win_focus_highlight_animate_set/get(). * Add selectraise feature to gengrid. * Add bg reset feature. - * Add elm_object_item_object_get(). * Add support for more than one progress status in a progressbar. * Add elm_table_child_get(). * Add support for flip focus direction. diff --git a/src/lib/elm_main.c b/src/lib/elm_main.c index 6c8aba8..17654c6 100644 --- a/src/lib/elm_main.c +++ b/src/lib/elm_main.c @@ -1899,9 +1899,3 @@ elm_object_item_cursor_engine_only_get(const Elm_Object_Item *it) { return elm_widget_item_cursor_engine_only_get(it); } - -EAPI const Evas_Object * -elm_object_item_object_get(const Elm_Object_Item *it) -{ - return _elm_widget_item_object_get((Elm_Widget_Item*)it); -} diff --git a/src/lib/elm_object_item.h b/src/lib/elm_object_item.h index 1d9f490..8a0ccde 100644 --- a/src/lib/elm_object_item.h +++ b/src/lib/elm_object_item.h @@ -34,27 +34,6 @@ typedef void (*Elm_Object_Item_Signal_Cb)(void *data, Elm_Objec EAPI Evas_Object *elm_object_item_widget_get(const Elm_Object_Item *it); /** - * Get the object item's internal object handle. - * - * @param it The Elementary object item - * @return The Internal object of the object item. - * - * @note This function should only be used if you really need to refer the - * internal object's properties (i.e geometry). Since the object items are - * managed/controlled by the widget, the object could be deleted, resized, moved - * and so on by the widget. So you should not modify the object directly nor you - * should not treat the object without validation, we don't guarantee the result - * of any of these behavior. - * - * Some widget items may return @c NULL for this API if the items @p are not - * based on the evas object. - * - * @since 1.8 - * @ingroup General - */ -EAPI const Evas_Object *elm_object_item_object_get(const Elm_Object_Item *it); - -/** * Set a content of an object item * * @param it The Elementary object item diff --git a/src/lib/elm_widget.c b/src/lib/elm_widget.c index 71953ce..c94f894 100644 --- a/src/lib/elm_widget.c +++ b/src/lib/elm_widget.c @@ -5787,13 +5787,6 @@ _elm_widget_item_translate(Elm_Widget_Item *item) #endif } -EAPI const Evas_Object * -_elm_widget_item_object_get(const Elm_Widget_Item *item) -{ - ELM_WIDGET_ITEM_CHECK_OR_RETURN(item, NULL); - return item-view; -} - /* happy debug functions */ #ifdef ELM_DEBUG static void diff --git a/src/lib/elm_widget.h b/src/lib/elm_widget.h index e4d6362..48d8736 100644 --- a/src/lib/elm_widget.h +++ b/src/lib/elm_widget.h @@ -771,7 +771,6 @@ EAPI void _elm_widget_item_domain_translatable_part_text_set(Elm_Wid EAPI const char * _elm_widget_item_translatable_part_text_get(const Elm_Widget_Item *item, const char *part); EAPI void _elm_widget_item_translate(Elm_Widget_Item *item); EAPI void _elm_widget_item_domain_part_text_translatable_set(Elm_Widget_Item *item, const char *part, const char *domain, Eina_Bool
Re: [E-devel] About evas_object_clip_set() function ~~
Unfortunately not yet. Evas doesn support image masking yet. Maybe will be supported later 1.8 but I'm not sure. -Regards, Hermet- -Original Message- From: 이준호eso...@gmail.com To: Enlightenment developer listenlightenment-devel@lists.sourceforge.net; Cc: Sent: 2013-09-12 (목) 10:41:39 Subject: [E-devel] About evas_object_clip_set() function ~~ Hello, guys On latest Evas library, Can I use only rectangle as image clipper?? ... 212if (clip-type != o_rect_type) 213 { 214 ERR(For now a clip on other object than a rectangle is disabled); 215 return; 216 } ... In latest Evas, I can find above things, but I really want to use circle mask image as image clipper. ; ( Is there any idea? -- How ServiceNow helps IT people transform IT departments: 1. Consolidate legacy IT systems to a single system of record for IT 2. Standardize and globalize service processes across IT 3. Implement zero-touch automation to replace manual, redundant tasks http://pubads.g.doubleclick.net/gampad/clk?id=5127iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- How ServiceNow helps IT people transform IT departments: 1. Consolidate legacy IT systems to a single system of record for IT 2. Standardize and globalize service processes across IT 3. Implement zero-touch automation to replace manual, redundant tasks http://pubads.g.doubleclick.net/gampad/clk?id=5127iu=/4140/ostg.clktrk ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel