[EGIT] [core/efl] master 01/02: efl_ui_position_manager_grid: avoid zero division case
bu5hm4n pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=62e470130c7005e85f5e1c7e039c352f31bad8b3 commit 62e470130c7005e85f5e1c7e039c352f31bad8b3 Author: WooHyun Jung Date: Fri Nov 29 04:15:48 2019 + efl_ui_position_manager_grid: avoid zero division case This fixes the issue of zero division when columns is zero. Sometimes columns can be zero when "pd->viewport.w = 0". Reviewed-by: Marcel Hollerbach Differential Revision: https://phab.enlightenment.org/D10768 --- src/lib/elementary/efl_ui_position_manager_grid.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/elementary/efl_ui_position_manager_grid.c b/src/lib/elementary/efl_ui_position_manager_grid.c index bc3124abdc..7b0ed303f5 100644 --- a/src/lib/elementary/efl_ui_position_manager_grid.c +++ b/src/lib/elementary/efl_ui_position_manager_grid.c @@ -706,6 +706,7 @@ _efl_ui_position_manager_grid_efl_ui_position_manager_entity_position_single_ite EINA_SAFETY_ON_FALSE_RETURN_VAL(group_consumed_ids == 0, EINA_RECT(0, 0, 0, 0)); int columns = pd->viewport.w/pd->max_min_size.w; + if (columns == 0) return EINA_RECT(0, 0, 0, 0); int sub_pos_id = idx - group_consumed_ids; if (pd->dir == EFL_UI_LAYOUT_ORIENTATION_VERTICAL) --
[EGIT] [core/efl] master 02/02: here comes a new example
bu5hm4n pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=74b4b354f534c5d44514f4c5969259920be43719 commit 74b4b354f534c5d44514f4c5969259920be43719 Author: Marcel Hollerbach Date: Wed Sep 18 21:47:08 2019 +0200 here comes a new example Reviewed-by: Cedric BAIL Differential Revision: https://phab.enlightenment.org/D10733 --- .../elementary/efl_ui_grid_view_example_1.c| 477 + src/examples/elementary/meson.build| 3 +- 2 files changed, 479 insertions(+), 1 deletion(-) diff --git a/src/examples/elementary/efl_ui_grid_view_example_1.c b/src/examples/elementary/efl_ui_grid_view_example_1.c new file mode 100644 index 00..8ccf560f09 --- /dev/null +++ b/src/examples/elementary/efl_ui_grid_view_example_1.c @@ -0,0 +1,477 @@ +// gcc -o efl_ui_grid_view_example_1 efl_ui_grid_view_example_1.c `pkg-config --cflags --libs elementary` + +#define EFL_BETA_API_SUPPORT 1 + +#include +#include +#include +#include "efl_ui_grid_view.eo.h" + + +static Efl_Model* +_make_model(Evas_Object *win) +{ + Eina_Value vtext; + Efl_Generic_Model *model, *child; + + model = efl_add(EFL_GENERIC_MODEL_CLASS, win); + eina_value_setup(&vtext, EINA_VALUE_TYPE_STRING); + +#define IC(x) \ +child = efl_model_child_add(model); \ +eina_value_set(&vtext, x); \ +efl_model_property_set(child, "title", &vtext); + + IC("user-home") + IC("user-bookmarks") + IC("user-desktop") + IC("user-trash") + IC("folder") + IC("folder-drag-accept") + IC("folder-remote") + IC("folder-open") + IC("folder-home") + IC("folder-download") + IC("folder-recent") + IC("folder-documents") + IC("folder-pictures") + IC("folder-music") + IC("folder-videos") + IC("folder-visiting") + IC("network-server") + IC("network-workgroup") + IC("start-here") + IC("emblem-default") + IC("emblem-documents") + IC("emblem-downloads") + IC("emblem-favorite") + IC("emblem-important") + IC("emblem-mail") + IC("emblem-photos") + IC("emblem-readonly") + IC("emblem-shared") + IC("emblem-symbolic-link") + IC("emblem-unreadable") + IC("emblem-system") + IC("emblem-synchronized") + IC("emblem-synchronizing") + IC("address-book-new") + IC("application-exit") + IC("appointment-new") + IC("call-start") + IC("call-stop") + IC("contact-new") + IC("document-open") + IC("document-open-recent") + IC("document-page-setup") + IC("document-properties") + IC("document-save") + IC("document-save-as") + IC("document-send") + IC("document-close") + IC("document-new") + IC("document-print") + IC("document-print-preview") + IC("document-revert") + IC("document-export") + IC("document-import") + IC("edit-clear") + IC("edit-copy") + IC("edit-cut") + IC("edit-delete") + IC("edit-find") + IC("edit-find-replace") + IC("edit-paste") + IC("edit-redo") + IC("edit-undo") + IC("edit-select-all") + IC("folder-copy") + IC("folder-move") + IC("folder-new") + IC("format-indent-less") + IC("format-indent-more") + IC("format-justify-center") + IC("format-justify-fill") + IC("format-justify-left") + IC("format-justify-right") + IC("format-text-direction-ltr") + IC("format-text-direction-rtl") + IC("format-text-bold") + IC("format-text-italic") + IC("format-text-underline") + IC("format-text-strikethrough") + IC("go-home") + IC("go-bottom") + IC("go-down") + IC("go-first") + IC("go-jump") + IC("go-last") + IC("go-next") + IC("go-previous") + IC("go-top") + IC("go-up") + IC("insert-image") + IC("insert-link") + IC("insert-object") + IC("insert-text") + IC("list-add") + IC("list-remove") + IC("mail-forward") + IC("mail-mark-important") + IC("mail-mark-junk") + IC("mail-mark-notjunk") + IC("mail-mark-read") + IC("mail-mark-unread") + IC("mail-message-new") + IC("mail-reply-all") + IC("mail-reply-sender") + IC("mail-send") + IC("mail-send-receive") + IC("media-eject") + IC("media-playback-pause") + IC("media-playback-start") + IC("media-playback-stop") + IC("media-record") + IC("media-seek-backward") + IC("media-seek-forward") + IC("media-skip-backward") + IC("media-skip-forward") + IC("object-flip-horizontal") + IC("object-flip-vertical") + IC("object-rotate-left") + IC("object-rotate-right") + IC("process-stop") + IC("tools-check-spelling") + IC("view-list-compact") + IC("view-list-details") + IC("view-list-icons") + IC("view-fullscreen") + IC("view-refresh") + IC("view-restore") + IC("view-sort-ascending") + IC("view-sort-descending") + IC("view-close") + IC("window-close") + IC("window-new") + IC("system-run") + IC("system-shutdown") + IC("system-reboot") + IC("system-lock-screen") + IC("system-log-out") + IC("system-search") + IC("help-about") + IC("help-contents") + IC("help-faq") + IC("zoom-in") + IC("zoom-
[EGIT] [core/efl] master 01/01: vector cache: skip animation update as possible.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=d05c2169a89bb17f0ab985ea01f48ca26b2218c1 commit d05c2169a89bb17f0ab985ea01f48ca26b2218c1 Author: Hermet Park Date: Fri Nov 29 11:18:15 2019 +0900 vector cache: skip animation update as possible. Since the vector file data is shareable among the multiple vg instances, vfd could keep the requested frame data already by the other instance. This case vector cache quickly return the vector data withouth any further progress. --- src/lib/evas/vg/evas_vg_cache.c | 13 +++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/lib/evas/vg/evas_vg_cache.c b/src/lib/evas/vg/evas_vg_cache.c index ed65f50099..5c0242db23 100644 --- a/src/lib/evas/vg/evas_vg_cache.c +++ b/src/lib/evas/vg/evas_vg_cache.c @@ -432,8 +432,17 @@ evas_cache_vg_tree_get(Vg_Cache_Entry *vg_entry, unsigned int frame_num) if (!vfd) return NULL; //No need to update. - if (!vfd->anim_data && vg_entry->root) - return vg_entry->root; + if (vfd->anim_data) + { +if (vg_entry->root && +vfd->anim_data->frame_num == frame_num) + return vg_entry->root; + } + else + { +if (vg_entry->root) + return vg_entry->root; + } if (!vfd->static_viewbox) { --
[EGIT] [core/efl] master 01/01: evas vector: operate cached vector file data per evas instances.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=153b5cffd80748aa913a3fa7da0337167496ad10 commit 153b5cffd80748aa913a3fa7da0337167496ad10 Author: Hermet Park Date: Fri Nov 29 10:48:59 2019 +0900 evas vector: operate cached vector file data per evas instances. each vfd loaders construct vector tree data, these can be belongs to evas instance, they are not likely shareable. We should operate vfd separately. --- src/lib/evas/canvas/evas_vg_private.h | 2 +- src/lib/evas/vg/evas_vg_cache.c | 13 +++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/lib/evas/canvas/evas_vg_private.h b/src/lib/evas/canvas/evas_vg_private.h index c5ee9c40d2..2a1dbfa0d5 100644 --- a/src/lib/evas/canvas/evas_vg_private.h +++ b/src/lib/evas/canvas/evas_vg_private.h @@ -146,7 +146,7 @@ Vg_Cache_Entry* evas_cache_vg_entry_create(Evas *evas, const Eina_Fi Efl_VG* evas_cache_vg_tree_get(Vg_Cache_Entry *vg_entry, unsigned int frame_num); void evas_cache_vg_entry_value_provider_update(Vg_Cache_Entry *vg_entry, Eina_List *vp_list); voidevas_cache_vg_entry_del(Vg_Cache_Entry *vg_entry); -Vg_File_Data * evas_cache_vg_file_open(const Eina_File *file, const char *key); +Vg_File_Data * evas_cache_vg_file_open(const Eina_File *file, const char *key, Evas *e); Eina_Bool evas_cache_vg_file_save(Efl_VG *root, int w, int h, const char *file, const char *key, const Efl_File_Save_Info *info); Eina_Bool evas_cache_vg_entry_file_save(Vg_Cache_Entry *vg_entry, const char *file, const char *key, const Efl_File_Save_Info *info); double evas_cache_vg_anim_duration_get(const Vg_Cache_Entry *vg_entry); diff --git a/src/lib/evas/vg/evas_vg_cache.c b/src/lib/evas/vg/evas_vg_cache.c index 54925bd82d..ed65f50099 100644 --- a/src/lib/evas/vg/evas_vg_cache.c +++ b/src/lib/evas/vg/evas_vg_cache.c @@ -154,9 +154,10 @@ _evas_cache_vg_entry_free_cb(void *data) if (vg_entry->vfd->ref <= 0) { Eina_Strbuf *hash_key = eina_strbuf_new(); - eina_strbuf_append_printf(hash_key, "%s/%s", + eina_strbuf_append_printf(hash_key, "%s/%s/%p", eina_file_filename_get(vg_entry->file), - vg_entry->key); + vg_entry->key, + vg_entry->evas); if (!eina_hash_del(vg_cache->vfd_hash, eina_strbuf_string_get(hash_key), vg_entry->vfd)) ERR("Failed to delete vfd = (%p) from hash", vg_entry->vfd); eina_strbuf_free(hash_key); @@ -281,13 +282,13 @@ evas_cache_vg_shutdown(void) } Vg_File_Data * -evas_cache_vg_file_open(const Eina_File *file, const char *key) +evas_cache_vg_file_open(const Eina_File *file, const char *key, Evas *e) { Vg_File_Data *vfd; Eina_Strbuf *hash_key; hash_key = eina_strbuf_new(); - eina_strbuf_append_printf(hash_key, "%s/%s", eina_file_filename_get(file), key); + eina_strbuf_append_printf(hash_key, "%s/%s/%p", eina_file_filename_get(file), key, e); vfd = eina_hash_find(vg_cache->vfd_hash, eina_strbuf_string_get(hash_key)); if (!vfd) { @@ -340,7 +341,7 @@ evas_cache_vg_entry_create(Evas *evas, eina_strbuf_free(hash_key); vg_entry->ref++; - vg_entry->vfd = evas_cache_vg_file_open(file, key); + vg_entry->vfd = evas_cache_vg_file_open(file, key, vg_entry->evas); //No File?? if (!vg_entry->vfd) { @@ -483,7 +484,7 @@ Eina_Bool evas_cache_vg_entry_file_save(Vg_Cache_Entry *vg_entry, const char *file, const char *key, const Efl_File_Save_Info *info) { Vg_File_Data *vfd = - evas_cache_vg_file_open(vg_entry->file, vg_entry->key); + evas_cache_vg_file_open(vg_entry->file, vg_entry->key, vg_entry->evas); if (!vfd) return EINA_FALSE; --
Re: [E-devel] Memory free questions when using EFL
OK, Carsten, please help to check my code flow, Is there anything wrong? Please advise, thanks. 在 2019-11-29 05:16:23,"Carsten Haitzler" 写道: >On Thu, 28 Nov 2019 20:14:53 +0800 (CST) Jing said: > >> Thanks Carsten, >> >> >> I did not find edje_object_del(), did you mean evas_object_del()? > >sorry - my typo. evas_object_del(); > >> Here is my code flow: >> //enter: >> obj = edje_object_add(evas) >> edje_object_file_set(obj, file , grup) >> evas_object_show(obj ) >> evas_object_move() >> evas_object_resize() >> evas_object_focus_set() >> evas_object_layer_set() >> //exit: >> evas_object_hide(obj) >> evas_object_del(obj) >> Is there anything wrong? Please advise, thanks. >> >> At 2019-11-28 17:21:38, "Carsten Haitzler (The Rasterman)" >> wrote: >> >On Thu, 28 Nov 2019 15:43:17 +0800 (CST) Jing said: >> > >> >> Thanks Hermet for you reply. >> >> >> >> >> >> In my test, i find that if i call function >> >> edje_object_file_set(Edje_Object >> >> *obj, const char *file, const char *group), even i call >> >> evas_object_del(Edje_Object *obj); to delete the obj, the memory of my >> >> program will keep growing, if i am not use edje_object_file_set() then >> >> this >> >> issue will not exists. Is there a way to free the memory of >> >> edje_object_file_set() ? Please advise, thanks. >> > >> >Memory will be freed... is it possible you are not getting any rendering >> >happening? e.g. if you do something like: >> > >> >for (i = 0; i < 10; i++) { >> > o = edje_object_add(evas); >> > edje_object_del(o); >> >} >> > >> >your memory will keep growing ad the objects will be queued for deletion >> >after 2 more renders. you would need the main loop to go idle *AND* for >> >there to be visible changes in the canvas needing rendering. >> >evas_norender(evas); exists for these cases where you do a loop where you >> >add/del objects and never show them or have them rendered (and just use the >> >canvas as a workbench). this forces a "no rendering" render cycle that will >> >clean up queued objects. >> > >> >it's exceedingly rare to do the above without having your canvas go through >> >some rendering at some point. >> > >> >also edje will QUEUE signals and process them in idle time. if there is >> >never >> >any idle time in the ecore mainloop then the signals will just queue up and >> >not be processed. setting a file will produce some signals already (like >> >"load" ""). >> > >> >> At 2019-11-26 12:24:45, "Hermet Park" wrote: >> >> >Once object is deleted, the subsequent memory belonging to the object >> >> >will >> >> >be removed as well. >> >> >You don't need to care about it. Callbacks neither. >> >> > >> >> >On Mon, Nov 25, 2019 at 9:12 PM Jing wrote: >> >> > >> >> >> Hi all, >> >> >> I have some memory free questions when using below two functions: >> >> >> >> >> >> >> >> >> 1. EAPI Eina_Bool edje_object_file_set(Evas_Object *obj, const char >> >> >> *file, const char *group); >> >> >> --- After this function done, i will call evas_object_del (obj) to >> >> >> delete the obj, anything else that i need to free ? For example, the >> >> >> edj file used in this funciton? >> >> >> >> >> >> >> >> >> 2. evas_object_event_callback_add(Evas_Object *eo_obj, >> >> >> Evas_Callback_Type type, Evas_Object_Event_Cb func, const void *data) >> >> >> After this function done, i will call evas_object_del (obj) to >> >> >> delete the obj, the callback will be auto deleted after >> >> >> evas_object_del or i have to use >> >> >> evas_object_event_callback_del(Evas_Object *eo_obj, Evas_Callback_Type >> >> >> type, Evas_Object_Event_Cb func) to delete ? >> >> >> >> >> >> >> >> >> Thanks. >> >> >> >> >> >> >> >> >> ___ >> >> >> enlightenment-devel mailing list >> >> >> enlightenment-devel@lists.sourceforge.net >> >> >> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel >> >> >> >> >> > >> >> > >> >> >-- >> >> >Regards, Hermet >> >> > >> >> >___ >> >> >enlightenment-devel mailing list >> >> >enlightenment-devel@lists.sourceforge.net >> >> >https://lists.sourceforge.net/lists/listinfo/enlightenment-devel >> >> >> >> ___ >> >> 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" -- >> >Carsten Haitzler - ras...@rasterman.com >> >> ___ >> 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" -- >Carsten Haitzler - ras...@rasterman.com ___ enlightenment-devel mailing list enlightenment-devel@lists.sourcefo
Re: [E-devel] Memory free questions when using EFL
On Thu, 28 Nov 2019 20:14:53 +0800 (CST) Jing said: > Thanks Carsten, > > > I did not find edje_object_del(), did you mean evas_object_del()? sorry - my typo. evas_object_del(); > Here is my code flow: > //enter: > obj = edje_object_add(evas) > edje_object_file_set(obj, file , grup) > evas_object_show(obj ) > evas_object_move() > evas_object_resize() > evas_object_focus_set() > evas_object_layer_set() > //exit: > evas_object_hide(obj) > evas_object_del(obj) > Is there anything wrong? Please advise, thanks. > > At 2019-11-28 17:21:38, "Carsten Haitzler (The Rasterman)" > wrote: > >On Thu, 28 Nov 2019 15:43:17 +0800 (CST) Jing said: > > > >> Thanks Hermet for you reply. > >> > >> > >> In my test, i find that if i call function edje_object_file_set(Edje_Object > >> *obj, const char *file, const char *group), even i call > >> evas_object_del(Edje_Object *obj); to delete the obj, the memory of my > >> program will keep growing, if i am not use edje_object_file_set() then this > >> issue will not exists. Is there a way to free the memory of > >> edje_object_file_set() ? Please advise, thanks. > > > >Memory will be freed... is it possible you are not getting any rendering > >happening? e.g. if you do something like: > > > >for (i = 0; i < 10; i++) { > > o = edje_object_add(evas); > > edje_object_del(o); > >} > > > >your memory will keep growing ad the objects will be queued for deletion > >after 2 more renders. you would need the main loop to go idle *AND* for > >there to be visible changes in the canvas needing rendering. > >evas_norender(evas); exists for these cases where you do a loop where you > >add/del objects and never show them or have them rendered (and just use the > >canvas as a workbench). this forces a "no rendering" render cycle that will > >clean up queued objects. > > > >it's exceedingly rare to do the above without having your canvas go through > >some rendering at some point. > > > >also edje will QUEUE signals and process them in idle time. if there is never > >any idle time in the ecore mainloop then the signals will just queue up and > >not be processed. setting a file will produce some signals already (like > >"load" ""). > > > >> At 2019-11-26 12:24:45, "Hermet Park" wrote: > >> >Once object is deleted, the subsequent memory belonging to the object will > >> >be removed as well. > >> >You don't need to care about it. Callbacks neither. > >> > > >> >On Mon, Nov 25, 2019 at 9:12 PM Jing wrote: > >> > > >> >> Hi all, > >> >> I have some memory free questions when using below two functions: > >> >> > >> >> > >> >> 1. EAPI Eina_Bool edje_object_file_set(Evas_Object *obj, const char > >> >> *file, const char *group); > >> >> --- After this function done, i will call evas_object_del (obj) to > >> >> delete the obj, anything else that i need to free ? For example, the > >> >> edj file used in this funciton? > >> >> > >> >> > >> >> 2. evas_object_event_callback_add(Evas_Object *eo_obj, > >> >> Evas_Callback_Type type, Evas_Object_Event_Cb func, const void *data) > >> >> After this function done, i will call evas_object_del (obj) to > >> >> delete the obj, the callback will be auto deleted after > >> >> evas_object_del or i have to use > >> >> evas_object_event_callback_del(Evas_Object *eo_obj, Evas_Callback_Type > >> >> type, Evas_Object_Event_Cb func) to delete ? > >> >> > >> >> > >> >> Thanks. > >> >> > >> >> > >> >> ___ > >> >> enlightenment-devel mailing list > >> >> enlightenment-devel@lists.sourceforge.net > >> >> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > >> >> > >> > > >> > > >> >-- > >> >Regards, Hermet > >> > > >> >___ > >> >enlightenment-devel mailing list > >> >enlightenment-devel@lists.sourceforge.net > >> >https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > >> > >> ___ > >> 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" -- > >Carsten Haitzler - ras...@rasterman.com > > ___ > 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" -- Carsten Haitzler - ras...@rasterman.com ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 01/01: docs: nitpicking
xartigas pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=7c79ca674d7583b19a0c03e3763c69c943056884 commit 7c79ca674d7583b19a0c03e3763c69c943056884 Author: Xavi Artigas Date: Thu Nov 28 18:13:47 2019 +0100 docs: nitpicking We should not refer to individual library names anymore. They are all part of EFL now! --- src/lib/efl/interfaces/efl_text_font.eo | 7 +++ 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/lib/efl/interfaces/efl_text_font.eo b/src/lib/efl/interfaces/efl_text_font.eo index f7a6e4064c..836835c2a6 100644 --- a/src/lib/efl/interfaces/efl_text_font.eo +++ b/src/lib/efl/interfaces/efl_text_font.eo @@ -1,4 +1,3 @@ -// src/lib/efl/interfaces/efl_text_font.eo import efl_gfx_types; enum @beta Efl.Text_Font_Weight { [[Type of font weight]] @@ -58,12 +57,12 @@ interface @beta Efl.Text_Font { This property controls the font name of a text object. The font string has to follow fontconfig's convention for naming fonts, as it's the underlying library used to query system - fonts by Evas (see the fc-list command's output, on your system, - to get an idea). Alternatively, youe can use the full path to a font + fonts by EFL (see the $[fc-list] command's output, on your system, + to get an idea). Alternatively, you can use the full path to a font file. When reading it, the font name string is still owned by - Evas and should not be freed. + EFL and should not be freed. See also @.font_source. ]] set { --
[EGIT] [core/enlightenment] master 01/01: todo - add clipboard
raster pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=2c5c243b9eab8938c23c6f2a690be01b2d7490d4 commit 2c5c243b9eab8938c23c6f2a690be01b2d7490d4 Author: Carsten Haitzler (Rasterman) Date: Wed Nov 27 20:23:20 2019 + todo - add clipboard --- TODO | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/TODO b/TODO index f688edc47..6603d1dc3 100644 --- a/TODO +++ b/TODO @@ -1,5 +1,6 @@ TODO: - scriptlets: stdin/out module that provides gui services to some +* clipboard manager - monitor clipboard changes + history + select from it +* scriptlets: stdin/out module that provides gui services to some back-end script or process where e just talks via stdin/out. things to provide: * only run scriptlet every N seconds to poll then send back data --
Re: [E-devel] EDD 2019 wrap up: news post, meeting minutes, recordings
Hey Stefan can help with rendering of the videos if need be least I can do to contribute back to the community Regards, Jonathan Aquilina Owner managing director Phone (356) 20330099 Mobile (356) 79957942 Email sa...@eagleeyet.net From: Stefan Schmidt Sent: Thursday, November 28, 2019 2:07:51 PM To: e ; enlightenment-users Subject: [E-devel] EDD 2019 wrap up: news post, meeting minutes, recordings Hello. We had some good and useful time last weekend at EDD. Xavi did a litle write up with pretty pictures for our website. Go and have a read: https://www.enlightenment.org/news/2019-11-26-e-dev-days-2019.txt Many, many things have been talked about. We tried to capture at least a little of this in our meetings notes we worked on together. In addition the first slides have been added to the EDD wiki page schedule (the rest will follow over the next days). https://phab.enlightenment.org/w/events/enlightenment_developer_days_2019/minutes/ https://phab.enlightenment.org/w/events/enlightenment_developer_days_2019/ This surely does not cover everything but at least it gives some ideas. Recordings have been taken but we have not yet checked on the audio quality and we will see how it is and how long it will take to get the videos out. Don't hold your breath (or offer help if you are willing to do some cutting, etc). regards Stefan Schmidt ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [website/www-content] master 01/01: Wiki page 2019-11-26-e-dev-days-2019.txt changed with summary [Added attendees names and phab links.] by Xavi Artigas
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=a5b73ce5680864276c941cf8c8947ecb51cf339b commit a5b73ce5680864276c941cf8c8947ecb51cf339b Author: Xavi Artigas Date: Thu Nov 28 06:19:57 2019 -0800 Wiki page 2019-11-26-e-dev-days-2019.txt changed with summary [Added attendees names and phab links.] by Xavi Artigas --- pages/news/2019-11-26-e-dev-days-2019.txt.txt | 18 +- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/pages/news/2019-11-26-e-dev-days-2019.txt.txt b/pages/news/2019-11-26-e-dev-days-2019.txt.txt index e5d7ce9f9..47df13c1a 100644 --- a/pages/news/2019-11-26-e-dev-days-2019.txt.txt +++ b/pages/news/2019-11-26-e-dev-days-2019.txt.txt @@ -18,7 +18,23 @@ Finally, a big thank you to Stefan Schmidt for organizing everything and getting See you all, and a bunch more, next year! {{ :news:edd2019_pic1.jpg?800,direct | Attendees hard at work!}} -Attendees hard at work! + +Left, front to back, and then back to front: +[[https://phab.enlightenment.org/p/escwyp|escwyp]], +[[https://phab.enlightenment.org/p/netstar|netstar]], +[[https://phab.enlightenment.org/p/rafspiny|rafspiny]], +[[https://phab.enlightenment.org/p/bu5hm4n|bu5hm4n]], +[[https://phab.enlightenment.org/p/cedric|cedric]], +[[https://phab.enlightenment.org/p/herb|herb]], +[[https://phab.enlightenment.org/p/raster|raster]], +[[https://phab.enlightenment.org/p/q66|q66]], +[[https://phab.enlightenment.org/p/michael.bouchaud|yoz]], +[[https://phab.enlightenment.org/p/vtorri|vtorri]], +[[https://phab.enlightenment.org/p/peter2121|peter2121]], +[[https://phab.enlightenment.org/p/SanghyeonLee|SanghyeonLee]], +[[https://phab.enlightenment.org/p/stefan_schmidt|stefan]]. +Picture: [[https://phab.enlightenment.org/p/SegFaultXavi|Yours truly]]. + {{ :news:edd2019_pic2.jpg?800,direct | Tapas!}} Tapas! --
Re: [E-devel] EDD2019: Thank you all and pictures
> > what about tagging the photo to know who is who ? > Done :) ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Memory free questions when using EFL
Yes he means evas_object_del as edje_object_add return an Evas_Object pointer. And edje_object_del doesn't exists as it's an evas_object. :) Le jeu. 28 nov. 2019 à 13:15, Jing a écrit : > Thanks Carsten, > > > I did not find edje_object_del(), did you mean evas_object_del()? > > > Here is my code flow: > //enter: > obj = edje_object_add(evas) > edje_object_file_set(obj, file , grup) > evas_object_show(obj ) > evas_object_move() > evas_object_resize() > evas_object_focus_set() > evas_object_layer_set() > //exit: > evas_object_hide(obj) > evas_object_del(obj) > Is there anything wrong? Please advise, thanks. > > At 2019-11-28 17:21:38, "Carsten Haitzler (The Rasterman)" < > ras...@rasterman.com> wrote: > >On Thu, 28 Nov 2019 15:43:17 +0800 (CST) Jing > said: > > > >> Thanks Hermet for you reply. > >> > >> > >> In my test, i find that if i call function > edje_object_file_set(Edje_Object > >> *obj, const char *file, const char *group), even i call > >> evas_object_del(Edje_Object *obj); to delete the obj, the memory of my > >> program will keep growing, if i am not use edje_object_file_set() then > this > >> issue will not exists. Is there a way to free the memory of > >> edje_object_file_set() ? Please advise, thanks. > > > >Memory will be freed... is it possible you are not getting any rendering > >happening? e.g. if you do something like: > > > >for (i = 0; i < 10; i++) { > > o = edje_object_add(evas); > > edje_object_del(o); > >} > > > >your memory will keep growing ad the objects will be queued for deletion > after > >2 more renders. you would need the main loop to go idle *AND* for there > to be > >visible changes in the canvas needing rendering. evas_norender(evas); > exists > >for these cases where you do a loop where you add/del objects and never > show > >them or have them rendered (and just use the canvas as a workbench). this > >forces a "no rendering" render cycle that will clean up queued objects. > > > >it's exceedingly rare to do the above without having your canvas go > through > >some rendering at some point. > > > >also edje will QUEUE signals and process them in idle time. if there is > never > >any idle time in the ecore mainloop then the signals will just queue up > and > >not be processed. setting a file will produce some signals already (like > "load" > >""). > > > >> At 2019-11-26 12:24:45, "Hermet Park" wrote: > >> >Once object is deleted, the subsequent memory belonging to the object > will > >> >be removed as well. > >> >You don't need to care about it. Callbacks neither. > >> > > >> >On Mon, Nov 25, 2019 at 9:12 PM Jing wrote: > >> > > >> >> Hi all, > >> >> I have some memory free questions when using below two functions: > >> >> > >> >> > >> >> 1. EAPI Eina_Bool edje_object_file_set(Evas_Object *obj, const char > >> >> *file, const char *group); > >> >> --- After this function done, i will call evas_object_del (obj) to > >> >> delete the obj, anything else that i need to free ? For example, > the edj > >> >> file used in this funciton? > >> >> > >> >> > >> >> 2. evas_object_event_callback_add(Evas_Object *eo_obj, > Evas_Callback_Type > >> >> type, Evas_Object_Event_Cb func, const void *data) > >> >> After this function done, i will call evas_object_del (obj) to > >> >> delete the obj, the callback will be auto deleted after > evas_object_del > >> >> or i have to use evas_object_event_callback_del(Evas_Object > *eo_obj, > >> >> Evas_Callback_Type type, Evas_Object_Event_Cb func) to delete ? > >> >> > >> >> > >> >> Thanks. > >> >> > >> >> > >> >> ___ > >> >> enlightenment-devel mailing list > >> >> enlightenment-devel@lists.sourceforge.net > >> >> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > >> >> > >> > > >> > > >> >-- > >> >Regards, Hermet > >> > > >> >___ > >> >enlightenment-devel mailing list > >> >enlightenment-devel@lists.sourceforge.net > >> >https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > >> > >> ___ > >> 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" -- > >Carsten Haitzler - ras...@rasterman.com > > ___ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > -- Michaël Bouchaud ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[E-devel] EDD 2019 wrap up: news post, meeting minutes, recordings
Hello. We had some good and useful time last weekend at EDD. Xavi did a litle write up with pretty pictures for our website. Go and have a read: https://www.enlightenment.org/news/2019-11-26-e-dev-days-2019.txt Many, many things have been talked about. We tried to capture at least a little of this in our meetings notes we worked on together. In addition the first slides have been added to the EDD wiki page schedule (the rest will follow over the next days). https://phab.enlightenment.org/w/events/enlightenment_developer_days_2019/minutes/ https://phab.enlightenment.org/w/events/enlightenment_developer_days_2019/ This surely does not cover everything but at least it gives some ideas. Recordings have been taken but we have not yet checked on the audio quality and we will see how it is and how long it will take to get the videos out. Don't hold your breath (or offer help if you are willing to do some cutting, etc). regards Stefan Schmidt ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Memory free questions when using EFL
Thanks Carsten, I did not find edje_object_del(), did you mean evas_object_del()? Here is my code flow: //enter: obj = edje_object_add(evas) edje_object_file_set(obj, file , grup) evas_object_show(obj ) evas_object_move() evas_object_resize() evas_object_focus_set() evas_object_layer_set() //exit: evas_object_hide(obj) evas_object_del(obj) Is there anything wrong? Please advise, thanks. At 2019-11-28 17:21:38, "Carsten Haitzler (The Rasterman)" wrote: >On Thu, 28 Nov 2019 15:43:17 +0800 (CST) Jing said: > >> Thanks Hermet for you reply. >> >> >> In my test, i find that if i call function edje_object_file_set(Edje_Object >> *obj, const char *file, const char *group), even i call >> evas_object_del(Edje_Object *obj); to delete the obj, the memory of my >> program will keep growing, if i am not use edje_object_file_set() then this >> issue will not exists. Is there a way to free the memory of >> edje_object_file_set() ? Please advise, thanks. > >Memory will be freed... is it possible you are not getting any rendering >happening? e.g. if you do something like: > >for (i = 0; i < 10; i++) { > o = edje_object_add(evas); > edje_object_del(o); >} > >your memory will keep growing ad the objects will be queued for deletion after >2 more renders. you would need the main loop to go idle *AND* for there to be >visible changes in the canvas needing rendering. evas_norender(evas); exists >for these cases where you do a loop where you add/del objects and never show >them or have them rendered (and just use the canvas as a workbench). this >forces a "no rendering" render cycle that will clean up queued objects. > >it's exceedingly rare to do the above without having your canvas go through >some rendering at some point. > >also edje will QUEUE signals and process them in idle time. if there is never >any idle time in the ecore mainloop then the signals will just queue up and >not be processed. setting a file will produce some signals already (like "load" >""). > >> At 2019-11-26 12:24:45, "Hermet Park" wrote: >> >Once object is deleted, the subsequent memory belonging to the object will >> >be removed as well. >> >You don't need to care about it. Callbacks neither. >> > >> >On Mon, Nov 25, 2019 at 9:12 PM Jing wrote: >> > >> >> Hi all, >> >> I have some memory free questions when using below two functions: >> >> >> >> >> >> 1. EAPI Eina_Bool edje_object_file_set(Evas_Object *obj, const char >> >> *file, const char *group); >> >> --- After this function done, i will call evas_object_del (obj) to >> >> delete the obj, anything else that i need to free ? For example, the edj >> >> file used in this funciton? >> >> >> >> >> >> 2. evas_object_event_callback_add(Evas_Object *eo_obj, Evas_Callback_Type >> >> type, Evas_Object_Event_Cb func, const void *data) >> >> After this function done, i will call evas_object_del (obj) to >> >> delete the obj, the callback will be auto deleted after evas_object_del >> >> or i have to use evas_object_event_callback_del(Evas_Object *eo_obj, >> >> Evas_Callback_Type type, Evas_Object_Event_Cb func) to delete ? >> >> >> >> >> >> Thanks. >> >> >> >> >> >> ___ >> >> enlightenment-devel mailing list >> >> enlightenment-devel@lists.sourceforge.net >> >> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel >> >> >> > >> > >> >-- >> >Regards, Hermet >> > >> >___ >> >enlightenment-devel mailing list >> >enlightenment-devel@lists.sourceforge.net >> >https://lists.sourceforge.net/lists/listinfo/enlightenment-devel >> >> ___ >> 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" -- >Carsten Haitzler - ras...@rasterman.com ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Help with an obscure edje_cc error: Compiling script code not clean.
On Thu, 28 Nov 2019 20:29:49 +1030 Simon Lees said: > > > On 11/28/19 7:55 PM, Carsten Haitzler (The Rasterman) wrote: > > On Tue, 26 Nov 2019 11:25:33 +1030 Simon Lees said: > > > >> Hi All, > >> > >> I had the following very descriptive error compiling a theme, anyone got > >> ideas on debugging it (i'm already running edje_cc with the -v flag) > >> > >> edje_cc: Wrote 4160 bytes ( 4Kb) for "edje/images/1134" image > >> entry "O/icon_file_icons.png" compress: [raw: 74.6%] [real: -4.6%] > >> edje_cc: images: 5.19517 > >> edje_cc: Critical. Compiling script code not clean. > >> > >> You can find the theme in question here > >> https://github.com/simotek/Enlightenment-Themes/tree/transient-color > >> (branch is important) running ./build-darkmod.sh will build the theme > >> for you. > > > > It compiles for me (above git repo and script) ... so what is happening > > here is embryo_cc is giving a non-zero exit code. So an error occurred. > > Perhaps it crashed? tracking that is probably the way to go (replace > > embryo_cc with a shell script that calls the real embryo_cc and logs what > > is going in?) > > Did you use the right branch? I've narrowed it down to the following oh damn yes. i forgot the branch. > diff (that could be narrowed more, but it might be easy enough to spot > "transient-color" (red) doesn't build "anti-transient-color" (green) > does, the one that doesn't build has some filters to blur backgrounds as > one change that is possibly related. > https://github.com/simotek/Enlightenment-Themes/compare/transient-color...anti-transient-color?expand=1 yargh. heisenbug. it now compiles fine. it was failing. i thew in a embryo_cc wrapper ... it then worked... i removed the wrapper went back to regular embryo_cc ... it also worked. now it works for me. definitely on the right branch: 11:22AM ~/Enlightenment-Themes 🌱 transient-color 🔥 1 > (my prompt shows the branch i'm on). > -- > > Simon Lees (Simotek)http://simotek.net > > Emergency Update Team keybase.io/simotek > SUSE Linux Adelaide Australia, UTC+10:30 > GPG Fingerprint: 5B87 DB9D 88DC F606 E489 CEC5 0922 C246 02F0 014B > -- - Codito, ergo sum - "I code, therefore I am" -- Carsten Haitzler - ras...@rasterman.com ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] EDD2019: Thank you all and pictures
On Thu, Nov 28, 2019 at 12:16 PM Xavi Artigas wrote: > > Hi people, > > We made it to the enlightenment.org news front page! > https://www.enlightenment.org/news :P > what about tagging the photo to know who is who ? Vincent ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] EDD2019: Thank you all and pictures
Hi people, We made it to the enlightenment.org news front page! https://www.enlightenment.org/news :P Xavi On Tue, 26 Nov 2019 at 12:11, Xavi Artigas wrote: > Hi people, > > First off, thank you all for coming to Barcelona. I hope you enjoyed your > stay :) > > I am planning on writing a news article for our site, and also use it as a > blog post for the Samsung Open Source Group blog... which some day will be > truly Open... > > I would like to ask if everybody is OK with using this picture: > https://www.enlightenment.org/_media/news/edd2019_pic1.jpg > And of course if you have better pictures and want to share them, feel > free to send them to me! > > Xavi > ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [website/www-content] master 01/01: Wiki page 2019-11-26-e-dev-days-2019.txt changed with summary [created] by Xavi Artigas
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=bb724d728e99b840ac8af7cdd2588111bf269474 commit bb724d728e99b840ac8af7cdd2588111bf269474 Author: Xavi Artigas Date: Thu Nov 28 03:11:08 2019 -0800 Wiki page 2019-11-26-e-dev-days-2019.txt changed with summary [created] by Xavi Artigas --- pages/news/2019-11-26-e-dev-days-2019.txt.txt | 31 +++ 1 file changed, 31 insertions(+) diff --git a/pages/news/2019-11-26-e-dev-days-2019.txt.txt b/pages/news/2019-11-26-e-dev-days-2019.txt.txt new file mode 100644 index 0..e5d7ce9f9 --- /dev/null +++ b/pages/news/2019-11-26-e-dev-days-2019.txt.txt @@ -0,0 +1,31 @@ +=== Enlightenment Developer Days 2019 === + * //2019-11-28 - by Xavi Artigas// + +On November 23 part of the Enlightenment community gathered for two days in Barcelona, Spain, to hold the Enlightenment Developer Days. + +Except for the hiatus in 2018, this tradition has been honored uninterruptedly since 2012, when it was also held in Barcelona. + +Over the weekend, 14 people from 7 countries presented their latest work, discussed their current problems, and talked about what lies ahead. + +Attendees included Enlightenment Desktop users, application developers, and core maintainers, producing a very interesting mixture. The outcome was varied: doubts were dispelled, action items for the upcoming months were laid out and, most importantly, the community was strengthened. For those of us who attended for the first time, it was a pleasure to put a face to the IRC nicks! + +I had the honor of being the host this time, and I enjoyed the opportunity to show my enlightened fellows around the city and take them out to have some Spanish tapas for dinner. Thanks a lot for coming! + +Thanks also to the Pompeu Fabra University who allowed us to use their facilities free of charge. + +Finally, a big thank you to Stefan Schmidt for organizing everything and getting Samsung to sponsor the meals for both days. + +See you all, and a bunch more, next year! + +{{ :news:edd2019_pic1.jpg?800,direct | Attendees hard at work!}} +Attendees hard at work! + +{{ :news:edd2019_pic2.jpg?800,direct | Tapas!}} +Tapas! + +{{ :news:edd2019_pic3.jpg?800,direct | And some light supper for the meat lovers.}} +And some light supper for the meat lovers. + +{{:blank.png?nolink&100|}} +~~DISCUSSIONS~~ + --
[EGIT] [core/efl] master 01/01: ecore_win32: fix compose event field
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=9acab812ee02f5a2f30544d0eeacc521200e7ac1 commit 9acab812ee02f5a2f30544d0eeacc521200e7ac1 Author: Vincent Torri Date: Thu Nov 28 11:06:24 2019 + ecore_win32: fix compose event field Summary: compose event field was encoded in UTF-16 and not UTF-8. Also string event field was not correctly defined and was generating eina error messages Test Plan: running a test Reviewers: raster, cedric, zmike Reviewed By: raster Subscribers: #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D10753 --- src/lib/ecore_win32/ecore_win32_event.c | 55 + 1 file changed, 42 insertions(+), 13 deletions(-) diff --git a/src/lib/ecore_win32/ecore_win32_event.c b/src/lib/ecore_win32/ecore_win32_event.c index cf6b4492cc..293b16816b 100644 --- a/src/lib/ecore_win32/ecore_win32_event.c +++ b/src/lib/ecore_win32/ecore_win32_event.c @@ -42,6 +42,32 @@ static Ecore_Win32_Key_Mask _ecore_win32_key_mask = 0; static Eina_Bool_ecore_win32_ctrl_fake = EINA_FALSE; static Eina_Bool_ecore_win32_clipboard_has_data = EINA_FALSE; +static char * +_ecore_win32_utf16_to_utf8(const wchar_t *text) +{ + char *res; + int size; + + /* text is used as an array, hence never NULL */ + + size = WideCharToMultiByte(CP_UTF8, 0, text, -1, NULL, 0, NULL, NULL); + if (size == 0) + return NULL; + + res = (char *)malloc(size * sizeof(char)); + if (!res) + return NULL; + + size = WideCharToMultiByte(CP_UTF8, 0, text, -1, res, size, NULL, NULL); + if (size == 0) + { +free(res); +return NULL; + } + + return res; +} + static unsigned int _ecore_win32_modifiers_get(void) { @@ -1176,15 +1202,14 @@ _ecore_win32_event_keystroke_get(Ecore_Win32_Callback_Data *msg, if (res == -1) { /* dead key, but managed like normal key */ +compose = _ecore_win32_utf16_to_utf8(buf); } else if (res == 0) { INF("No translatable character found, skipping"); if (msg->window_param >= 0x30 && msg->window_param <= 0x39) - { - buf[0] = msg->window_param; - } -else return NULL; + compose = _ecore_win32_utf16_to_utf8(buf); +/* otherwise, compose is NULL */ } else if (res >= 2) { @@ -1196,12 +1221,12 @@ _ecore_win32_event_keystroke_get(Ecore_Win32_Callback_Data *msg, res = ToUnicode(msg->window_param, MapVirtualKey(msg->window_param, MAPVK_VK_TO_CHAR), kbd_state, buf, 4, 0); -if ((res != 1) && (res != -1)) - return NULL; +if (!((res != 1) && (res != -1))) + compose = _ecore_win32_utf16_to_utf8(buf); +/* otherwise, compose is NULL */ } - - string[0] = (char)buf[0]; - compose = string; + else /* res == 1 : 1 char written to buf */ + compose = _ecore_win32_utf16_to_utf8(buf); /*** key field ***/ @@ -1232,7 +1257,6 @@ _ecore_win32_event_keystroke_get(Ecore_Win32_Callback_Data *msg, { buf[0] = msg->window_param; } -else return NULL; } else if (res >= 2) { @@ -1303,7 +1327,7 @@ _ecore_win32_event_keystroke_get(Ecore_Win32_Callback_Data *msg, { buf[0] = msg->window_param; } -else return NULL; +else buf[0] = 0;// return NULL; } else if (res >= 2) { @@ -1353,7 +1377,7 @@ _ecore_win32_event_keystroke_get(Ecore_Win32_Callback_Data *msg, e = (Ecore_Event_Key *)calloc(1, sizeof(Ecore_Event_Key) + strlen(keyname) + 1 + strlen(key) + 1 + - (compose ? (strlen(compose) + 1) : 0)); + (compose ? strlen(compose) : 0) + 1); if (!e) return NULL; @@ -1366,7 +1390,12 @@ _ecore_win32_event_keystroke_get(Ecore_Win32_Callback_Data *msg, memcpy((char *)e->keyname, keyname, strlen(keyname)); memcpy((char *)e->key, key, strlen(key)); - if (compose) memcpy((char *)e->compose, compose, strlen(compose)); + if (compose) + { +memcpy((char *)e->compose, compose, strlen(compose)); +free(compose); + } + return e; } --
[EGIT] [core/efl] master 01/01: Efl.Canvas.Text: Further update docs
xartigas pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=92d2cc7ae362275f2a7512778e1f0fa994cdc946 commit 92d2cc7ae362275f2a7512778e1f0fa994cdc946 Author: Xavi Artigas Date: Thu Nov 28 11:08:11 2019 +0100 Efl.Canvas.Text: Further update docs --- src/lib/evas/canvas/efl_canvas_text.eo | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/lib/evas/canvas/efl_canvas_text.eo b/src/lib/evas/canvas/efl_canvas_text.eo index 2367f51bcc..e242c78920 100644 --- a/src/lib/evas/canvas/efl_canvas_text.eo +++ b/src/lib/evas/canvas/efl_canvas_text.eo @@ -19,7 +19,9 @@ class @beta Efl.Canvas.Text extends Efl.Canvas.Object implements Efl.Text, } cursor_add { [[Adds an existing cursor to the text object. - It is typically more convenient to obtain a cursor directly from the text object using @.cursor_create.]] + If the cursor already belonged to another text object it will be reassigned to the new one. + It is typically more convenient to obtain a cursor directly from the text object using @.cursor_create. + ]] params { cursor: Efl.Text.Cursor; [[The text cursor to use.]] } --
[EGIT] [core/efl] master 01/01: Efl.Canvas.Text: Update docs
xartigas pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=dfe0c7b110fa038611ae38a8a1fba78e14550d76 commit dfe0c7b110fa038611ae38a8a1fba78e14550d76 Author: Xavi Artigas Date: Thu Nov 28 11:03:55 2019 +0100 Efl.Canvas.Text: Update docs --- src/lib/evas/canvas/efl_canvas_text.eo | 113 + 1 file changed, 60 insertions(+), 53 deletions(-) diff --git a/src/lib/evas/canvas/efl_canvas_text.eo b/src/lib/evas/canvas/efl_canvas_text.eo index 6cdfaff8be..2367f51bcc 100644 --- a/src/lib/evas/canvas/efl_canvas_text.eo +++ b/src/lib/evas/canvas/efl_canvas_text.eo @@ -5,40 +5,42 @@ class @beta Efl.Canvas.Text extends Efl.Canvas.Object implements Efl.Text, Efl.Text_Style, Efl.Text_Format, Efl.Text_Markup, Efl.Ui.I18n { - [[Efl canvas text class]] + [[This is the Canvas-level text class. This class only takes care of rendering text, + if you need user interaction consider the classes in $Efl.Ui.]] methods { @property is_empty { - [[Whether the object is empty (no text) or not + [[Whether the object is empty (no text) or not. ]] get { } values { -is_empty: bool; [[$true if empty, $false otherwise]] +is_empty: bool; [[$true if empty.]] } } cursor_add { - [[Add cursor that will manipulate and iterate content of the text object + [[Adds an existing cursor to the text object. It is typically more convenient to obtain a cursor directly from the text object using @.cursor_create.]] params { -cursor: Efl.Text.Cursor; [[Text cursor.]] +cursor: Efl.Text.Cursor; [[The text cursor to use.]] } } cursor_create { - [[ Create new cursor and add it to text object + [[Creates a new cursor and adds it to the text object. + This cursor can be used to manipulate and iterate the content of the text object. ]] - return: Efl.Text.Cursor @move; [[Text cursor.]] + return: Efl.Text.Cursor @move; [[The created text cursor.]] } visible_range_get { [[Returns the currently visible range. - The given $start and $end cursor act like out-variables here, - as they are set to the positions of the start and the end of the + The given $start and $end cursors are output variables: + they are set to the positions of the start and the end of the visible range in the text, respectively. ]] - return: bool; [[$true on success, $false otherwise]] + return: bool; [[$true on success.]] params { -@in start: Efl.Text.Cursor; [[Range start position]] -@in end: Efl.Text.Cursor; [[Range end position]] +@in start: Efl.Text.Cursor; [[Range start position.]] +@in end: Efl.Text.Cursor; [[Range end position.]] } } @property style_insets { @@ -48,92 +50,97 @@ class @beta Efl.Canvas.Text extends Efl.Canvas.Object implements Efl.Text, ]] get {} values { -l: int; [[Left padding]] -r: int; [[Right padding]] -t: int; [[Top padding]] -b: int; [[Bottom padding]] +l: int; [[Left padding.]] +r: int; [[Right padding.]] +t: int; [[Top padding.]] +b: int; [[Bottom padding.]] } } @property bidi_delimiters { - [[BiDi delimiters are used for in-paragraph separation of bidi + [[BiDi delimiters are used for in-paragraph separation of bidirectional segments. This is useful, for example, in the recipient fields of - e-mail clients where bidi oddities can occur when mixing RTL - and LTR. + e-mail clients where bidi oddities can occur when mixing RTL (right-to-left) + and LTR (left-to-right) text. ]] set {} get {} values { -delim: string; [[A null terminated string of delimiters, e.g ",|" or $null if empty]] +delim: string; [[A null terminated string of delimiters, e.g ",|" or $null if empty.]] } } @property newline_as_paragraph_separator { - [[When $true, newline character will behave as a paragraph separator. + [[When $true, the newline character will behave as a paragraph separator. ]] set {} get {} values { -mode: bool; [[$true for legacy mode, $false otherwise]] +mode: bool; [[$true for legacy mode, $false otherwise.]] } } style_apply { - [[apply the style for this object, sent style member will override old ones, other styles will not be affected. - similar to setting style using functions (for exa
[EGIT] [core/efl] master 01/01: ci: ensure we still test ephysics in all enabled build job
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=3ae44245e8d0668b503291da9dce838e662d0a3b commit 3ae44245e8d0668b503291da9dce838e662d0a3b Author: Stefan Schmidt Date: Thu Nov 28 08:52:22 2019 +0100 ci: ensure we still test ephysics in all enabled build job With commit 523a64d2265c13a82ba73022d10919f0e392bab2 we switched the default for ephysics from true to false. This would result in no CI coverage if we do not explicitly enable it in this job. Reviewed-by: Carsten Haitzler (Rasterman) Differential Revision: https://phab.enlightenment.org/D10757 --- .ci/ci-configure.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ci/ci-configure.sh b/.ci/ci-configure.sh index b588f6f443..88c7f414e3 100755 --- a/.ci/ci-configure.sh +++ b/.ci/ci-configure.sh @@ -21,7 +21,7 @@ if [ "$DISTRO" != "" ] ; then -Ddebug-threads=true -Dglib=true -Dg-mainloop=true -Dxpresent=true -Dxgesture=false -Dxinput22=true \ -Devas-loaders-disabler=json -Decore-imf-loaders-disabler= -Demotion-loaders-disabler=gstreamer,libvlc,xine \ -Demotion-generic-loaders-disabler=vlc -Dharfbuzz=true -Dpixman=true -Dhyphen=true \ - -Dvnc-server=true -Dbindings=luajit -Delogind=false -Dinstall-eo-files=true" + -Dvnc-server=true -Dbindings=luajit -Delogind=false -Dinstall-eo-files=true -Dphysics=true" # Enabled png, jpeg evas loader for in tree edje file builds DISABLED_LINUX_COPTS=" -Daudio=false -Davahi=false -Dx11=false -Dphysics=false -Deeze=false \ --
Re: [E-devel] Help with an obscure edje_cc error: Compiling script code not clean.
On 11/28/19 7:55 PM, Carsten Haitzler (The Rasterman) wrote: > On Tue, 26 Nov 2019 11:25:33 +1030 Simon Lees said: > >> Hi All, >> >> I had the following very descriptive error compiling a theme, anyone got >> ideas on debugging it (i'm already running edje_cc with the -v flag) >> >> edje_cc: Wrote 4160 bytes ( 4Kb) for "edje/images/1134" image >> entry "O/icon_file_icons.png" compress: [raw: 74.6%] [real: -4.6%] >> edje_cc: images: 5.19517 >> edje_cc: Critical. Compiling script code not clean. >> >> You can find the theme in question here >> https://github.com/simotek/Enlightenment-Themes/tree/transient-color >> (branch is important) running ./build-darkmod.sh will build the theme >> for you. > > It compiles for me (above git repo and script) ... so what is happening here > is > embryo_cc is giving a non-zero exit code. So an error occurred. Perhaps it > crashed? tracking that is probably the way to go (replace embryo_cc with a > shell script that calls the real embryo_cc and logs what is going in?) Did you use the right branch? I've narrowed it down to the following diff (that could be narrowed more, but it might be easy enough to spot "transient-color" (red) doesn't build "anti-transient-color" (green) does, the one that doesn't build has some filters to blur backgrounds as one change that is possibly related. https://github.com/simotek/Enlightenment-Themes/compare/transient-color...anti-transient-color?expand=1 -- Simon Lees (Simotek)http://simotek.net Emergency Update Team keybase.io/simotek SUSE Linux Adelaide Australia, UTC+10:30 GPG Fingerprint: 5B87 DB9D 88DC F606 E489 CEC5 0922 C246 02F0 014B signature.asc Description: OpenPGP digital signature ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] EDD2019: Thank you all and pictures
On Tue, 26 Nov 2019 12:11:00 +0100 Xavi Artigas said: > Hi people, > > First off, thank you all for coming to Barcelona. I hope you enjoyed your > stay :) > > I am planning on writing a news article for our site, and also use it as a > blog post for the Samsung Open Source Group blog... which some day will be > truly Open... > > I would like to ask if everybody is OK with using this picture: > https://www.enlightenment.org/_media/news/edd2019_pic1.jpg > And of course if you have better pictures and want to share them, feel free > to send them to me! go ahead and (ab)use it :) -- - Codito, ergo sum - "I code, therefore I am" -- Carsten Haitzler - ras...@rasterman.com ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Help with an obscure edje_cc error: Compiling script code not clean.
On Tue, 26 Nov 2019 11:25:33 +1030 Simon Lees said: > Hi All, > > I had the following very descriptive error compiling a theme, anyone got > ideas on debugging it (i'm already running edje_cc with the -v flag) > > edje_cc: Wrote 4160 bytes ( 4Kb) for "edje/images/1134" image > entry "O/icon_file_icons.png" compress: [raw: 74.6%] [real: -4.6%] > edje_cc: images: 5.19517 > edje_cc: Critical. Compiling script code not clean. > > You can find the theme in question here > https://github.com/simotek/Enlightenment-Themes/tree/transient-color > (branch is important) running ./build-darkmod.sh will build the theme > for you. It compiles for me (above git repo and script) ... so what is happening here is embryo_cc is giving a non-zero exit code. So an error occurred. Perhaps it crashed? tracking that is probably the way to go (replace embryo_cc with a shell script that calls the real embryo_cc and logs what is going in?) > Thanks > > -- > > Simon Lees (Simotek)http://simotek.net > > Emergency Update Team keybase.io/simotek > SUSE Linux Adelaide Australia, UTC+10:30 > GPG Fingerprint: 5B87 DB9D 88DC F606 E489 CEC5 0922 C246 02F0 014B > -- - Codito, ergo sum - "I code, therefore I am" -- Carsten Haitzler - ras...@rasterman.com ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Memory free questions when using EFL
On Thu, 28 Nov 2019 15:43:17 +0800 (CST) Jing said: > Thanks Hermet for you reply. > > > In my test, i find that if i call function edje_object_file_set(Edje_Object > *obj, const char *file, const char *group), even i call > evas_object_del(Edje_Object *obj); to delete the obj, the memory of my > program will keep growing, if i am not use edje_object_file_set() then this > issue will not exists. Is there a way to free the memory of > edje_object_file_set() ? Please advise, thanks. Memory will be freed... is it possible you are not getting any rendering happening? e.g. if you do something like: for (i = 0; i < 10; i++) { o = edje_object_add(evas); edje_object_del(o); } your memory will keep growing ad the objects will be queued for deletion after 2 more renders. you would need the main loop to go idle *AND* for there to be visible changes in the canvas needing rendering. evas_norender(evas); exists for these cases where you do a loop where you add/del objects and never show them or have them rendered (and just use the canvas as a workbench). this forces a "no rendering" render cycle that will clean up queued objects. it's exceedingly rare to do the above without having your canvas go through some rendering at some point. also edje will QUEUE signals and process them in idle time. if there is never any idle time in the ecore mainloop then the signals will just queue up and not be processed. setting a file will produce some signals already (like "load" ""). > At 2019-11-26 12:24:45, "Hermet Park" wrote: > >Once object is deleted, the subsequent memory belonging to the object will > >be removed as well. > >You don't need to care about it. Callbacks neither. > > > >On Mon, Nov 25, 2019 at 9:12 PM Jing wrote: > > > >> Hi all, > >> I have some memory free questions when using below two functions: > >> > >> > >> 1. EAPI Eina_Bool edje_object_file_set(Evas_Object *obj, const char > >> *file, const char *group); > >> --- After this function done, i will call evas_object_del (obj) to > >> delete the obj, anything else that i need to free ? For example, the edj > >> file used in this funciton? > >> > >> > >> 2. evas_object_event_callback_add(Evas_Object *eo_obj, Evas_Callback_Type > >> type, Evas_Object_Event_Cb func, const void *data) > >> After this function done, i will call evas_object_del (obj) to > >> delete the obj, the callback will be auto deleted after evas_object_del > >> or i have to use evas_object_event_callback_del(Evas_Object *eo_obj, > >> Evas_Callback_Type type, Evas_Object_Event_Cb func) to delete ? > >> > >> > >> Thanks. > >> > >> > >> ___ > >> enlightenment-devel mailing list > >> enlightenment-devel@lists.sourceforge.net > >> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > >> > > > > > >-- > >Regards, Hermet > > > >___ > >enlightenment-devel mailing list > >enlightenment-devel@lists.sourceforge.net > >https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > ___ > 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" -- Carsten Haitzler - ras...@rasterman.com ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 01/01: Polish text interface methods
woohyun pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=7bdb63d045cf3377abb7966d018da10c4e8d6b13 commit 7bdb63d045cf3377abb7966d018da10c4e8d6b13 Author: Ali Alzyod Date: Thu Nov 28 16:55:26 2019 +0900 Polish text interface methods Summary: This patch is set to rename some properties of `Efl.Text_Font` & `Efl.Text_Format` interfaces. 1- efl_text_font_set/get become (efl_text_font_family_set/get, efl_text_font_size_set/get) 2- efl_text_valign/halign become efl_text_vertical/horizontal_align 3- efl_text_halign_auto_type become efl_text_horizontal_align_auto_type Reviewers: ali.alzyod, woohyun, segfaultxavi, bu5hm4n, zmike, cedric Reviewed By: woohyun Subscribers: zmike, #committers, #reviewers, cedric Tags: #efl Differential Revision: https://phab.enlightenment.org/D10716 --- src/bin/elementary/test_efl_ui_text.c| 12 ++-- src/bin/elementary/test_gfx_filters.c| 7 +- src/bin/elementary/test_photocam.c | 3 +- src/bin/elementary/test_ui_relative_container.c | 6 +- src/examples/elementary/efl_canvas_layout_text.c | 3 +- src/examples/elementary/efl_ui_list_example_1.c | 6 +- src/lib/edje/edje_part_text.c| 48 ++--- src/lib/edje/edje_text.c | 30 ++--- src/lib/edje/efl_canvas_layout_part_text.eo | 3 +- src/lib/efl/interfaces/efl_text_font.eo | 23 +-- src/lib/efl/interfaces/efl_text_format.eo| 6 +- src/lib/elementary/efl_ui_text.c | 6 +- src/lib/evas/canvas/efl_canvas_text.eo | 9 +-- src/lib/evas/canvas/evas_object_text.c | 86 +++- src/lib/evas/canvas/evas_object_textblock.c | 45 - src/lib/evas/canvas/evas_object_textgrid.c | 42 src/lib/evas/canvas/evas_text_eo.c | 6 +- src/lib/evas/canvas/evas_textgrid_eo.c | 16 +++-- src/lib/evas/canvas/evas_textgrid_eo.h | 2 +- src/lib/evas/canvas/evas_textgrid_eo.legacy.h| 2 +- src/tests/edje/edje_test_text.c | 9 ++- src/tests/evas/evas_test_textblock.c | 21 -- 22 files changed, 259 insertions(+), 132 deletions(-) diff --git a/src/bin/elementary/test_efl_ui_text.c b/src/bin/elementary/test_efl_ui_text.c index e06006703e..24870b54ec 100644 --- a/src/bin/elementary/test_efl_ui_text.c +++ b/src/bin/elementary/test_efl_ui_text.c @@ -67,7 +67,8 @@ test_efl_ui_text_label(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, voi en = _create_label(win, bx); efl_text_markup_set(en, "You can also ENTER markup!"); - efl_text_font_set(en, "Sans", 14); + efl_text_font_family_set(en, "Sans"); + efl_text_font_size_set(en, 14); efl_text_wrap_set(en, EFL_TEXT_FORMAT_WRAP_WORD); efl_text_multiline_set(en, EINA_TRUE); @@ -76,7 +77,8 @@ test_efl_ui_text_label(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, voi "You can use the text -> markup helper\nto make coding easier."); efl_text_markup_set(en, markup); free(markup); - efl_text_font_set(en, "Sans", 14); + efl_text_font_family_set(en, "Sans"); + efl_text_font_size_set(en, 14); efl_text_wrap_set(en, EFL_TEXT_FORMAT_WRAP_WORD); efl_text_multiline_set(en, EINA_TRUE); @@ -85,7 +87,8 @@ test_efl_ui_text_label(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, voi "You can use markup -> text helpersto make coding easier."); efl_text_set(en, markup); free(markup); - efl_text_font_set(en, "Sans", 14); + efl_text_font_family_set(en, "Sans"); + efl_text_font_size_set(en, 14); efl_text_wrap_set(en, EFL_TEXT_FORMAT_WRAP_WORD); efl_text_multiline_set(en, EINA_TRUE); } @@ -161,7 +164,8 @@ test_efl_ui_text(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *eve efl_text_interactive_editable_set(en, EINA_TRUE); efl_ui_text_scrollable_set(en, EINA_TRUE); - efl_text_font_set(en, "Sans", 12); + efl_text_font_family_set(en, "Sans"); + efl_text_font_size_set(en, 12); efl_text_font_width_set(en, EFL_TEXT_FONT_WIDTH_ULTRACONDENSED); efl_text_normal_color_set(en, 255, 255, 255, 255); diff --git a/src/bin/elementary/test_gfx_filters.c b/src/bin/elementary/test_gfx_filters.c index 35360b61b6..988c0769c4 100644 --- a/src/bin/elementary/test_gfx_filters.c +++ b/src/bin/elementary/test_gfx_filters.c @@ -294,11 +294,9 @@ _font_size_change(void *data, const Efl_Event *ev) { Eo *win = data; Eo *text; - const char *font; text = efl_key_wref_get(win, "text"); - efl_text_font_get(text, &font, NULL); - efl_text_font_set(text, font, elm_spinner_value_get(ev->object)); + efl_text_font_size_set(text, elm_spinner_value_get(ev->object)); } static void @@ -462,7 +460,8 @@ test_gfx_filters(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *eve // Note: N