[EGIT] [core/efl] master 01/01: eo - key obj reference - don't unref on del event callback
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ff253bff08559414d002f0a3a093343cf20d6de0 commit ff253bff08559414d002f0a3a093343cf20d6de0 Author: Carsten Haitzler (Rasterman) Date: Thu Apr 14 10:35:18 2016 +0900 eo - key obj reference - don't unref on del event callback object is being deleted by cb - don't unref as we are already at 0. --- src/lib/eo/eo_base_class.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/lib/eo/eo_base_class.c b/src/lib/eo/eo_base_class.c index bd402e7..7b6ff05 100644 --- a/src/lib/eo/eo_base_class.c +++ b/src/lib/eo/eo_base_class.c @@ -62,7 +62,6 @@ _eo_base_cb_key_obj_del(void *data, const Eo_Event *event) EINA_INLIST_GET(node)); eo_event_callback_del(node->data, EO_BASE_EVENT_DEL, _eo_base_cb_key_obj_del, data); - eo_unref(node->data); _eo_generic_data_node_free(node); break; } --
[EGIT] [tools/edi] master 01/01: fix build break.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/edi.git/commit/?id=6fc4e26c44cd62580064f1e1cc3cfda01a27c6ef commit 6fc4e26c44cd62580064f1e1cc3cfda01a27c6ef Author: Hermet Park Date: Thu Apr 14 10:48:33 2016 +0900 fix build break. eo event interface has been changed. just updated it. --- elm_code/src/bin/elm_code_test_main.c | 4 ++-- elm_code/src/lib/widget/elm_code_widget.c | 2 +- src/bin/edi_consolepanel.c| 6 +++--- src/bin/edi_logpanel.c| 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/elm_code/src/bin/elm_code_test_main.c b/elm_code/src/bin/elm_code_test_main.c index b4bcf30..a1840a6 100644 --- a/elm_code/src/bin/elm_code_test_main.c +++ b/elm_code/src/bin/elm_code_test_main.c @@ -38,7 +38,7 @@ _elm_code_test_line_clicked_cb(void *data EINA_UNUSED, const Eo_Event *event) { Elm_Code_Line *line; - line = (Elm_Code_Line *)event->event_info; + line = (Elm_Code_Line *)event->info; printf("CLICKED line %d\n", line->number); return EO_CALLBACK_CONTINUE; @@ -49,7 +49,7 @@ _elm_code_test_line_done_cb(void *data EINA_UNUSED, const Eo_Event *event) { Elm_Code_Line *line; - line = (Elm_Code_Line *)event->event_info; + line = (Elm_Code_Line *)event->info; if (line->number == 1) elm_code_line_token_add(line, 17, 24, 1, ELM_CODE_TOKEN_TYPE_COMMENT); diff --git a/elm_code/src/lib/widget/elm_code_widget.c b/elm_code/src/lib/widget/elm_code_widget.c index abb766b..6433f2d 100644 --- a/elm_code/src/lib/widget/elm_code_widget.c +++ b/elm_code/src/lib/widget/elm_code_widget.c @@ -445,7 +445,7 @@ _elm_code_widget_line_cb(void *data, const Eo_Event *event) Elm_Code_Widget *widget; Eina_Bool visible; - line = (Elm_Code_Line *)event->event_info; + line = (Elm_Code_Line *)event->info; widget = (Elm_Code_Widget *)data; visible = elm_obj_code_widget_line_visible_get(widget, line); diff --git a/src/bin/edi_consolepanel.c b/src/bin/edi_consolepanel.c index a64490e..1d5eac6 100644 --- a/src/bin/edi_consolepanel.c +++ b/src/bin/edi_consolepanel.c @@ -91,7 +91,7 @@ _edi_consolepanel_clicked_cb(void *data EINA_UNUSED, const Eo_Event *event) char *path, *terminated; unsigned int length; - line = (Elm_Code_Line *)event->event_info; + line = (Elm_Code_Line *)event->info; content = elm_code_line_text_get(line, &length); terminated = malloc(sizeof(char) * (length + 1)); @@ -118,7 +118,7 @@ _edi_consolepanel_line_cb(void *data EINA_UNUSED, const Eo_Event *event) { Elm_Code_Line *line; - line = (Elm_Code_Line *)event->event_info; + line = (Elm_Code_Line *)event->info; if (line->data) line->status = ELM_CODE_STATUS_TYPE_ERROR; @@ -274,7 +274,7 @@ _edi_testpanel_line_cb(void *data EINA_UNUSED, const Eo_Event *event) { Elm_Code_Line *line; - line = (Elm_Code_Line *)event->event_info; + line = (Elm_Code_Line *)event->info; if (!line->data) return EO_CALLBACK_CONTINUE; diff --git a/src/bin/edi_logpanel.c b/src/bin/edi_logpanel.c index e2730dd..c493710 100644 --- a/src/bin/edi_logpanel.c +++ b/src/bin/edi_logpanel.c @@ -51,7 +51,7 @@ _edi_logpanel_line_cb(void *data EINA_UNUSED, const Eo_Event *event) { Elm_Code_Line *line; - line = (Elm_Code_Line *)event->event_info; + line = (Elm_Code_Line *)event->info; if (line->data) line->status = ELM_CODE_STATUS_TYPE_ERROR; --
[EGIT] [apps/ephoto] master 01/01: Ephoto: If located in single browser on rename, make sure to pend the new file path.
okra pushed a commit to branch master. http://git.enlightenment.org/apps/ephoto.git/commit/?id=11ffca550165bfbea985d0a3a8f310fc00c6680d commit 11ffca550165bfbea985d0a3a8f310fc00c6680d Author: Stephen Houston Date: Wed Apr 13 20:07:53 2016 -0500 Ephoto: If located in single browser on rename, make sure to pend the new file path. --- src/bin/ephoto_file.c | 6 ++ 1 file changed, 6 insertions(+) diff --git a/src/bin/ephoto_file.c b/src/bin/ephoto_file.c index 1e399bb..7b8b334 100644 --- a/src/bin/ephoto_file.c +++ b/src/bin/ephoto_file.c @@ -478,6 +478,12 @@ _rename_confirm(void *data, Evas_Object *obj EINA_UNUSED, _complete(ephoto, _("Error"), _("There was an error renaming this file.")); } + else + { +if (ephoto->state == EPHOTO_STATE_SINGLE) + ephoto_single_browser_path_pending_set(ephoto->single_browser, + new_file_name); + } evas_object_del(popup); evas_object_freeze_events_set(ephoto->pager, EINA_FALSE); elm_object_focus_set(ephoto->pager, EINA_TRUE); --
[EGIT] [apps/ephoto] master 01/01: Ephoto: Add renme and delete to single browser.
okra pushed a commit to branch master. http://git.enlightenment.org/apps/ephoto.git/commit/?id=b73233d8fb42e497e6120a5929527094afa7f552 commit b73233d8fb42e497e6120a5929527094afa7f552 Author: Stephen Houston Date: Wed Apr 13 20:02:23 2016 -0500 Ephoto: Add renme and delete to single browser. --- src/bin/ephoto_config.c | 2 ++ src/bin/ephoto_single_browser.c | 17 - 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/bin/ephoto_config.c b/src/bin/ephoto_config.c index 44b70da..3853d94 100644 --- a/src/bin/ephoto_config.c +++ b/src/bin/ephoto_config.c @@ -361,6 +361,8 @@ _config_bindings(Evas_Object *parent) "Left Arrow: Navigate Previous" "Right Arrow: Navigate Next" "End: Navigate Last" + "Ctrl+Delete: Delete Image" + "F2 Rename Image" "Escape: Return to Thumbnail Browser" "Slideshow Bindings" "Space: Play/Pause Slideshow" diff --git a/src/bin/ephoto_single_browser.c b/src/bin/ephoto_single_browser.c index ffed484..dc101e2 100644 --- a/src/bin/ephoto_single_browser.c +++ b/src/bin/ephoto_single_browser.c @@ -964,6 +964,15 @@ _delete_image(void *data, Evas_Object *obj EINA_UNUSED, } static void +_rename_image(void *data, Evas_Object *obj EINA_UNUSED, +void *event_info EINA_UNUSED) +{ + Ephoto_Single_Browser *sb = data; + + ephoto_file_rename(sb->ephoto, sb->entry->path); +} + +static void _go_first(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { @@ -1377,6 +1386,8 @@ _add_edit_menu_items(Ephoto_Single_Browser *sb, Evas_Object *menu) _save_image_as, sb); elm_menu_item_add(menu, menu_it, "document-send", _("Upload"), _upload_image, sb); + elm_menu_item_add(menu, menu_it, "edit", _("Rename"), +_rename_image, sb); elm_menu_item_add(menu, menu_it, "edit-delete", _("Delete"), _delete_image, sb); menu_it = @@ -1427,7 +1438,7 @@ _add_edit_menu_items(Ephoto_Single_Browser *sb, Evas_Object *menu) elm_menu_item_add(menu, NULL, "document-properties", _("View"), NULL, NULL); menu_itt = - elm_menu_item_add(menu, menu_it, "go-first", _("Go"), NULL, NULL); + elm_menu_item_add(menu, menu_it, "go-next", _("Go"), NULL, NULL); elm_menu_item_add(menu, menu_itt, "go-first", _("First"), _go_first, sb); elm_menu_item_add(menu, menu_itt, "go-previous", _("Previous"), _go_prev, sb); elm_menu_item_add(menu, menu_itt, "go-next", _("Next"), _go_next, sb); @@ -1543,6 +1554,10 @@ _ephoto_main_key_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNU { _ephoto_show_settings(sb, NULL, NULL); } + else if (!strcmp(k, "F2")) + { +_rename_image(sb, NULL, NULL); + } else if (!strcmp(k, "F5") && !sb->editing) { if (sb->entry) --
[EGIT] [website/www-content] master 01/01: Revert "Wiki page newsdata changed with summary [] by Raster"
raster pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=e07dc00e500b2245183371c102248cf89979fc89 commit e07dc00e500b2245183371c102248cf89979fc89 Author: Carsten Haitzler (Rasterman) Date: Thu Apr 14 08:25:57 2016 +0900 Revert "Wiki page newsdata changed with summary [] by Raster" This reverts commit 7c7502b43a5e7d39459225d8952eebe91cb28394. --- pages/news/newsdata.txt | 76 + 1 file changed, 76 insertions(+) diff --git a/pages/news/newsdata.txt b/pages/news/newsdata.txt index 1be68b0..091d87f 100644 --- a/pages/news/newsdata.txt +++ b/pages/news/newsdata.txt @@ -1,3 +1,79 @@ +== Enlightenment DR 0.21.0-alpha Release == + + * anchor: #20160412141503 + * head: Enlightenment DR 0.21.0-alpha Release + * subtitle: #swagger + * link: /news/allnewsdata#20160412141503 + * start: 2016-04-12 + * stop: 2099-01-01 + * text: +Highlights: +> Greatly improved Wayland support +> New gadget infrastructure +> Wizard improvements +> Video backgrounds + +As always, stay tuned to the latest infrequent E updates on the [[ http://e.zmike.ninja|release blog]]. + +== Download == + +^ ** LINK ** ^ ** SHA256 ** ^ +| [[ http://download.enlightenment.org/rel/apps/enlightenment/enlightenment-0.21.0-alpha.tar.gz | Enlightenment DR 0.21.0-alpha GZIP]]| aeda670eecdfde161171c472c8a358629638f7877afe14e60ff7fab71b998608 | +| [[ http://download.enlightenment.org/rel/apps/enlightenment/enlightenment-0.21.0-alpha.tar.xz | Enlightenment DR 0.21.0-alpha XZ]] | e3dab3f72194132c51993b6f81a391dac1c1048873e7f6c031312448bb237217 | + +//Artisinally composited pixmaps for your desktop.// + +== Building and Dependencies == + +If you have an existing EFL or Elementary install, you may wish to delete its header files and libraries before compiling and installing to avoid possible conflicts during compilation. Please compile the dependencies in the following order (click for README): + + - [[https://git.enlightenment.org/core/efl.git/tree/README | EFL]] + - [[https://git.enlightenment.org/core/elementary.git/tree/README | Elementary]] + - [[https://git.enlightenment.org/core/emotion_generic_players.git/tree/README | Emotion generic players]] + - [[https://git.enlightenment.org/core/evas_generic_loaders.git/tree/README | Evas generic loaders]] + +**Note:** E21 depends on EFL **v1.17** or newer for X11 compositing and 1.18 for Wayland support. + * author: zmike + * tags: + +== Enlightenment DR 0.21.0-alpha Release == + + * anchor: #20160412141503 + * head: Enlightenment DR 0.21.0-alpha Release + * subtitle: #swagger + * link: /news/allnewsdata#20160412141503 + * start: 2016-04-12 + * stop: 2099-01-01 + * text: +Highlights: + * Greatly improved Wayland support + * New gadget infrastructure + * Wizard improvements + * Video backgrounds + +As always, stay tuned to the latest infrequent E updates on the [[ http://e.zmike.ninja|release blog]]. + +== Download == + +^ ** LINK ** ^ ** SHA256 ** ^ +| [[ http://download.enlightenment.org/rel/apps/enlightenment/enlightenment-0.21.0-alpha.tar.gz | Enlightenment DR 0.21.0-alpha GZIP]]| aeda670eecdfde161171c472c8a358629638f7877afe14e60ff7fab71b998608 | +| [[ http://download.enlightenment.org/rel/apps/enlightenment/enlightenment-0.21.0-alpha.tar.xz | Enlightenment DR 0.21.0-alpha XZ]] | e3dab3f72194132c51993b6f81a391dac1c1048873e7f6c031312448bb237217 | + +//Artisinally composited pixmaps for your desktop.// + +== Building and Dependencies == + +If you have an existing EFL or Elementary install, you may wish to delete its header files and libraries before compiling and installing to avoid possible conflicts during compilation. Please compile the dependencies in the following order (click for README): + + - [[https://git.enlightenment.org/core/efl.git/tree/README | EFL]] + - [[https://git.enlightenment.org/core/elementary.git/tree/README | Elementary]] + - [[https://git.enlightenment.org/core/emotion_generic_players.git/tree/README | Emotion generic players]] + - [[https://git.enlightenment.org/core/evas_generic_loaders.git/tree/README | Evas generic loaders]] + +**Note:** E21 depends on EFL **v1.17** or newer for X11 compositing and 1.18 for Wayland support. + * author: zmike + * tags: + == Enlightenment Developer Days 2016 Schedule == * anchor: #20160331080143 --
[EGIT] [website/www-content] master 01/01: Wiki page newsdata changed with summary [] by Raster
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=c016e95acde24e0b9d4bfcd460065db7e2f218e4 commit c016e95acde24e0b9d4bfcd460065db7e2f218e4 Author: Raster Date: Wed Apr 13 16:40:16 2016 -0700 Wiki page newsdata changed with summary [] by Raster --- pages/news/newsdata.txt | 38 -- 1 file changed, 38 deletions(-) diff --git a/pages/news/newsdata.txt b/pages/news/newsdata.txt index 091d87f..23be59d 100644 --- a/pages/news/newsdata.txt +++ b/pages/news/newsdata.txt @@ -36,44 +36,6 @@ If you have an existing EFL or Elementary install, you may wish to delete its he * author: zmike * tags: -== Enlightenment DR 0.21.0-alpha Release == - - * anchor: #20160412141503 - * head: Enlightenment DR 0.21.0-alpha Release - * subtitle: #swagger - * link: /news/allnewsdata#20160412141503 - * start: 2016-04-12 - * stop: 2099-01-01 - * text: -Highlights: - * Greatly improved Wayland support - * New gadget infrastructure - * Wizard improvements - * Video backgrounds - -As always, stay tuned to the latest infrequent E updates on the [[ http://e.zmike.ninja|release blog]]. - -== Download == - -^ ** LINK ** ^ ** SHA256 ** ^ -| [[ http://download.enlightenment.org/rel/apps/enlightenment/enlightenment-0.21.0-alpha.tar.gz | Enlightenment DR 0.21.0-alpha GZIP]]| aeda670eecdfde161171c472c8a358629638f7877afe14e60ff7fab71b998608 | -| [[ http://download.enlightenment.org/rel/apps/enlightenment/enlightenment-0.21.0-alpha.tar.xz | Enlightenment DR 0.21.0-alpha XZ]] | e3dab3f72194132c51993b6f81a391dac1c1048873e7f6c031312448bb237217 | - -//Artisinally composited pixmaps for your desktop.// - -== Building and Dependencies == - -If you have an existing EFL or Elementary install, you may wish to delete its header files and libraries before compiling and installing to avoid possible conflicts during compilation. Please compile the dependencies in the following order (click for README): - - - [[https://git.enlightenment.org/core/efl.git/tree/README | EFL]] - - [[https://git.enlightenment.org/core/elementary.git/tree/README | Elementary]] - - [[https://git.enlightenment.org/core/emotion_generic_players.git/tree/README | Emotion generic players]] - - [[https://git.enlightenment.org/core/evas_generic_loaders.git/tree/README | Evas generic loaders]] - -**Note:** E21 depends on EFL **v1.17** or newer for X11 compositing and 1.18 for Wayland support. - * author: zmike - * tags: - == Enlightenment Developer Days 2016 Schedule == * anchor: #20160331080143 --
[EGIT] [website/www-content] master 09/09: Wiki page newsdata changed with summary [[ Enlightenment Developer Days 2016 Schedule] ] by Raster
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=703e0c5f763ebda68577896624c55e1145e026ee commit 703e0c5f763ebda68577896624c55e1145e026ee Author: Raster Date: Wed Apr 13 16:24:25 2016 -0700 Wiki page newsdata changed with summary [[ Enlightenment Developer Days 2016 Schedule] ] by Raster --- pages/news/newsdata.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/news/newsdata.txt b/pages/news/newsdata.txt index 1a1e6bc..1be68b0 100644 --- a/pages/news/newsdata.txt +++ b/pages/news/newsdata.txt @@ -7,7 +7,7 @@ * start: 2016-03-31 * stop: 2016-05-31 * text: -We finalized the schedule for our Enlightenment Developer Days 2016 in Paris May 14-16th. +We finalized the schedule for our Enlightenment Developer Days 2016 in Paris May 14-16th. [[https://phab.enlightenment.org/w/events/enlightenment_developer_days_2016/]] The morning sessions will be filled with talks while we keep the lunch and afternoon time free for coding. --
[EGIT] [website/www-content] master 07/09: Wiki page newsdata changed with summary [] by Raster
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=fbe7534cb775a35e8330ad4d665d121d9de7c6f2 commit fbe7534cb775a35e8330ad4d665d121d9de7c6f2 Author: Raster Date: Tue Apr 12 17:54:42 2016 -0700 Wiki page newsdata changed with summary [] by Raster --- pages/news/newsdata.txt | 50 ++--- 1 file changed, 6 insertions(+), 44 deletions(-) diff --git a/pages/news/newsdata.txt b/pages/news/newsdata.txt index fb4756e..75cc030 100644 --- a/pages/news/newsdata.txt +++ b/pages/news/newsdata.txt @@ -1,55 +1,17 @@ == Enlightenment DR 0.21.0-alpha Release == - * anchor: #20160412142526 - * head: Enlightenment DR 0.21.0-alpha Release - * subtitle: #swagger - * link: /news/allnewsdata#20160412142526 - * start: 2016-04-12 - * stop: - * text: -Highlights: - * Greatly improved Wayland support - * New gadget infrastructure - * Wizard improvements - * Video backgrounds - -As always, stay tuned to the latest infrequent E updates on the [[ http://e.zmike.ninja|release blog]]. - -== Download == - -^ ** LINK ** ^ ** SHA256 ** ^ -| [[ http://download.enlightenment.org/rel/apps/enlightenment/enlightenment-0.21.0-alpha.tar.gz | Enlightenment DR 0.21.0-alpha GZIP]]| aeda670eecdfde161171c472c8a358629638f7877afe14e60ff7fab71b998608 | -| [[ http://download.enlightenment.org/rel/apps/enlightenment/enlightenment-0.21.0-alpha.tar.xz | Enlightenment DR 0.21.0-alpha XZ]] | e3dab3f72194132c51993b6f81a391dac1c1048873e7f6c031312448bb237217 | - -//Artisinally composited pixmaps for your desktop.// - -== Building and Dependencies == - -If you have an existing EFL or Elementary install, you may wish to delete its header files and libraries before compiling and installing to avoid possible conflicts during compilation. Please compile the dependencies in the following order (click for README): - - - [[https://git.enlightenment.org/core/efl.git/tree/README | EFL]] - - [[https://git.enlightenment.org/core/elementary.git/tree/README | Elementary]] - - [[https://git.enlightenment.org/core/emotion_generic_players.git/tree/README | Emotion generic players]] - - [[https://git.enlightenment.org/core/evas_generic_loaders.git/tree/README | Evas generic loaders]] - -**Note:** E21 depends on EFL **v1.17** or newer for X11 compositing and 1.18 for Wayland support. - * author: zmike - * tags: - -== Enlightenment DR 0.21.0-alpha Release == - * anchor: #20160412141503 * head: Enlightenment DR 0.21.0-alpha Release * subtitle: #swagger * link: /news/allnewsdata#20160412141503 * start: 2016-04-12 - * stop: + * stop: 2099-01-01 * text: Highlights: - * Greatly improved Wayland support - * New gadget infrastructure - * Wizard improvements - * Video backgrounds +> Greatly improved Wayland support +> New gadget infrastructure +> Wizard improvements +> Video backgrounds As always, stay tuned to the latest infrequent E updates on the [[ http://e.zmike.ninja|release blog]]. @@ -81,7 +43,7 @@ If you have an existing EFL or Elementary install, you may wish to delete its he * subtitle: #swagger * link: /news/allnewsdata#20160412141503 * start: 2016-04-12 - * stop: + * stop: 2099-01-01 * text: Highlights: * Greatly improved Wayland support --
[EGIT] [website/www-content] master 08/09: Wiki page newsdata changed with summary [] by Raster
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=7c7502b43a5e7d39459225d8952eebe91cb28394 commit 7c7502b43a5e7d39459225d8952eebe91cb28394 Author: Raster Date: Wed Apr 13 16:20:02 2016 -0700 Wiki page newsdata changed with summary [] by Raster --- pages/news/newsdata.txt | 76 - 1 file changed, 76 deletions(-) diff --git a/pages/news/newsdata.txt b/pages/news/newsdata.txt index 75cc030..1a1e6bc 100644 --- a/pages/news/newsdata.txt +++ b/pages/news/newsdata.txt @@ -1,79 +1,3 @@ -== Enlightenment DR 0.21.0-alpha Release == - - * anchor: #20160412141503 - * head: Enlightenment DR 0.21.0-alpha Release - * subtitle: #swagger - * link: /news/allnewsdata#20160412141503 - * start: 2016-04-12 - * stop: 2099-01-01 - * text: -Highlights: -> Greatly improved Wayland support -> New gadget infrastructure -> Wizard improvements -> Video backgrounds - -As always, stay tuned to the latest infrequent E updates on the [[ http://e.zmike.ninja|release blog]]. - -== Download == - -^ ** LINK ** ^ ** SHA256 ** ^ -| [[ http://download.enlightenment.org/rel/apps/enlightenment/enlightenment-0.21.0-alpha.tar.gz | Enlightenment DR 0.21.0-alpha GZIP]]| aeda670eecdfde161171c472c8a358629638f7877afe14e60ff7fab71b998608 | -| [[ http://download.enlightenment.org/rel/apps/enlightenment/enlightenment-0.21.0-alpha.tar.xz | Enlightenment DR 0.21.0-alpha XZ]] | e3dab3f72194132c51993b6f81a391dac1c1048873e7f6c031312448bb237217 | - -//Artisinally composited pixmaps for your desktop.// - -== Building and Dependencies == - -If you have an existing EFL or Elementary install, you may wish to delete its header files and libraries before compiling and installing to avoid possible conflicts during compilation. Please compile the dependencies in the following order (click for README): - - - [[https://git.enlightenment.org/core/efl.git/tree/README | EFL]] - - [[https://git.enlightenment.org/core/elementary.git/tree/README | Elementary]] - - [[https://git.enlightenment.org/core/emotion_generic_players.git/tree/README | Emotion generic players]] - - [[https://git.enlightenment.org/core/evas_generic_loaders.git/tree/README | Evas generic loaders]] - -**Note:** E21 depends on EFL **v1.17** or newer for X11 compositing and 1.18 for Wayland support. - * author: zmike - * tags: - -== Enlightenment DR 0.21.0-alpha Release == - - * anchor: #20160412141503 - * head: Enlightenment DR 0.21.0-alpha Release - * subtitle: #swagger - * link: /news/allnewsdata#20160412141503 - * start: 2016-04-12 - * stop: 2099-01-01 - * text: -Highlights: - * Greatly improved Wayland support - * New gadget infrastructure - * Wizard improvements - * Video backgrounds - -As always, stay tuned to the latest infrequent E updates on the [[ http://e.zmike.ninja|release blog]]. - -== Download == - -^ ** LINK ** ^ ** SHA256 ** ^ -| [[ http://download.enlightenment.org/rel/apps/enlightenment/enlightenment-0.21.0-alpha.tar.gz | Enlightenment DR 0.21.0-alpha GZIP]]| aeda670eecdfde161171c472c8a358629638f7877afe14e60ff7fab71b998608 | -| [[ http://download.enlightenment.org/rel/apps/enlightenment/enlightenment-0.21.0-alpha.tar.xz | Enlightenment DR 0.21.0-alpha XZ]] | e3dab3f72194132c51993b6f81a391dac1c1048873e7f6c031312448bb237217 | - -//Artisinally composited pixmaps for your desktop.// - -== Building and Dependencies == - -If you have an existing EFL or Elementary install, you may wish to delete its header files and libraries before compiling and installing to avoid possible conflicts during compilation. Please compile the dependencies in the following order (click for README): - - - [[https://git.enlightenment.org/core/efl.git/tree/README | EFL]] - - [[https://git.enlightenment.org/core/elementary.git/tree/README | Elementary]] - - [[https://git.enlightenment.org/core/emotion_generic_players.git/tree/README | Emotion generic players]] - - [[https://git.enlightenment.org/core/evas_generic_loaders.git/tree/README | Evas generic loaders]] - -**Note:** E21 depends on EFL **v1.17** or newer for X11 compositing and 1.18 for Wayland support. - * author: zmike - * tags: - == Enlightenment Developer Days 2016 Schedule == * anchor: #20160331080143 --
[EGIT] [website/www-content] master 06/09: Wiki page download-latest changed with summary [E21 alpha] by Mike Blumenkrantz
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=35e337453d91b8cad6d963e293beb814e357239b commit 35e337453d91b8cad6d963e293beb814e357239b Author: Mike Blumenkrantz Date: Tue Apr 12 14:37:42 2016 -0700 Wiki page download-latest changed with summary [E21 alpha] by Mike Blumenkrantz --- pages/download-latest.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/download-latest.txt b/pages/download-latest.txt index 8f0f7af..c838952 100644 --- a/pages/download-latest.txt +++ b/pages/download-latest.txt @@ -5,7 +5,7 @@ emotion_generic_players_v = 1.17.0 evas_generic_loaders_v= 1.17.0 python_efl_v = 1.17.0 -enlightenment_v = 0.20.6 +enlightenment_v = 0.21.0-alpha terminology_v = 0.9.1 rage_v= 0.1.4 econnman_v= 1.1 --
[EGIT] [website/www-content] master 04/09: Wiki page newsdata changed with summary [] by Mike Blumenkrantz
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=cab9b39811c4dfab0b7fbd4559f29ddc3b655e60 commit cab9b39811c4dfab0b7fbd4559f29ddc3b655e60 Author: Mike Blumenkrantz Date: Tue Apr 12 14:26:07 2016 -0700 Wiki page newsdata changed with summary [] by Mike Blumenkrantz --- pages/news/newsdata.txt | 38 ++ 1 file changed, 38 insertions(+) diff --git a/pages/news/newsdata.txt b/pages/news/newsdata.txt index b910f32..fb4756e 100644 --- a/pages/news/newsdata.txt +++ b/pages/news/newsdata.txt @@ -1,5 +1,43 @@ == Enlightenment DR 0.21.0-alpha Release == + * anchor: #20160412142526 + * head: Enlightenment DR 0.21.0-alpha Release + * subtitle: #swagger + * link: /news/allnewsdata#20160412142526 + * start: 2016-04-12 + * stop: + * text: +Highlights: + * Greatly improved Wayland support + * New gadget infrastructure + * Wizard improvements + * Video backgrounds + +As always, stay tuned to the latest infrequent E updates on the [[ http://e.zmike.ninja|release blog]]. + +== Download == + +^ ** LINK ** ^ ** SHA256 ** ^ +| [[ http://download.enlightenment.org/rel/apps/enlightenment/enlightenment-0.21.0-alpha.tar.gz | Enlightenment DR 0.21.0-alpha GZIP]]| aeda670eecdfde161171c472c8a358629638f7877afe14e60ff7fab71b998608 | +| [[ http://download.enlightenment.org/rel/apps/enlightenment/enlightenment-0.21.0-alpha.tar.xz | Enlightenment DR 0.21.0-alpha XZ]] | e3dab3f72194132c51993b6f81a391dac1c1048873e7f6c031312448bb237217 | + +//Artisinally composited pixmaps for your desktop.// + +== Building and Dependencies == + +If you have an existing EFL or Elementary install, you may wish to delete its header files and libraries before compiling and installing to avoid possible conflicts during compilation. Please compile the dependencies in the following order (click for README): + + - [[https://git.enlightenment.org/core/efl.git/tree/README | EFL]] + - [[https://git.enlightenment.org/core/elementary.git/tree/README | Elementary]] + - [[https://git.enlightenment.org/core/emotion_generic_players.git/tree/README | Emotion generic players]] + - [[https://git.enlightenment.org/core/evas_generic_loaders.git/tree/README | Evas generic loaders]] + +**Note:** E21 depends on EFL **v1.17** or newer for X11 compositing and 1.18 for Wayland support. + * author: zmike + * tags: + +== Enlightenment DR 0.21.0-alpha Release == + * anchor: #20160412141503 * head: Enlightenment DR 0.21.0-alpha Release * subtitle: #swagger --
[EGIT] [website/www-content] master 05/09: Wiki page start-release changed with summary [E21 alpha] by Mike Blumenkrantz
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=7c9b161cf69cd74a1d008b24f6a74e3fb5d993d3 commit 7c9b161cf69cd74a1d008b24f6a74e3fb5d993d3 Author: Mike Blumenkrantz Date: Tue Apr 12 14:37:20 2016 -0700 Wiki page start-release changed with summary [E21 alpha] by Mike Blumenkrantz --- pages/start-release.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/start-release.txt b/pages/start-release.txt index d95d01c..2292d1d 100644 --- a/pages/start-release.txt +++ b/pages/start-release.txt @@ -1,3 +1,3 @@ -EFL 1.17.0 and Enlightenment 0.20.6 are out - go to our [[download]] page. +EFL 1.17.0 and Enlightenment 0.21.0-alpha are out - go to our [[download]] page. \ No newline at end of file --
[EGIT] [website/www-content] master 03/09: Wiki page newsdata changed with summary [] by Mike Blumenkrantz
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=29a0b135a6531c10f43800c149c0af797a78ed84 commit 29a0b135a6531c10f43800c149c0af797a78ed84 Author: Mike Blumenkrantz Date: Tue Apr 12 14:25:24 2016 -0700 Wiki page newsdata changed with summary [] by Mike Blumenkrantz --- pages/news/newsdata.txt | 38 ++ 1 file changed, 38 insertions(+) diff --git a/pages/news/newsdata.txt b/pages/news/newsdata.txt index e1263ba..b910f32 100644 --- a/pages/news/newsdata.txt +++ b/pages/news/newsdata.txt @@ -36,6 +36,44 @@ If you have an existing EFL or Elementary install, you may wish to delete its he * author: zmike * tags: +== Enlightenment DR 0.21.0-alpha Release == + + * anchor: #20160412141503 + * head: Enlightenment DR 0.21.0-alpha Release + * subtitle: #swagger + * link: /news/allnewsdata#20160412141503 + * start: 2016-04-12 + * stop: + * text: +Highlights: + * Greatly improved Wayland support + * New gadget infrastructure + * Wizard improvements + * Video backgrounds + +As always, stay tuned to the latest infrequent E updates on the [[ http://e.zmike.ninja|release blog]]. + +== Download == + +^ ** LINK ** ^ ** SHA256 ** ^ +| [[ http://download.enlightenment.org/rel/apps/enlightenment/enlightenment-0.21.0-alpha.tar.gz | Enlightenment DR 0.21.0-alpha GZIP]]| aeda670eecdfde161171c472c8a358629638f7877afe14e60ff7fab71b998608 | +| [[ http://download.enlightenment.org/rel/apps/enlightenment/enlightenment-0.21.0-alpha.tar.xz | Enlightenment DR 0.21.0-alpha XZ]] | e3dab3f72194132c51993b6f81a391dac1c1048873e7f6c031312448bb237217 | + +//Artisinally composited pixmaps for your desktop.// + +== Building and Dependencies == + +If you have an existing EFL or Elementary install, you may wish to delete its header files and libraries before compiling and installing to avoid possible conflicts during compilation. Please compile the dependencies in the following order (click for README): + + - [[https://git.enlightenment.org/core/efl.git/tree/README | EFL]] + - [[https://git.enlightenment.org/core/elementary.git/tree/README | Elementary]] + - [[https://git.enlightenment.org/core/emotion_generic_players.git/tree/README | Emotion generic players]] + - [[https://git.enlightenment.org/core/evas_generic_loaders.git/tree/README | Evas generic loaders]] + +**Note:** E21 depends on EFL **v1.17** or newer for X11 compositing and 1.18 for Wayland support. + * author: zmike + * tags: + == Enlightenment Developer Days 2016 Schedule == * anchor: #20160331080143 --
[EGIT] [website/www-content] master 02/09: Wiki page newsdata changed with summary [] by Mike Blumenkrantz
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=39fea865707993978e22cd6b5f3ea2e9e3ca0b01 commit 39fea865707993978e22cd6b5f3ea2e9e3ca0b01 Author: Mike Blumenkrantz Date: Tue Apr 12 14:25:00 2016 -0700 Wiki page newsdata changed with summary [] by Mike Blumenkrantz --- pages/news/newsdata.txt | 38 ++ 1 file changed, 38 insertions(+) diff --git a/pages/news/newsdata.txt b/pages/news/newsdata.txt index 1a1e6bc..e1263ba 100644 --- a/pages/news/newsdata.txt +++ b/pages/news/newsdata.txt @@ -1,3 +1,41 @@ +== Enlightenment DR 0.21.0-alpha Release == + + * anchor: #20160412141503 + * head: Enlightenment DR 0.21.0-alpha Release + * subtitle: #swagger + * link: /news/allnewsdata#20160412141503 + * start: 2016-04-12 + * stop: + * text: +Highlights: + * Greatly improved Wayland support + * New gadget infrastructure + * Wizard improvements + * Video backgrounds + +As always, stay tuned to the latest infrequent E updates on the [[ http://e.zmike.ninja|release blog]]. + +== Download == + +^ ** LINK ** ^ ** SHA256 ** ^ +| [[ http://download.enlightenment.org/rel/apps/enlightenment/enlightenment-0.21.0-alpha.tar.gz | Enlightenment DR 0.21.0-alpha GZIP]]| aeda670eecdfde161171c472c8a358629638f7877afe14e60ff7fab71b998608 | +| [[ http://download.enlightenment.org/rel/apps/enlightenment/enlightenment-0.21.0-alpha.tar.xz | Enlightenment DR 0.21.0-alpha XZ]] | e3dab3f72194132c51993b6f81a391dac1c1048873e7f6c031312448bb237217 | + +//Artisinally composited pixmaps for your desktop.// + +== Building and Dependencies == + +If you have an existing EFL or Elementary install, you may wish to delete its header files and libraries before compiling and installing to avoid possible conflicts during compilation. Please compile the dependencies in the following order (click for README): + + - [[https://git.enlightenment.org/core/efl.git/tree/README | EFL]] + - [[https://git.enlightenment.org/core/elementary.git/tree/README | Elementary]] + - [[https://git.enlightenment.org/core/emotion_generic_players.git/tree/README | Emotion generic players]] + - [[https://git.enlightenment.org/core/evas_generic_loaders.git/tree/README | Evas generic loaders]] + +**Note:** E21 depends on EFL **v1.17** or newer for X11 compositing and 1.18 for Wayland support. + * author: zmike + * tags: + == Enlightenment Developer Days 2016 Schedule == * anchor: #20160331080143 --
[EGIT] [website/www-content] master 01/09: Wiki page arcanist changed with summary [GitHub path has changed] by Shuhrat Dehkanov
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=47bc1486e0a344bb56b06311f8ec8b55e1689c5b commit 47bc1486e0a344bb56b06311f8ec8b55e1689c5b Author: Shuhrat Dehkanov Date: Mon Apr 11 05:20:55 2016 -0700 Wiki page arcanist changed with summary [GitHub path has changed] by Shuhrat Dehkanov --- pages/contact/arcanist.txt | 11 +-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/pages/contact/arcanist.txt b/pages/contact/arcanist.txt index 7d19647..b57e22c 100644 --- a/pages/contact/arcanist.txt +++ b/pages/contact/arcanist.txt @@ -8,8 +8,15 @@ To set up arcanist you will need php installed locally, as well as git, and then sudo apt-get install php5-cli php5-curl php5-json git # remove arc mkdir ~/arcanist cd ~/arcanist -git clone git://github.com/facebook/libphutil.git -git clone git://github.com/facebook/arcanist.git +git clone git://github.com/phacility/libphutil.git +git clone git://github.com/phacility/arcanist.git + + +If you prefer to use HTTPS, replace the last two commands from above with: + + +git clone https://github.com/phacility/libphutil.git +git clone https://github.com/phacility/arcanist.git Ensure that //~/arcanist/arcanist/bin// is in your $PATH for your shell. Example: --
[EGIT] [legacy/imlib2] master 01/01: Fix cross-endianness for masks (1-bit depth images)
kwo pushed a commit to branch master. http://git.enlightenment.org/legacy/imlib2.git/commit/?id=7836d839512f1a766fa34a098bda31ef2216480c commit 7836d839512f1a766fa34a098bda31ef2216480c Author: Alexander Smirnov Date: Wed Apr 13 21:03:31 2016 +0200 Fix cross-endianness for masks (1-bit depth images) Summary: Imlib generates masks on the client side with the bit order of the client. Set this bit order for produced XImages. Reviewers: kwo Differential Revision: https://phab.enlightenment.org/D3891 --- src/lib/ximage.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib/ximage.c b/src/lib/ximage.c index 4fa1b29..750761f 100644 --- a/src/lib/ximage.c +++ b/src/lib/ximage.c @@ -360,8 +360,10 @@ __imlib_ProduceXImage(Display * d, Visual * v, int depth, int w, int h, /* (rather than the Xserver) */ #ifdef WORDS_BIGENDIAN xim->byte_order = MSBFirst; + xim->bitmap_bit_order = MSBFirst; #else xim->byte_order = LSBFirst; + xim->bitmap_bit_order = LSBFirst; #endif /* return out image */ --
[EGIT] [core/efl] master 01/01: elput: Add missing optional feature check for systemd
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=4ea507c2ca2363aa581444eb3f210c1610ef57c0 commit 4ea507c2ca2363aa581444eb3f210c1610ef57c0 Author: Chris Michael Date: Wed Apr 13 15:44:13 2016 -0400 elput: Add missing optional feature check for systemd As elput can potentially use systemd-logind for various input device functions, we should add this as an optional dependency in the configure checks. @fix Signed-off-by: Chris Michael --- configure.ac | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index f34bac8..c27d216 100644 --- a/configure.ac +++ b/configure.ac @@ -3601,6 +3601,9 @@ EFL_INTERNAL_DEPEND_PKG([ELPUT], [eina]) EFL_DEPEND_PKG([ELPUT], [LIBINPUT], [libinput >= 0.6.0 xkbcommon >= 0.3.0]) +EFL_OPTIONAL_DEPEND_PKG([ELPUT], [${want_systemd}], [SYSTEMD], [libsystemd]) +EFL_ADD_FEATURE([ELPUT], [systemd-logind], [${want_systemd}]) + EFL_ADD_LIBS([ELPUT], [-lm]) # API change from 0.7 to 0.8. So we define this to support both for now. @@ -5750,7 +5753,7 @@ fi echo "Ecore_Audio.: ${efl_lib_optional_ecore_audio} (${features_ecore_audio})" echo "Ecore_Avahi.: yes (${features_ecore_avahi})" echo "Ecore_Evas..: yes (${features_ecore_evas})" -echo "Elput...: $want_elput" +echo "Elput...: $want_elput (${features_elput})" echo "Ector...: yes" echo "Eeze: ${efl_lib_optional_eeze} (${features_eeze})" echo "EPhysics: ${efl_lib_optional_ephysics}" --
[EGIT] [core/efl] master 16/16: Merge branch 'devs/devilhorns/elput'
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=f20eb4eba7321cfc6907bdcc2e3baca16066be2a commit f20eb4eba7321cfc6907bdcc2e3baca16066be2a Merge: c23a61a 43360ca Author: Chris Michael Date: Wed Apr 13 14:16:39 2016 -0400 Merge branch 'devs/devilhorns/elput' The elput library is an efl abstraction for the libinput library which can be used by various other subsystems (ecore_fb, ecore_drm, etc) to handle interfacing with libinput without having to duplicate the code in each subsystem. Elput currently uses systemd-logind by default to open/close input devices, but has the ability for other methods (direct opening) to be easily added through the Manager implementation. NB: This library is merged with EFL_BETA_API_SUPPORT and is subject to API changes. Makefile.am|4 + configure.ac | 71 ++ pc/elput.pc.in | 12 + src/Makefile.am|1 + src/Makefile_Elput.am | 59 ++ src/lib/elput/Elput.h | 265 +++ src/lib/elput/elput.c | 73 ++ src/lib/elput/elput_evdev.c| 1383 src/lib/elput/elput_input.c| 277 src/lib/elput/elput_logind.c | 569 +++ src/lib/elput/elput_manager.c | 64 ++ src/lib/elput/elput_private.h | 250 +++ src/tests/elput/elput_suite.c | 29 + src/tests/elput/elput_suite.h |8 + src/tests/elput/elput_test_elput.c | 29 + 15 files changed, 3094 insertions(+) --
[EGIT] [core/efl] master 09/16: elput: Create and raise event when seat capabilities change
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b764978f29d86a3e42eac1de3e438e0932b4331f commit b764978f29d86a3e42eac1de3e438e0932b4331f Author: Chris Michael Date: Wed Apr 6 10:26:46 2016 -0400 elput: Create and raise event when seat capabilities change Signed-off-by: Chris Michael --- src/lib/elput/Elput.h| 11 +++ src/lib/elput/elput.c| 6 ++ src/lib/elput/elput_evdev.c | 18 +- src/lib/elput/elput_logind.c | 21 - 4 files changed, 46 insertions(+), 10 deletions(-) diff --git a/src/lib/elput/Elput.h b/src/lib/elput/Elput.h index f6ad5d2..90cfe77 100644 --- a/src/lib/elput/Elput.h +++ b/src/lib/elput/Elput.h @@ -43,6 +43,17 @@ typedef struct _Elput_Pointer Elput_Pointer; /* opaque structure to represent a touch device */ typedef struct _Elput_Touch Elput_Touch; +/* structure to represent event for seat capability changes */ +typedef struct _Elput_Event_Seat_Caps +{ + int pointer_count; + int keyboard_count; + int touch_count; + Elput_Seat *seat; +} Elput_Event_Seat_Caps; + +EAPI extern int ELPUT_EVENT_SEAT_CAPS; + /** * @file * @brief Ecore functions for dealing with libinput diff --git a/src/lib/elput/elput.c b/src/lib/elput/elput.c index 1b5613f..ef2ca6b 100644 --- a/src/lib/elput/elput.c +++ b/src/lib/elput/elput.c @@ -6,6 +6,8 @@ static int _elput_init_count = 0; /* external variables */ int _elput_log_dom = -1; +EAPI int ELPUT_EVENT_SEAT_CAPS = -1; + EAPI int elput_init(void) { @@ -23,6 +25,8 @@ elput_init(void) goto log_err; } + ELPUT_EVENT_SEAT_CAPS = ecore_event_type_new(); + return _elput_init_count; log_err: @@ -43,6 +47,8 @@ elput_shutdown(void) if (_elput_init_count < 1) return 0; if (--_elput_init_count != 0) return _elput_init_count; + ELPUT_EVENT_SEAT_CAPS = -1; + eina_log_domain_unregister(_elput_log_dom); _elput_log_dom = -1; diff --git a/src/lib/elput/elput_evdev.c b/src/lib/elput/elput_evdev.c index 4c34738..a0dc07e 100644 --- a/src/lib/elput/elput_evdev.c +++ b/src/lib/elput/elput_evdev.c @@ -3,7 +3,17 @@ static void _seat_caps_update(Elput_Seat *seat) { - /* TODO: raise event for seat caps */ + Elput_Event_Seat_Caps *ev; + + ev = calloc(1, sizeof(Elput_Event_Seat_Caps)); + if (!ev) return; + + ev->pointer_count = seat->count.ptr; + ev->keyboard_count = seat->count.kbd; + ev->touch_count = seat->count.touch; + ev->seat = seat; + + ecore_event_add(ELPUT_EVENT_SEAT_CAPS, ev, NULL, NULL); } static int @@ -360,7 +370,13 @@ _evdev_event_process(struct libinput_event *event) if (frame) { +Elput_Device *edev; +edev = libinput_device_get_user_data(idev); +if (edev) + { + /* TODO: send seat frame event ?? */ + } } return ret; diff --git a/src/lib/elput/elput_logind.c b/src/lib/elput/elput_logind.c index c89ca2a..e829b4a 100644 --- a/src/lib/elput/elput_logind.c +++ b/src/lib/elput/elput_logind.c @@ -78,9 +78,10 @@ _cb_device_paused(void *data, const Eldbus_Message *msg) if (!strcmp(type, "pause")) _logind_device_pause_complete(em, maj, min); -/* TODO */ -/* if ((em->sync) && (maj == DRM_MAJOR)) */ -/* _ecore_drm2_launcher_activate_send(em, EINA_FALSE); */ +if ((em->sync) && (maj == 226)) // DRM_MAJOR + { + /* TODO: _ecore_drm2_launcher_activate_send(em, EINA_FALSE); */ + } } } @@ -102,9 +103,10 @@ _cb_device_resumed(void *data, const Eldbus_Message *msg) if (eldbus_message_arguments_get(msg, "uuh", &maj, &min, &fd)) { -/* TODO */ -/* if ((em->sync) && (maj == DRM_MAJOR)) */ -/* _ecore_drm2_launcher_activate_send(em, EINA_TRUE); */ +if ((em->sync) && (maj == 226)) // DRM_MAJOR + { + /* TODO: _ecore_drm2_launcher_activate_send(em, EINA_TRUE); */ + } } } @@ -123,9 +125,10 @@ _cb_property_changed(void *data, Eldbus_Proxy *proxy EINA_UNUSED, void *event) if (!strcmp(ev->name, "Active")) { eina_value_get(ev->value, &active); -/* TODO */ -/* if ((!em->sync) || (!active)) */ -/* _ecore_drm2_launcher_activate_send(em, active); */ +if ((!em->sync) || (!active)) + { + /* TODO: _ecore_drm2_launcher_activate_send(em, active); */ + } } } --
[EGIT] [core/efl] master 13/16: elput: Add event which can be raised when devices get added or removed
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6c85fe751488c344f1c0cff8e9f3dd013bf5f66d commit 6c85fe751488c344f1c0cff8e9f3dd013bf5f66d Author: Chris Michael Date: Thu Apr 7 09:00:18 2016 -0400 elput: Add event which can be raised when devices get added or removed Signed-off-by: Chris Michael --- src/lib/elput/Elput.h | 14 + src/lib/elput/elput.c | 3 +++ src/lib/elput/elput_input.c | 50 +++-- 3 files changed, 61 insertions(+), 6 deletions(-) diff --git a/src/lib/elput/Elput.h b/src/lib/elput/Elput.h index f8808ce..385ea4e 100644 --- a/src/lib/elput/Elput.h +++ b/src/lib/elput/Elput.h @@ -74,10 +74,24 @@ typedef struct _Elput_Event_Modifiers_Send unsigned int group; } Elput_Event_Modifiers_Send; +typedef enum _Elput_Device_Change_Type +{ + ELPUT_DEVICE_ADDED, + ELPUT_DEVICE_REMOVED, +} Elput_Device_Change_Type; + +/* structure to represent event for device being added or removed */ +typedef struct _Elput_Event_Device_Change +{ + Elput_Device *device; + Elput_Device_Change_Type type; +} Elput_Event_Device_Change; + EAPI extern int ELPUT_EVENT_SEAT_CAPS; EAPI extern int ELPUT_EVENT_SEAT_FRAME; EAPI extern int ELPUT_EVENT_KEYMAP_SEND; EAPI extern int ELPUT_EVENT_MODIFIERS_SEND; +EAPI extern int ELPUT_EVENT_DEVICE_CHANGE; /** * @file diff --git a/src/lib/elput/elput.c b/src/lib/elput/elput.c index f65da98..2e54b3e 100644 --- a/src/lib/elput/elput.c +++ b/src/lib/elput/elput.c @@ -10,6 +10,7 @@ EAPI int ELPUT_EVENT_SEAT_CAPS = -1; EAPI int ELPUT_EVENT_SEAT_FRAME = -1; EAPI int ELPUT_EVENT_KEYMAP_SEND = -1; EAPI int ELPUT_EVENT_MODIFIERS_SEND = -1; +EAPI int ELPUT_EVENT_DEVICE_CHANGE = -1; EAPI int elput_init(void) @@ -32,6 +33,7 @@ elput_init(void) ELPUT_EVENT_SEAT_FRAME = ecore_event_type_new(); ELPUT_EVENT_KEYMAP_SEND = ecore_event_type_new(); ELPUT_EVENT_MODIFIERS_SEND = ecore_event_type_new(); + ELPUT_EVENT_DEVICE_CHANGE = ecore_event_type_new(); return _elput_init_count; @@ -57,6 +59,7 @@ elput_shutdown(void) ELPUT_EVENT_SEAT_FRAME = -1; ELPUT_EVENT_KEYMAP_SEND = -1; ELPUT_EVENT_MODIFIERS_SEND = -1; + ELPUT_EVENT_DEVICE_CHANGE = -1; eina_log_domain_unregister(_elput_log_dom); _elput_log_dom = -1; diff --git a/src/lib/elput/elput_input.c b/src/lib/elput/elput_input.c index 499efcf..6c43f2f 100644 --- a/src/lib/elput/elput_input.c +++ b/src/lib/elput/elput_input.c @@ -79,6 +79,41 @@ _udev_seat_get(Elput_Manager *em, struct libinput_device *device) } static void +_device_event_cb_free(void *data EINA_UNUSED, void *event) +{ + Elput_Event_Device_Change *ev; + + ev = event; + + if (ev->type == ELPUT_DEVICE_REMOVED) + { +Elput_Seat *seat; + +seat = ev->device->seat; +if (seat) + seat->devices = eina_list_remove(seat->devices, ev->device); + +_evdev_device_destroy(ev->device); + } + + free(ev); +} + +static void +_device_event_send(Elput_Device *edev, Elput_Device_Change_Type type) +{ + Elput_Event_Device_Change *ev; + + ev = calloc(1, sizeof(Elput_Event_Device_Change)); + if (!ev) return; + + ev->device = edev; + ev->type = type; + + ecore_event_add(ELPUT_EVENT_DEVICE_CHANGE, ev, _device_event_cb_free, NULL); +} + +static void _device_add(Elput_Manager *em, struct libinput_device *dev) { Elput_Seat *eseat; @@ -95,22 +130,25 @@ _device_add(Elput_Manager *em, struct libinput_device *dev) eina_stringshare_replace(&edev->output_name, oname); eseat->devices = eina_list_append(eseat->devices, edev); + + _device_event_send(edev, ELPUT_DEVICE_ADDED); } static void -_device_remove(Elput_Manager *em, struct libinput_device *device) +_device_remove(Elput_Manager *em EINA_UNUSED, struct libinput_device *device) { - Elput_Seat *eseat; + /* Elput_Seat *eseat; */ Elput_Device *edev; edev = libinput_device_get_user_data(device); if (!edev) return; - eseat = _udev_seat_get(em, device); - if (eseat) - eseat->devices = eina_list_remove(eseat->devices, edev); + /* eseat = _udev_seat_get(em, device); */ + /* if (eseat) */ + /* eseat->devices = eina_list_remove(eseat->devices, edev); */ - _evdev_device_destroy(edev); + _device_event_send(edev, ELPUT_DEVICE_REMOVED); + /* _evdev_device_destroy(edev); */ } static int --
[EGIT] [core/efl] master 14/16: elput: Add API function to set input window
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=404b3049f3339e4ea95c116312386b3d19d1c99c commit 404b3049f3339e4ea95c116312386b3d19d1c99c Author: Chris Michael Date: Thu Apr 7 09:08:00 2016 -0400 elput: Add API function to set input window Signed-off-by: Chris Michael --- src/lib/elput/Elput.h | 24 src/lib/elput/elput_evdev.c | 8 2 files changed, 32 insertions(+) diff --git a/src/lib/elput/Elput.h b/src/lib/elput/Elput.h index 385ea4e..06a027d 100644 --- a/src/lib/elput/Elput.h +++ b/src/lib/elput/Elput.h @@ -105,6 +105,7 @@ EAPI extern int ELPUT_EVENT_DEVICE_CHANGE; * @li @ref Elput_Init_Group * @li @ref Elput_Manager_Group * @li @ref Elput_Input_Group + * @li @ref Elput_Device_Group * */ @@ -221,6 +222,29 @@ EAPI Eina_Bool elput_input_init(Elput_Manager *manager, const char *seat); */ EAPI void elput_input_shutdown(Elput_Manager *manager); +/** + * @defgroup Elput_Device_Group + * + * Functions that deal with input devices. + */ + +/** + * Set which window to use for this input device + * + * @brief This function should be used to specify which window to set on the + *input device. Setting a window on the input device is done so that + *when we raise events (mouse movement, keyboard key, etc) then + *this window is passed to the event structure as the window which + *the event occured on. + * + * @param device + * @param window + * + * @ingroup Elput_Device_Group + * @since 1.18 + */ +EAPI void elput_device_window_set(Elput_Device *device, unsigned int window); + # endif # undef EAPI diff --git a/src/lib/elput/elput_evdev.c b/src/lib/elput/elput_evdev.c index 6dd4da4..4b6955d 100644 --- a/src/lib/elput/elput_evdev.c +++ b/src/lib/elput/elput_evdev.c @@ -1306,3 +1306,11 @@ _evdev_touch_get(Elput_Seat *seat) if (seat->count.touch) return seat->touch; return NULL; } + +EAPI void +elput_device_window_set(Elput_Device *device, unsigned int window) +{ + EINA_SAFETY_ON_NULL_RETURN(device); + + device->window = window; +} --
[EGIT] [core/efl] master 12/16: elput: Handle various events from libinput and pass to ecore_event
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6a7589bf7805b31b532cd6acf972a3f87f65366f commit 6a7589bf7805b31b532cd6acf972a3f87f65366f Author: Chris Michael Date: Wed Apr 6 11:32:42 2016 -0400 elput: Handle various events from libinput and pass to ecore_event Signed-off-by: Chris Michael --- src/lib/elput/elput_evdev.c | 819 ++ src/lib/elput/elput_private.h | 12 +- 2 files changed, 830 insertions(+), 1 deletion(-) diff --git a/src/lib/elput/elput_evdev.c b/src/lib/elput/elput_evdev.c index 2036d17..6dd4da4 100644 --- a/src/lib/elput/elput_evdev.c +++ b/src/lib/elput/elput_evdev.c @@ -28,6 +28,35 @@ _seat_frame_send(Elput_Seat *seat) ecore_event_add(ELPUT_EVENT_SEAT_FRAME, ev, NULL, NULL); } +static void +_keyboard_modifiers_update(Elput_Keyboard *kbd, Elput_Seat *seat) +{ + xkb_mod_mask_t mask; + + kbd->mods.depressed = + xkb_state_serialize_mods(kbd->state, XKB_STATE_DEPRESSED); + kbd->mods.latched = + xkb_state_serialize_mods(kbd->state, XKB_STATE_LATCHED); + kbd->mods.locked = + xkb_state_serialize_mods(kbd->state, XKB_STATE_LOCKED); + kbd->mods.group = + xkb_state_serialize_mods(kbd->state, XKB_STATE_EFFECTIVE); + + mask = (kbd->mods.depressed | kbd->mods.latched); + + seat->modifiers = 0; + if (mask & kbd->info->mods.ctrl) + seat->modifiers |= ECORE_EVENT_MODIFIER_CTRL; + if (mask & kbd->info->mods.alt) + seat->modifiers |= ECORE_EVENT_MODIFIER_ALT; + if (mask & kbd->info->mods.shift) + seat->modifiers |= ECORE_EVENT_MODIFIER_SHIFT; + if (mask & kbd->info->mods.super) + seat->modifiers |= ECORE_EVENT_MODIFIER_WIN; + if (mask & kbd->info->mods.altgr) + seat->modifiers |= ECORE_EVENT_MODIFIER_ALTGR; +} + static int _keyboard_fd_get(off_t size) { @@ -248,6 +277,245 @@ _keyboard_release(Elput_Seat *seat) } } +static void +_keyboard_key_send(Elput_Device *dev, enum libinput_key_state state, const char *keyname, const char *key, const char *compose, unsigned int code, unsigned int timestamp) +{ + Ecore_Event_Key *ev; + + ev = calloc(1, sizeof(Ecore_Event_Key) + strlen(key) + strlen(keyname) + + ((compose[0] != '\0') ? strlen(compose) : 0) + 3); + if (!ev) return; + + ev->keyname = (char *)(ev + 1); + ev->key = ev->keyname + strlen(keyname) + 1; + ev->compose = strlen(compose) ? ev->key + strlen(key) + 1 : NULL; + ev->string = ev->compose; + + strcpy((char *)ev->keyname, keyname); + strcpy((char *)ev->key, key); + if (strlen(compose)) strcpy((char *)ev->compose, compose); + + /* ev->string = ev->compose; */ + ev->keycode = code; + ev->modifiers = dev->seat->modifiers; + ev->timestamp = timestamp; + ev->same_screen = 1; + + ev->window = dev->window; + ev->event_window = dev->window; + ev->root_window = dev->window; + + if (state == LIBINPUT_KEY_STATE_PRESSED) + ecore_event_add(ECORE_EVENT_KEY_DOWN, ev, NULL, NULL); + else + ecore_event_add(ECORE_EVENT_KEY_UP, ev, NULL, NULL); +} + +static void +_keyboard_keymap_send(Elput_Keyboard_Info *info) +{ + Elput_Event_Keymap_Send *ev; + + ev = calloc(1, sizeof(Elput_Event_Keymap_Send)); + if (!ev) return; + + ev->fd = info->keymap.fd; + ev->size = info->keymap.size; + ev->format = XKB_KEYMAP_FORMAT_TEXT_V1; + + ecore_event_add(ELPUT_EVENT_KEYMAP_SEND, ev, NULL, NULL); +} + +static void +_keyboard_modifiers_send(Elput_Keyboard *kbd) +{ + Elput_Event_Modifiers_Send *ev; + + ev = calloc(1, sizeof(Elput_Event_Modifiers_Send)); + if (!ev) return; + + ev->depressed = kbd->mods.depressed; + ev->latched = kbd->mods.latched; + ev->locked = kbd->mods.locked; + ev->group = kbd->mods.group; + + ecore_event_add(ELPUT_EVENT_MODIFIERS_SEND, ev, NULL, NULL); +} + +static void +_keyboard_keymap_update(Elput_Seat *seat) +{ + Elput_Keyboard *kbd; + Elput_Keyboard_Info *info; + struct xkb_state *state; + xkb_mod_mask_t latched, locked; + + kbd = _evdev_keyboard_get(seat); + if (!kbd) return; + + info = _keyboard_info_create(kbd->pending_map, kbd->external_map); + xkb_keymap_unref(kbd->pending_map); + kbd->pending_map = NULL; + + if (!info) return; + + state = xkb_state_new(info->keymap.map); + if (!state) + { +_keyboard_info_destroy(info, kbd->external_map); +return; + } + + latched = xkb_state_serialize_mods(kbd->state, XKB_STATE_MODS_LATCHED); + locked = xkb_state_serialize_mods(kbd->state, XKB_STATE_MODS_LOCKED); + xkb_state_update_mask(state, 0, latched, locked, 0, 0, 0); + + _keyboard_info_destroy(kbd->info, kbd->external_map); + kbd->info = info; + + xkb_state_unref(kbd->state); + kbd->state = state; + + _keyboard_modifiers_update(kbd, seat); + _keyboard_keymap_send(kbd->info); + + if ((!latched) && (!locked)) return; + + _keyboard_modifiers_send(kbd); +} + +static int +_keyboard_keysym_translate(xkb_keysym_t keysym, unsigned
[EGIT] [core/efl] master 06/16: elput: Add API function to initialize and shutdown input devices
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=f832d2019cc96d750a17f9df3aec3feff78dc5a3 commit f832d2019cc96d750a17f9df3aec3feff78dc5a3 Author: Chris Michael Date: Fri Apr 1 13:04:25 2016 -0400 elput: Add API function to initialize and shutdown input devices Signed-off-by: Chris Michael --- src/Makefile_Elput.am | 1 + src/lib/elput/Elput.h | 31 ++- src/lib/elput/elput_input.c | 87 +++ src/lib/elput/elput_private.h | 13 +++ 4 files changed, 131 insertions(+), 1 deletion(-) diff --git a/src/Makefile_Elput.am b/src/Makefile_Elput.am index 3e1ed58..c79763e 100644 --- a/src/Makefile_Elput.am +++ b/src/Makefile_Elput.am @@ -9,6 +9,7 @@ dist_installed_elputmainheaders_DATA = \ lib/elput/Elput.h lib_elput_libelput_la_SOURCES = \ +lib/elput/elput_input.c \ lib/elput/elput_logind.c \ lib/elput/elput_manager.c \ lib/elput/elput.c \ diff --git a/src/lib/elput/Elput.h b/src/lib/elput/Elput.h index 44a861c..234597f 100644 --- a/src/lib/elput/Elput.h +++ b/src/lib/elput/Elput.h @@ -39,6 +39,7 @@ typedef struct _Elput_Manager Elput_Manager; * * @li @ref Elput_Init_Group * @li @ref Elput_Manager_Group + * @li @ref Elput_Input_Group * */ @@ -75,7 +76,6 @@ EAPI int elput_shutdown(void); * * Functions that deal with connecting, disconnecting, opening, closing * of input devices. - * */ /** @@ -127,6 +127,35 @@ EAPI int elput_manager_open(Elput_Manager *manager, const char *path, int flags) */ EAPI void elput_manager_close(Elput_Manager *manager, int fd); +/** + * @defgroup Elput_Input_Group Elput input functions + * + * Functions that deal with setup of inputs + */ + +/** + * Initialize input + * + * @param manager + * @param seat + * + * @return EINA_TRUE on success, EINA_FALSE on failure + * + * @ingroup Elput_Input_Group + * @since 1.18 + */ +EAPI Eina_Bool elput_input_init(Elput_Manager *manager, const char *seat); + +/** + * Shutdown input + * + * @param manager + * + * @ingroup Elput_Input_Group + * @since 1.18 + */ +EAPI void elput_input_shutdown(Elput_Manager *manager); + # endif # undef EAPI diff --git a/src/lib/elput/elput_input.c b/src/lib/elput/elput_input.c new file mode 100644 index 000..a2a4ccb --- /dev/null +++ b/src/lib/elput/elput_input.c @@ -0,0 +1,87 @@ +#include "elput_private.h" + +static int +_cb_open_restricted(const char *path, int flags, void *data) +{ + Elput_Manager *em; + + em = data; + return elput_manager_open(em, path, flags); +} + +static void +_cb_close_restricted(int fd, void *data) +{ + Elput_Manager *em; + + em = data; + elput_manager_close(em, fd); +} + +const struct libinput_interface _input_interface = +{ + _cb_open_restricted, + _cb_close_restricted, +}; + +static void +_process_event(struct libinput_event *event) +{ + /* TODO */ +} + +static void +_process_events(Elput_Input *ei) +{ + struct libinput_event *event; + + while ((event = libinput_get_event(ei->lib))) + { +_process_event(event); +libinput_event_destroy(event); + } +} + +EAPI Eina_Bool +elput_input_init(Elput_Manager *manager, const char *seat) +{ + EINA_SAFETY_ON_NULL_RETURN_VAL(manager, EINA_FALSE); + + memset(&manager->input, 0, sizeof(Elput_Input)); + + manager->input.lib = + libinput_udev_create_context(&_input_interface, manager, eeze_udev_get()); + if (!manager->input.lib) + { +ERR("libinput could not create udev context"); +goto udev_err; + } + + if (libinput_udev_assign_seat(manager->input.lib, seat) != 0) + { +ERR("libinput could not assign udev seat"); +goto seat_err; + } + + _process_events(&manager->input); + + /* TODO */ + + return EINA_TRUE; + +seat_err: + libinput_unref(manager->input.lib); +udev_err: + return EINA_FALSE; +} + +EAPI void +elput_input_shutdown(Elput_Manager *manager) +{ + EINA_SAFETY_ON_NULL_RETURN(manager); + EINA_SAFETY_ON_NULL_RETURN(&manager->input); + + /* TODO */ + + libinput_unref(manager->input.lib); +} diff --git a/src/lib/elput/elput_private.h b/src/lib/elput/elput_private.h index c500a55..6d88943 100644 --- a/src/lib/elput/elput_private.h +++ b/src/lib/elput/elput_private.h @@ -64,6 +64,17 @@ typedef struct _Elput_Interface void (*close)(Elput_Manager *manager, int fd); } Elput_Interface; +typedef struct _Elput_Input +{ + struct libinput *lib; + + Ecore_Fd_Handler *hdlr; + + Eina_List *seats; + + Eina_Bool suspended : 1; +} Elput_Input; + struct _Elput_Manager { Elput_Interface *interface; @@ -80,6 +91,8 @@ struct _Elput_Manager Eldbus_Connection *conn; } dbus; + Elput_Input input; + Eina_Bool sync : 1; }; --
[EGIT] [core/efl] master 08/16: elput: Add support for creating and removing devices
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=3070c4cf08a28b2a9a3f4838ec78ce7f7bde95ec commit 3070c4cf08a28b2a9a3f4838ec78ce7f7bde95ec Author: Chris Michael Date: Wed Apr 6 08:46:29 2016 -0400 elput: Add support for creating and removing devices This patch adds start of code to create or remove input devices such as keyboards, pointers, or touch devices. Signed-off-by: Chris Michael --- src/Makefile_Elput.am | 1 + src/lib/elput/Elput.h | 15 ++ src/lib/elput/elput_evdev.c | 464 ++ src/lib/elput/elput_input.c | 100 - src/lib/elput/elput_private.h | 139 + 5 files changed, 715 insertions(+), 4 deletions(-) diff --git a/src/Makefile_Elput.am b/src/Makefile_Elput.am index c79763e..d177f6d 100644 --- a/src/Makefile_Elput.am +++ b/src/Makefile_Elput.am @@ -9,6 +9,7 @@ dist_installed_elputmainheaders_DATA = \ lib/elput/Elput.h lib_elput_libelput_la_SOURCES = \ +lib/elput/elput_evdev.c \ lib/elput/elput_input.c \ lib/elput/elput_logind.c \ lib/elput/elput_manager.c \ diff --git a/src/lib/elput/Elput.h b/src/lib/elput/Elput.h index 234597f..f6ad5d2 100644 --- a/src/lib/elput/Elput.h +++ b/src/lib/elput/Elput.h @@ -28,6 +28,21 @@ /* opaque structure to represent an input manager */ typedef struct _Elput_Manager Elput_Manager; +/* opaque structure to represent an input seat */ +typedef struct _Elput_Seat Elput_Seat; + +/* opaque structure to represent an input device */ +typedef struct _Elput_Device Elput_Device; + +/* opaque structure to represent a keyboard */ +typedef struct _Elput_Keyboard Elput_Keyboard; + +/* opaque structure to represent a mouse */ +typedef struct _Elput_Pointer Elput_Pointer; + +/* opaque structure to represent a touch device */ +typedef struct _Elput_Touch Elput_Touch; + /** * @file * @brief Ecore functions for dealing with libinput diff --git a/src/lib/elput/elput_evdev.c b/src/lib/elput/elput_evdev.c new file mode 100644 index 000..4c34738 --- /dev/null +++ b/src/lib/elput/elput_evdev.c @@ -0,0 +1,464 @@ +#include "elput_private.h" + +static void +_seat_caps_update(Elput_Seat *seat) +{ + /* TODO: raise event for seat caps */ +} + +static int +_keyboard_fd_get(off_t size) +{ + int fd = 0, blen = 0, len = 0; + const char *path; + char tmp[PATH_MAX]; + long flags; + + blen = sizeof(tmp) - 1; + + if (!(path = getenv("XDG_RUNTIME_DIR"))) + return -1; + + len = strlen(path); + if (len < blen) + { +strcpy(tmp, path); +strcat(tmp, "/elput-keymap-XX"); + } + else + return -1; + + if ((fd = mkstemp(tmp)) < 0) return -1; + + flags = fcntl(fd, F_GETFD); + if (flags < 0) + { +close(fd); +return -1; + } + + if (fcntl(fd, F_SETFD, (flags | FD_CLOEXEC)) == -1) + { +close(fd); +return -1; + } + + if (ftruncate(fd, size) < 0) + { +close(fd); +return -1; + } + + unlink(tmp); + return fd; +} + +static Elput_Keyboard_Info * +_keyboard_info_create(struct xkb_keymap *keymap, Eina_Bool external) +{ + Elput_Keyboard_Info *info; + char *str; + + info = calloc(1, sizeof(Elput_Keyboard_Info)); + if (!info) return NULL; + + info->keymap.map = xkb_keymap_ref(keymap); + info->refs = 1; + + info->mods.super = + 1 << xkb_keymap_mod_get_index(info->keymap.map, XKB_MOD_NAME_LOGO); + info->mods.shift = + 1 << xkb_keymap_mod_get_index(info->keymap.map, XKB_MOD_NAME_SHIFT); + info->mods.caps = + 1 << xkb_keymap_mod_get_index(info->keymap.map, XKB_MOD_NAME_CAPS); + info->mods.ctrl = + 1 << xkb_keymap_mod_get_index(info->keymap.map, XKB_MOD_NAME_CTRL); + info->mods.alt = + 1 << xkb_keymap_mod_get_index(info->keymap.map, XKB_MOD_NAME_ALT); + info->mods.altgr = + 1 << xkb_keymap_mod_get_index(info->keymap.map, "ISO_Level3_Shift"); + + /* if we are using an external keymap then we do not need go further */ + if (external) return info; + + str = xkb_keymap_get_as_string(info->keymap.map, XKB_KEYMAP_FORMAT_TEXT_V1); + if (!str) goto err; + + info->keymap.size = strlen(str) + 1; + + info->keymap.fd = _keyboard_fd_get(info->keymap.size); + if (info->keymap.fd < 0) goto err_fd; + + info->keymap.area = + mmap(NULL, info->keymap.size, PROT_READ | PROT_WRITE, + MAP_SHARED, info->keymap.fd, 0); + if (info->keymap.area == MAP_FAILED) goto err_map; + + strcpy(info->keymap.area, str); + free(str); + + return info; + +err_map: + close(info->keymap.fd); +err_fd: + free(str); +err: + xkb_keymap_unref(info->keymap.map); + free(info); + return NULL; +} + +static void +_keyboard_info_destroy(Elput_Keyboard_Info *info, Eina_Bool external) +{ + if (--info->refs > 0) return; + + if (!external) + { +xkb_keymap_unref(info->keymap.map); +if (info->keymap.area) munmap(info->keymap.area, info->keymap.size); +
[EGIT] [core/efl] master 03/16: elput: Add input manager interface and APIs to connect & disconnect
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ed3a1f39587187c8acf305fd793f92218995c486 commit ed3a1f39587187c8acf305fd793f92218995c486 Author: Chris Michael Date: Thu Mar 31 12:34:32 2016 -0400 elput: Add input manager interface and APIs to connect & disconnect This commit adds the start of the Elput Manager & Interface code. This will be used as an inteface to various backend methods of session & device control (ie: systemd, direct interface, etc). This will provide various abstractions for working with libinput when opening/closing input devices. Signed-off-by: Chris Michael --- src/Makefile_Elput.am | 2 + src/lib/elput/Elput.h | 36 src/lib/elput/elput_logind.c | 450 ++ src/lib/elput/elput_manager.c | 39 src/lib/elput/elput_private.h | 32 +++ 5 files changed, 559 insertions(+) diff --git a/src/Makefile_Elput.am b/src/Makefile_Elput.am index 851d4ee..3e1ed58 100644 --- a/src/Makefile_Elput.am +++ b/src/Makefile_Elput.am @@ -9,6 +9,8 @@ dist_installed_elputmainheaders_DATA = \ lib/elput/Elput.h lib_elput_libelput_la_SOURCES = \ +lib/elput/elput_logind.c \ +lib/elput/elput_manager.c \ lib/elput/elput.c \ lib/elput/elput_private.h diff --git a/src/lib/elput/Elput.h b/src/lib/elput/Elput.h index 7c88e4b..e098b13 100644 --- a/src/lib/elput/Elput.h +++ b/src/lib/elput/Elput.h @@ -25,6 +25,9 @@ # ifdef EFL_BETA_API_SUPPORT +/* opaque structure to represent an input manager */ +typedef struct _Elput_Manager Elput_Manager; + /** * @file * @brief Ecore functions for dealing with libinput @@ -35,6 +38,7 @@ * Elput provides a wrapper and functions for using libinput * * @li @ref Elput_Init_Group + * @li @ref Elput_Manager_Group * */ @@ -66,6 +70,38 @@ EAPI int elput_init(void); */ EAPI int elput_shutdown(void); +/** + * @defgroup Elput_Manager_Group + * + * Functions that deal with connecting, disconnecting, opening, closing + * of input devices. + * + */ + +/** + * Create an input manager on the specified seat + * + * @param seat + * @param tty + * @param sync + * + * @return A Elput_Manager on success, NULL on failure + * + * @ingroup Elput_Manager_Group + * @since 1.18 + */ +EAPI Elput_Manager *elput_manager_connect(const char *seat, unsigned int tty, Eina_Bool sync); + +/** + * Disconnect an input manager + * + * @param manager + * + * @ingroup Elput_Manager_Group + * @since 1.18 + */ +EAPI void elput_manager_disconnect(Elput_Manager *manager); + # endif # undef EAPI diff --git a/src/lib/elput/elput_logind.c b/src/lib/elput/elput_logind.c new file mode 100644 index 000..d649bf3 --- /dev/null +++ b/src/lib/elput/elput_logind.c @@ -0,0 +1,450 @@ +#include "elput_private.h" + +#ifdef HAVE_SYSTEMD + +static void +_logind_device_pause_complete(Elput_Manager *em, uint32_t major, uint32_t minor) +{ + Eldbus_Proxy *proxy; + Eldbus_Message *msg; + + proxy = + eldbus_proxy_get(em->dbus.obj, "org.freedesktop.login1.Session"); + if (!proxy) + { +ERR("Could not get proxy for session"); +return; + } + + msg = eldbus_proxy_method_call_new(proxy, "PauseDeviceComplete"); + if (!msg) + { +ERR("Could not create method call for proxy"); +goto end; + } + + eldbus_message_arguments_append(msg, "uu", major, minor); + + eldbus_proxy_send(proxy, msg, NULL, NULL, -1); + +end: + eldbus_message_unref(msg); + eldbus_proxy_unref(proxy); +} + +static void +_cb_session_removed(void *data, const Eldbus_Message *msg) +{ + Elput_Manager *em; + const char *errname, *errmsg; + const char *sid; + + em = data; + + if (eldbus_message_error_get(msg, &errname, &errmsg)) + { +ERR("Eldbus Message Error: %s %s", errname, errmsg); +return; + } + + if (eldbus_message_arguments_get(msg, "s", &sid)) + { +if (!strcmp(sid, em->sid)) + { + WRN("Logind session removed"); + /* TODO: call manager restore function */ + } + } +} + +static void +_cb_device_paused(void *data, const Eldbus_Message *msg) +{ + Elput_Manager *em; + const char *errname, *errmsg; + const char *type; + uint32_t maj, min; + + em = data; + + if (eldbus_message_error_get(msg, &errname, &errmsg)) + { +ERR("Eldbus Message Error: %s %s", errname, errmsg); +return; + } + + if (eldbus_message_arguments_get(msg, "uus", &maj, &min, &type)) + { +if (!strcmp(type, "pause")) + _logind_device_pause_complete(em, maj, min); + +/* TODO */ +/* if ((em->sync) && (maj == DRM_MAJOR)) */ +/* _ecore_drm2_launcher_activate_send(em, EINA_FALSE); */ + } +} + +static void +_cb_device_resumed(void *data, const Eldbus_Message *msg) +{ + Elput_Manager *em; + const char *errname, *errmsg; + uint32_t maj, min; + int fd; + + em = data; + + if (el
[EGIT] [core/efl] master 10/16: elput: Create and send seat frame events when we need to
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=5db91e3802bd7084a2df7c79300e91e7b0d10ce6 commit 5db91e3802bd7084a2df7c79300e91e7b0d10ce6 Author: Chris Michael Date: Wed Apr 6 10:38:08 2016 -0400 elput: Create and send seat frame events when we need to Signed-off-by: Chris Michael --- src/lib/elput/Elput.h | 7 +++ src/lib/elput/elput.c | 3 +++ src/lib/elput/elput_evdev.c | 17 + 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src/lib/elput/Elput.h b/src/lib/elput/Elput.h index 90cfe77..97b184b 100644 --- a/src/lib/elput/Elput.h +++ b/src/lib/elput/Elput.h @@ -52,7 +52,14 @@ typedef struct _Elput_Event_Seat_Caps Elput_Seat *seat; } Elput_Event_Seat_Caps; +/* structure to represent event for seat frame */ +typedef struct _Elput_Event_Seat_Frame +{ + Elput_Seat *seat; +} Elput_Event_Seat_Frame; + EAPI extern int ELPUT_EVENT_SEAT_CAPS; +EAPI extern int ELPUT_EVENT_SEAT_FRAME; /** * @file diff --git a/src/lib/elput/elput.c b/src/lib/elput/elput.c index ef2ca6b..9a673da 100644 --- a/src/lib/elput/elput.c +++ b/src/lib/elput/elput.c @@ -7,6 +7,7 @@ static int _elput_init_count = 0; int _elput_log_dom = -1; EAPI int ELPUT_EVENT_SEAT_CAPS = -1; +EAPI int ELPUT_EVENT_SEAT_FRAME = -1; EAPI int elput_init(void) @@ -26,6 +27,7 @@ elput_init(void) } ELPUT_EVENT_SEAT_CAPS = ecore_event_type_new(); + ELPUT_EVENT_SEAT_FRAME = ecore_event_type_new(); return _elput_init_count; @@ -48,6 +50,7 @@ elput_shutdown(void) if (--_elput_init_count != 0) return _elput_init_count; ELPUT_EVENT_SEAT_CAPS = -1; + ELPUT_EVENT_SEAT_FRAME = -1; eina_log_domain_unregister(_elput_log_dom); _elput_log_dom = -1; diff --git a/src/lib/elput/elput_evdev.c b/src/lib/elput/elput_evdev.c index a0dc07e..2036d17 100644 --- a/src/lib/elput/elput_evdev.c +++ b/src/lib/elput/elput_evdev.c @@ -16,6 +16,18 @@ _seat_caps_update(Elput_Seat *seat) ecore_event_add(ELPUT_EVENT_SEAT_CAPS, ev, NULL, NULL); } +static void +_seat_frame_send(Elput_Seat *seat) +{ + Elput_Event_Seat_Frame *ev; + + ev = calloc(1, sizeof(Elput_Event_Seat_Frame)); + if (!ev) return; + + ev->seat = seat; + ecore_event_add(ELPUT_EVENT_SEAT_FRAME, ev, NULL, NULL); +} + static int _keyboard_fd_get(off_t size) { @@ -373,10 +385,7 @@ _evdev_event_process(struct libinput_event *event) Elput_Device *edev; edev = libinput_device_get_user_data(idev); -if (edev) - { - /* TODO: send seat frame event ?? */ - } +if (edev) _seat_frame_send(edev->seat); } return ret; --
[EGIT] [core/efl] master 04/16: elput: Add API functions to open and close an input device
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=1ce6cd438244d644a63e6d1ab1dde88633bba34e commit 1ce6cd438244d644a63e6d1ab1dde88633bba34e Author: Chris Michael Date: Fri Apr 1 09:12:36 2016 -0400 elput: Add API functions to open and close an input device This adds new API functions which can be called to open or close an input device and take control (or release control) of said device Signed-off-by: Chris Michael --- src/lib/elput/Elput.h | 25 + src/lib/elput/elput_logind.c | 122 +- src/lib/elput/elput_manager.c | 25 + src/lib/elput/elput_private.h | 1 + 4 files changed, 171 insertions(+), 2 deletions(-) diff --git a/src/lib/elput/Elput.h b/src/lib/elput/Elput.h index e098b13..44a861c 100644 --- a/src/lib/elput/Elput.h +++ b/src/lib/elput/Elput.h @@ -102,6 +102,31 @@ EAPI Elput_Manager *elput_manager_connect(const char *seat, unsigned int tty, Ei */ EAPI void elput_manager_disconnect(Elput_Manager *manager); +/** + * Request input manager to open a file + * + * @param manager + * @param path + * @param flags + * + * @return Filedescriptor of opened file or -1 on failure + * + * @ingroup Elput_Manager_Group + * @since 1.18 + */ +EAPI int elput_manager_open(Elput_Manager *manager, const char *path, int flags); + +/** + * Request input manager to close a file + * + * @param manager + * @param fd + * + * @ingroup Elput_Manager_Group + * @since 1.18 + */ +EAPI void elput_manager_close(Elput_Manager *manager, int fd); + # endif # undef EAPI diff --git a/src/lib/elput/elput_logind.c b/src/lib/elput/elput_logind.c index d649bf3..ec3cb7e 100644 --- a/src/lib/elput/elput_logind.c +++ b/src/lib/elput/elput_logind.c @@ -302,6 +302,78 @@ end: eldbus_proxy_unref(proxy); } +static int +_logind_device_take(Elput_Manager *em, uint32_t major, uint32_t minor) +{ + Eldbus_Proxy *proxy; + Eldbus_Message *msg, *reply; + Eina_Bool p = EINA_FALSE; + const char *errname, *errmsg; + int fd = -1; + + proxy = + eldbus_proxy_get(em->dbus.obj, "org.freedesktop.login1.Session"); + if (!proxy) + { +ERR("Could not get dbus proxy"); +return -1; + } + + msg = eldbus_proxy_method_call_new(proxy, "TakeDevice"); + if (!msg) + { +ERR("Could not create method call for proxy"); +goto err; + } + + eldbus_message_arguments_append(msg, "uu", major, minor); + + reply = eldbus_proxy_send_and_block(proxy, msg, -1); + if (eldbus_message_error_get(reply, &errname, &errmsg)) + { +ERR("Eldbus Message Error: %s %s", errname, errmsg); +goto err; + } + + if (!eldbus_message_arguments_get(reply, "hb", &fd, &p)) + ERR("Could not get UNIX_FD from dbus message"); + + eldbus_message_unref(reply); + +err: + eldbus_proxy_unref(proxy); + return fd; +} + +static void +_logind_device_release(Elput_Manager *em, uint32_t major, uint32_t minor) +{ + Eldbus_Proxy *proxy; + Eldbus_Message *msg; + + proxy = + eldbus_proxy_get(em->dbus.obj, "org.freedesktop.login1.Session"); + if (!proxy) + { +ERR("Could not get proxy for session"); +return; + } + + msg = eldbus_proxy_method_call_new(proxy, "ReleaseDevice"); + if (!msg) + { +ERR("Could not create method call for proxy"); +goto end; + } + + eldbus_message_arguments_append(msg, "uu", major, minor); + + eldbus_proxy_send(proxy, msg, NULL, NULL, -1); + +end: + eldbus_proxy_unref(proxy); +} + static Eina_Bool _logind_activate(Elput_Manager *em) { @@ -437,12 +509,58 @@ _logind_disconnect(Elput_Manager *em) free(em); } +static int +_logind_open(Elput_Manager *em, const char *path, int flags) +{ + struct stat st; + int ret, fd = -1; + int fl; + + ret = stat(path, &st); + if (ret < 0) return -1; + + if (!S_ISCHR(st.st_mode)) return -1; + + fd = _logind_device_take(em, major(st.st_rdev), minor(st.st_rdev)); + if (fd < 0) return fd; + + fl = fcntl(fd, F_GETFL); + if (fl < 0) goto err; + + if (flags & O_NONBLOCK) + fl |= O_NONBLOCK; + + ret = fcntl(fd, F_SETFL, fl); + if (ret < 0) goto err; + + return fd; + +err: + close(fd); + _logind_device_release(em, major(st.st_rdev), minor(st.st_rdev)); + return -1; +} + +static void +_logind_close(Elput_Manager *em, int fd) +{ + struct stat st; + int ret; + + ret = fstat(fd, &st); + if (ret < 0) return; + + if (!S_ISCHR(st.st_mode)) return; + + _logind_device_release(em, major(st.st_rdev), minor(st.st_rdev)); +} + Elput_Interface _logind_interface = { _logind_connect, _logind_disconnect, - NULL, - NULL, + _logind_open, + _logind_close, NULL, NULL, }; diff --git a/src/lib/elput/elput_manager.c b/src/lib/elput/elput_manager.c index 2073ff7..3dc67d9 100644 --- a/src/lib/elput/elput_manager.c +++ b/src/lib/elput/elput_manager.c @@ -37,3 +37,28 @@ elput_manager_disc
[EGIT] [core/efl] master 01/16: elput: Initial checkin of elput library
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=f8964fcf2e4681ab77e0cf37c96e9994d25b19fd commit f8964fcf2e4681ab77e0cf37c96e9994d25b19fd Author: Chris Michael Date: Thu Mar 24 11:19:31 2016 -0400 elput: Initial checkin of elput library The elput library is an efl abstraction for the libinput library which can be used by various other subsystems (ecore_fb, ecore_drm, etc) to handle interfacing with libinput without having to duplicate the code in each subsystem. Signed-off-by: Chris Michael --- Makefile.am | 4 +++ configure.ac | 71 + pc/elput.pc.in| 12 +++ src/Makefile.am | 1 + src/Makefile_Elput.am | 28 src/lib/elput/Elput.h | 74 +++ src/lib/elput/elput.c | 55 src/lib/elput/elput_private.h | 57 + 8 files changed, 302 insertions(+) diff --git a/Makefile.am b/Makefile.am index c2422db..564f332 100644 --- a/Makefile.am +++ b/Makefile.am @@ -286,6 +286,10 @@ if HAVE_ECORE_BUFFER pkgconfig_DATA += pc/ecore-buffer.pc endif +if HAVE_ELPUT +pkgconfig_DATA += pc/elput.pc +endif + # Cmake configs: efl_cmakeconfigdir = $(libdir)/cmake/Efl/ efl_cmakeconfig_DATA = \ diff --git a/configure.ac b/configure.ac index 44daa45..f34bac8 100644 --- a/configure.ac +++ b/configure.ac @@ -1984,6 +1984,17 @@ AC_ARG_ENABLE([ecore-buffer], ], [want_ecore_buffer="no"]) +AC_ARG_ENABLE([elput], + [AS_HELP_STRING([--enable-elput],[enable elput library. @<:@default=disabled@:>@])], + [ +if test "x${enableval}" = "xyes" ; then + want_elput="yes" +else + want_elput="no" +fi + ], + [want_elput="no"]) + # Image Loaders ARG_ENABLE_EVAS_IMAGE_LOADER(BMP, static) @@ -3566,6 +3577,64 @@ EFL_LIB_END_OPTIONAL([Ecore_Drm]) End of Ecore_Drm + Elput +have_libinput_new="no" +EFL_LIB_START_OPTIONAL([Elput], [test "${want_elput}" = "yes"]) + +### Additional options to configure +SUID_CFLAGS=-fPIE +SUID_LDFLAGS=-pie +AC_SUBST([SUID_CFLAGS]) +AC_SUBST([SUID_LDFLAGS]) + +### Default values + +### Checks for programs + +### Checks for libraries +EFL_INTERNAL_DEPEND_PKG([ELPUT], [ecore]) +EFL_INTERNAL_DEPEND_PKG([ELPUT], [ecore-input]) +EFL_INTERNAL_DEPEND_PKG([ELPUT], [eldbus]) +EFL_INTERNAL_DEPEND_PKG([ELPUT], [eeze]) +EFL_INTERNAL_DEPEND_PKG([ELPUT], [eo]) +EFL_INTERNAL_DEPEND_PKG([ELPUT], [eina]) + +EFL_DEPEND_PKG([ELPUT], [LIBINPUT], [libinput >= 0.6.0 xkbcommon >= 0.3.0]) + +EFL_ADD_LIBS([ELPUT], [-lm]) + +# API change from 0.7 to 0.8. So we define this to support both for now. +PKG_CHECK_EXISTS([libinput >= 0.8.0], + [have_libinput_new="yes"], + [have_libinput_new="no"]) +AC_MSG_CHECKING([Use new libinput API (newer than 0.8.0)]) +AC_MSG_RESULT([${have_libinput_new}]) +if test "x${have_libinput_new}" = "xyes";then + AC_DEFINE_UNQUOTED([LIBINPUT_HIGHER_08], [1], [libinput version >= 0.8]) +fi +if test "x${have_libinput_new}" = "xno";then + AC_DEFINE_UNQUOTED([LIBINPUT_HIGHER_08], [0], [libinput version >= 0.8]) +fi + + +EFL_EVAL_PKGS([ELPUT]) + +### Checks for header files + +### Checks for types + +### Checks for structures + +### Checks for compiler characteristics + +### Checks for linker characteristics + +### Checks for library functions + +EFL_LIB_END_OPTIONAL([Elput]) + End of Ecore_Drm + + Ecore_Audio AC_ARG_ENABLE([audio], @@ -5512,6 +5581,7 @@ pc/elocation.pc pc/elua.pc pc/elementary.pc pc/elementary-cxx.pc +pc/elput.pc dbus-services/org.enlightenment.Ethumb.service systemd-services/ethumb.service $po_makefile_in @@ -5680,6 +5750,7 @@ fi echo "Ecore_Audio.: ${efl_lib_optional_ecore_audio} (${features_ecore_audio})" echo "Ecore_Avahi.: yes (${features_ecore_avahi})" echo "Ecore_Evas..: yes (${features_ecore_evas})" +echo "Elput...: $want_elput" echo "Ector...: yes" echo "Eeze: ${efl_lib_optional_eeze} (${features_eeze})" echo "EPhysics: ${efl_lib_optional_ephysics}" diff --git a/pc/elput.pc.in b/pc/elput.pc.in new file mode 100644 index 000..c345022 --- /dev/null +++ b/pc/elput.pc.in @@ -0,0 +1,12 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: elput +Description: E core library, libinput module +Requires.private: @requirements_pc_elput@ +Version: @VERSION@ +Libs: -L${libdir} -lelput +Libs.private: @requirements_libs_elput@ +Cflags: -I${includedir}/efl-@VMAJ@ -I${includedir}/elput-@VMAJ@ diff --git a/src/Makefile.am b/src/Makefile.am index 3aaa2ce..c08d77c 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -70,6 +70,7 @@ include Makefile_Ethumb.am include Makefile_Ethumb_Client.am include Makefile_Elocation.am include Makefile_Elementary.am +include Makefile_Elp
[EGIT] [core/efl] master 15/16: elput: Add API function to set output size on an input device
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=43360ca98a60e20d268251aca00a3650f56d7a84 commit 43360ca98a60e20d268251aca00a3650f56d7a84 Author: Chris Michael Date: Thu Apr 7 09:10:48 2016 -0400 elput: Add API function to set output size on an input device This function is used to adjust device calibration based on size of output Signed-off-by: Chris Michael --- src/lib/elput/Elput.h | 12 src/lib/elput/elput_evdev.c | 67 +++ src/lib/elput/elput_private.h | 1 - 3 files changed, 79 insertions(+), 1 deletion(-) diff --git a/src/lib/elput/Elput.h b/src/lib/elput/Elput.h index 06a027d..a1ac721 100644 --- a/src/lib/elput/Elput.h +++ b/src/lib/elput/Elput.h @@ -245,6 +245,18 @@ EAPI void elput_input_shutdown(Elput_Manager *manager); */ EAPI void elput_device_window_set(Elput_Device *device, unsigned int window); +/** + * Set size of output for input device calibration + * + * @param device + * @param w + * @param h + * + * @ingroup Elput_Device_Group + * @since 1.18 + */ +EAPI void elput_device_output_size_set(Elput_Device *device, int w, int h); + # endif # undef EAPI diff --git a/src/lib/elput/elput_evdev.c b/src/lib/elput/elput_evdev.c index 4b6955d..45ccefb 100644 --- a/src/lib/elput/elput_evdev.c +++ b/src/lib/elput/elput_evdev.c @@ -1131,6 +1131,49 @@ _touch_motion(struct libinput_device *idevice, struct libinput_event_touch *even _touch_motion_send(dev, event); } +static void +_evdev_device_calibrate(Elput_Device *dev) +{ + float cal[6]; + const char *vals; + const char *sysname; + const char *device; + Eina_List *devices; + int w = 0, h = 0; + enum libinput_config_status status; + + w = dev->ow; + h = dev->oh; + if ((w == 0) || (h == 0)) return; + + if ((!libinput_device_config_calibration_has_matrix(dev->device)) || + (libinput_device_config_calibration_get_default_matrix(dev->device, cal))) + return; + + sysname = libinput_device_get_sysname(dev->device); + + devices = eeze_udev_find_by_subsystem_sysname("input", sysname); + EINA_LIST_FREE(devices, device) + { +vals = eeze_udev_syspath_get_property(device, "WL_CALIBRATION"); +if ((!vals) || +(sscanf(vals, "%f %f %f %f %f %f", +&cal[0], &cal[1], &cal[2], &cal[3], &cal[4], &cal[5]) != 6)) + goto cont; + +cal[2] /= w; +cal[5] /= h; + +status = + libinput_device_config_calibration_set_matrix(dev->device, cal); +if (status != LIBINPUT_CONFIG_STATUS_SUCCESS) + WRN("Failed to apply device calibration"); + +cont: +eina_stringshare_del(device); + } +} + int _evdev_event_process(struct libinput_event *event) { @@ -1314,3 +1357,27 @@ elput_device_window_set(Elput_Device *device, unsigned int window) device->window = window; } + +EAPI void +elput_device_output_size_set(Elput_Device *device, int w, int h) +{ + EINA_SAFETY_ON_NULL_RETURN(device); + + device->ow = w; + device->oh = h; + + if (libinput_device_has_capability(device->device, + LIBINPUT_DEVICE_CAP_POINTER)) + { +Elput_Pointer *ptr; + +ptr = _evdev_pointer_get(device->seat); +if (ptr) + { + ptr->x = device->ow / 2; + ptr->y = device->oh / 2; + } + } + + _evdev_device_calibrate(device); +} diff --git a/src/lib/elput/elput_private.h b/src/lib/elput/elput_private.h index 8dc2752..3564161 100644 --- a/src/lib/elput/elput_private.h +++ b/src/lib/elput/elput_private.h @@ -203,7 +203,6 @@ struct _Elput_Device { Elput_Seat *seat; - /* TODO: we will need an API to set this */ uint32_t window; uint32_t ow, oh; --
[EGIT] [core/efl] master 11/16: elput: Add event structures for keymap and modifier sending events
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b01666075d9c89dbba2ca279aa299f429784dec4 commit b01666075d9c89dbba2ca279aa299f429784dec4 Author: Chris Michael Date: Wed Apr 6 13:23:36 2016 -0400 elput: Add event structures for keymap and modifier sending events Signed-off-by: Chris Michael --- src/lib/elput/Elput.h | 18 ++ src/lib/elput/elput.c | 6 ++ src/lib/elput/elput_private.h | 1 + 3 files changed, 25 insertions(+) diff --git a/src/lib/elput/Elput.h b/src/lib/elput/Elput.h index 97b184b..f8808ce 100644 --- a/src/lib/elput/Elput.h +++ b/src/lib/elput/Elput.h @@ -58,8 +58,26 @@ typedef struct _Elput_Event_Seat_Frame Elput_Seat *seat; } Elput_Event_Seat_Frame; +/* structure to represent event for seat keymap changes */ +typedef struct _Elput_Event_Keymap_Send +{ + int fd, format; + size_t size; +} Elput_Event_Keymap_Send; + +/* structure to represent event for seat modifiers changes */ +typedef struct _Elput_Event_Modifiers_Send +{ + unsigned int depressed; + unsigned int latched; + unsigned int locked; + unsigned int group; +} Elput_Event_Modifiers_Send; + EAPI extern int ELPUT_EVENT_SEAT_CAPS; EAPI extern int ELPUT_EVENT_SEAT_FRAME; +EAPI extern int ELPUT_EVENT_KEYMAP_SEND; +EAPI extern int ELPUT_EVENT_MODIFIERS_SEND; /** * @file diff --git a/src/lib/elput/elput.c b/src/lib/elput/elput.c index 9a673da..f65da98 100644 --- a/src/lib/elput/elput.c +++ b/src/lib/elput/elput.c @@ -8,6 +8,8 @@ int _elput_log_dom = -1; EAPI int ELPUT_EVENT_SEAT_CAPS = -1; EAPI int ELPUT_EVENT_SEAT_FRAME = -1; +EAPI int ELPUT_EVENT_KEYMAP_SEND = -1; +EAPI int ELPUT_EVENT_MODIFIERS_SEND = -1; EAPI int elput_init(void) @@ -28,6 +30,8 @@ elput_init(void) ELPUT_EVENT_SEAT_CAPS = ecore_event_type_new(); ELPUT_EVENT_SEAT_FRAME = ecore_event_type_new(); + ELPUT_EVENT_KEYMAP_SEND = ecore_event_type_new(); + ELPUT_EVENT_MODIFIERS_SEND = ecore_event_type_new(); return _elput_init_count; @@ -51,6 +55,8 @@ elput_shutdown(void) ELPUT_EVENT_SEAT_CAPS = -1; ELPUT_EVENT_SEAT_FRAME = -1; + ELPUT_EVENT_KEYMAP_SEND = -1; + ELPUT_EVENT_MODIFIERS_SEND = -1; eina_log_domain_unregister(_elput_log_dom); _elput_log_dom = -1; diff --git a/src/lib/elput/elput_private.h b/src/lib/elput/elput_private.h index 32ab797..4c1b7f1 100644 --- a/src/lib/elput/elput_private.h +++ b/src/lib/elput/elput_private.h @@ -12,6 +12,7 @@ # include "Eldbus.h" # include +# include # include # include # include --
[EGIT] [core/efl] master 05/16: elput: Remove vt activate/restore from input manager interface
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b5422700c05a102d418faa60f93287b7abcf44db commit b5422700c05a102d418faa60f93287b7abcf44db Author: Chris Michael Date: Fri Apr 1 09:49:36 2016 -0400 elput: Remove vt activate/restore from input manager interface As this library is just going to deal with libinput, we don't need to have interface functions to activate or restore a virtual terminal. Signed-off-by: Chris Michael --- src/lib/elput/elput_logind.c | 2 -- src/lib/elput/elput_private.h | 2 -- 2 files changed, 4 deletions(-) diff --git a/src/lib/elput/elput_logind.c b/src/lib/elput/elput_logind.c index ec3cb7e..c89ca2a 100644 --- a/src/lib/elput/elput_logind.c +++ b/src/lib/elput/elput_logind.c @@ -561,8 +561,6 @@ Elput_Interface _logind_interface = _logind_disconnect, _logind_open, _logind_close, - NULL, - NULL, }; #endif diff --git a/src/lib/elput/elput_private.h b/src/lib/elput/elput_private.h index 74532d5..c500a55 100644 --- a/src/lib/elput/elput_private.h +++ b/src/lib/elput/elput_private.h @@ -62,8 +62,6 @@ typedef struct _Elput_Interface void (*disconnect)(Elput_Manager *manager); int (*open)(Elput_Manager *manager, const char *path, int flags); void (*close)(Elput_Manager *manager, int fd); - int (*activate)(Elput_Manager *manager, int vt); - void (*restore)(Elput_Manager *manager); } Elput_Interface; struct _Elput_Manager --
[EGIT] [core/efl] master 07/16: elput: Start code to process events from libinput
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=bd0d4ba60fb9ad88ebb8073d67dfde213937fc8c commit bd0d4ba60fb9ad88ebb8073d67dfde213937fc8c Author: Chris Michael Date: Fri Apr 1 13:22:16 2016 -0400 elput: Start code to process events from libinput Signed-off-by: Chris Michael --- src/lib/elput/elput_input.c | 64 +++-- 1 file changed, 62 insertions(+), 2 deletions(-) diff --git a/src/lib/elput/elput_input.c b/src/lib/elput/elput_input.c index a2a4ccb..c001e52 100644 --- a/src/lib/elput/elput_input.c +++ b/src/lib/elput/elput_input.c @@ -24,10 +24,41 @@ const struct libinput_interface _input_interface = _cb_close_restricted, }; +static int +_udev_process_event(struct libinput_event *event) +{ + Elput_Manager *em; + struct libinput *lib; + struct libinput_device *dev; + int ret = 1; + + lib = libinput_event_get_context(event); + dev = libinput_event_get_device(event); + em = libinput_get_user_data(lib); + + switch (libinput_event_get_type(event)) + { + case LIBINPUT_EVENT_DEVICE_ADDED: +DBG("Input Device Added: %s", libinput_device_get_name(dev)); +/* TODO: add device */ +break; + case LIBINPUT_EVENT_DEVICE_REMOVED: +DBG("Input Device Removed: %s", libinput_device_get_name(dev)); +/* TODO: remove device */ +break; + default: +ret = 0; +break; + } + + return ret; +} + static void _process_event(struct libinput_event *event) { - /* TODO */ + if (_udev_process_event(event)) return; + /* TODO: evdev processing */ } static void @@ -42,9 +73,26 @@ _process_events(Elput_Input *ei) } } +static Eina_Bool +_cb_input_dispatch(void *data, Ecore_Fd_Handler *hdlr EINA_UNUSED) +{ + Elput_Input *ei; + + ei = data; + + if (libinput_dispatch(ei->lib) != 0) + WRN("libinput failed to dispatch events"); + + _process_events(ei); + + return EINA_TRUE; +} + EAPI Eina_Bool elput_input_init(Elput_Manager *manager, const char *seat) { + int fd; + EINA_SAFETY_ON_NULL_RETURN_VAL(manager, EINA_FALSE); memset(&manager->input, 0, sizeof(Elput_Input)); @@ -65,10 +113,20 @@ elput_input_init(Elput_Manager *manager, const char *seat) _process_events(&manager->input); - /* TODO */ + fd = libinput_get_fd(manager->input.lib); + + manager->input.hdlr = + ecore_main_fd_handler_add(fd, ECORE_FD_READ, _cb_input_dispatch, + &manager->input, NULL, NULL); + if (!manager->input.hdlr) + { +ERR("Could not create input fd handler"); +goto hdlr_err; + } return EINA_TRUE; +hdlr_err: seat_err: libinput_unref(manager->input.lib); udev_err: @@ -81,6 +139,8 @@ elput_input_shutdown(Elput_Manager *manager) EINA_SAFETY_ON_NULL_RETURN(manager); EINA_SAFETY_ON_NULL_RETURN(&manager->input); + if (manager->input.hdlr) ecore_main_fd_handler_del(manager->input.hdlr); + /* TODO */ libinput_unref(manager->input.lib); --
[EGIT] [core/efl] master 02/16: elput: Add test framework for Elput library
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=08482e1ca4feaff2c631a125b58fda7e57084b97 commit 08482e1ca4feaff2c631a125b58fda7e57084b97 Author: Chris Michael Date: Thu Mar 24 13:38:44 2016 -0400 elput: Add test framework for Elput library Signed-off-by: Chris Michael --- src/Makefile_Elput.am | 27 +++ src/tests/elput/elput_suite.c | 29 + src/tests/elput/elput_suite.h | 8 src/tests/elput/elput_test_elput.c | 29 + 4 files changed, 93 insertions(+) diff --git a/src/Makefile_Elput.am b/src/Makefile_Elput.am index 73fe8f9..851d4ee 100644 --- a/src/Makefile_Elput.am +++ b/src/Makefile_Elput.am @@ -25,4 +25,31 @@ endif lib_elput_libelput_la_DEPENDENCIES = @ELPUT_INTERNAL_LIBS@ lib_elput_libelput_la_LDFLAGS = @EFL_LTLIBRARY_FLAGS@ +### Unit tests + +if EFL_ENABLE_TESTS + +check_PROGRAMS += tests/elput/elput_suite +TESTS += tests/elput/elput_suite + +tests_elput_elput_suite_SOURCES = \ +tests/elput/elput_suite.c \ +tests/elput/elput_test_elput.c \ +tests/elput/elput_suite.h + +tests_elput_elput_suite_CPPFLAGS = -I$(top_builddir)/src/lib/efl \ +-DTESTS_SRC_DIR=\"$(top_srcdir)/src/tests/elput\" \ +-DTESTS_BUILD_DIR=\"$(top_builddir)/src/tests/elput\" \ +@CHECK_CFLAGS@ \ +@ELPUT_CFLAGS@ + +tests_elput_elput_suite_LDADD = \ +@CHECK_LIBS@ \ +@USE_ELPUT_LIBS@ + +tests_elput_elput_suite_DEPENDENCIES = \ +@USE_ELPUT_INTERNAL_LIBS@ + +endif + endif diff --git a/src/tests/elput/elput_suite.c b/src/tests/elput/elput_suite.c new file mode 100644 index 000..b56b84e --- /dev/null +++ b/src/tests/elput/elput_suite.c @@ -0,0 +1,29 @@ +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "elput_suite.h" +#include "../efl_check.h" + +static const Efl_Test_Case etc[] = +{ +#if HAVE_ELPUT + { "Elput", elput_test_elput }, +#endif + { NULL, NULL } +}; + +int +main(int argc, char **argv) +{ + int count; + + if (!_efl_test_option_disp(argc, argv, etc)) return 0; + + putenv("EFL_RUN_IN_TREE=1"); + + count = + _efl_suite_build_and_run(argc - 1, (const char **)argv + 1, "Elput", etc); + + return (count == 0) ? 0 : 255; +} diff --git a/src/tests/elput/elput_suite.h b/src/tests/elput/elput_suite.h new file mode 100644 index 000..34a7ffd --- /dev/null +++ b/src/tests/elput/elput_suite.h @@ -0,0 +1,8 @@ +#ifndef _ELPUT_SUITE_H +# define _ELPUT_SUITE_H + +# include + +void elput_test_elput(TCase *tc); + +#endif diff --git a/src/tests/elput/elput_test_elput.c b/src/tests/elput/elput_test_elput.c new file mode 100644 index 000..8207ee8 --- /dev/null +++ b/src/tests/elput/elput_test_elput.c @@ -0,0 +1,29 @@ +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include + +#include +#include +#include + +#include "elput_suite.h" + +START_TEST(elput_test_elput_init) +{ + int ret; + + ret = elput_init(); + fail_if(ret < 1); + + ret = elput_shutdown(); + fail_if(ret != 0); +} +END_TEST + +void elput_test_elput(TCase *tc) +{ + tcase_add_test(tc, elput_test_elput_init); +} --
[EGIT] [core/efl] master 01/01: eo: adjust direction of parameters
davemds pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c23a61a49caebca1244fad484cae403bf7a0a0fd commit c23a61a49caebca1244fad484cae403bf7a0a0fd Author: Dave Andreoli Date: Wed Apr 13 20:12:18 2016 +0200 eo: adjust direction of parameters They are OUT params in real Side note: the doc for this function miss the x parameter in the generated .eo.h file ...if someone want to look at the doc generation code. --- src/lib/elementary/elm_widget.eo | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/lib/elementary/elm_widget.eo b/src/lib/elementary/elm_widget.eo index 505feb8..72c41c1 100644 --- a/src/lib/elementary/elm_widget.eo +++ b/src/lib/elementary/elm_widget.eo @@ -520,10 +520,10 @@ abstract Elm.Widget (Evas.Object_Smart, Elm.Interface_Atspi_Accessible, Elm.Inte focus_highlight_geometry_get @const { [[Get the focus highlight geometry of widget.]] params { -@in x: Evas.Coord *; -@in y: Evas.Coord *; -@in w: Evas.Coord *; -@in h: Evas.Coord *; +@out x: Evas.Coord; +@out y: Evas.Coord; +@out w: Evas.Coord; +@out h: Evas.Coord; } } activate { --
[EGIT] [core/efl] master 01/01: eina: Fix promise error with eina_promise_all
felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=35dd5b5cab8fa483b24de4dc1cffa5edc70bbd97 commit 35dd5b5cab8fa483b24de4dc1cffa5edc70bbd97 Author: Felipe Magno de Almeida Date: Wed Apr 13 14:43:43 2016 -0300 eina: Fix promise error with eina_promise_all Fix value_set and error_set signatures which were receiving a owner. They actually receive the promise and not the owner, this caused wrong access to memory and were not visible by warnings because the functions are casted. This problem caused errors in which it seemed that promise had actually error'ed when questioned it. --- src/lib/eina/eina_promise.c| 37 +++ src/tests/eina/eina_test_promise.c | 52 ++ 2 files changed, 73 insertions(+), 16 deletions(-) diff --git a/src/lib/eina/eina_promise.c b/src/lib/eina/eina_promise.c index 9a7c259..459f686 100644 --- a/src/lib/eina/eina_promise.c +++ b/src/lib/eina/eina_promise.c @@ -108,7 +108,6 @@ _eina_promise_then_calls(_Eina_Promise_Default_Owner* promise) } else if (callback->callback) { - fprintf(stderr, "then callback\n"); (*callback->callback)(callback->data, &promise->value[0]); } _eina_promise_unref(&promise->promise); @@ -151,18 +150,18 @@ _eina_promise_del(_Eina_Promise_Default_Owner* promise) } static void * -_eina_promise_buffer_get(_Eina_Promise_Default_Owner* promise) +_eina_promise_owner_buffer_get(_Eina_Promise_Default_Owner* promise) { return &promise->value[0]; } static void * -_eina_promise_value_get(_Eina_Promise_Default_Owner const* promise) +_eina_promise_value_get(_Eina_Promise_Default const* p) { - if (promise->promise.has_finished) + _Eina_Promise_Default_Owner const* promise = EINA_PROMISE_GET_OWNER(p); + if (promise->promise.has_finished && !promise->promise.has_errored) { -return (void*)(promise->promise.value_size && !promise->promise.has_errored ? - &promise->value[0] : NULL); + return (void*)&promise->value[0]; } else { @@ -171,7 +170,7 @@ _eina_promise_value_get(_Eina_Promise_Default_Owner const* promise) } static void -_eina_promise_value_set(_Eina_Promise_Default_Owner* promise, void* data, Eina_Promise_Free_Cb free) +_eina_promise_owner_value_set(_Eina_Promise_Default_Owner* promise, void* data, Eina_Promise_Free_Cb free) { if (data && promise->promise.value_size) { @@ -198,7 +197,6 @@ _eina_promise_then(_Eina_Promise_Default* p, Eina_Promise_Cb callback, cb->error_cb = error_cb; cb->data = data; promise->promise.then_callbacks = eina_inlist_append(promise->promise.then_callbacks, EINA_INLIST_GET(cb)); - fprintf(stderr, "appending then callback\n"); if (!promise->promise.is_first_then) { @@ -212,7 +210,7 @@ _eina_promise_then(_Eina_Promise_Default* p, Eina_Promise_Cb callback, } static void -_eina_promise_error_set(_Eina_Promise_Default_Owner* promise, Eina_Error error) +_eina_promise_owner_error_set(_Eina_Promise_Default_Owner* promise, Eina_Error error) { promise->promise.error = error; promise->promise.has_errored = EINA_TRUE; @@ -231,11 +229,11 @@ _eina_promise_finish(_Eina_Promise_Default_Owner* promise) } static Eina_Error -_eina_promise_error_get(_Eina_Promise_Default_Owner const* promise) +_eina_promise_error_get(_Eina_Promise_Default const* promise) { - if (promise->promise.has_errored) + if (promise->has_errored) { -return promise->promise.error; +return promise->error; } else { @@ -292,6 +290,12 @@ _eina_promise_value_size_get(_Eina_Promise_Default_Owner const* promise) return promise->promise.value_size; } +static size_t +_eina_promise_owner_value_size_get(_Eina_Promise_Default_Owner const* promise) +{ + return promise->promise.value_size; +} + static void _eina_promise_ref(_Eina_Promise_Default* p) { @@ -377,12 +381,13 @@ eina_promise_default_add(int value_size) memset(&p->promise.cancel_callbacks, 0, sizeof(p->promise.cancel_callbacks)); p->promise.value_size = value_size; p->promise.value_free_cb = NULL; + p->promise.error = 0; p->owner_vtable.version = EINA_PROMISE_VERSION; - p->owner_vtable.value_set = EINA_FUNC_PROMISE_OWNER_VALUE_SET(_eina_promise_value_set); - p->owner_vtable.error_set = EINA_FUNC_PROMISE_OWNER_ERROR_SET(_eina_promise_error_set); - p->owner_vtable.buffer_get = EINA_FUNC_PROMISE_OWNER_BUFFER_GET(_eina_promise_buffer_get); - p->owner_vtable.value_size_get = EINA_FUNC_PROMISE_OWNER_VALUE_SIZE_GET(_eina_promise_value_size_get); + p->owner_vtable.value_set = EINA_FUNC_PROMISE_OWNER_VALUE_SET(_eina_promise_owner_value_set); + p->owner_vtable.error_set = EINA_FUNC_PROMISE_OWNER_ERROR_SET(_eina_promise_owner_error_set); + p->owner_vtable.buffer_get = EINA_FUNC_PROMISE_OWNER_BUFFER_GET(_e
[EGIT] [core/efl] master 01/01: ecore-drm: Don't leak object properties
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=acc1a5dcc033733b6085d1b5c2595fe54a042829 commit acc1a5dcc033733b6085d1b5c2595fe54a042829 Author: Chris Michael Date: Wed Apr 13 12:55:59 2016 -0400 ecore-drm: Don't leak object properties When fetching possible planes for an output, we end up leaking object properties here as these were never freed. @fix Signed-off-by: Chris Michael --- src/lib/ecore_drm/ecore_drm_output.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib/ecore_drm/ecore_drm_output.c b/src/lib/ecore_drm/ecore_drm_output.c index be926c6..1de8735 100644 --- a/src/lib/ecore_drm/ecore_drm_output.c +++ b/src/lib/ecore_drm/ecore_drm_output.c @@ -530,6 +530,8 @@ _ecore_drm_output_planes_get(Ecore_Drm_Output *output) drmModeFreeProperty(prop); } +drmModeFreeObjectProperties(props); + output->planes = eina_list_append(output->planes, eplane); free_plane: --
[EGIT] [bindings/cxx/eflxx] master 01/01: fixed compile emotionxx again
andreas pushed a commit to branch master. http://git.enlightenment.org/bindings/cxx/eflxx.git/commit/?id=5cc6c82781fed44bb9159939c5d59567419f60a7 commit 5cc6c82781fed44bb9159939c5d59567419f60a7 Author: Andreas Volz Date: Wed Apr 13 18:46:41 2016 +0200 fixed compile emotionxx again --- eflxx_examples/configure.ac | 2 +- eflxx_examples/src/Makefile.am | 1 + emotionxx/include/emotionxx/Object.h | 3 +++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/eflxx_examples/configure.ac b/eflxx_examples/configure.ac index dc97d27..84f1a02 100644 --- a/eflxx_examples/configure.ac +++ b/eflxx_examples/configure.ac @@ -3,7 +3,7 @@ dnl Created by Anjuta application wizard. AC_INIT(eflxx_examples, 0.1) -AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION) +AM_INIT_AUTOMAKE AC_CONFIG_HEADERS([config.h]) AC_CONFIG_MACRO_DIR([m4]) AM_MAINTAINER_MODE diff --git a/eflxx_examples/src/Makefile.am b/eflxx_examples/src/Makefile.am index 6cc830f..1fe7d7e 100644 --- a/eflxx_examples/src/Makefile.am +++ b/eflxx_examples/src/Makefile.am @@ -18,6 +18,7 @@ SUBDIRS = \ eetxx \ debug \ signals \ + emotionxx \ elementaryxx \ einaxx diff --git a/emotionxx/include/emotionxx/Object.h b/emotionxx/include/emotionxx/Object.h index b528e64..a65f079 100644 --- a/emotionxx/include/emotionxx/Object.h +++ b/emotionxx/include/emotionxx/Object.h @@ -2,7 +2,10 @@ #define EMOTIONXX_OBJECT_H /* EFL */ +extern "C" +{ #include +} /* EFL++ */ #include --
[EGIT] [core/efl] master 03/05: docs: add nstate widget to elm widget list index
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c60b2500c74ead05fe49a5ba73e693a5d439dac3 commit c60b2500c74ead05fe49a5ba73e693a5d439dac3 Author: Stefan Schmidt Date: Wed Apr 13 16:34:55 2016 +0200 docs: add nstate widget to elm widget list index --- doc/index_elm.dox | 4 1 file changed, 4 insertions(+) diff --git a/doc/index_elm.dox b/doc/index_elm.dox index 1ac6e76..b40239a 100644 --- a/doc/index_elm.dox +++ b/doc/index_elm.dox @@ -173,6 +173,10 @@ * * @image html img/widget/notify/preview-00.png * @image latex img/widget/notify/preview-00.eps + * @li @ref Elm_Nstate + * + * @image html img/widget/nstate/preview-00.png + * @image latex img/widget/nstate/preview-00.eps * @li @ref Elm_Panel * * @image html img/widget/panel/preview-00.png --
[EGIT] [core/efl] master 02/05: docs: make elementary docs available form main doc page
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=a1663b171022819643a598978c9665454f80fc71 commit a1663b171022819643a598978c9665454f80fc71 Author: Stefan Schmidt Date: Wed Apr 13 15:06:52 2016 +0200 docs: make elementary docs available form main doc page While elm docs have been merged in they never have been accessible from the main page of our docs. Fix this by including elm_intro.h and referencing it from the main page. While we are at it rename it to the scheme we used in EFL. Another missing piece was the index with all widget references. Never brought over form the elm legacy tree. Putting this in and we are now at least able to navigate to all elm widget pages. --- doc/Doxyfile.in | 2 + doc/index_elm.dox | 327 ++ doc/main.dox | 1 + elm_intro.h.in| 2 +- 4 files changed, 331 insertions(+), 1 deletion(-) diff --git a/doc/Doxyfile.in b/doc/Doxyfile.in index f4e2e2f..50470a8 100644 --- a/doc/Doxyfile.in +++ b/doc/Doxyfile.in @@ -595,6 +595,8 @@ WARN_LOGFILE = INPUT = @top_srcdir@/src/lib \ @top_srcdir@/src/bindings \ + @top_srcdir@/elm_intro.h \ + @srcdir@/index_elm.dox \ @srcdir@/main.dox \ @srcdir@/pkgconfig.dox \ @srcdir@/eina_examples.dox \ diff --git a/doc/index_elm.dox b/doc/index_elm.dox new file mode 100644 index 000..1ac6e76 --- /dev/null +++ b/doc/index_elm.dox @@ -0,0 +1,327 @@ +/** + * @page infralist Infrastructure list + * + * Elementary is mostly composed of widgets, but it also contains some + * infrastructure modules that facilitate the use of widgets. These are the + * infrastructure modules: + * @li @ref Elm_App + * @li @ref Elm_Caches + * @li @ref Elm_Cursors + * @li @ref Elm_Debug + * @li @ref Elm_Config + * @li @ref Elm_Engine + * @li @ref Elm_Fonts + * @li @ref Elm_Profile + * @li @ref Elm_Fingers + * @li @ref Elm_Focus + * @li @ref Elm_General + * @li @ref Elm_Gesture_Layer + * @li @ref Elm_Password_last_show + * @li @ref elm-prefs-data + * @li @ref Elm_Start + * @li @ref Elm_Scrolling + * @li @ref Elm_Scrollhints + * @li @ref Elm_Mirroring + * @li @ref Elm_Scaling + * @li @ref Elm_Styles + * @li @ref Elm_Theme + * @li @ref Elm_Transit + * @li @ref Elm_WidgetNavigation + * + * The other two main groups in Elementary are: + * @li @ref widgetslist - These are the widgets you'll compose your UI out of. + * @li @ref containerslist - These are the containers which hold the widgets. + * + * Also see other generic EFL programming guides: + * @li @ref threading + */ +/** + * @page widgetslist Widget list + * + * Here is a list of the widgets and some images to give you an idea of what + * they are: + * @li @ref Elm_Actionslider + * + * @image html img/widget/actionslider/preview-00.png + * @image latex img/widget/actionslider/preview-00.eps + * @li @ref Elm_Bg + * + * @image html img/widget/bg/preview-00.png + * @image latex img/widget/bg/preview-00.eps + * @li @ref Elm_Bubble + * + * @image html img/widget/bubble/preview-00.png + * @image latex img/widget/bubble/preview-00.eps + * @li @ref Elm_Button + * + * @image html img/widget/button/preview-00.png + * @image latex img/widget/button/preview-00.eps + * @li @ref Elm_Calendar + * + * @image html img/widget/calendar/preview-00.png + * @image latex img/widget/calendar/preview-00.eps + * @li @ref Elm_Check + * + * @image html img/widget/check/preview-00.png + * @image latex img/widget/check/preview-00.eps + * @li @ref Elm_Clock + * + * @image html img/widget/clock/preview-00.png + * @image latex img/widget/clock/preview-00.eps + * + * @li @ref Elm_Colorselector + * + * @image html img/widget/colorselector/preview-00.png + * @image latex img/widget/colorselector/preview-00.eps + * @li @ref Elm_Ctxpopup + * + * @image html img/widget/ctxpopup/preview-00.png + * @image latex img/widget/ctxpopup/preview-00.eps + * @li @ref Elm_Combobox + * + * @image html img/widget/combobox/preview-00.png + * @image latex img/widget/combobox/preview-00.eps + * @li @ref Elm_Datetime + * + * @image html img/widget/datetime/preview-00.png + * @image latex img/widget/datetime/preview-00.eps + * @li @ref Elm_Dayselector + * + * @image html img/widget/dayselector/preview-00.png + * @image latex img/widget/dayselector/preview-00.eps + * @li @ref Elm_Diskselector + * + * @image html img/widget/diskselector/preview-00.png + * @image latex img/widget/diskselector/preview-00.eps + * @li @ref Elm_Entry + * + * @image html img/widget/entry/preview-02.png + * @image latex img/widget/entry/preview-02.eps + * @li @ref Elm_File_Selector_Button + * + * @image html img/widget/fileselector_button/preview-00.png + * @image latex img/widget/fileselector_button/preview-00.eps + * @li @ref Elm_File_Selector_Entry + * + * @image html img/
[EGIT] [core/efl] master 04/05: docs: add description for ecore.exe class and events
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=9f63aaca138ea8f849b8772596af1f78fea74e17 commit 9f63aaca138ea8f849b8772596af1f78fea74e17 Author: Stefan Schmidt Date: Wed Apr 13 15:34:11 2016 +0200 docs: add description for ecore.exe class and events --- src/lib/ecore/ecore_exe.eo | 10 -- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/lib/ecore/ecore_exe.eo b/src/lib/ecore/ecore_exe.eo index e85b4d1..32952ee 100644 --- a/src/lib/ecore/ecore_exe.eo +++ b/src/lib/ecore/ecore_exe.eo @@ -39,6 +39,12 @@ enum Ecore.Exe_Flags class Ecore.Exe (Eo.Base, Efl.Control) { + [[Ecore.Exe is responsible for managing portable process spawning. + + With this module you are able to spawn, pause and quit the spawned processes. + An interaction between your process and those spawned is possible using pipes or signals. + ]] + eo_prefix: ecore_obj_exe; methods { @property command { @@ -64,8 +70,8 @@ class Ecore.Exe (Eo.Base, Efl.Control) .command; } events { -data,get: Ecore.Exe_Event_Data; -data,error: Ecore.Exe_Event_Data; +data,get: Ecore.Exe_Event_Data; [[Data received event from the child process]] +data,error: Ecore.Exe_Event_Data; [[Error received event from the child process]] } } --
[EGIT] [core/efl] master 01/05: docs: generate nstate widget preview for documentation
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=74a046fee59c49f08a13e737c742f5dbcb26d563 commit 74a046fee59c49f08a13e737c742f5dbcb26d563 Author: Stefan Schmidt Date: Wed Apr 13 14:34:26 2016 +0200 docs: generate nstate widget preview for documentation The preview example code was already there but not hooked up in our preview screenshot magic. --- doc/Makefile.am | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/Makefile.am b/doc/Makefile.am index b62bb36..26b7df9 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -74,6 +74,7 @@ WGT_PREVIEW = \ mapbuf:preview-00.png:widget_preview_mapbuf:200:200 \ menu:preview-00.png:widget_preview_menu:100:100 \ notify:preview-00.png:widget_preview_notify:60:30 \ + nstate:preview-00.png:widget_preview_nstate:45:28 \ panel:preview-00.png:widget_preview_panel:150:50 \ panes:preview-00.png:widget_preview_panes:200:100 \ photocam:preview-00.png:widget_preview_photocam:243:162 \ --
[EGIT] [core/efl] master 05/05: docs: add descriptions and and more to ecore.idle classes
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=89d63475ae486923e687ecb1c0b03725683fa6fc commit 89d63475ae486923e687ecb1c0b03725683fa6fc Author: Stefan Schmidt Date: Wed Apr 13 16:56:47 2016 +0200 docs: add descriptions and and more to ecore.idle classes --- src/lib/ecore/ecore_idle_enterer.eo | 8 ++-- src/lib/ecore/ecore_idle_exiter.eo | 2 ++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/lib/ecore/ecore_idle_enterer.eo b/src/lib/ecore/ecore_idle_enterer.eo index 2cdc1c8..3250fb5 100644 --- a/src/lib/ecore/ecore_idle_enterer.eo +++ b/src/lib/ecore/ecore_idle_enterer.eo @@ -2,10 +2,14 @@ import ecore_types; class Ecore.Idle.Enterer (Eo.Base) { + [[Setup callbacks to be called when the program enters the idle state. + + Enterer callbacks are good for updating your program's state, if it has a state engine. + ]] eo_prefix: ecore_idle_enterer; methods { before_constructor { - [[Contructor. Will insert the handler at the beginning of the list.]] + [[This constructor will insert the handler at the beginning of the list.]] legacy: null; params { @in func: Ecore_Task_Cb; @@ -13,7 +17,7 @@ class Ecore.Idle.Enterer (Eo.Base) } } after_constructor { - [[Contructor. Will insert the handler at the end of the list.]] + [[This constructor will insert the handler at the end of the list.]] legacy: null; params { @in func: Ecore_Task_Cb; diff --git a/src/lib/ecore/ecore_idle_exiter.eo b/src/lib/ecore/ecore_idle_exiter.eo index dcd5b6b..46e76ca 100644 --- a/src/lib/ecore/ecore_idle_exiter.eo +++ b/src/lib/ecore/ecore_idle_exiter.eo @@ -2,6 +2,8 @@ import ecore_types; class Ecore.Idle.Exiter (Eo.Base) { + [[Setup callbacks to be called when the program exits the idle state.]] + eo_prefix: ecore_idle_exiter; methods { constructor { --
[EGIT] [tools/erigo] master 02/03: Refactoring It_Data
yakov pushed a commit to branch master. http://git.enlightenment.org/tools/erigo.git/commit/?id=a72c3290f55687ccef6179c554f2179e5447595c commit a72c3290f55687ccef6179c554f2179e5447595c Author: Yakov Goldberg Date: Sun Apr 10 18:11:02 2016 +0300 Refactoring It_Data Save Eid* instead of Gui_Widget* --- src/bin/gui/cbview.c | 43 ++- src/bin/gui/contentview.c | 2 +- src/bin/gui/descview.c| 11 ++- src/bin/gui/editor.c | 4 ++-- src/bin/gui/props_helper.c| 9 + src/bin/gui/props_helper.h| 4 ++-- src/bin/gui/propview.c| 7 --- src/bin/gui/simple_propview.c | 9 + 8 files changed, 47 insertions(+), 42 deletions(-) diff --git a/src/bin/gui/cbview.c b/src/bin/gui/cbview.c index c702d01..621c142 100644 --- a/src/bin/gui/cbview.c +++ b/src/bin/gui/cbview.c @@ -47,7 +47,7 @@ _action_type_changed(void *data, const Eo_Event *event) { It_Data *it_data = data; Gui_Widget_Callback *cb = it_data->cb; - Gui_Widget *wdg = (Gui_Widget *) it_data->wdg; + Gui_Widget *wdg = wdg_get(it_data->w_eid); Gui_Context *ctx = (Gui_Context *) wdg_context_get(wdg); void *event_info = event->event_info; @@ -98,7 +98,7 @@ _action_type_changed(void *data, const Eo_Event *event) default: break; } - cbview_build(it_data->wdg); + cbview_build(wdg_get(it_data->w_eid)); cbview_item_selected_set(cb_eid_get(cb)); context_memento_finalize(ctx); @@ -110,7 +110,7 @@ _action_wdg_selected(void *data, Eo *obj EINA_UNUSED, void *event_info) { It_Data *it_data = data; Gui_Widget_Callback *cb = it_data->cb; - Gui_Widget *wdg = (Gui_Widget *) it_data->wdg; + Gui_Widget *wdg = wdg_get(it_data->w_eid); Gui_Context *ctx = (Gui_Context *) wdg_context_get(wdg); Eid *action_id = cb_action_id_get(cb); @@ -132,7 +132,7 @@ _action_wdg_selected(void *data, Eo *obj EINA_UNUSED, void *event_info) context_memento_finalize(ctx); } - cbview_build(it_data->wdg); + cbview_build(wdg_get(it_data->w_eid)); cbview_item_selected_set(cb_eid_get(cb)); } @@ -141,7 +141,7 @@ _action_parent_selected(void *data, const Eo_Event *event) { It_Data *it_data = data; Gui_Widget_Callback *cb = it_data->cb; - Gui_Widget *wdg = (Gui_Widget *) it_data->wdg; + Gui_Widget *wdg = wdg_get(it_data->w_eid); Gui_Context *ctx = (Gui_Context *) wdg_context_get(wdg); void *event_info = event->event_info; @@ -160,7 +160,7 @@ _action_parent_selected(void *data, const Eo_Event *event) context_memento_finalize(ctx); } - cbview_build(it_data->wdg); + cbview_build(wdg_get(it_data->w_eid)); cbview_item_selected_set(cb_eid_get(cb)); return EO_CALLBACK_CONTINUE; } @@ -170,7 +170,7 @@ _action_user_cb_selected(void *data, const Eo_Event *event) { It_Data *it_data = data; Gui_Widget_Callback *cb = it_data->cb; - Gui_Widget *wdg = (Gui_Widget *) it_data->wdg; + Gui_Widget *wdg = wdg_get(it_data->w_eid); Gui_Context *ctx = (Gui_Context *) wdg_context_get(wdg); Eid *action_id = cb_action_id_get(cb); @@ -188,7 +188,7 @@ _action_user_cb_selected(void *data, const Eo_Event *event) context_memento_finalize(ctx); } - cbview_build(it_data->wdg); + cbview_build(wdg_get(it_data->w_eid)); cbview_item_selected_set(cb_eid_get(cb)); return EO_CALLBACK_CONTINUE; } @@ -239,7 +239,7 @@ _action_prop_selected(void *data, const Eo_Event *event) free(_split_ret[0]); free(_split_ret); -cbview_build(it_data->wdg); +cbview_build(wdg_get(it_data->w_eid)); cbview_item_selected_set(cb_eid_get(cb)); context_memento_finalize(_active_context_get()); } @@ -251,7 +251,7 @@ _action_item_selected(void *data, const Eo_Event *event) { It_Data *it_data = data; Gui_Widget_Callback *cb = it_data->cb; - Gui_Context *ctx = (Gui_Context *) wdg_context_get(it_data->wdg); + Gui_Context *ctx = (Gui_Context *) wdg_context_get(wdg_get(it_data->w_eid)); Eid *action_id = cb_action_id_get(cb); Gui_Action *action = action_get(action_id); @@ -290,7 +290,7 @@ _action_prop_update(void *data, Eo *obj, void *event_info) unsigned int par_idx = (unsigned int) (uintptr_t) data; It_Data *it_data = eo_key_data_get(obj, "cb_it_data"); Gui_Widget_Callback *cb = it_data->cb; - Gui_Context *ctx = (Gui_Context *) wdg_context_get(it_data->wdg); + Gui_Context *ctx = (Gui_Context *) wdg_context_get(wdg_get(it_data->w_eid)); Eid *action_id = cb_action_id_get(cb); Gui_Action *action = action_get(action_id); @@ -504,6 +504,7 @@ _item_content_get(void *data, Evas_Object *obj EINA_UNUSED, const char *part EIN { It_Data *it_data = data; const char *default_val = NULL; + Gui_Widget *wdg = wdg_get(it_data->w_eid); // Genlist can call content get without calling delete first // so in that case just return what it alread
[EGIT] [tools/erigo] master 01/03: Adaptation according to changes in Elementary
yakov pushed a commit to branch master. http://git.enlightenment.org/tools/erigo.git/commit/?id=17135f4e4dfc51a14577aacf541f6dcd7fb2a754 commit 17135f4e4dfc51a14577aacf541f6dcd7fb2a754 Author: Yakov Goldberg Date: Sun Apr 10 11:48:47 2016 +0300 Adaptation according to changes in Elementary --- data/config/egui_all.eo | 2 +- data/config/simple_op_db.txt | 24 data/layouts/factory.json | 2 +- src/bin/gui/cbview.c | 2 +- src/bin/gui/descview.c| 2 +- src/bin/gui/editor.c | 9 - src/bin/gui/prop_layout.c | 2 +- src/bin/gui/props_helper.c| 2 +- src/bin/gui/rmview.c | 1 - src/bin/gui/settings_view.c | 4 ++-- src/bin/gui/simple_propview.c | 8 11 files changed, 20 insertions(+), 38 deletions(-) diff --git a/data/config/egui_all.eo b/data/config/egui_all.eo index 746210e..a80d745 100644 --- a/data/config/egui_all.eo +++ b/data/config/egui_all.eo @@ -1,3 +1,3 @@ -class EGUI_ALL (Elm.Win, Elm.Bg, Elm.Box, Elm.Table, Elm.Menu, Elm.Diskselector, Elm.Ctxpopup, Elm.Actionslider, Elm.Bubble, Elm.Button, Elm.Calendar, Elm.Check, Elm.Radio, Elm.Clock, Elm.Colorselector, Elm.Image, Elm.Icon, Elm.Label, Elm.Entry, Elm.Flip, Elm.Genlist, Elm.Gengrid, Elm.Dayselector, Elm.Toolbar, Elm.Layout, Elm.Scroller, Elm.Panes, Elm.Fileselector_Button, Elm.Fileselector_Entry, Elm.Fileselector, Elm.Frame, Elm.Grid, Elm.Panel, Elm.Separator, Elm.Hoversel, Evas.Image, Elm [...] +class EGUI_ALL (Elm.Win, Elm.Bg, Elm.Box, Elm.Table, Elm.Menu, Elm.Diskselector, Elm.Ctxpopup, Elm.Actionslider, Elm.Bubble, Elm.Button, Elm.Calendar, Elm.Check, Elm.Radio, Elm.Clock, Elm.Colorselector, Elm.Image, Elm.Icon, Elm.Label, Elm.Entry, Elm.Flip, Elm.Genlist, Elm.Gengrid, Elm.Dayselector, Elm.Toolbar, Elm.Layout, Elm.Scroller, Elm.Panes, Elm.Fileselector_Button, Elm.Fileselector_Entry, Elm.Fileselector, Elm.Frame, Elm.Grid, Elm.Panel, Elm.Separator, Elm.Hoversel, Evas.Image, Elm [...] { } diff --git a/data/config/simple_op_db.txt b/data/config/simple_op_db.txt index 9a3d33d..45bbb25 100644 --- a/data/config/simple_op_db.txt +++ b/data/config/simple_op_db.txt @@ -49,12 +49,10 @@ Component_Specific_Properties.Autorepeat_Gap_Timeout { Elm.Button.autorepeat_gap_timeout; } -Component_Specific_Properties.UI_Component_Specification.Horizontal { +UI_Component_Specification.Horizontal { Elm.Box.horizontal; Elm.Toolbar.horizontal; - Elm.Slider.horizontal; Elm.Panes.horizontal; - Elm.Progressbar.horizontal; Elm.Hoversel.horizontal; Elm.Separator.horizontal; } @@ -89,19 +87,10 @@ Component_Specific_Properties.Padding { Component_Specific_Properties.Image_Path { Efl.File.file(%0, NULL) for Elm.Image, Elm.Icon, Elm.Entry, Elm.Bg; } -Component_Specific_Properties.No_Scale { - none Elm.Icon; - Elm.Image.no_scale; -} -Component_Specific_Properties.Resizable { +UI_Component_Specification.Orientation { none Elm.Icon; - Elm.Image.resizable; -} - -Component_Specific_Properties.Orientation { - none Elm.Icon; - Efl.Image.orientation; + Efl.Orientation.orientation; } Component_Specific_Properties.Aspect_Fixed { @@ -191,8 +180,7 @@ Component_Specific_Properties.Min_Max { } Component_Specific_Properties.Value { - Elm.Slider.value; - Elm.Progressbar.value; + Efl.Ui.Progress.progress_value; } Component_Specific_Properties.Step { @@ -207,10 +195,6 @@ Component_Specific_Properties.Span_Size { Elm.Progressbar.span_size; } -Component_Specific_Properties.Inverted { - Elm.Progressbar.inverted; -} - Component_Specific_Properties.Collapse { Elm.Frame.collapse; } diff --git a/data/layouts/factory.json b/data/layouts/factory.json index b17027a..4d94b2b 100644 --- a/data/layouts/factory.json +++ b/data/layouts/factory.json @@ -317,7 +317,7 @@ }, "Properties": { -"Elm.Progressbar.value":[0.35], +"Efl.Ui.Progress.progress_value":[0.35], "Evas.Object.size_hint_weight":[1, 1], "Efl.Gfx.Base.visible":[true], "Efl.Gfx.Base.size":[165, 30] diff --git a/src/bin/gui/cbview.c b/src/bin/gui/cbview.c index b219ec1..c702d01 100644 --- a/src/bin/gui/cbview.c +++ b/src/bin/gui/cbview.c @@ -351,7 +351,7 @@ _action_prop_update(void *data, Eo *obj, void *event_info) } if (kl == ELM_CHECK_CLASS) { -Eina_Bool state = elm_obj_check_state_get(obj); +Eina_Bool state = efl_ui_check_selected_get(obj); gui_value_bool_set(val, state); } if (kl == ELM_HOVERSEL_CLASS) diff --git a/src/bin/gui/descview.c b/src/bin/gui/descview.c index a240fd7..4c70e2c 100644 --- a/src/bin/gui/descview.c +++ b/src/bin/gui/descview.c @@ -35,7 +35,7 @@ _wdg_public_change_cb(void *data, const Eo_Event *event) Gui_Widget *wdg = data; Eo *obj = event->obj; Eina_Bool new_state, old_state; - new_state = elm_obj_check_state_ge
[EGIT] [tools/erigo] master 03/03: Fix memory leaks
yakov pushed a commit to branch master. http://git.enlightenment.org/tools/erigo.git/commit/?id=7e7ec9e41e12fa41a6bbf64c11de9a3ad26a30ae commit 7e7ec9e41e12fa41a6bbf64c11de9a3ad26a30ae Author: Yakov Goldberg Date: Sun Apr 10 18:53:29 2016 +0300 Fix memory leaks --- src/bin/gui/cbview.c | 10 ++ src/bin/gui/contentview.c | 1 + src/bin/gui/descview.c| 1 + src/bin/gui/dnd.h | 3 +++ src/bin/gui/editor.c | 19 +++ src/bin/gui/egui_logic.c | 2 +- src/bin/gui/itemview.c| 1 + src/bin/gui/prop_layout.c | 3 +-- src/bin/gui/settings.c| 2 ++ src/bin/gui/simple_propview.c | 2 ++ src/lib/desc_simple_parser.c | 1 + src/lib/gui_parser.c | 3 +++ src/lib/updater.c | 11 +++ 13 files changed, 40 insertions(+), 19 deletions(-) diff --git a/src/bin/gui/cbview.c b/src/bin/gui/cbview.c index 621c142..683b67d 100644 --- a/src/bin/gui/cbview.c +++ b/src/bin/gui/cbview.c @@ -492,13 +492,6 @@ _item_del(void *data, Evas_Object *obj EINA_UNUSED) _it_data_free(it_data); } -static Eina_Bool -_wdgs_struct_free(void *wdgs, const Eo_Event *event EINA_UNUSED) -{ - free(wdgs); - return EINA_TRUE; -} - static Evas_Object * _item_content_get(void *data, Evas_Object *obj EINA_UNUSED, const char *part EINA_UNUSED) { @@ -520,7 +513,6 @@ _item_content_get(void *data, Evas_Object *obj EINA_UNUSED, const char *part EIN { wdgs = egui_layout_cb_item_create(propview_table); eo_key_data_set(wdgs->cb_item, "cb_item_wdgs", wdgs); -eo_event_callback_add(wdgs->cb_item, EO_BASE_EVENT_DEL, _wdgs_struct_free, wdgs); elm_hoversel_item_add(wdgs->cb_action_t_hsel, "Create", NULL, ELM_ICON_NONE, NULL, NULL); elm_hoversel_item_add(wdgs->cb_action_t_hsel, "Modify", NULL, ELM_ICON_NONE, NULL, NULL); elm_hoversel_item_add(wdgs->cb_action_t_hsel, "Invoke", NULL, ELM_ICON_NONE, NULL, NULL); @@ -647,6 +639,8 @@ cbview_build(const Gui_Widget *wdg) { elm_obj_genlist_clear(cb_list); + if (!wdg) return; + Eina_List *classes = eo_class_mro_get(wdg_class_name_get(wdg)); const char *classname; Elm_Object_Item *glit = NULL; diff --git a/src/bin/gui/contentview.c b/src/bin/gui/contentview.c index 58e8eb5..efe7e6d 100644 --- a/src/bin/gui/contentview.c +++ b/src/bin/gui/contentview.c @@ -96,6 +96,7 @@ contentview_build(const Gui_Widget *wdg) It_Data *it_data; elm_obj_genlist_clear(ctn_list); + if (!wdg) return; const char *wdg_name = wdg_obj_container_class_name_get(wdg); Eina_Bool isbox = (wdg_name && diff --git a/src/bin/gui/descview.c b/src/bin/gui/descview.c index ba33d28..ebf5160 100644 --- a/src/bin/gui/descview.c +++ b/src/bin/gui/descview.c @@ -19,6 +19,7 @@ void descview_build(const Gui_Widget *wdg) { elm_obj_genlist_clear(desc_list); + if (!wdg) return; int i; for (i = 0; descs[i]; i++) diff --git a/src/bin/gui/dnd.h b/src/bin/gui/dnd.h index 884bb3e..3e04a3d 100644 --- a/src/bin/gui/dnd.h +++ b/src/bin/gui/dnd.h @@ -26,6 +26,9 @@ drop_item_container_del(Eo *obj); void drag_item_container_set(Eo *obj, double anim_tm, double tm_to_drag, Elm_Drag_Start dragstart, Elm_Drag_Done dragdone); +void +drag_item_container_del(Eo *obj); + const Gui_Widget * dnd_drag_wdg_get(); diff --git a/src/bin/gui/editor.c b/src/bin/gui/editor.c index 93b0d83..7c9ee63 100644 --- a/src/bin/gui/editor.c +++ b/src/bin/gui/editor.c @@ -344,11 +344,12 @@ static void _wdg_border_draw(const Gui_Widget *wdg, Eina_Bool visibility, int border_type_color) { const Gui_Context *ctx = _active_context_get(); - if (!ctx) return; - const Gui_Session *session = gui_context_editor_session_get(ctx); - static Eo *_base_obj_prev = NULL; Eo *obj = NULL; Eo *base_obj = canvas_get(); + + if (!ctx && !visibility) goto hide_borders; + const Gui_Session *session = gui_context_editor_session_get(ctx); + static Eo *_base_obj_prev = NULL; if (wdg) { if (IS_MAIN(wdg)) @@ -436,6 +437,7 @@ _wdg_border_draw(const Gui_Widget *wdg, Eina_Bool visibility, int border_type_co } } +hide_borders: switch (border_type_color) { case BORDER_SELECTION: @@ -3395,6 +3397,7 @@ _editor_selected_wdg_del_cb() context_memento_finalize(ctx); } +static Ecore_Idler *_border_draw_idler = NULL; void editor_shutdown() { @@ -3402,12 +3405,19 @@ editor_shutdown() eo_key_data_del(g->main_win->canvas_scroller, EDITOR_DND_DATA); free(di); drop_target_wdg_del(NULL, g->main_win->canvas_scroller); + drop_item_container_del(g->main_win->objtree_list); + drag_item_container_del(g->main_win->objtree_list); + + ecore_idle_enterer_del(_border_draw_idler); + _border_draw_idler = NULL; target_db_shutdown(); proplayout_shutdown(); objtree_shutdown(); autosave_shutdown(); + elm_obj_grid_clear(canvas_get(), EINA_TRUE); + void *p = (void *)
[EGIT] [tools/eflete] master 05/10: tab_import_edj: fix wrong field filled from command line
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=c719f5d60b59194ad4ab44f4286632eef7d5fb3c commit c719f5d60b59194ad4ab44f4286632eef7d5fb3c Author: Andrii Kroitor Date: Tue Apr 12 15:22:01 2016 +0300 tab_import_edj: fix wrong field filled from command line --- src/bin/ui/tab_home_import_edj.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/ui/tab_home_import_edj.c b/src/bin/ui/tab_home_import_edj.c index e193c1f..5c7e005 100644 --- a/src/bin/ui/tab_home_import_edj.c +++ b/src/bin/ui/tab_home_import_edj.c @@ -463,7 +463,7 @@ _tab_import_edj_data_set(const char *name, const char *path, const char *edj) elm_entry_entry_set(tab_edj.name, name); - if (path) elm_entry_entry_set(tab_edj.name, path); + if (path) elm_entry_entry_set(tab_edj.path, path); else elm_entry_entry_set(tab_edj.path, profile_get()->general.projects_folder); elm_entry_entry_set(tab_edj.edj, edj); --
[EGIT] [tools/eflete] master 10/10: tab_home_new: do not mark widget names for translation
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=23d6ebe27e2f14a7fe5da84a60a88866f0633b22 commit 23d6ebe27e2f14a7fe5da84a60a88866f0633b22 Author: Andrii Kroitor Date: Wed Apr 13 16:48:21 2016 +0300 tab_home_new: do not mark widget names for translation --- src/bin/ui/tab_home_new.c | 110 +++--- 1 file changed, 55 insertions(+), 55 deletions(-) diff --git a/src/bin/ui/tab_home_new.c b/src/bin/ui/tab_home_new.c index 5fb861d..2042aca 100644 --- a/src/bin/ui/tab_home_new.c +++ b/src/bin/ui/tab_home_new.c @@ -35,61 +35,61 @@ typedef struct _Widget_Item_Data Widget_Item_Data; static Widget_Item_Data widget_item_data[] = { - { N_("access"), false }, - { N_("actionslider"), false }, - { N_("bg"), false }, - { N_("border"), false }, - { N_("bubble"), false }, - { N_("button"), false }, - { N_("calendar"), false }, - { N_("check"),false }, - { N_("clock"),false }, - { N_("colorsel"), false }, - { N_("conform"), false }, - { N_("ctxpopup"), false }, - { N_("cursor"), false }, - { N_("datetime"), false }, - { N_("dayselector"), false }, - { N_("diskselector"), false }, - { N_("entry"),false }, - { N_("fileselector"), false }, - { N_("flipselector"), false }, - { N_("focus"),false }, - { N_("frame"),false }, - { N_("gengrid"), false }, - { N_("genlist"), false }, - { N_("hover"),false }, - { N_("icon"), false }, - { N_("index"),false }, - { N_("label"),false }, - { N_("layout"), false }, - { N_("list"), false }, - { N_("map"), false }, - { N_("menu"), false }, - { N_("multibuttonentry"), false }, - { N_("naviframe"),false }, - { N_("notify"), false }, - { N_("panel"),false }, - { N_("panes"),false }, - { N_("photo"),false }, - { N_("photocam"), false }, - { N_("player"), false }, - { N_("pointer"), false }, - { N_("popup"),false }, - { N_("progress"), false }, - { N_("radio"),false }, - { N_("scroller"), false }, - { N_("segment_control"), false }, - { N_("separator"),false }, - { N_("slider"), false }, - { N_("slideshow"),false }, - { N_("spinner"), false }, - { N_("thumb"),false }, - { N_("toolbar"), false }, - { N_("tooltip"), false }, - { N_("video"),false }, - { N_("win"), false }, - { NULL, false } + { "access", false }, + { "actionslider", false }, + { "bg", false }, + { "border", false }, + { "bubble", false }, + { "button", false }, + { "calendar", false }, + { "check",false }, + { "clock",false }, + { "colorsel", false }, + { "conform", false }, + { "ctxpopup", false }, + { "cursor", false }, + { "datetime", false }, + { "dayselector", false }, + { "diskselector", false }, + { "entry",false }, + { "fileselector", false }, + { "flipselector", false }, + { "focus",false }, + { "frame",false }, + { "gengrid", false }, + { "genlist", false }, + { "hover",false }, + { "icon", false }, + { "index",false }, + { "label",false }, + { "layout", false }, + { "list", false }, + { "map", false }, + { "menu", false }, + { "multibuttonentry", false }, + { "naviframe",false }, + { "notify", false }, + { "panel",false }, + { "panes",false }, + { "photo",false }, + { "photocam", false }, + { "player", false }, + { "pointer", false }, + { "popup",false }, + { "progress", false }, + { "radio",false }, + { "scroller", false }, + { "segment_control", false }, + { "separator",false }, + { "slider", false }, + { "slideshow",false }, + { "spinner", false }, + { "thumb",false }, + { "toolbar", false }, + { "tooltip", false }, + { "video",false }, + { "win", false }, + { NULL,
[EGIT] [tools/eflete] master 08/10: demo: apply workspace.scroller's clipper to created live widget
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=66baa6aeb119a25157b7970048d7a75ce150c738 commit 66baa6aeb119a25157b7970048d7a75ce150c738 Author: Vitalii Vorobiov Date: Fri Apr 8 16:22:16 2016 +0300 demo: apply workspace.scroller's clipper to created live widget --- src/bin/ui/live_view/elementary/live_bg.c | 1 + src/bin/ui/live_view/elementary/live_bubble.c | 1 + src/bin/ui/live_view/elementary/live_button.c | 1 + src/bin/ui/live_view/elementary/live_calendar.c | 1 + src/bin/ui/live_view/elementary/live_check.c| 1 + src/bin/ui/live_view/elementary/live_clock.c| 1 + src/bin/ui/live_view/elementary/live_colorselector.c| 1 + src/bin/ui/live_view/elementary/live_custom_layout.c| 1 + src/bin/ui/live_view/elementary/live_datetime.c | 2 ++ src/bin/ui/live_view/elementary/live_entry.c| 1 + src/bin/ui/live_view/elementary/live_frame.c| 1 + src/bin/ui/live_view/elementary/live_gengrid.c | 1 + src/bin/ui/live_view/elementary/live_genlist.c | 1 + src/bin/ui/live_view/elementary/live_label.c| 1 + src/bin/ui/live_view/elementary/live_layout.c | 1 + src/bin/ui/live_view/elementary/live_list.c | 1 + src/bin/ui/live_view/elementary/live_map.c | 1 + src/bin/ui/live_view/elementary/live_multibuttonentry.c | 1 + src/bin/ui/live_view/elementary/live_naviframe.c| 1 + src/bin/ui/live_view/elementary/live_notify.c | 1 + src/bin/ui/live_view/elementary/live_panel.c| 1 + src/bin/ui/live_view/elementary/live_panes.c| 1 + src/bin/ui/live_view/elementary/live_popup.c| 1 + src/bin/ui/live_view/elementary/live_progressbar.c | 1 + src/bin/ui/live_view/elementary/live_radio.c| 1 + src/bin/ui/live_view/elementary/live_scroller.c | 1 + src/bin/ui/live_view/elementary/live_segment_control.c | 1 + src/bin/ui/live_view/elementary/live_separator.c| 1 + src/bin/ui/live_view/elementary/live_slider.c | 1 + src/bin/ui/live_view/elementary/live_spinner.c | 1 + src/bin/ui/live_view/elementary/live_toolbar.c | 1 + 31 files changed, 32 insertions(+) diff --git a/src/bin/ui/live_view/elementary/live_bg.c b/src/bin/ui/live_view/elementary/live_bg.c index 3cd589a..ad67ac2 100644 --- a/src/bin/ui/live_view/elementary/live_bg.c +++ b/src/bin/ui/live_view/elementary/live_bg.c @@ -33,6 +33,7 @@ widget_bg_create(Evas_Object *parent, const Group *group) evas_object_smart_callback_add(object, SIGNAL_DEMO_SIGNAL_SEND, send_signal, NULL); elm_object_style_set(object, group->style); + evas_object_clip_set(object, evas_object_clip_get(parent)); return object; } diff --git a/src/bin/ui/live_view/elementary/live_bubble.c b/src/bin/ui/live_view/elementary/live_bubble.c index 3035ac9..43bb1b9 100644 --- a/src/bin/ui/live_view/elementary/live_bubble.c +++ b/src/bin/ui/live_view/elementary/live_bubble.c @@ -55,6 +55,7 @@ widget_bubble_create(Evas_Object *parent, const Group *group) evas_object_smart_callback_add(object, SIGNAL_DEMO_SIGNAL_SEND, send_signal, NULL); elm_object_style_set(object, group->style); + evas_object_clip_set(object, evas_object_clip_get(parent)); return object; } diff --git a/src/bin/ui/live_view/elementary/live_button.c b/src/bin/ui/live_view/elementary/live_button.c index a0f8e22..00abd7f 100644 --- a/src/bin/ui/live_view/elementary/live_button.c +++ b/src/bin/ui/live_view/elementary/live_button.c @@ -33,6 +33,7 @@ widget_button_create(Evas_Object *parent, const Group *group) evas_object_smart_callback_add(object, SIGNAL_DEMO_SIGNAL_SEND, send_signal, NULL); elm_object_style_set(object, group->style); + evas_object_clip_set(object, evas_object_clip_get(parent)); return object; } diff --git a/src/bin/ui/live_view/elementary/live_calendar.c b/src/bin/ui/live_view/elementary/live_calendar.c index 98579dd..1086825 100644 --- a/src/bin/ui/live_view/elementary/live_calendar.c +++ b/src/bin/ui/live_view/elementary/live_calendar.c @@ -42,6 +42,7 @@ widget_calendar_create(Evas_Object *parent, const Group *group) evas_object_smart_callback_add(object, SIGNAL_DEMO_SIGNAL_SEND, send_signal, NULL); elm_object_style_set(object, group->style); + evas_object_clip_set(object, evas_object_clip_get(parent)); return object; } diff --git a/src/bin/ui/live_view/elementary/live_check.c b/src/bin/ui/live_view/elementary/live_check.c index 15a682f..b893727 100644 --- a/src/bin/ui/live_view/elementary/live_check.c +++ b/src/bin/ui/live_view/elementary/live_check.c @@ -33,6 +33,7 @@ widget_check_create(Evas_Object *parent, const Group *group) evas_object_smart_callback_add(object, SIGNAL_DEMO_SIGNAL_SEND, send_signal, NULL); elm_object_style_set(object, group->style); + evas_object_clip_set(object, evas_o
[EGIT] [tools/eflete] master 04/10: eflete: refactor comandline options
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=ee2eb647329c884603723c36fd70707c926908e5 commit ee2eb647329c884603723c36fd70707c926908e5 Author: Andrii Kroitor Date: Tue Apr 12 10:54:25 2016 +0300 eflete: refactor comandline options Removed flags -o, --import-edj and --replace. Open and import actions are now recognized by file extenstion. Added more checks. Now you cann't start eflete with incorrect options combination. Creating main window only after pasing all checks. --- src/bin/main.c | 114 --- src/bin/ui/main_window.c | 1 - 2 files changed, 79 insertions(+), 36 deletions(-) diff --git a/src/bin/main.c b/src/bin/main.c index 6148554..84cc731 100644 --- a/src/bin/main.c +++ b/src/bin/main.c @@ -28,27 +28,33 @@ #include "tabs_private.h" #include "config.h" -static char *open = NULL; -static char *import_edj = NULL; +static char *file = NULL; static char *pro_name = NULL; static char *pro_path = NULL; -static Eina_Bool pro_replace = false; + +#define _ERR_EXIT(MSG, ...) \ +do { \ + printf(_("ERROR: ")); \ + printf(MSG, ## __VA_ARGS__); \ + printf(_("\nERROR: invalid options found. See --help.\n")); \ + return 1; \ +} while (0); static const Ecore_Getopt options = { PACKAGE_NAME, - "%prog [options]", + "%prog [OPTION]... [FILE]\n" + " if FILE is *.pro: open project\n" + " if FILE is *.edj: import edj\n" + , VERSION, - "(C) 2013-2014 Samsung Electronics.", + "(C) 2013-2016 Samsung Electronics.", "GNU Library General Public License version 2", - N_("This application was written for Enlightenment, to use EFL\n" - "and design to create and modify Elementary widgets styles.\n"), + "This application was written for Enlightenment, to use EFL\n" + "and design to create and modify Elementary widgets styles.\n", EINA_TRUE, { - ECORE_GETOPT_STORE_STR('o', "open", N_("Eflete project file")), - ECORE_GETOPT_STORE_STR(0, "import-edj", N_("Import the edj file as new project")), ECORE_GETOPT_STORE_STR(0, "name", N_("Name for new project that would be created in import process")), ECORE_GETOPT_STORE_STR(0, "path", N_("Path for project")), - ECORE_GETOPT_STORE_TRUE(0, "replace", N_("Replace existing project")), ECORE_GETOPT_STORE_TRUE('r', "reopen", "reopen last project"), ECORE_GETOPT_VERSION ('v', "version"), ECORE_GETOPT_COPYRIGHT('c', "copyright"), @@ -92,14 +98,26 @@ _open_project(void *data __UNUSED__) _setup_open_splash, _teardown_open_splash, _cancel_open_splash, - (void *)eina_stringshare_add(open)); + (void *)eina_stringshare_add(file)); evas_object_show(ap.splash); } static void _import_edj(void *data __UNUSED__) { - tabs_menu_import_edj_data_set(pro_name, pro_path, import_edj); + const char *name; + Eina_Tmpstr *proj_name; + if (pro_name) + { +tabs_menu_import_edj_data_set(pro_name, pro_path, file); + } + else + { +name = ecore_file_file_get(file); +proj_name = eina_tmpstr_add_length(name, strlen(name) - 4); +tabs_menu_import_edj_data_set(proj_name, pro_path, file); +eina_tmpstr_del(proj_name); + } tabs_menu_tab_open(TAB_HOME_IMPORT_EDJ); } @@ -109,13 +127,11 @@ elm_main(int argc, char **argv) Eina_Bool info_only = false, reopen = false; Config *config; Recent *r; + int pos; Ecore_Getopt_Value values[] = { - ECORE_GETOPT_VALUE_STR(open), - ECORE_GETOPT_VALUE_STR(import_edj), ECORE_GETOPT_VALUE_STR(pro_name), ECORE_GETOPT_VALUE_STR(pro_path), - ECORE_GETOPT_VALUE_BOOL(pro_replace), ECORE_GETOPT_VALUE_BOOL(reopen), ECORE_GETOPT_VALUE_BOOL(info_only), ECORE_GETOPT_VALUE_BOOL(info_only), @@ -132,7 +148,15 @@ elm_main(int argc, char **argv) enventor_init(argc, argv); #endif - ecore_getopt_parse(&options, values, argc, argv); + pos = ecore_getopt_parse(&options, values, argc, argv); + if (pos < 0) + return 1; + if (pos < argc - 1) + _ERR_EXIT(_("Only one file should be specified.")); + + if (pos == argc -1) + file = argv[pos]; + if (!info_only) { #ifdef HAVE_CONFIG_H @@ -141,46 +165,66 @@ elm_main(int argc, char **argv) CRIT("Could not find 'eflete_config.h'"); #endif -if (!ui_main_window_add()) - { - app_shutdown(); - return -1; - } +config_load(); if (reopen) { + if (file) + _ERR_EXIT(_("--reopen is given but file specified.")); + if (pro_name) + _ERR_EXIT(_("--reopen is given but --name specified.")); + if (pro_path) + _ERR_EXIT(_("--repoen is given but --path specified.")); +
[EGIT] [tools/eflete] master 01/10: validator: change the eo event member accourdingly to chages in efl
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=177423346b10e843ecbc83e1c2a977a2cd66a74a commit 177423346b10e843ecbc83e1c2a977a2cd66a74a Author: Vyacheslav Reutskiy Date: Wed Apr 13 05:40:06 2016 + validator: change the eo event member accourdingly to chages in efl Follow to the white rabbit. Change-Id: I40347a2061c39304ee7c8894fe733347f706f6f1 --- src/bin/common/validator.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/common/validator.c b/src/bin/common/validator.c index 0804a8b..5875c83 100644 --- a/src/bin/common/validator.c +++ b/src/bin/common/validator.c @@ -84,7 +84,7 @@ Eina_Bool resource_name_validator_helper(void *data, const Eo_Event *event) { Resource *res; - Elm_Validate_Content *vc = event->event_info; + Elm_Validate_Content *vc = event->info; Resource_Name_Validator *validator = (Resource_Name_Validator *)data; assert(validator != NULL); --
[EGIT] [tools/eflete] master 07/10: live_ctxpopup: use parent's clipper so shown popup would be hidden on tab change
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=01b6b81c4dd725308eeff48a31061a01295dedae commit 01b6b81c4dd725308eeff48a31061a01295dedae Author: Vitalii Vorobiov Date: Fri Apr 8 16:17:26 2016 +0300 live_ctxpopup: use parent's clipper so shown popup would be hidden on tab change --- src/bin/ui/live_view/elementary/live_ctxpopup.c | 54 + 1 file changed, 29 insertions(+), 25 deletions(-) diff --git a/src/bin/ui/live_view/elementary/live_ctxpopup.c b/src/bin/ui/live_view/elementary/live_ctxpopup.c index 686c4e6..980f425 100644 --- a/src/bin/ui/live_view/elementary/live_ctxpopup.c +++ b/src/bin/ui/live_view/elementary/live_ctxpopup.c @@ -49,6 +49,7 @@ _item_new(Evas_Object *ctxpopup, int item_num, const char *icon) static void _ctx_popup_create(Evas_Object *parent, + Evas_Object *clipper, Eina_Stringshare *style_name, int item_blocks_count, Eina_Bool horizontal, @@ -63,7 +64,7 @@ _ctx_popup_create(Evas_Object *parent, Evas_Object *ctxpopup = elm_ctxpopup_add(parent); elm_object_style_set(ctxpopup, style_name); - evas_object_smart_callback_add(ctxpopup, "dismissed", _dismissed_cb, NULL); + evas_object_smart_callback_add(ctxpopup, "dismissed", _dismissed_cb, parent); elm_ctxpopup_horizontal_set(ctxpopup, horizontal); @@ -77,13 +78,14 @@ _ctx_popup_create(Evas_Object *parent, evas_pointer_canvas_xy_get(evas_object_evas_get(parent), &x, &y); evas_object_move(ctxpopup, x, y); evas_object_show(ctxpopup); + evas_object_clip_set(ctxpopup, evas_object_clip_get(clipper)); } static void _labels_icons_vertical_3items_cb(void *data __UNUSED__, Evas_Object *obj, void *event_info) { Eina_Stringshare *style_name = evas_object_data_get(obj, "style_name"); - _ctx_popup_create(obj, style_name, 1, false, true, true); + _ctx_popup_create(obj, data, style_name, 1, false, true, true); elm_list_item_selected_set(event_info, EINA_FALSE); } @@ -91,7 +93,7 @@ static void _nolabels_icons_vertical_3items_cb(void *data __UNUSED__, Evas_Object *obj, void *event_info) { Eina_Stringshare *style_name = evas_object_data_get(obj, "style_name"); - _ctx_popup_create(obj, style_name, 1, false, true, false); + _ctx_popup_create(obj, data, style_name, 1, false, true, false); elm_list_item_selected_set(event_info, EINA_FALSE); } @@ -99,7 +101,7 @@ static void _labels_noicons_vertical_3items_cb(void *data __UNUSED__, Evas_Object *obj, void *event_info) { Eina_Stringshare *style_name = evas_object_data_get(obj, "style_name"); - _ctx_popup_create(obj, style_name, 1, false, false, true); + _ctx_popup_create(obj, data, style_name, 1, false, false, true); elm_list_item_selected_set(event_info, EINA_FALSE); } @@ -107,7 +109,7 @@ static void _labels_icons_horizontal_3items_cb(void *data __UNUSED__, Evas_Object *obj, void *event_info) { Eina_Stringshare *style_name = evas_object_data_get(obj, "style_name"); - _ctx_popup_create(obj, style_name, 1, true, true, true); + _ctx_popup_create(obj, data, style_name, 1, true, true, true); elm_list_item_selected_set(event_info, EINA_FALSE); } @@ -115,7 +117,7 @@ static void _nolabels_icons_horizontal_3items_cb(void *data __UNUSED__, Evas_Object *obj, void *event_info) { Eina_Stringshare *style_name = evas_object_data_get(obj, "style_name"); - _ctx_popup_create(obj, style_name, 1, true, true, false); + _ctx_popup_create(obj, data, style_name, 1, true, true, false); elm_list_item_selected_set(event_info, EINA_FALSE); } @@ -123,7 +125,7 @@ static void _labels_noicons_horizontal_3items_cb(void *data __UNUSED__, Evas_Object *obj, void *event_info) { Eina_Stringshare *style_name = evas_object_data_get(obj, "style_name"); - _ctx_popup_create(obj, style_name, 1, true, false, true); + _ctx_popup_create(obj, data, style_name, 1, true, false, true); elm_list_item_selected_set(event_info, EINA_FALSE); } @@ -131,7 +133,7 @@ static void _labels_icons_vertical_30items_cb(void *data __UNUSED__, Evas_Object *obj, void *event_info) { Eina_Stringshare *style_name = evas_object_data_get(obj, "style_name"); - _ctx_popup_create(obj, style_name, 10, false, true, true); + _ctx_popup_create(obj, data, style_name, 10, false, true, true); elm_list_item_selected_set(event_info, EINA_FALSE); } @@ -139,7 +141,7 @@ static void _nolabels_icons_vertical_30items_cb(void *data __UNUSED__, Evas_Object *obj, void *event_info) { Eina_Stringshare *style_name = evas_object_data_get(obj, "style_name"); - _ctx_popup_create(obj, style_name, 10, false, true, false); + _ctx_popup_create(obj, data, style_name, 10, false, true, false); elm_list_item_selected_set(event_info, EINA_FALSE); } @@ -147,7 +149,7 @@ static void _labels_noicons_vertical_30items_cb(void *data __UNUSED__, Evas_Object *obj, void *event_info) {
[EGIT] [tools/eflete] master 03/10: workspace: add combobox for zoom
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=0eacf21eecdbbb3aa0208af85df9455802106650 commit 0eacf21eecdbbb3aa0208af85df9455802106650 Author: Andrii Kroitor Date: Mon Apr 11 10:48:07 2016 +0300 workspace: add combobox for zoom --- src/bin/ui/workspace/workspace.c | 59 +++- 1 file changed, 40 insertions(+), 19 deletions(-) diff --git a/src/bin/ui/workspace/workspace.c b/src/bin/ui/workspace/workspace.c index 84b6576..764b093 100644 --- a/src/bin/ui/workspace/workspace.c +++ b/src/bin/ui/workspace/workspace.c @@ -38,6 +38,8 @@ Workspace_Data *wd = evas_object_data_get(OBJ, WORKSPACE_DATA); \ assert(wd != NULL); +static int zoom_values[] = { 20, 50, 100, 200, 500, 0 }; + /* As the workspace can manage the one drag in one time, and only one workspace * viewed, we can use the static Change for all workspace */ static Change *change; @@ -74,7 +76,7 @@ struct _Workspace_Data Evas_Object *obj; struct { Evas_Object *fit; - Evas_Object *z100; + Evas_Object *cmb_zoom; Evas_Object *slider; } zoom; struct { @@ -292,19 +294,6 @@ _members_zoom_set(Workspace_Data *wd) } static void -_zoom100_cb(void *data, -Evas_Object *obj __UNUSED__, -void *event_info __UNUSED__) -{ - Workspace_Data *wd = data; - - wd->zoom_factor = 1.0; - elm_slider_value_set(wd->toolbar.zoom.slider, 100); - - _members_zoom_set(wd); -} - -static void _fit_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) @@ -319,9 +308,13 @@ _slider_zoom_cb(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) { + Eina_Stringshare *text; Workspace_Data *wd = data; wd->zoom_factor = elm_slider_value_get(wd->toolbar.zoom.slider) / 100; + text = eina_stringshare_printf("%d%%", (int)(wd->zoom_factor * 100)); + ewe_combobox_text_set(wd->toolbar.zoom.cmb_zoom, text); + eina_stringshare_del(text); _members_zoom_set(wd); } @@ -329,15 +322,31 @@ static void _zoom_controls_disabled_set(Workspace_Data *wd, Eina_Bool disabled) { elm_object_disabled_set(wd->toolbar.zoom.fit, disabled); - elm_object_disabled_set(wd->toolbar.zoom.z100, disabled); + elm_object_disabled_set(wd->toolbar.zoom.cmb_zoom, disabled); elm_object_disabled_set(wd->toolbar.zoom.slider, disabled); } static void +_zoom_selected_cb(void *data, + Evas_Object *obj __UNUSED__, + void *event_info) +{ + Workspace_Data *wd = data; + Ewe_Combobox_Item *item = event_info; + + wd->zoom_factor = zoom_values[item->index] / 100.0; + elm_slider_value_set(wd->toolbar.zoom.slider, zoom_values[item->index]); + + _members_zoom_set(wd); +} + +static void _zoom_controls_add(Workspace_Data *wd) { + int i = 0; Elm_Object_Item *tb_it; Evas_Object *img; + Eina_Stringshare *text; wd->toolbar.zoom.fit = elm_button_add(wd->toolbar.obj); evas_object_smart_callback_add(wd->toolbar.zoom.fit, "clicked", _fit_cb, wd); @@ -346,11 +355,19 @@ _zoom_controls_add(Workspace_Data *wd) tb_it = elm_toolbar_item_append(wd->toolbar.obj, NULL, NULL, NULL, NULL); elm_object_item_part_content_set(tb_it, NULL, wd->toolbar.zoom.fit); - wd->toolbar.zoom.z100 = elm_button_add(wd->toolbar.obj); - elm_object_text_set(wd->toolbar.zoom.z100, _("100%")); - evas_object_smart_callback_add(wd->toolbar.zoom.z100, "clicked", _zoom100_cb, wd); + EWE_COMBOBOX_ADD(wd->toolbar.obj, wd->toolbar.zoom.cmb_zoom); + evas_object_size_hint_min_set(wd->toolbar.zoom.cmb_zoom, 70, 0); + ewe_combobox_text_set(wd->toolbar.zoom.cmb_zoom, _("100%")); + evas_object_smart_callback_add(wd->toolbar.zoom.cmb_zoom, "selected", _zoom_selected_cb, wd); tb_it = elm_toolbar_item_append(wd->toolbar.obj, NULL, NULL, NULL, NULL); - elm_object_item_part_content_set(tb_it, NULL, wd->toolbar.zoom.z100); + elm_object_item_part_content_set(tb_it, NULL, wd->toolbar.zoom.cmb_zoom); + while (zoom_values[i]) + { + text = eina_stringshare_printf("%d%%", zoom_values[i]); + ewe_combobox_item_add(wd->toolbar.zoom.cmb_zoom, text); + eina_stringshare_del(text); + i++; + } wd->toolbar.zoom.slider = elm_slider_add(wd->toolbar.obj); elm_slider_min_max_set(wd->toolbar.zoom.slider, 10.0, 1000.0); @@ -1449,12 +1466,16 @@ workspace_delete_request(Evas_Object *obj) void workspace_zoom_factor_set(Evas_Object *obj, double factor) { + Eina_Stringshare *text; WS_DATA_GET(obj); if (!elm_object_disabled_get(wd->toolbar.zoom.slider)) { wd->zoom_factor = factor; elm_slider_value_set(wd->toolbar.zoom.slider, factor * 100); +text = eina_stringshare_printf("%d%%", (int)(wd->zoom_factor * 100)); +ewe_combobox_text_set(wd->toolbar.zoom.cmb_zoom, text); +eina_stringshare_del(text); TODO(
[EGIT] [tools/eflete] master 02/10: workspace: check workspace mode on shortcuts
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=1dde3fb7a840f2f9adad6dedbe9b5c80733210d3 commit 1dde3fb7a840f2f9adad6dedbe9b5c80733210d3 Author: Andrii Kroitor Date: Fri Apr 8 10:28:47 2016 +0300 workspace: check workspace mode on shortcuts --- src/bin/ui/workspace/workspace.c | 33 ++--- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/src/bin/ui/workspace/workspace.c b/src/bin/ui/workspace/workspace.c index d06d1c0..84b6576 100644 --- a/src/bin/ui/workspace/workspace.c +++ b/src/bin/ui/workspace/workspace.c @@ -1406,7 +1406,8 @@ workspace_add_part_request(Evas_Object *obj) { WS_DATA_GET(obj); - group_navigator_add_part_request(wd->group_navi); + if (wd->mode != MODE_DEMO) + group_navigator_add_part_request(wd->group_navi); } void @@ -1414,7 +1415,8 @@ workspace_add_part_item_request(Evas_Object *obj) { WS_DATA_GET(obj); - group_navigator_add_part_item_request(wd->group_navi); + if (wd->mode != MODE_DEMO) + group_navigator_add_part_item_request(wd->group_navi); } void @@ -1422,7 +1424,8 @@ workspace_add_state_request(Evas_Object *obj) { WS_DATA_GET(obj); - group_navigator_add_state_request(wd->group_navi); + if (wd->mode != MODE_DEMO) + group_navigator_add_state_request(wd->group_navi); } void @@ -1430,7 +1433,8 @@ workspace_add_program_request(Evas_Object *obj) { WS_DATA_GET(obj); - group_navigator_add_program_request(wd->group_navi); + if (wd->mode != MODE_DEMO) + group_navigator_add_program_request(wd->group_navi); } void @@ -1438,7 +1442,8 @@ workspace_delete_request(Evas_Object *obj) { WS_DATA_GET(obj); - group_navigator_delete_request(wd->group_navi); + if (wd->mode != MODE_DEMO) + group_navigator_delete_request(wd->group_navi); } void @@ -1513,7 +1518,8 @@ workspace_state_next_request(Evas_Object *obj) { WS_DATA_GET(obj); - group_navigator_state_next_request(wd->group_navi); + if (wd->mode != MODE_DEMO) + group_navigator_state_next_request(wd->group_navi); } void @@ -1521,7 +1527,8 @@ workspace_part_next_request(Evas_Object *obj) { WS_DATA_GET(obj); - group_navigator_part_next_request(wd->group_navi); + if (wd->mode != MODE_DEMO) + group_navigator_part_next_request(wd->group_navi); } void @@ -1529,7 +1536,8 @@ workspace_part_prev_request(Evas_Object *obj) { WS_DATA_GET(obj); - group_navigator_part_prev_request(wd->group_navi); + if (wd->mode != MODE_DEMO) + group_navigator_part_prev_request(wd->group_navi); } void @@ -1537,7 +1545,8 @@ workspace_part_showhide_request(Evas_Object *obj) { WS_DATA_GET(obj); - group_navigator_part_showhide_request(wd->group_navi); + if (wd->mode != MODE_DEMO) + group_navigator_part_showhide_request(wd->group_navi); } void @@ -1545,7 +1554,8 @@ workspace_all_parts_showhide_request(Evas_Object *obj) { WS_DATA_GET(obj); - group_navigator_all_parts_showhide_request(wd->group_navi); + if (wd->mode != MODE_DEMO) + group_navigator_all_parts_showhide_request(wd->group_navi); } void @@ -1553,7 +1563,8 @@ workspace_part_unselect_request(Evas_Object *obj) { WS_DATA_GET(obj); - group_navigator_part_select(wd->group_navi, NULL); + if (wd->mode != MODE_DEMO) + group_navigator_part_select(wd->group_navi, NULL); } void --
[EGIT] [tools/eflete] master 06/10: eflete: add import edc from command line support
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=505928e3f76a6ecb254ed423ffe3bc6896010510 commit 505928e3f76a6ecb254ed423ffe3bc6896010510 Author: Andrii Kroitor Date: Tue Apr 12 15:23:04 2016 +0300 eflete: add import edc from command line support --- src/bin/main.c | 69 src/bin/ui/tab_home_import_edc.c | 43 + src/bin/ui/tabs.c| 7 src/bin/ui/tabs.h| 9 ++ src/bin/ui/tabs_private.h| 4 +++ 5 files changed, 132 insertions(+) diff --git a/src/bin/main.c b/src/bin/main.c index 84cc731..212b20a 100644 --- a/src/bin/main.c +++ b/src/bin/main.c @@ -31,6 +31,10 @@ static char *file = NULL; static char *pro_name = NULL; static char *pro_path = NULL; +static Eina_List *img_dirs = NULL; +static Eina_List *snd_dirs = NULL; +static Eina_List *fnt_dirs = NULL; +static Eina_List *data_dirs = NULL; #define _ERR_EXIT(MSG, ...) \ do { \ @@ -55,6 +59,10 @@ static const Ecore_Getopt options = { { ECORE_GETOPT_STORE_STR(0, "name", N_("Name for new project that would be created in import process")), ECORE_GETOPT_STORE_STR(0, "path", N_("Path for project")), + ECORE_GETOPT_APPEND_METAVAR('i', "id", "Add image directory for edc compilation", "DIR_NAME", ECORE_GETOPT_TYPE_STR), + ECORE_GETOPT_APPEND_METAVAR('s', "sd", "Add sound directory for edc compilation", "DIR_NAME", ECORE_GETOPT_TYPE_STR), + ECORE_GETOPT_APPEND_METAVAR('f', "fd", "Add font directory for edc compilation", "DIR_NAME", ECORE_GETOPT_TYPE_STR), + ECORE_GETOPT_APPEND_METAVAR('d', "dd", "Add data directory for edc compilation", "DIR_NAME", ECORE_GETOPT_TYPE_STR), ECORE_GETOPT_STORE_TRUE('r', "reopen", "reopen last project"), ECORE_GETOPT_VERSION ('v', "version"), ECORE_GETOPT_COPYRIGHT('c', "copyright"), @@ -121,6 +129,25 @@ _import_edj(void *data __UNUSED__) tabs_menu_tab_open(TAB_HOME_IMPORT_EDJ); } +static void +_import_edc(void *data __UNUSED__) +{ + const char *name; + Eina_Tmpstr *proj_name; + if (pro_name) + { +tabs_menu_import_edc_data_set(pro_name, pro_path, file, img_dirs, snd_dirs, fnt_dirs, data_dirs); + } + else + { +name = ecore_file_file_get(file); +proj_name = eina_tmpstr_add_length(name, strlen(name) - 4); +tabs_menu_import_edc_data_set(proj_name, pro_path, file, img_dirs, snd_dirs, fnt_dirs, data_dirs); +eina_tmpstr_del(proj_name); + } + tabs_menu_tab_open(TAB_HOME_IMPORT_EDC); +} + EAPI_MAIN int elm_main(int argc, char **argv) { @@ -132,6 +159,10 @@ elm_main(int argc, char **argv) Ecore_Getopt_Value values[] = { ECORE_GETOPT_VALUE_STR(pro_name), ECORE_GETOPT_VALUE_STR(pro_path), + ECORE_GETOPT_VALUE_LIST(img_dirs), + ECORE_GETOPT_VALUE_LIST(snd_dirs), + ECORE_GETOPT_VALUE_LIST(fnt_dirs), + ECORE_GETOPT_VALUE_LIST(data_dirs), ECORE_GETOPT_VALUE_BOOL(reopen), ECORE_GETOPT_VALUE_BOOL(info_only), ECORE_GETOPT_VALUE_BOOL(info_only), @@ -175,6 +206,14 @@ elm_main(int argc, char **argv) _ERR_EXIT(_("--reopen is given but --name specified.")); if (pro_path) _ERR_EXIT(_("--repoen is given but --path specified.")); + if (img_dirs) + _ERR_EXIT(_("--reopen is given but --id specified.")); + if (snd_dirs) + _ERR_EXIT(_("--reopen is given but --sd specified.")); + if (fnt_dirs) + _ERR_EXIT(_("--reopen is given but --fd specified.")); + if (data_dirs) + _ERR_EXIT(_("--reopen is given but --dd specified.")); config = config_get(); if (!config->recents) @@ -198,15 +237,37 @@ elm_main(int argc, char **argv) _ERR_EXIT(_("*.pro file is given but --name specified.")); if (pro_path) _ERR_EXIT(_("*.pro file is given but --path specified.")); + if (img_dirs) +_ERR_EXIT(_("*.pro file is given but --id specified.")); + if (snd_dirs) +_ERR_EXIT(_("*.pro file is given but --sd specified.")); + if (fnt_dirs) +_ERR_EXIT(_("*.pro file is given but --fd specified.")); + if (data_dirs) +_ERR_EXIT(_("*.pro file is given but --dd specified.")); ecore_job_add(_open_project, NULL); goto run; } else if (eina_str_has_suffix(file, ".edj")) { + if (img_dirs) +_ERR_EXIT(_("*.edj file is given but --id specified.")); + if (snd_dirs) +_ERR_EXIT(_("*.edj file is given but --sd specified.")); + if (fnt_dirs) +_ERR_EXIT(_("*.ed
[EGIT] [tools/eflete] master 09/10: UTC: fix segfaults in config tests
rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=3dc5f48790e773971ed0e88a48ab25f7fdbc39b4 commit 3dc5f48790e773971ed0e88a48ab25f7fdbc39b4 Author: Andrii Kroitor Date: Wed Apr 13 16:31:51 2016 +0300 UTC: fix segfaults in config tests --- tests/test_config/config_load.c| 2 +- tests/test_config/config_panes_sizes_data_update.c | 3 +-- tests/test_config/config_save.c| 2 +- tests/test_eflete/colorselector_get.c | 1 + tests/test_eflete/test_eflete.h| 1 + 5 files changed, 5 insertions(+), 4 deletions(-) diff --git a/tests/test_config/config_load.c b/tests/test_config/config_load.c index 123b79f..8ee043f 100644 --- a/tests/test_config/config_load.c +++ b/tests/test_config/config_load.c @@ -55,7 +55,7 @@ EFLETE_TEST(config_load_test_p) elm_init(0,0); app_init(); - ui_main_window_add(); + config_load(); config = config_get(); ck_assert_msg(config != NULL, "Config not been loaded."); diff --git a/tests/test_config/config_panes_sizes_data_update.c b/tests/test_config/config_panes_sizes_data_update.c index 0fb6a24..315e8f3 100644 --- a/tests/test_config/config_panes_sizes_data_update.c +++ b/tests/test_config/config_panes_sizes_data_update.c @@ -58,12 +58,11 @@ EFLETE_TEST (config_panes_sizes_data_update_test_p) Eina_Bool result = EINA_FALSE; app_init(); - ui_main_window_add(); + config_load(); result = config_panes_sizes_data_update(); ck_assert_msg(result == EINA_TRUE, "Could not update Panes sizes data"); - evas_object_del(ap.win); elm_shutdown(); } END_TEST diff --git a/tests/test_config/config_save.c b/tests/test_config/config_save.c index a144327..617d755 100644 --- a/tests/test_config/config_save.c +++ b/tests/test_config/config_save.c @@ -55,7 +55,7 @@ EFLETE_TEST(config_save_test_p) { elm_init(0,0); app_init(); - ui_main_window_add(); + config_load(); ck_assert_msg(config_save(), "Config not saved."); diff --git a/tests/test_eflete/colorselector_get.c b/tests/test_eflete/colorselector_get.c index f9c1925..eda9ad9 100644 --- a/tests/test_eflete/colorselector_get.c +++ b/tests/test_eflete/colorselector_get.c @@ -55,6 +55,7 @@ EFLETE_TEST (colorselector_get_test_p) { elm_init(0,0); app_init(); + config_load(); ui_main_window_add(); ck_assert_msg(colorselector_get() != NULL, "Colorselector not exist"); diff --git a/tests/test_eflete/test_eflete.h b/tests/test_eflete/test_eflete.h index 283c455..6bf0912 100644 --- a/tests/test_eflete/test_eflete.h +++ b/tests/test_eflete/test_eflete.h @@ -19,6 +19,7 @@ #include "utc_common.h" #include "eflete.h" +#include "config.h" #include "main_window.h" /** --
[EGIT] [tools/enventor] master 01/01: redoundo - remove redundant code.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=829e309692f5d6f5365a86fd9849ef74be14a9d6 commit 829e309692f5d6f5365a86fd9849ef74be14a9d6 Author: Hermet Park Date: Wed Apr 13 21:53:55 2016 +0900 redoundo - remove redundant code. --- src/lib/redoundo.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/lib/redoundo.c b/src/lib/redoundo.c index 30f49ca..362df45 100644 --- a/src/lib/redoundo.c +++ b/src/lib/redoundo.c @@ -147,11 +147,9 @@ entry_changed_user_cb(void *data, Evas_Object *obj EINA_UNUSED, { if (info->change.insert.plain_length == 0) goto nochange; diff->text = eina_stringshare_add(info->change.insert.content); -char *utf8 = evas_textblock_text_markup_to_utf8(NULL, diff->text); diff->length = info->change.insert.plain_length; diff->cursor_pos = info->change.insert.pos; diff->action = EINA_TRUE; -free(utf8); } else { --
[EGIT] [core/enlightenment] master 01/01: e - wireless module - remove horrible memcpy with offsetof magic
raster pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=90a4ad88b7fa6372f209e700b4cf962d96f8ea6b commit 90a4ad88b7fa6372f209e700b4cf962d96f8ea6b Author: Carsten Haitzler (Rasterman) Date: Wed Apr 13 20:28:27 2016 +0900 e - wireless module - remove horrible memcpy with offsetof magic while it technically wuld work, this memcpy here is fragile and the moment some struct members changed it'd fall apart and have fields all misaligned etc. in fact using offsetof means it might over-copy a bit extra due to alignment of the connect_cb vs method in Connman_Service. so manually aissgne the fields in the func instead to be far safer. if anything this should become a sub-struct with a type that can then be properly copied even if things change. @fix --- src/modules/wireless/connman.c | 6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/modules/wireless/connman.c b/src/modules/wireless/connman.c index c41a00d..6beb24a 100644 --- a/src/modules/wireless/connman.c +++ b/src/modules/wireless/connman.c @@ -251,8 +251,12 @@ _connman_service_convert(Connman_Service *cs) Wireless_Network *wn; wn = E_NEW(Wireless_Network, 1); - memcpy(wn, &cs->path, offsetof(Wireless_Network, connect_cb)); + wn->path = cs->path; + wn->name = cs->name; + wn->security = cs->security; wn->state = _connman_wifi_state_convert(cs->state); + wn->type = cs->type; + wn->strength = cs->strength; wn->connect_cb = _connman_service_connect; return wn; } --
[EGIT] [core/efl] master 01/01: edje - delete obj - null out freed items in structs/data
raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c2e26a51215d379a6926b0ca44f3d4d664d84bb4 commit c2e26a51215d379a6926b0ca44f3d4d664d84bb4 Author: Carsten Haitzler (Rasterman) Date: Wed Apr 13 19:59:00 2016 +0900 edje - delete obj - null out freed items in structs/data i just got a segv freeing ian invalid ptr... it SEEMS as if something has tried to free and edje object twice... but i can't be sure as valgrind can't catch this. it's a one-off, so ensure after free, we NULL out things we freed to avoid this. @fix --- src/lib/edje/edje_main.c | 5 + src/lib/edje/edje_signal.c | 2 ++ 2 files changed, 7 insertions(+) diff --git a/src/lib/edje/edje_main.c b/src/lib/edje/edje_main.c index 8748a35..f46be48 100644 --- a/src/lib/edje/edje_main.c +++ b/src/lib/edje/edje_main.c @@ -251,15 +251,20 @@ _edje_del(Edje *ed) } _edje_message_del(ed); _edje_signal_callback_free(ed->callbacks); + ed->callbacks = NULL; _edje_file_del(ed); if (ed->path) eina_stringshare_del(ed->path); if (ed->group) eina_stringshare_del(ed->group); if (ed->parent) eina_stringshare_del(ed->parent); ed->path = NULL; ed->group = NULL; + ed->parent = NULL; eina_hash_free(ed->color_classes); eina_hash_free(ed->text_classes); eina_hash_free(ed->size_classes); + ed->color_classes = NULL; + ed->text_classes = NULL; + ed->size_classes = NULL; EINA_LIST_FREE(ed->text_insert_filter_callbacks, cb) { eina_stringshare_del(cb->part); diff --git a/src/lib/edje/edje_signal.c b/src/lib/edje/edje_signal.c index de93990..88c0f1d 100644 --- a/src/lib/edje/edje_signal.c +++ b/src/lib/edje/edje_signal.c @@ -294,7 +294,9 @@ _edje_signal_callback_free(const Edje_Signal_Callback_Group *cgp) _edje_signal_callback_matches_unref((Edje_Signal_Callback_Matches *)gp->matches); gp->matches = NULL; free(gp->flags); + gp->flags = NULL; free(gp->custom_data); + gp->custom_data = NULL; free(gp); } --
[EGIT] [core/efl] master 01/01: ctxpopup: pass const object ptr as argument in horizontal_get()
ami pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=bc9bde253a3d4ef09c8ea4451aec8b1425fc83c8 commit bc9bde253a3d4ef09c8ea4451aec8b1425fc83c8 Author: Amitesh Singh Date: Wed Apr 13 16:11:19 2016 +0530 ctxpopup: pass const object ptr as argument in horizontal_get() --- src/lib/elementary/elc_ctxpopup.c| 2 +- src/lib/elementary/elc_ctxpopup_legacy.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/elementary/elc_ctxpopup.c b/src/lib/elementary/elc_ctxpopup.c index 803f7d7..b366493 100644 --- a/src/lib/elementary/elc_ctxpopup.c +++ b/src/lib/elementary/elc_ctxpopup.c @@ -1247,7 +1247,7 @@ elm_ctxpopup_horizontal_set(Evas_Object *obj, Eina_Bool horizontal) } EAPI Eina_Bool -elm_ctxpopup_horizontal_get(Evas_Object *obj) +elm_ctxpopup_horizontal_get(const Evas_Object *obj) { ELM_CTXPOPUP_DATA_GET_OR_RETURN_VAL(obj, sd, EINA_FALSE); diff --git a/src/lib/elementary/elc_ctxpopup_legacy.h b/src/lib/elementary/elc_ctxpopup_legacy.h index a983799..2dbc1d3 100644 --- a/src/lib/elementary/elc_ctxpopup_legacy.h +++ b/src/lib/elementary/elc_ctxpopup_legacy.h @@ -27,7 +27,7 @@ EAPI void elm_ctxpopup_horizontal_set(Evas_Object *obj, * * @ingroup Elm_Ctxpopup */ -EAPI Eina_Boolelm_ctxpopup_horizontal_get(Evas_Object *obj); +EAPI Eina_Boolelm_ctxpopup_horizontal_get(const Evas_Object *obj); #include "elm_ctxpopup_item.eo.legacy.h" #include "elm_ctxpopup.eo.legacy.h" --
[EGIT] [core/efl] master 01/01: example: eina log - set eina log levels in examples
ami pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=1e74fd73adfcdb8dc034f1ddaf915802bc18ba1c commit 1e74fd73adfcdb8dc034f1ddaf915802bc18ba1c Author: Amitesh Singh Date: Wed Apr 13 15:29:29 2016 +0530 example: eina log - set eina log levels in examples --- src/examples/eina/eina_log_01.c | 2 ++ src/examples/eina/eina_log_02.c | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/examples/eina/eina_log_01.c b/src/examples/eina/eina_log_01.c index 7a20ca9..2c6432a 100644 --- a/src/examples/eina/eina_log_01.c +++ b/src/examples/eina/eina_log_01.c @@ -19,6 +19,8 @@ int main(void) return EXIT_FAILURE; } + eina_log_level_set(EINA_LOG_LEVEL_WARN); + test_warn(); eina_shutdown(); diff --git a/src/examples/eina/eina_log_02.c b/src/examples/eina/eina_log_02.c index a056729..e2d5a9f 100644 --- a/src/examples/eina/eina_log_02.c +++ b/src/examples/eina/eina_log_02.c @@ -29,6 +29,8 @@ int main(void) return EXIT_FAILURE; } + eina_log_level_set(EINA_LOG_LEVEL_DBG); + test(-1); test(0); --