[EGIT] [admin/devs] master 01/01: update nikawhite public key
hermet pushed a commit to branch master. http://git.enlightenment.org/admin/devs.git/commit/?id=748f0807bed6130727e4dca6441158933dc7b723 commit 748f0807bed6130727e4dca6441158933dc7b723 Author: ChunEon Park chuneon.p...@samsung.com Date: Thu Jun 25 16:28:10 2015 +0900 update nikawhite public key --- probies/nikawhite/id_rsa.pub | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/probies/nikawhite/id_rsa.pub b/probies/nikawhite/id_rsa.pub index b0e0bec..915d0f8 100644 --- a/probies/nikawhite/id_rsa.pub +++ b/probies/nikawhite/id_rsa.pub @@ -1 +1 @@ -ssh-rsa B3NzaC1yc2EDAQABAAABAQCnYuP7PgbzM8iiQgZKPAvsaxDKCRR7VxEjwSEUaIUYG66+HDY82noCohuIT47FEkGdR5B4m0FtRigD4CNRs9UdWbxGRA/AI3vQjZubTIwMY0YuXIF5e8y9xyElnvCoHSvA6O/qcqWnk0biQmkTUQ1IwQT2dhoFhACMfVe9wVkctUxi232n1OsRiwkBnwAIxMoM51uQXCshHFQBfADuzAd1ZZMNB0doj3/M88yucclH17A02rmhqxeCLmTzLk1tC+nP3T8gwjU7s55lvi+Qa87UhoCwGkdF95DkutZAEqcc/EeDbVFXAoLII7SG2KDiZ+s9vbSg1iz/j+KBHcc0TaRj m.biliavs...@samsung.com +ssh-rsa B3NzaC1yc2EDAQABAAABAQDMqDBUDlM1siK2XZ6mdaZhaSZQbg92w+RiSUzMX58eJZmzjv/+tbNPxe65w4lD5L3axltOpORFrUcYgppXfCrnDj44PwKtnKDlU6S++FuNSaRltnwguvECBbnoObzFda9s4OY8GBhFTVd4VwzJdeoUJztF9f6k1WcpKgsbJ0nukPSCP+/j1RPqRQAnU9ofbzr4tXXY1vJUqQLlvs2gSkx+wjRCSuTPOsMpEnxQ/jh+vqW85Gcqbk06kWPKWZU28BfU9LmFaiMDCf3E4OPRdr1Kf6IUfmPWzFhvAQTCT9JxmTVWGTlJpK3E2HIxajWvlfnBjaeUw7Df+9bYICWfO261 nikawhite@mbiliavskyi --
[EGIT] [tools/enventor] master 01/01: Ctxpopup hide on focus out.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=a310bbd9a430d74cc74ab5a92d3a1ad820d11c49 commit a310bbd9a430d74cc74ab5a92d3a1ad820d11c49 Author: Mykyta Biliavskyi m.biliavs...@samsung.com Date: Fri Jun 26 13:39:20 2015 +0900 Ctxpopup hide on focus out. Summary: On keypress up or down button doesn't need to allow focus to the ctxpopup. @fix T2522 Reviewers: Hermet Maniphest Tasks: T2522 Differential Revision: https://phab.enlightenment.org/D2765 --- src/lib/auto_comp.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/lib/auto_comp.c b/src/lib/auto_comp.c index 9a4701f..068de2a 100644 --- a/src/lib/auto_comp.c +++ b/src/lib/auto_comp.c @@ -665,7 +665,6 @@ list_item_move(autocomp_data *ad, Eina_Bool up) { Evas_Object *entry = edit_entry_get(ad-ed); evas_object_smart_callback_del(entry, unfocused, anchor_unfocused_cb); - elm_object_focus_allow_set(ad-list, EINA_TRUE); Elm_Object_Item *it = elm_list_selected_item_get(ad-list); if (up) it = elm_list_item_prev(it); --
[EGIT] [tools/enventor] master 01/01: Correct handling ecore key modificators.
hermet pushed a commit to branch master. http://git.enlightenment.org/tools/enventor.git/commit/?id=9cc1fb443ecff4aa1122aefe8a6d6003af4627bb commit 9cc1fb443ecff4aa1122aefe8a6d6003af4627bb Author: Mykyta Biliavskyi m.biliavs...@samsung.com Date: Fri Jun 26 13:49:43 2015 +0900 Correct handling ecore key modificators. Summary: Macro EVENT_KEY_MODIFIER_CHECK_OR_RET provide possibility to check, if only one modifier pressed. Reviewers: Hermet Projects: #enventor Differential Revision: https://phab.enlightenment.org/D2759 --- src/bin/main.c | 15 ++- src/include/common.h | 6 ++ 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/bin/main.c b/src/bin/main.c index 9232106..621ac04 100644 --- a/src/bin/main.c +++ b/src/bin/main.c @@ -151,10 +151,8 @@ main_mouse_wheel_cb(void *data, int type EINA_UNUSED, void *ev) app_data *ad = data; Evas_Coord x, y, w, h; - if ((event-modifiers (ECORE_EVENT_MODIFIER_SHIFT | ECORE_EVENT_MODIFIER_CTRL -| ECORE_EVENT_MODIFIER_ALT | ECORE_EVENT_MODIFIER_WIN)) - != ECORE_EVENT_MODIFIER_CTRL) - return ECORE_CALLBACK_PASS_ON; + if (!EVENT_KEY_MODIFIER_CHECK(CTRL, event-modifiers)) + return ECORE_CALLBACK_PASS_ON; //View Scale Evas_Object *view = enventor_object_live_view_get(ad-enventor); @@ -557,8 +555,8 @@ default_template_insert(app_data *ad) static Eina_Bool alt_func(Ecore_Event_Key *event) { - if (!(event-modifiers ECORE_EVENT_MODIFIER_ALT)) - return EINA_FALSE; + if (!EVENT_KEY_MODIFIER_CHECK(ALT, event-modifiers)) + return EINA_FALSE; //Full Edit View if (!strcmp(event-key, Left)) @@ -591,9 +589,8 @@ alt_func(Ecore_Event_Key *event) static Eina_Bool ctrl_func(app_data *ad, Ecore_Event_Key *event) { - if (!(event-modifiers ECORE_EVENT_MODIFIER_CTRL)) - return EINA_FALSE; - + if (!EVENT_KEY_MODIFIER_CHECK(CTRL, event-modifiers)) + return EINA_FALSE; //Save if (!strcmp(event-key, s) || !strcmp(event-key, S)) { diff --git a/src/include/common.h b/src/include/common.h index 81bb8ea..10eddb2 100644 --- a/src/include/common.h +++ b/src/include/common.h @@ -57,6 +57,12 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n #define ENVENTOR_CONFIG_VERSION 2 +#define EVENT_KEY_MODIFIER_CHECK(NAME, MASK) \ + ((MASK ECORE_EVENT_MODIFIER_##NAME) \ + !((0xFF ^ ECORE_EVENT_MODIFIER_##NAME) (MASK 0x0F))) + + + #define ENVENTOR_BETA_API_SUPPORT 1 #include Enventor.h #include assert.h --
[EGIT] [core/enlightenment] master 01/01: wl-desktop-shell: Fix formatting
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=609fa7100d9f0f2f91c1a352c96a3ec99e6c1dca commit 609fa7100d9f0f2f91c1a352c96a3ec99e6c1dca Author: Chris Michael cp.mich...@samsung.com Date: Thu Jun 25 09:30:59 2015 -0400 wl-desktop-shell: Fix formatting Signed-off-by: Chris Michael cp.mich...@samsung.com --- src/modules/wl_desktop_shell/e_mod_main.c | 14 -- 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/modules/wl_desktop_shell/e_mod_main.c b/src/modules/wl_desktop_shell/e_mod_main.c index 022a1bf..b080cd6 100644 --- a/src/modules/wl_desktop_shell/e_mod_main.c +++ b/src/modules/wl_desktop_shell/e_mod_main.c @@ -449,11 +449,13 @@ _e_shell_surface_configure(struct wl_resource *resource, Evas_Coord x, Evas_Coor (ec-netwm.type == E_WINDOW_TYPE_DROPDOWN_MENU)) { x = E_CLAMP(ec-parent-client.x + ec-comp_data-popup.x, - ec-parent-client.x, - ec-parent-client.x + ec-parent-client.w - ec-client.w); + ec-parent-client.x, + ec-parent-client.x + + ec-parent-client.w - ec-client.w); y = E_CLAMP(ec-parent-client.y + ec-comp_data-popup.y, - ec-parent-client.y, - ec-parent-client.y + ec-parent-client.h - ec-client.h); + ec-parent-client.y, + ec-parent-client.y + + ec-parent-client.h - ec-client.h); } } @@ -628,8 +630,8 @@ _e_xdg_shell_surface_configure_send(struct wl_resource *resource, uint32_t edges if (ec-netwm.type != E_WINDOW_TYPE_POPUP_MENU) { - serial = wl_display_next_serial(e_comp-wl_comp_data-wl.disp); - xdg_surface_send_configure(resource, width, height, states, serial); +serial = wl_display_next_serial(e_comp-wl_comp_data-wl.disp); +xdg_surface_send_configure(resource, width, height, states, serial); } wl_array_release(states); --
[EGIT] [website/www-content] master 01/01: Wiki page opensuse-start changed with summary [I'm pretty sure one click installs are broken] by Simon
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=aa83c508a0f0538f41943572ef713ee5081cda11 commit aa83c508a0f0538f41943572ef713ee5081cda11 Author: Simon si...@simotek.net Date: Thu Jun 25 03:55:34 2015 -0700 Wiki page opensuse-start changed with summary [I'm pretty sure one click installs are broken] by Simon --- pages/distros/opensuse-start.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/distros/opensuse-start.txt b/pages/distros/opensuse-start.txt index b6df590..4010cf8 100644 --- a/pages/distros/opensuse-start.txt +++ b/pages/distros/opensuse-start.txt @@ -30,8 +30,8 @@ Install EFL only: zypper install efl /code -You can also use the one click installer: - +You can also use the one click installer: +note warningLast time I tried this it was broken (Simon Lees, June 2015, On my todo list)/note code bash export DISTRO_NAME=openSUSE_Tumbleweed wget http://software.opensuse.org/ymp/X11:Enlightenment:Factory/${DISTRO_NAME}/efl.ymp --
[EGIT] [core/elementary] master 01/01: elm: constify Eolian methods correctly because of recent Eolian changes
q66 pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=469fcb8aada7519e5f41e087079c7f8bae5b5617 commit 469fcb8aada7519e5f41e087079c7f8bae5b5617 Author: Daniel Kolesa d.kol...@osg.samsung.com Date: Thu Jun 25 12:21:00 2015 +0100 elm: constify Eolian methods correctly because of recent Eolian changes --- src/lib/elc_fileselector_entry.c | 2 +- src/lib/elc_multibuttonentry.c | 6 +++--- src/lib/elc_naviframe.c | 4 ++-- src/lib/elc_popup.c | 2 +- src/lib/elm_actionslider.c | 2 +- src/lib/elm_calendar.c | 4 ++-- src/lib/elm_datetime.c | 10 +- src/lib/elm_dayselector.c| 4 ++-- src/lib/elm_entry.c | 8 src/lib/elm_flipselector.c | 4 ++-- src/lib/elm_gengrid.c| 6 +++--- src/lib/elm_genlist.c| 6 +++--- src/lib/elm_hover.c | 2 +- src/lib/elm_image.c | 2 +- src/lib/elm_index.c | 4 ++-- src/lib/elm_layout.c | 10 +- src/lib/elm_list.c | 4 ++-- src/lib/elm_map.c| 12 ++-- src/lib/elm_menu.c | 12 ++-- src/lib/elm_photo.c | 2 +- src/lib/elm_prefs.c | 8 src/lib/elm_progressbar.c| 2 +- src/lib/elm_scroller.c | 4 ++-- src/lib/elm_segment_control.c| 10 +- src/lib/elm_slideshow.c | 4 ++-- src/lib/elm_table.c | 2 +- src/lib/elm_toolbar.c| 6 +++--- src/lib/elm_web2.c | 2 +- src/lib/elm_widget.c | 34 +- 29 files changed, 89 insertions(+), 89 deletions(-) diff --git a/src/lib/elc_fileselector_entry.c b/src/lib/elc_fileselector_entry.c index f091f91..32b1f0b 100644 --- a/src/lib/elc_fileselector_entry.c +++ b/src/lib/elc_fileselector_entry.c @@ -217,7 +217,7 @@ _elm_fileselector_entry_elm_layout_text_set(Eo *obj, Elm_Fileselector_Entry_Data } EOLIAN static const char * -_elm_fileselector_entry_elm_layout_text_get(Eo *obj, Elm_Fileselector_Entry_Data *sd, const char *part) +_elm_fileselector_entry_elm_layout_text_get(const Eo *obj, Elm_Fileselector_Entry_Data *sd, const char *part) { if (part strcmp(part, default)) { diff --git a/src/lib/elc_multibuttonentry.c b/src/lib/elc_multibuttonentry.c index 52aad4d..4bf2e5b 100644 --- a/src/lib/elc_multibuttonentry.c +++ b/src/lib/elc_multibuttonentry.c @@ -1423,7 +1423,7 @@ _elm_multibuttonentry_elm_layout_text_set(Eo *obj, Elm_Multibuttonentry_Data *sd } EOLIAN static const char* -_elm_multibuttonentry_elm_layout_text_get(Eo *obj, Elm_Multibuttonentry_Data *sd, const char *part) +_elm_multibuttonentry_elm_layout_text_get(const Eo *obj, Elm_Multibuttonentry_Data *sd, const char *part) { const char *text = NULL; @@ -1786,7 +1786,7 @@ _elm_multibuttonentry_clear(Eo *obj EINA_UNUSED, Elm_Multibuttonentry_Data *sd) } EOLIAN static Elm_Object_Item * -_elm_multibuttonentry_item_prev_get(Eo *eo_it, +_elm_multibuttonentry_item_prev_get(const Eo *eo_it, Elm_Multibuttonentry_Item_Data *it) { Eina_List *l; @@ -1807,7 +1807,7 @@ _elm_multibuttonentry_item_prev_get(Eo *eo_it, } EOLIAN static Elm_Object_Item * -_elm_multibuttonentry_item_next_get(Eo *eo_it, +_elm_multibuttonentry_item_next_get(const Eo *eo_it, Elm_Multibuttonentry_Item_Data *it) { Eina_List *l; diff --git a/src/lib/elc_naviframe.c b/src/lib/elc_naviframe.c index 42e0235..ff18ee7 100644 --- a/src/lib/elc_naviframe.c +++ b/src/lib/elc_naviframe.c @@ -1012,7 +1012,7 @@ _elm_naviframe_elm_layout_text_set(Eo *obj, Elm_Naviframe_Data *sd EINA_UNUSED, } EOLIAN static const char* -_elm_naviframe_elm_layout_text_get(Eo *obj, Elm_Naviframe_Data *sd EINA_UNUSED, const char *part) +_elm_naviframe_elm_layout_text_get(const Eo *obj, Elm_Naviframe_Data *sd EINA_UNUSED, const char *part) { Elm_Object_Item *it = elm_naviframe_top_item_get(obj); if (!it) return NULL; @@ -1884,7 +1884,7 @@ _elm_naviframe_item_title_enabled_set(Eo *eo_item EINA_UNUSED, } EOLIAN static Eina_Bool -_elm_naviframe_item_title_enabled_get(Eo *eo_item EINA_UNUSED, Elm_Naviframe_Item_Data *nit) +_elm_naviframe_item_title_enabled_get(const Eo *eo_item EINA_UNUSED, Elm_Naviframe_Item_Data *nit) { return nit-title_enabled; } diff --git a/src/lib/elc_popup.c b/src/lib/elc_popup.c index 965223f..629b294 100644 --- a/src/lib/elc_popup.c +++ b/src/lib/elc_popup.c @@ -959,7 +959,7 @@ _content_text_get(const Elm_Popup_Data *sd) } EOLIAN static const char* -_elm_popup_elm_layout_text_get(Eo *obj EINA_UNUSED, Elm_Popup_Data *_pd, const char *part) +_elm_popup_elm_layout_text_get(const Eo *obj EINA_UNUSED, Elm_Popup_Data *_pd, const char *part) { const char *text = NULL; diff --git a/src/lib/elm_actionslider.c b/src/lib/elm_actionslider.c
[EGIT] [core/enlightenment] master 01/01: wl-desktop-shell: Remove useless return at end of function
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=475a246ea97a4ecf25d6a15811e342eccaff6892 commit 475a246ea97a4ecf25d6a15811e342eccaff6892 Author: Chris Michael cp.mich...@samsung.com Date: Thu Jun 25 09:45:28 2015 -0400 wl-desktop-shell: Remove useless return at end of function Signed-off-by: Chris Michael cp.mich...@samsung.com --- src/modules/wl_desktop_shell/e_mod_main.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/modules/wl_desktop_shell/e_mod_main.c b/src/modules/wl_desktop_shell/e_mod_main.c index b080cd6..e262f8f 100644 --- a/src/modules/wl_desktop_shell/e_mod_main.c +++ b/src/modules/wl_desktop_shell/e_mod_main.c @@ -589,13 +589,12 @@ static void _e_xdg_surface_state_add(struct wl_resource *resource, struct wl_array *states, uint32_t state) { uint32_t *s; - s = wl_array_add(states, sizeof(*s)); + + s = wl_array_add(states, sizeof(*s)); if (s) *s = state; else wl_resource_post_no_memory(resource); - - return; } static void --
[EGIT] [core/efl] master 01/01: eolian/generator: constify all prototypes for @const functions
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c709f1dca20b058a9ca76a181add200fe25a8a09 commit c709f1dca20b058a9ca76a181add200fe25a8a09 Author: Daniel Kolesa d.kol...@osg.samsung.com Date: Thu Jun 25 12:17:58 2015 +0100 eolian/generator: constify all prototypes for @const functions Otherwise there would be conflicts in certain circumstances. This also requires adding const on many existing functions, and similar work is necessary in Elementary. @fix --- src/bin/eolian/eo_generator.c | 6 -- src/lib/evas/canvas/evas_canvas3d_camera.c | 2 +- src/lib/evas/canvas/evas_canvas3d_light.c | 10 +- src/lib/evas/canvas/evas_canvas3d_material.c| 2 +- src/lib/evas/canvas/evas_canvas3d_mesh.c| 8 src/lib/evas/canvas/evas_canvas3d_node.c| 14 +++--- src/lib/evas/canvas/evas_canvas3d_object.c | 4 ++-- src/lib/evas/canvas/evas_canvas3d_scene.c | 14 +++--- src/lib/evas/canvas/evas_canvas3d_texture.c | 6 +++--- src/lib/evas/canvas/evas_filter_mixin.c | 2 +- src/lib/evas/canvas/evas_main.c | 8 src/lib/evas/canvas/evas_object_box.c | 10 +- src/lib/evas/canvas/evas_object_grid.c | 6 +++--- src/lib/evas/canvas/evas_object_image.c | 6 +++--- src/lib/evas/canvas/evas_object_main.c | 4 ++-- src/lib/evas/canvas/evas_object_smart.c | 10 +- src/lib/evas/canvas/evas_object_table.c | 6 +++--- src/lib/evas/canvas/evas_object_text.c | 8 src/lib/evas/canvas/evas_object_textblock.c | 10 +- src/lib/evas/canvas/evas_object_textgrid.c | 4 ++-- src/lib/evas/common/evas_model_save.c | 2 +- src/lib/evas/include/evas_private.h | 8 src/modules/evas/model_savers/eet/evas_model_save_eet.c | 2 +- src/modules/evas/model_savers/obj/evas_model_save_obj.c | 2 +- src/modules/evas/model_savers/ply/evas_model_save_ply.c | 2 +- 25 files changed, 79 insertions(+), 77 deletions(-) diff --git a/src/bin/eolian/eo_generator.c b/src/bin/eolian/eo_generator.c index 7d98eb9..d31a656 100644 --- a/src/bin/eolian/eo_generator.c +++ b/src/bin/eolian/eo_generator.c @@ -512,12 +512,13 @@ eo_bind_func_generate(const Eolian_Class *class, const Eolian_Function *funcid, /* Generation of the user function prototype declaration - not needed when @auto and @empty are indicated */ if (!is_empty !is_auto) { - eina_strbuf_append_printf(fbody, %s _%s%s%s_%s%s(Eo *obj, @#Datatype_Data *pd%s);\n\n, + eina_strbuf_append_printf(fbody, %s _%s%s%s_%s%s(%sEo *obj, @#Datatype_Data *pd%s);\n\n, rettype?rettype:void, class_env.lower_classname, impl_env?_:, impl_env?impl_env-lower_classname:, eolian_function_name_get(funcid), suffix, + eolian_function_object_is_const(funcid)?const :, eina_strbuf_string_get(full_params)); } @@ -527,12 +528,13 @@ eo_bind_func_generate(const Eolian_Class *class, const Eolian_Function *funcid, eina_hash_add(_funcs_params_init, eina_stringshare_add(eolian_function_name_get(funcid)), (void *)ftype); /* Generation of the intermediate function __eolian_... */ - eina_strbuf_append_printf(fbody, static %s __eolian_%s%s%s_%s%s(Eo *obj%s, @#Datatype_Data *pd%s%s)\n{\n, + eina_strbuf_append_printf(fbody, static %s __eolian_%s%s%s_%s%s(%sEo *obj%s, @#Datatype_Data *pd%s%s)\n{\n, rettype?rettype:void, class_env.lower_classname, impl_env?_:, impl_env?impl_env-lower_classname:, eolian_function_name_get(funcid), suffix, + eolian_function_object_is_const(funcid)?const :, is_empty || is_auto? EINA_UNUSED:, is_empty || (is_auto !eina_strbuf_length_get(params_init))? EINA_UNUSED:, eina_strbuf_string_get(full_params)); diff --git a/src/lib/evas/canvas/evas_canvas3d_camera.c b/src/lib/evas/canvas/evas_canvas3d_camera.c index f6b85af..802bccf 100644 --- a/src/lib/evas/canvas/evas_canvas3d_camera.c +++ b/src/lib/evas/canvas/evas_canvas3d_camera.c @@ -114,7 +114,7 @@ _evas_canvas3d_camera_projection_matrix_set(Eo *obj, Evas_Canvas3D_Camera_Data * } EOLIAN static void -_evas_canvas3d_camera_projection_matrix_get(Eo *obj EINA_UNUSED, +_evas_canvas3d_camera_projection_matrix_get(const Eo *obj EINA_UNUSED,
[EGIT] [website/www-content] master 01/01: Wiki page docs-efl-debug 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=fb7b68ff8b01d58f05fc1d8fafc50ea4a9b1d77a commit fb7b68ff8b01d58f05fc1d8fafc50ea4a9b1d77a Author: Raster ras...@rasterman.com Date: Thu Jun 25 05:32:15 2015 -0700 Wiki page docs-efl-debug changed with summary [] by Raster --- pages/docs-efl-debug.txt | 5 + 1 file changed, 5 insertions(+) diff --git a/pages/docs-efl-debug.txt b/pages/docs-efl-debug.txt index a8f7a51..9761220 100644 --- a/pages/docs-efl-debug.txt +++ b/pages/docs-efl-debug.txt @@ -1,4 +1,9 @@ ~~Title: Debugging~~ + +note important +//Please also see [[debugging/enlightenment_debugging]] and [[debugging/apps_efl_debugging]]. This should probably be merged with these pages.// +/note + Compilation Remember to build EFL, Enlightenment etc. with debugging compile flags. [[docs-efl-start]] has a section on this for your build environment. Remember to have ''-g'' as a ''CFLAGS'' option to ensure binaries and libraries have all the debug information they need. If you didn't build with debugging, simply build again with these flags correctly set and debugging can begin. --
[EGIT] [website/www-content] master 01/01: Wiki page opensuse-start changed with summary [Remove end of life versions] by Simon
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=37e4b91afb6d8b6e22dd4946e788bffd3d02ea3c commit 37e4b91afb6d8b6e22dd4946e788bffd3d02ea3c Author: Simon si...@simotek.net Date: Thu Jun 25 03:48:35 2015 -0700 Wiki page opensuse-start changed with summary [Remove end of life versions] by Simon --- pages/distros/opensuse-start.txt | 3 --- 1 file changed, 3 deletions(-) diff --git a/pages/distros/opensuse-start.txt b/pages/distros/opensuse-start.txt index 2377052..9d49481 100644 --- a/pages/distros/opensuse-start.txt +++ b/pages/distros/opensuse-start.txt @@ -8,9 +8,6 @@ Enlightenment and EFL are available for multiple versions of OpenSUSE: * openSUSE_Factory * openSUSE_13.2 * openSUSE_13.1 -* openSUSE_12.3_ports -* openSUSE_12.3 -* openSUSE_12.2_ARM The way to install Enlightenment is similar between those distributions, here is an example with Tumbleweel: --
[EGIT] [website/www-content] master 01/01: Wiki page opensuse-start changed with summary [Typo: Tumbleweel to Tumbleweed] by Simon
WWW-www.enlightenment.org pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=9ff6019bd8e1643d5aad17da76c00d94d5071abf commit 9ff6019bd8e1643d5aad17da76c00d94d5071abf Author: Simon si...@simotek.net Date: Thu Jun 25 03:49:29 2015 -0700 Wiki page opensuse-start changed with summary [Typo: Tumbleweel to Tumbleweed] by Simon --- pages/distros/opensuse-start.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pages/distros/opensuse-start.txt b/pages/distros/opensuse-start.txt index 9d49481..989cb24 100644 --- a/pages/distros/opensuse-start.txt +++ b/pages/distros/opensuse-start.txt @@ -10,8 +10,7 @@ Enlightenment and EFL are available for multiple versions of OpenSUSE: * openSUSE_13.1 The way to install Enlightenment is similar between those distributions, -here is an example with Tumbleweel: - +here is an example with Tumbleweed: code bash #as root export DISTRO_NAME=openSUSE_Tumbleweed --
[EGIT] [website/www-content] master 01/01: Wiki page apps_efl_debugging 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=e6d5aed51479a69a6a3e7d18eb89787cc091d62d commit e6d5aed51479a69a6a3e7d18eb89787cc091d62d Author: Raster ras...@rasterman.com Date: Thu Jun 25 05:30:43 2015 -0700 Wiki page apps_efl_debugging changed with summary [] by Raster --- pages/debugging/apps_efl_debugging.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pages/debugging/apps_efl_debugging.txt b/pages/debugging/apps_efl_debugging.txt index a3158db..d5d3189 100644 --- a/pages/debugging/apps_efl_debugging.txt +++ b/pages/debugging/apps_efl_debugging.txt @@ -1,7 +1,9 @@ ~~Title: Apps debugging~~ EFL application debugging - //Please also see [[docs-efl-debug]]. This should probably be merged with this page.// +note important +//Please also see [[docs-efl-debug]]. This should probably be merged with this page.// +/note This tutorial's goal is to help you debug your EFL applications with several use cases that you can reproduce. It gives you approaches to know if the bug comes from your application or from the EFL libraries. --
[EGIT] [website/www-content] master 01/01: Wiki page enlightenment_debugging 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=51f747b1d72921aef1c607f4ae62ed8bfd233a1b commit 51f747b1d72921aef1c607f4ae62ed8bfd233a1b Author: Raster ras...@rasterman.com Date: Thu Jun 25 05:31:02 2015 -0700 Wiki page enlightenment_debugging changed with summary [] by Raster --- pages/debugging/enlightenment_debugging.txt | 4 1 file changed, 4 insertions(+) diff --git a/pages/debugging/enlightenment_debugging.txt b/pages/debugging/enlightenment_debugging.txt index d78c29d..f68da32 100644 --- a/pages/debugging/enlightenment_debugging.txt +++ b/pages/debugging/enlightenment_debugging.txt @@ -1,6 +1,10 @@ ~~Title: Enlightenment debugging~~ Enlightenment Debugging +note important +//Please also see [[docs-efl-debug]]. This should probably be merged with this page.// +/note + This tutorial aims at providing a comprehensive and reproducible documentation to debug Enlightenment. It is divided in two sections: * [[#Debugging_Enlightenment_using_GDB|GDB]] --
[EGIT] [core/efl] master 01/01: ector/software: Update the PIXEL_BIT to 8 for better quality.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=4f2ad23585ac57006c4b7ff426646c5a9fea7900 commit 4f2ad23585ac57006c4b7ff426646c5a9fea7900 Author: Subhransu Mohanty sub.moha...@samsung.com Date: Thu Jun 25 18:51:41 2015 +0900 ector/software: Update the PIXEL_BIT to 8 for better quality. --- src/lib/ector/software/sw_ft_raster.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/ector/software/sw_ft_raster.c b/src/lib/ector/software/sw_ft_raster.c index 2956123..f20a881 100644 --- a/src/lib/ector/software/sw_ft_raster.c +++ b/src/lib/ector/software/sw_ft_raster.c @@ -209,7 +209,7 @@ typedef struct SW_FT_Outline_Funcs_ /* must be at least 6 bits! */ -#define PIXEL_BITS 5 +#define PIXEL_BITS 8 #undef FLOOR #undef CEILING --
[EGIT] [core/efl] annotated tag v1.14.2 created (now 6e0ef28)
This is an automated email from the git hooks/post-receive script. stefan pushed a change to annotated tag v1.14.2 in repository core/efl. at 6e0ef28 (tag) tagging fb6e978dcc4594939d93ed67464e7cfbf08e4cc5 (commit) replaces v1.14.1 tagged by Stefan Schmidt on Thu Jun 25 15:57:41 2015 +0200 - Log - v1.14.2 Carsten Haitzler (1): eina semaphore lock - don't wake up because of signals Cedric BAIL (1): pkg-config: fix portability issue on Windows. ChunEon Park (2): ecore: null cb function is unacceptable. eina/simple_xml_parser: don't parse the , in the attribute string. Jean-Philippe ANDRÉ (3): Evas filters: Remove unnecessary copy of buffers Evas filters: Fix blend with color with rgba buffers Evas: Remove shader_3d .x generated file from BUILT_SOURCES Jihoon Kim (1): ecore_imf/wayland: Add NULL check before accessing Mike Blumenkrantz (2): edje: set GROUP/SWALLOW/EXTERNAL pass events based on mouse events Revert edje: set GROUP/SWALLOW/EXTERNAL pass events based on mouse events SangHyeon Lee (1): fb engine : Add NULL type handling in output free. Stefan Schmidt (1): release: Update NEWS and bump version for 1.14.2 release --- No new revisions were added by this update. --
[EGIT] [core/elementary] master 03/11: calendar: show days of prev/next month.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=60396b1158df8a6ea4ca958c6ead92965ca61822 commit 60396b1158df8a6ea4ca958c6ead92965ca61822 Author: Youngbok Shin youngb.s...@samsung.com Date: Thu Jun 25 16:13:56 2015 +0200 calendar: show days of prev/next month. Summary: Show days of previous and next month on the blank area of calendar. @feature Test Plan: See calendar widget on elementary_test. Reviewers: raster, seoz, woohyun, cedric Reviewed By: cedric Differential Revision: https://phab.enlightenment.org/D2728 Signed-off-by: Cedric BAIL ced...@osg.samsung.com --- data/themes/edc/elm/calendar.edc | 26 ++ src/lib/elm_calendar.c | 57 2 files changed, 72 insertions(+), 11 deletions(-) diff --git a/data/themes/edc/elm/calendar.edc b/data/themes/edc/elm/calendar.edc index b1b15c8..35a0367 100644 --- a/data/themes/edc/elm/calendar.edc +++ b/data/themes/edc/elm/calendar.edc @@ -8,6 +8,9 @@ style { name: calendar_date_today_style;\ base: font=FN font_size=10 color=#3399ff style=glow glow_color=#3399ff18 align=center;\ }\ + style { name: calendar_date_disabled_style;\ + base: font=FN font_size=10 color=#151515 style=shadow_bottom shadow_color=#ffc0 align=center;\ + }\ #define CAL_SPIN(_sufix, _signal_sufix, _text, _relative)\ part { name: left_bt#_sufix; type: RECT;\ @@ -291,6 +294,10 @@ inherit: default 0.0; \ text.style: calendar_date_today_style; \ } \ + description { state: disabled 0.0; \ + inherit: default 0.0; \ + text.style: calendar_date_disabled_style; \ + } \ } \ part { name: cit_#_pos.check; mouse_events: 0; \ scale: 1; \ @@ -355,6 +362,25 @@ target: cit_#_pos.text; \ } \ program { \ + name:cit_#_pos.enable; \ + signal: cit_#_pos,enable; \ + source: elm; \ + script { \ +new st[31]; \ +new Float:vl; \ +get_state(PART:cit_#_pos.text, st, 30, vl); \ +if (!strcmp(st, disabled)) \ + set_state(PART:cit_#_pos.text, default, 0.0); \ + } \ + } \ + program { \ + name:cit_#_pos.disable; \ + signal: cit_#_pos,disable; \ + source: elm; \ + action: STATE_SET disabled 0.0; \ + target: cit_#_pos.text; \ + } \ + program { \ source: cit_#_pos.clicked; \ signal: mouse,down,1; \ source: cit_#_pos.event; \ diff --git a/src/lib/elm_calendar.c b/src/lib/elm_calendar.c index 58d4d6c..18574a1 100644 --- a/src/lib/elm_calendar.c +++ b/src/lib/elm_calendar.c @@ -90,13 +90,15 @@ _elm_calendar_elm_layout_sizing_eval(Eo *obj, Elm_Calendar_Data *_pd EINA_UNUSED } static inline int -_maxdays_get(struct tm *selected_time) +_maxdays_get(struct tm *selected_time, int month_offset) { int month, year; - month = selected_time-tm_mon; + month = (selected_time-tm_mon + month_offset) % 12; year = selected_time-tm_year + 1900; + if (month 0) month += 12; + return _days_in_month [((!(year % 4)) ((!(year % 400)) || (year % 100)))][month]; } @@ -145,6 +147,28 @@ _today(Elm_Calendar_Data *sd, sd-today_it = it; } +static inline void +_enable(Elm_Calendar_Data *sd, +int it) +{ + char emission[32]; + + snprintf(emission, sizeof(emission), cit_%i,enable, it); + elm_layout_signal_emit(sd-obj, emission, elm); + sd-today_it = it; +} + +static inline void +_disable(Elm_Calendar_Data *sd, + int it) +{ + char emission[32]; + + snprintf(emission, sizeof(emission), cit_%i,disable, it); + elm_layout_signal_emit(sd-obj, emission, elm); + sd-today_it = it; +} + static char * _format_month_year(struct tm *selected_time) { @@ -272,7 +296,7 @@ _access_calendar_item_register(Evas_Object *obj) ELM_CALENDAR_DATA_GET(obj, sd); day = 0; - maxdays = _maxdays_get(sd-shown_time); + maxdays = _maxdays_get(sd-shown_time, 0); for (i = 0; i 42; i++) { if ((!day) (i == sd-first_day_it)) day = 1; @@ -355,7 +379,7 @@ _access_calendar_register(Evas_Object *obj) static void _populate(Evas_Object *obj) { - int maxdays, day, mon, yr, i; + int maxdays, prev_month_maxdays, day, mon, yr, i; Elm_Calendar_Mark *mark; char part[12], day_s[3]; struct tm first_day; @@ -369,7 +393,8 @@ _populate(Evas_Object *obj) sd-filling = EINA_FALSE; if (sd-today_it 0) _not_today(sd); - maxdays = _maxdays_get(sd-shown_time); + maxdays = _maxdays_get(sd-shown_time, 0); + prev_month_maxdays = _maxdays_get(sd-shown_time, -1); mon = sd-shown_time.tm_mon; yr = sd-shown_time.tm_year; @@ -459,9 +484,19 @@ _populate(Evas_Object *obj) } if ((day) (day = maxdays)) -
[EGIT] [core/efl] master 01/01: eolian_cxx: Fix C++ generated inheritance wrappers
q66 pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=22094b6a275032027f3a3ef84d36ad4ab4c708a2 commit 22094b6a275032027f3a3ef84d36ad4ab4c708a2 Author: Vitor Sousa vitorsousasi...@gmail.com Date: Thu Jun 25 15:58:43 2015 +0100 eolian_cxx: Fix C++ generated inheritance wrappers Summary: Fix a bug that happens when a Eolian C++ wrapper have no default constructor (because it have obligatory constructing methods) and it is being used as a return of a inheritance wrappers. Switched to a conversion of the native type as the default return, instead of a value initialized wrapper. Reviewers: q66, felipealmeida Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D2769 --- src/lib/eolian_cxx/grammar/inheritance_base_generator.hh | 14 ++ 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/lib/eolian_cxx/grammar/inheritance_base_generator.hh b/src/lib/eolian_cxx/grammar/inheritance_base_generator.hh index ed993f0..a3918a9 100644 --- a/src/lib/eolian_cxx/grammar/inheritance_base_generator.hh +++ b/src/lib/eolian_cxx/grammar/inheritance_base_generator.hh @@ -129,26 +129,24 @@ operator(std::ostream out, inheritance_wrappers const x) ) endl { endl; -if (!function_is_void(func)) - out tab(1) reinterpret_type(func.ret) _tmp_ret{}; endl; - out tab(1) try endl tab(2) { endl tab(3) - (!function_is_void(func) ? _tmp_ret = : ) + (!function_is_void(func) ? return : ) static_castT*(self-this_)- func.name ( parameters_cxx_list(func.params) ); endl tab(2) } endl tab(1) catch (...) endl tab(2) { endl - tab(3) eina_error_set( ::efl::eina::unknown_error() ); endl - tab(2) } endl; + tab(3) eina_error_set( ::efl::eina::unknown_error() ); endl; if (!function_is_void(func)) - out tab(1) return _tmp_ret; endl; + out tab(3) func.ret.front().native _tmp_ret{}; endl + tab(3) return to_cxx(func.ret, _tmp_ret) ; endl; -out } endl; +out tab(2) } endl + } endl; out scope_guard_tail(x._cls, func) endl; } --
[EGIT] [core/elementary] master 06/11: gengrid: add item cache in gengrid for efficient realize/unrealize operation.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=0710c5ee6425e4514e7b3f87a075052792956ecf commit 0710c5ee6425e4514e7b3f87a075052792956ecf Author: SangHyeon Lee dltkdgus1...@gmail.com Date: Thu Jun 25 16:28:07 2015 +0200 gengrid: add item cache in gengrid for efficient realize/unrealize operation. Summary: gengrid realize/unrealize items each smart calculation if their posiiton is updated. This concept will be occurred useless view object creation and deletion. So instead of delete items in unrealize function, push item cache into cache list, and pop item cache from cache list in realize function to reuse item view object more efficiently. the cache concept is already implemented in genlist widget and this patch is improved item cache of genlist cache. @feature ``` NOTICE: This patch is written under the D2561 Patch which add elm_gengrid_item_fields_update. So it must submitted after D2561. ``` Test Plan: I've tested below three cases, 1. tested ith this patch in elementary_test and checked all gengrid features are working properly. 2. tested with changing CACHE_MAX to another value which is set 40 in default and checked all gengrid features are working properly. 3. tested with set it-item-nocache true, and checked cache is never generated and checked all gengrid features are working properly. Reviewers: raster, Hermet, seoz, jaehwan, singh.amitesh Subscribers: eagleeye, singh.amitesh, Jaehyun Differential Revision: https://phab.enlightenment.org/D2641 Signed-off-by: Cedric BAIL ced...@osg.samsung.com --- src/bin/test.c | 2 + src/bin/test_gengrid.c | 261 ++ src/lib/elm_gengrid.c| 520 +++ src/lib/elm_gengrid_common.h | 17 +- src/lib/elm_gengrid_item.eo | 23 ++ src/lib/elm_widget_gengrid.h | 17 ++ 6 files changed, 744 insertions(+), 96 deletions(-) diff --git a/src/bin/test.c b/src/bin/test.c index 443d69c..04fb02d 100644 --- a/src/bin/test.c +++ b/src/bin/test.c @@ -140,6 +140,7 @@ void test_gengrid5(void *data, Evas_Object *obj, void *event_info); void test_gengrid_item_styles(void *data, Evas_Object *obj, void *event_info); void test_gengrid_speed(void *data, Evas_Object *obj, void *event_info); void test_gengrid_focus(void *data, Evas_Object *obj, void *event_info); +void test_gengrid_update(void *data, Evas_Object *obj, void *event_info); void test_win_state(void *data, Evas_Object *obj, void *event_info); void test_win_state2(void *data, Evas_Object *obj, void *event_info); void test_progressbar(void *data, Evas_Object *obj, void *event_info); @@ -695,6 +696,7 @@ add_tests: ADD_TEST(NULL, Lists - Gengrid, GenGrid Item Styles, test_gengrid_item_styles); ADD_TEST(NULL, Lists - Gengrid, Gengrid Update Speed, test_gengrid_speed); ADD_TEST(NULL, Lists - Gengrid, GenGrid Focus, test_gengrid_focus); + ADD_TEST(NULL, Lists - Gengrid, GenGrid Update, test_gengrid_update); //--// ADD_TEST(NULL, General, Scaling, test_scaling); diff --git a/src/bin/test_gengrid.c b/src/bin/test_gengrid.c index 99ef7fe..ffd4857 100644 --- a/src/bin/test_gengrid.c +++ b/src/bin/test_gengrid.c @@ -29,6 +29,7 @@ struct _api_data unsigned int state; /* What state we are testing */ Evas_Object *box; /* Use this to get box content */ Evas_Object *grid; + Elm_Gengrid_Item_Field_Type field_type; }; typedef struct _api_data api_data; @@ -1848,3 +1849,263 @@ test_gengrid_focus(void *data EINA_UNUSED, evas_object_resize(win, 600, 600); evas_object_show(win); } + +char * +_gg_update_text_get(void *data EINA_UNUSED, +Evas_Object *obj EINA_UNUSED, +const char *part EINA_UNUSED) +{ + char *txt[] = {Sky, Stone, Water, Flower, Sand, Sun, Moon, Star, Cloud, NULL}; + int n = rand() % 9; + + return strdup(txt[n]); +} + +Evas_Object * +_gg_update_content_get(void *data, Evas_Object *obj, const char *part) +{ + const Item_Data *id = data; + char buf[256]; + int n = 0; + + if (!strcmp(part, elm.swallow.icon)) + { +n = rand() % 9; + +Evas_Object *image = elm_image_add(obj); +snprintf(buf, sizeof(buf), %s/images/%s, elm_app_data_dir_get(), img[n]); +elm_image_file_set(image, buf, NULL); +elm_image_aspect_fixed_set(image, EINA_FALSE); +evas_object_show(image); +return image; + } + else if (!strcmp(part, elm.swallow.end)) + { +Evas_Object *ck = elm_check_add(obj); +evas_object_propagate_events_set(ck, EINA_FALSE); +elm_check_state_set(ck, id-onoff); +evas_object_smart_callback_add(ck, changed, grid_item_check_changed, data); +evas_object_show(ck); +
[EGIT] [core/elementary] master 07/11: gengrid: add unhighlight callback
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=b8959e778090547ef9df79601bef0c7cd9b3cd21 commit b8959e778090547ef9df79601bef0c7cd9b3cd21 Author: Hosang Kim hosang12@samsung.com Date: Thu Jun 25 16:31:36 2015 +0200 gengrid: add unhighlight callback Summary: item_unselect check it-select status, so when item highlighted but not selected, item highlight is remaining even after unselect_cb is called. And item_select and item_highlight are separated, but item_unselect and item_unhighlight are mixed. so divide them, too. This patch will solve upon problem. Reviewers: seoz, woohyun, Hermet, CHAN, raster, SanghyeonLee, cedric Reviewed By: cedric Differential Revision: https://phab.enlightenment.org/D2653 Signed-off-by: Cedric BAIL ced...@osg.samsung.com --- src/lib/elm_gengrid.c | 58 +++ 1 file changed, 45 insertions(+), 13 deletions(-) diff --git a/src/lib/elm_gengrid.c b/src/lib/elm_gengrid.c index e8a7fde..8d01e5d 100644 --- a/src/lib/elm_gengrid.c +++ b/src/lib/elm_gengrid.c @@ -529,12 +529,6 @@ _item_unselect(Elm_Gen_Item *it) if ((it-generation sd-generation) || (!it-selected)) return; - edje_object_signal_emit(VIEW(it), elm,state,unselected, elm); - evas_object_smart_callback_call(WIDGET(it), SIG_UNHIGHLIGHTED, eo_it); - - evas_object_stack_below(VIEW(it), sd-stack); - - it-highlighted = EINA_FALSE; if (it-selected) { it-selected = EINA_FALSE; @@ -574,7 +568,10 @@ _item_mouse_move_cb(void *data, { sd-on_hold = EINA_TRUE; if (!sd-was_selected) - it-unsel_cb(it); + { + it-unhighlight_cb(it); + it-unsel_cb(it); + } } } @@ -647,7 +644,10 @@ _item_mouse_move_cb(void *data, it-dragging = 1; ELM_SAFE_FREE(it-long_timer, ecore_timer_del); if (!sd-was_selected) - it-unsel_cb(it); + { + it-unhighlight_cb(it); + it-unsel_cb(it); + } if (dy 0) { @@ -728,6 +728,24 @@ _item_highlight(Elm_Gen_Item *it) } static void +_item_unhighlight(Elm_Gen_Item *it) +{ + ELM_GENGRID_DATA_GET_FROM_ITEM(it, sd); + Elm_Object_Item *eo_it = EO_OBJ(it); + + if (!it-highlighted || + (it-generation sd-generation)) + return; + + edje_object_signal_emit(VIEW(it), elm,state,unselected, elm); + evas_object_smart_callback_call(WIDGET(it), SIG_UNHIGHLIGHTED, eo_it); + + evas_object_stack_below(VIEW(it), sd-stack); + + it-highlighted = EINA_FALSE; +} + +static void _item_mouse_down_cb(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj, @@ -1060,7 +1078,11 @@ _item_mouse_up_cb(void *data, if (sd-longpressed) { sd-longpressed = EINA_FALSE; -if (!sd-was_selected) it-unsel_cb(it); +if (!sd-was_selected) + { + it-unhighlight_cb(it); + it-unsel_cb(it); + } sd-was_selected = EINA_FALSE; return; } @@ -1084,7 +1106,11 @@ _item_mouse_up_cb(void *data, it-highlight_cb(it); it-sel_cb(it); } -else it-unsel_cb(it); +else + { + it-unhighlight_cb(it); + it-unsel_cb(it); + } } else { @@ -1094,6 +1120,7 @@ _item_mouse_up_cb(void *data, { Elm_Object_Item *eo_sel = sd-selected-data; Elm_Gen_Item *sel = eo_data_scope_get(eo_sel, ELM_GENGRID_ITEM_CLASS); + it-unhighlight_cb(sel); it-unsel_cb(sel); } } @@ -1105,7 +1132,11 @@ _item_mouse_up_cb(void *data, EINA_LIST_FOREACH_SAFE(sd-selected, l, l_next, eo_item2) { ELM_GENGRID_ITEM_DATA_GET(eo_item2, item2); - if (item2 != it) it-unsel_cb(item2); + if (item2 != it) +{ + it-unhighlight_cb(item2); + it-unsel_cb(item2); +} } } it-highlight_cb(it); @@ -3978,6 +4009,7 @@ _elm_gengrid_item_new(Elm_Gengrid_Data *sd, it-del_cb = (Ecore_Cb)_item_del; it-highlight_cb = (Ecore_Cb)_item_highlight; + it-unhighlight_cb = (Ecore_Cb)_item_unhighlight; it-sel_cb = (Ecore_Cb)_item_select; it-unsel_cb = (Ecore_Cb)_item_unselect; it-unrealize_cb = (Ecore_Cb)_item_unrealize_cb; @@ -4492,7 +4524,7 @@ _elm_gengrid_item_selected_set(Eo *eo_item EINA_UNUSED, Elm_Gen_Item *it, { Elm_Object_Item *eo_sel = sd-selected-data; ELM_GENGRID_ITEM_DATA_GET(eo_sel, sel); - if (it-unhighlight_cb)
[EGIT] [core/elementary] master 04/11: genlist/list/win: Revert focus highlight animation when looping is enable
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=8889b728774bd479294ee5029730c90cdddf4450 commit 8889b728774bd479294ee5029730c90cdddf4450 Author: Amitesh Singh amitesh...@samsung.com Date: Thu Jun 25 16:15:06 2015 +0200 genlist/list/win: Revert focus highlight animation when looping is enable Summary: - Revert focus: Added internal widget APIs of focus highlight object of elm window. This reverts commit 3f98d71830163a154762f2d16301d720c781b7c5. - Revert List: Focus highlight when loop is enable This reverts commit 57ad32a900e71f83441bf7246671b8f16a8ec909. - Revert genlist: Focus highlight when loop is enable This reverts commit 91282a22cba66ee5e7799018d3abe8957fb1b1fa. Reviewers: seoz, raster, jpeg, SanghyeonLee Subscribers: anand.km, seoz Differential Revision: https://phab.enlightenment.org/D2725 Signed-off-by: Cedric BAIL ced...@osg.samsung.com --- data/themes/edc/elm/focus.edc | 173 -- src/lib/elm_genlist.c | 59 +++--- src/lib/elm_list.c| 98 ++-- src/lib/elm_widget.c | 31 src/lib/elm_widget.h | 6 -- src/lib/elm_win.c | 29 --- 6 files changed, 28 insertions(+), 368 deletions(-) diff --git a/data/themes/edc/elm/focus.edc b/data/themes/edc/elm/focus.edc index 5c06179..19d78cd 100644 --- a/data/themes/edc/elm/focus.edc +++ b/data/themes/edc/elm/focus.edc @@ -5,7 +5,7 @@ group { name: elm/focus_highlight/top/default; script { public s_x, s_y, s_w, s_h; /* source */ public difx, dify, difw, difh; - + public animator1(val, Float:pos) { new x, y, w, h, dx, dy, dw, dh, Float:p; p = 1.0 - ((1.0 - pos) * (1.0 - pos) * (1.0 - pos)); @@ -19,16 +19,16 @@ group { name: elm/focus_highlight/top/default; h = get_int(s_h) + dh; update_offset(x, y, w, h); } - + public update_offset(x, y, w, h) { set_state_val(PART:base, STATE_REL1_OFFSET, x, y); set_state_val(PART:base, STATE_REL2_OFFSET, x + w, y + h); } - + public message(Msg_Type:type, id, ...) { if ((type == MSG_INT_SET) (id == 1)) { new x1, y1, w1, h1, x2, y2, w2, h2; - + x1 = getarg(2); y1 = getarg(3); w1 = getarg(4); @@ -37,7 +37,7 @@ group { name: elm/focus_highlight/top/default; y2 = getarg(7); w2 = getarg(8); h2 = getarg(9); - + set_int(s_x, x1); set_int(s_y, y1); set_int(s_w, w1); @@ -46,74 +46,31 @@ group { name: elm/focus_highlight/top/default; set_int(dify, y2 - y1); set_int(difw, w2 - w1); set_int(difh, h2 - h1); - + custom_state(PART:base, default, 0.0); set_state_val(PART:base, STATE_REL1, 0.0, 0.0); set_state_val(PART:base, STATE_REL2, 0.0, 0.0); update_offset(x1, y1, w1, h1); set_state(PART:base, custom, 0.0); - + anim(0.2, animator1, 1); } } } parts { - part { name: base; type: RECT; - clip_to: clip; + part { name: base; type: SPACER; description { state: default 0.0; -visible: 0; - } - description { state: move_down 0.0; -inherit: default 0.0; -rel1.relative: 0 1; -rel2.relative: 1 2; - } - description { state: move_up 0.0; -inherit: default 0.0; -rel1.relative: 0 -1; -rel2.relative: 1 0; - } - description { state: move_left 0.0; -inherit: default 0.0; -rel1.relative: -1 0; -rel2.relative: 0 1; - } - description { state: move_right 0.0; -inherit: default 0.0; -rel1.relative: 1 0; -rel2.relative: 2 1; } } part { name: clip; type: RECT; - scale: 1; - description { -state: default 0.0; -color: 255 255 255 255; -rel1.relative: -1 -1; -rel2.relative: 2 2; - } - description { state: move_down 0.0; -inherit: default 0.0; -color: 255 255 255 0; - } - description { state: move_up 0.0; -inherit: default 0.0; -color: 255 255 255 0 ; - } - description { state: move_left 0.0; -inherit: default 0.0; + description { state: default 0.0; +rel1.to: glow; +rel2.to: glow; color: 255 255 255 0; } - description { state: move_right 0.0; -inherit: default 0.0; -color: 255 255 255 0 ; -
[EGIT] [core/elementary] master 10/11: elm_gengrid: fix an overlap issue of item and group item on focus.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=2392ee830beccea338c2284ec2a5d2466b808439 commit 2392ee830beccea338c2284ec2a5d2466b808439 Author: Prince Kr Dubey prince.du...@gmail.com Date: Thu Jun 25 16:38:28 2015 +0200 elm_gengrid: fix an overlap issue of item and group item on focus. Summary: Issue: Gengrid item comes over group item on click. Test Plan: Run elementary test. Open GenGrid Group. Click on any item which slightly overlap with group item. Item comes over group item. Reviewers: raster, cedric Reviewed By: cedric Subscribers: rajeshps, govi, poornima.srinivasan, shilpasingh Differential Revision: https://phab.enlightenment.org/D2589 Signed-off-by: Cedric BAIL ced...@osg.samsung.com --- src/lib/elm_gengrid.c | 67 --- 1 file changed, 32 insertions(+), 35 deletions(-) diff --git a/src/lib/elm_gengrid.c b/src/lib/elm_gengrid.c index 70f30ec..faef8a1 100644 --- a/src/lib/elm_gengrid.c +++ b/src/lib/elm_gengrid.c @@ -1273,6 +1273,34 @@ _access_widget_item_register(Elm_Gen_Item *it) } static void +_elm_gengrid_item_focus_raise(Elm_Gen_Item *it) +{ + const char *focus_raise; + Evas_Object *obj = WIDGET(it); + ELM_GENGRID_DATA_GET(obj, sd); + + if (elm_widget_focus_highlight_enabled_get(obj)) + { +edje_object_signal_emit + (VIEW(it), elm,state,focused, elm); + } + + focus_raise = edje_object_data_get(VIEW(it), focusraise); + if ((focus_raise) (!strcmp(focus_raise, on))) + { +Elm_Gen_Item *it1; +Eina_List *l; + +evas_object_raise(VIEW(it)); +EINA_LIST_FOREACH(sd-group_items, l, it1) + { + if (GG_IT(it1)-group_realized) +evas_object_raise(VIEW(it1)); + } + } +} + +static void _item_realize(Elm_Gen_Item *it) { Eina_Bool tmp; @@ -1361,17 +1389,7 @@ _item_realize(Elm_Gen_Item *it) if (eo_it == sd-focused_item) { -const char *focus_raise; -if (elm_widget_focus_highlight_enabled_get(WIDGET(it))) - { - edje_object_signal_emit -(VIEW(it), elm,state,focused, elm); - } - -focus_raise = edje_object_data_get(VIEW(it), focusraise); -if ((focus_raise) (!strcmp(focus_raise, on))) - evas_object_raise(VIEW(it)); - +_elm_gengrid_item_focus_raise(it); _elm_widget_item_highlight_in_theme(WIDGET(it), EO_OBJ(it)); _elm_widget_highlight_in_theme_update(WIDGET(it)); _elm_widget_focus_highlight_start(WIDGET(it)); @@ -1794,6 +1812,7 @@ _group_item_place(Elm_Gengrid_Pan_Data *psd) iw = vw; ih = psd-wsd-group_item_height; } + EINA_LIST_FOREACH(psd-wsd-group_items, l, it) { was_realized = it-realized; @@ -1961,7 +1980,6 @@ _elm_gengrid_item_focused(Elm_Object_Item *eo_it) ELM_GENGRID_ITEM_DATA_GET(eo_it, it); Evas_Object *obj = WIDGET(it); ELM_GENGRID_DATA_GET(obj, sd); - const char *focus_raise; if (it-generation sd-generation) return; @@ -1987,18 +2005,7 @@ _elm_gengrid_item_focused(Elm_Object_Item *eo_it) sd-focused_item = eo_it; - if (it-realized) - { -if (elm_widget_focus_highlight_enabled_get(obj)) - { - edje_object_signal_emit -(VIEW(it), elm,state,focused, elm); - } - -focus_raise = edje_object_data_get(VIEW(it), focusraise); -if ((focus_raise) (!strcmp(focus_raise, on))) - evas_object_raise(VIEW(it)); - } + if (it-realized) _elm_gengrid_item_focus_raise(it); evas_object_smart_callback_call(obj, SIG_ITEM_FOCUSED, eo_it); if (_elm_config-atspi_mode) elm_interface_atspi_accessible_state_changed_signal_emit(eo_it, ELM_ATSPI_STATE_FOCUSED, EINA_TRUE); @@ -3849,17 +3856,7 @@ _elm_gengrid_item_elm_widget_item_focus_set(Eo *eo_it, Elm_Gen_Item *it, Eina_Bo /* If item is not realized state, widget couldn't get focus_highlight data. */ if (it-realized) { - const char *focus_raise; - if (elm_widget_focus_highlight_enabled_get(obj)) -{ - edje_object_signal_emit - (VIEW(it), elm,state,focused, elm); -} - - focus_raise = edje_object_data_get(VIEW(it), focusraise); - if ((focus_raise) (!strcmp(focus_raise, on))) -evas_object_raise(VIEW(it)); - + _elm_gengrid_item_focus_raise(it); _elm_widget_item_highlight_in_theme(obj, eo_it); _elm_widget_highlight_in_theme_update(obj); _elm_widget_focus_highlight_start(obj); --
[EGIT] [core/elementary] master 01/11: focus: fix typo in API Documentation.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=b116f8a3614150b550a655215a925414639a55de commit b116f8a3614150b550a655215a925414639a55de Author: Vaibhav Gupta g.vaibh...@samsung.com Date: Thu Jun 25 15:54:39 2015 +0200 focus: fix typo in API Documentation. Summary: Signed-off-by: Vaibhav Gupta g.vaibh...@samsung.com Reviewers: raster, Hermet, cedric Reviewed By: cedric Subscribers: sachin.dev, singh.amitesh Differential Revision: https://phab.enlightenment.org/D2767 Signed-off-by: Cedric BAIL ced...@osg.samsung.com --- src/lib/elm_focus.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/elm_focus.h b/src/lib/elm_focus.h index 29883f7..2b3801d 100644 --- a/src/lib/elm_focus.h +++ b/src/lib/elm_focus.h @@ -356,7 +356,7 @@ EAPI void elm_object_focus_move_policy_set(Evas_Object *obj, Elm * @param obj The Elementary widget to get the information from * @return The focus movement policy * - * Get how the focus is moved to the give Elemenray object. It can be + * Get how the focus is moved to the give Elementary object. It can be * #ELM_FOCUS_MOVE_POLICY_CLICK, #ELM_FOCUS_MOVE_POLICY_IN, * or #ELM_FOCUS_MOVE_POLICY_KEY_ONLY. * The first means elementary focus is moved on elementary object click. --
[EGIT] [core/elementary] master 11/11: elm_interface_scrollable: fix wrong mirrored calculation
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=e10bb019fa962a564e42a45536d94c2ee23d0fbc commit e10bb019fa962a564e42a45536d94c2ee23d0fbc Author: SangHyeon Lee dltkdgus1...@gmail.com Date: Thu Jun 25 16:44:41 2015 +0200 elm_interface_scrollable: fix wrong mirrored calculation Summary: This Patch is regarding D2553, but funtionally independent patch. D2557 is also related with this patch, so to test working fine, need to install those all three patches. 1. _elm_interface_scrollable_content_region_show store wx into scroll_interface_data without coverting mirrored_x. fix to store wx to mirror-converted x if is_mirrored. 2. _elm_scroll_x_mirrored_get return mirroed_x after compare zero not minx. so current mirrored_x couldn't be less then 0. fix to check min not 0 for set return value. 3. _elm_scroll_x_mirrored_get calculation need to consider start position of scroller. some scroller(e.g. gengrid) start from non-zero position, so calculation need to change like below. ret = (cw - (x + w - min)); @fix Test Plan: You can test this after merge D2553 patch and D2557 and test gengrid2. Reviewers: raster, Hermet, seoz, jaehwan, tanwar.umesh07, cedric Subscribers: tanwar.umesh07, Jaehyun, anand.km, eagleeye, singh.amitesh Differential Revision: https://phab.enlightenment.org/D2558 Signed-off-by: Cedric BAIL ced...@osg.samsung.com --- src/lib/elm_interface_scrollable.c | 13 +++-- 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/lib/elm_interface_scrollable.c b/src/lib/elm_interface_scrollable.c index bf598db..4adebcd 100644 --- a/src/lib/elm_interface_scrollable.c +++ b/src/lib/elm_interface_scrollable.c @@ -1197,18 +1197,19 @@ static Evas_Coord _elm_scroll_x_mirrored_get(const Evas_Object *obj, Evas_Coord x) { - Evas_Coord cw = 0, ch = 0, w = 0, ret; + Evas_Coord cw = 0, w = 0, min = 0, ret; ELM_SCROLL_IFACE_DATA_GET_OR_RETURN_VAL(obj, sid, x); if (!sid-pan_obj) return 0; + eo_do(sid-pan_obj, elm_obj_pan_pos_min_get(min, NULL)); eo_do((Eo *)obj, elm_interface_scrollable_content_viewport_geometry_get (NULL, NULL, w, NULL)); - eo_do(sid-pan_obj, elm_obj_pan_content_size_get(cw, ch)); - ret = (cw - (x + w)); + eo_do(sid-pan_obj, elm_obj_pan_content_size_get(cw, NULL)); + ret = cw - w - x + min + min; - return (ret = 0) ? ret : 0; + return (ret = min) ? ret : min; } /* Update the wanted coordinates according to the x, y passed @@ -1808,7 +1809,7 @@ _elm_interface_scrollable_content_region_set(Eo *obj, Elm_Scrollable_Smart_Inter EOLIAN static void _elm_interface_scrollable_content_region_show(Eo *obj, Elm_Scrollable_Smart_Interface_Data *sid, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h) { - sid-wx = x; + sid-wx = (sid-is_mirrored ? _elm_scroll_x_mirrored_get(sid-obj, x) : x); sid-wy = y; sid-ww = w; sid-wh = h; @@ -4303,7 +4304,7 @@ _elm_interface_scrollable_page_show(Eo *obj, Elm_Scrollable_Smart_Interface_Data if (pagenumber_h = 0) x = sid-pagesize_h * pagenumber_h; if (pagenumber_v = 0) y = sid-pagesize_v * pagenumber_v; - sid-wx = x; + sid-wx = (sid-is_mirrored ? _elm_scroll_x_mirrored_get(sid-obj, x) : x); sid-wy = y; sid-ww = w; sid-wh = h; --
[EGIT] [core/elementary] master 09/11: elm_gengrid: fix the bug that gengrid item index(position) is updated wrong value in item_update
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=80c8cfb7a244d770102b9411f84cfc8e84192190 commit 80c8cfb7a244d770102b9411f84cfc8e84192190 Author: SangHyeon Lee dltkdgus1...@gmail.com Date: Thu Jun 25 16:35:44 2015 +0200 elm_gengrid: fix the bug that gengrid item index(position) is updated wrong value in item_update Summary: elm_gengrid_item_update perform item_unrealize/item_realize/item_place itself. But when gengrid items are added and not calculated yet, caller want to get item's index after execute elm_gengrid_item_update, return value is wrong because item_place update it's position in not-updated item's x and y. to prevent this, if item position is already updated, do not updates position in item place. additionally, I fixed gengrid item prepend wrong posiiton update. gengrid item position start from 1 not 0, so item_position_update also must be started from 1. @fix Test Plan: To test this scenario, need to fix src/bin/test_gengrid.c first. 1. add below codes in bottom of _after_bt_clicked(line 703). ``` Elm_Object_Item *it = elm_gengrid_item_next_get(id-item); printf(before update efl item[%p], index [%d]\n,id-item,elm_gengrid_item_index_get(it)); elm_gengrid_item_update(it); printf(after update efl item[%p], index [%d]\n,id-item,elm_gengrid_item_index_get(it)); ``` 2. execute elementary_test and go to gengrid2 test. 3. add 3 items and select 2nd item then add new item by insert after. 4. you can see index is changed wrong value after item_update executed. after add fallback code in item_update, index is returned same value even after item_update execusion. Reviewers: raster, Hermet, seoz, jaehwan Subscribers: anand.km, eagleeye, singh.amitesh Differential Revision: https://phab.enlightenment.org/D2616 Signed-off-by: Cedric BAIL ced...@osg.samsung.com --- src/lib/elm_gengrid.c | 18 +- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/lib/elm_gengrid.c b/src/lib/elm_gengrid.c index c996b63..70f30ec 100644 --- a/src/lib/elm_gengrid.c +++ b/src/lib/elm_gengrid.c @@ -1507,7 +1507,7 @@ _item_place(Elm_Gen_Item *it, tch = items_row * wsd-item_height; alignh = (vh - tch) * wsd-align_y; item_pos = items_row * cx + cy + 1; -if (item_pos != it-position) +if (item_pos != it-position !it-position_update) { it-position = item_pos; it-position_update = EINA_TRUE; @@ -1540,7 +1540,7 @@ _item_place(Elm_Gen_Item *it, tcw = items_col * wsd-item_width; alignw = (vw - tcw) * wsd-align_x; item_pos = cx + items_col * cy + 1; -if (item_pos != it-position) +if (item_pos != it-position !it-position_update) { it-position = item_pos; it-position_update = EINA_TRUE; @@ -1604,7 +1604,10 @@ _item_place(Elm_Gen_Item *it, { _item_realize(it); if (!was_realized) - evas_object_smart_callback_call(WIDGET(it), SIG_REALIZED, EO_OBJ(it)); + { + _elm_gengrid_item_index_update(it); + evas_object_smart_callback_call(WIDGET(it), SIG_REALIZED, EO_OBJ(it)); + } if (it-parent) { if (wsd-horizontal) @@ -1798,7 +1801,10 @@ _group_item_place(Elm_Gengrid_Pan_Data *psd) { _item_realize(it); if (!was_realized) - evas_object_smart_callback_call(WIDGET(it), SIG_REALIZED, EO_OBJ(it)); + { + _elm_gengrid_item_index_update(it); + evas_object_smart_callback_call(WIDGET(it), SIG_REALIZED, EO_OBJ(it)); + } evas_object_move (VIEW(it), GG_IT(it)-gx, GG_IT(it)-gy); @@ -4285,7 +4291,7 @@ _elm_gengrid_item_prepend(Eo *obj, Elm_Gengrid_Data *sd, const Elm_Gengrid_Item_ if (!it) return NULL; sd-items = eina_inlist_prepend(sd-items, EINA_INLIST_GET(it)); - _item_position_update(sd-items, 0); + _item_position_update(sd-items, 1); if (it-group) sd-group_items = eina_list_append(sd-group_items, it); @@ -4421,6 +4427,8 @@ _elm_gengrid_item_update(Eo *eo_item EINA_UNUSED, Elm_Gen_Item *it) _elm_gengrid_item_unrealize(it, EINA_TRUE); _item_realize(it); _item_place(it, it-x, it-y); + + _elm_gengrid_item_index_update(it); } EOLIAN static void --
[EGIT] [core/elementary] master 02/11: elm_colorselector: pixel-picker accuracy fix
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=4fe4ee851673817043773d66d2b1552b9c0141d1 commit 4fe4ee851673817043773d66d2b1552b9c0141d1 Author: Vitalii Vorobiov vi.vorob...@samsung.com Date: Thu Jun 25 16:11:37 2015 +0200 elm_colorselector: pixel-picker accuracy fix Summary: Looking at the base array of pixels, the real middle of taken picture is actually number 8 from array of 17 pixels (which starts from 0). @fix Reviewers: reutskiy.v.v, raster, NikaWhite, cedric Reviewed By: NikaWhite, cedric Differential Revision: https://phab.enlightenment.org/D2749 Signed-off-by: Cedric BAIL ced...@osg.samsung.com --- src/lib/elm_colorselector.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/elm_colorselector.c b/src/lib/elm_colorselector.c index 20915f0..5dc9f17 100644 --- a/src/lib/elm_colorselector.c +++ b/src/lib/elm_colorselector.c @@ -576,9 +576,9 @@ _mouse_up_cb(void *data, int type EINA_UNUSED, void *event EINA_UNUSED) ELM_SAFE_FREE(sd-grab.mouse_up, ecore_event_handler_del); pixels = evas_object_image_data_get(sd-picker_display, EINA_FALSE); - r = (pixels[17 * 9 + 9] 16) 0xFF; - g = (pixels[17 * 9 + 9] 8) 0xFF; - b = pixels[17 * 9 + 9] 0xFF; + r = (pixels[17 * 8 + 8] 16) 0xFF; + g = (pixels[17 * 8 + 8] 8) 0xFF; + b = pixels[17 * 8 + 8] 0xFF; _colors_set(o, r, g, b, 0xFF); evas_object_smart_callback_call(o, SIG_CHANGED_USER, NULL); --
[EGIT] [core/elementary] master 05/11: elm_spinner: add feature in spinner to change values while dragging relative to the speed of dragging
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=1fa9c23544617907caf0e706c74545117f034c7d commit 1fa9c23544617907caf0e706c74545117f034c7d Author: godly.talias godly.tal...@samsung.com Date: Thu Jun 25 16:27:09 2015 +0200 elm_spinner: add feature in spinner to change values while dragging relative to the speed of dragging Summary: Currently the values in spinner change while dragging only based on the amount of pixels dragged, this patch will enable Spinner to change value based on the speed of dragging so that it will be more user friendly. This will help users to alter drag values by big amounts if dragged in a good speed. Test Plan: test_spinner.c in elementary_test Reviewers: raster, prince.dubey, shilpasingh, cedric Reviewed By: cedric Subscribers: poornima.srinivasan, rajeshps, govi Differential Revision: https://phab.enlightenment.org/D2659 Signed-off-by: Cedric BAIL ced...@osg.samsung.com --- AUTHORS | 1 + src/bin/test_spinner.c | 2 +- src/lib/elm_authors.h| 1 + src/lib/elm_spinner.c| 17 + src/lib/elm_widget_spinner.h | 3 +-- 5 files changed, 17 insertions(+), 7 deletions(-) diff --git a/AUTHORS b/AUTHORS index 4c6dc9a..404439a 100644 --- a/AUTHORS +++ b/AUTHORS @@ -164,3 +164,4 @@ Jee-Yong Um con...@gmail.com Ji-In Moon jiin.m...@samsung.com Subodh Kumar s7158.ku...@samsung.com Kumar Navneet k.navn...@samsung.com +Godly T Alias godly.tal...@samsung.com diff --git a/src/bin/test_spinner.c b/src/bin/test_spinner.c index e3c2c4d..41eb63f 100644 --- a/src/bin/test_spinner.c +++ b/src/bin/test_spinner.c @@ -35,7 +35,7 @@ test_spinner(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_i elm_spinner_label_format_set(sp, %1.1f units); elm_spinner_step_set(sp, 1.3); elm_spinner_wrap_set(sp, EINA_TRUE); - elm_spinner_min_max_set(sp, -50.0, 250.0); + elm_spinner_min_max_set(sp, -5000.0, 5000.0); evas_object_size_hint_align_set(sp, EVAS_HINT_FILL, 0.5); evas_object_size_hint_weight_set(sp, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_smart_callback_add(sp, spinner,drag,start, diff --git a/src/lib/elm_authors.h b/src/lib/elm_authors.h index 6c2f996..71cc0f6 100644 --- a/src/lib/elm_authors.h +++ b/src/lib/elm_authors.h @@ -162,6 +162,7 @@ * @author yinsc shouchen.yin@@samsung.com * @author Subodh Kumar s7158.kumar@@samsung.com * @author Kumar Navneet k.navneet@@samsung.com + * @author Godly T Alias godly.talias@@samsung.com * * Please contact enlightenment-de...@lists.sourceforge.net to get in * contact with the developers and maintainers. diff --git a/src/lib/elm_spinner.c b/src/lib/elm_spinner.c index 9624380..654e1a6 100644 --- a/src/lib/elm_spinner.c +++ b/src/lib/elm_spinner.c @@ -217,11 +217,18 @@ _drag_cb(void *data, else eo_do((Eo *)wd-resize_obj, edje_obj_part_drag_value_get(elm.dragable.slider, pos, NULL)); + if (sd-drag_prev_pos != 0) + sd-drag_val_step = pow((pos - sd-drag_prev_pos), 2); + else + sd-drag_val_step = 1; + - delta = pos * sd-step * _elm_config-scale; + delta = sd-drag_val_step * sd-step * _elm_config-scale; + if (pos sd-drag_prev_pos) delta *= -1; + sd-drag_prev_pos = pos; /* If we are on rtl mode, change the delta to be negative on such changes */ if (elm_widget_mirrored_get(obj)) delta *= -1; - if (_value_set(data, sd-drag_start_val + delta)) _label_write(data); + if (_value_set(data, sd-val + delta)) _label_write(data); sd-dragging = 1; } @@ -233,7 +240,8 @@ _drag_start_cb(void *data, { ELM_SPINNER_DATA_GET(data, sd); - sd-drag_start_val = sd-val; + sd-drag_prev_pos = 0; + sd-drag_val_step = 1; evas_object_smart_callback_call(obj, SIG_DRAG_START, NULL); } @@ -247,7 +255,8 @@ _drag_stop_cb(void *data, ELM_SPINNER_DATA_GET(data, sd); ELM_WIDGET_DATA_GET_OR_RETURN(data, wd); - sd-drag_start_val = 0; + sd-drag_prev_pos = 0; + sd-drag_val_step = 1; edje_object_part_drag_value_set (wd-resize_obj, elm.dragable.slider, 0.0, 0.0); diff --git a/src/lib/elm_widget_spinner.h b/src/lib/elm_widget_spinner.h index d0a4939..151b704 100644 --- a/src/lib/elm_widget_spinner.h +++ b/src/lib/elm_widget_spinner.h @@ -32,8 +32,7 @@ struct _Elm_Spinner_Data const char *label; doubleval, val_min, val_max, val_base; doublestep; /** step for the value change. 1 by default. */ - doubledrag_start_val; /** spinner value on drag start. - this is reset to 0 when drag stops. */ + doubledrag_prev_pos, drag_val_step; doublespin_speed, interval, first_interval; int round; Ecore_Timer *delay_change_timer; /** a timer for a delay,changed smart callback */
[EGIT] [core/efl] master 04/04: evas: fix shooter example
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=f259ff8d4cf30ce2c23137702af04e123c599f99 commit f259ff8d4cf30ce2c23137702af04e123c599f99 Author: perepelits.m perepelit...@samsung.com Date: Thu Jun 25 16:22:00 2015 +0200 evas: fix shooter example Summary: Disable atlas flag for all objects, fix motion algorithm, add primitives. Reviewers: Hermet, raster, cedric Subscribers: cedric, artem.popov Differential Revision: https://phab.enlightenment.org/D2693 Signed-off-by: Cedric BAIL ced...@osg.samsung.com --- src/examples/evas/shooter/evas-3d-shooter-header.h | 2 + src/examples/evas/shooter/evas-3d-shooter-macros.h | 129 src/examples/evas/shooter/evas-3d-shooter.c| 333 + 3 files changed, 150 insertions(+), 314 deletions(-) diff --git a/src/examples/evas/shooter/evas-3d-shooter-header.h b/src/examples/evas/shooter/evas-3d-shooter-header.h index 235c85b..de70da7 100644 --- a/src/examples/evas/shooter/evas-3d-shooter-header.h +++ b/src/examples/evas/shooter/evas-3d-shooter-header.h @@ -21,6 +21,8 @@ typedef struct _Scene_Data { + Eo *cube_primitive; + Eo *sphere_primitive; Eo *cylinder_primitive; Eo *texture_diffuse_eagle; Eo *texture_diffuse_world; diff --git a/src/examples/evas/shooter/evas-3d-shooter-macros.h b/src/examples/evas/shooter/evas-3d-shooter-macros.h index 2eb3282..bf3964a 100644 --- a/src/examples/evas/shooter/evas-3d-shooter-macros.h +++ b/src/examples/evas/shooter/evas-3d-shooter-macros.h @@ -62,10 +62,50 @@ typedef struct _vec2 float y; } vec2; -#define KEY_MOTION(lateral, camera) \ - { \ - lateral_motion_indicator = lateral; \ - camera_move = camera; \ +#define KEY_MOTION(way) \ + { \ + for (i = 0; (motion_vec[i] 0) (!pressed); i++)\ +pressed = (motion_vec[i] == way);\ + \ + if (!pressed) \ +motion_vec[i] = way; \ + \ + if ((way == 1) || (way == 3)) \ +camera_move = CAMERA_MOVE; \ + else \ +camera_move = -CAMERA_MOVE; \ + \ + if (way 3) \ +lateral_motion_indicator = 0;\ + else \ +lateral_motion_indicator = 1;\ + } + +#define KEY_MOTION_DOWN(way) \ + { \ + while ((motion_vec[i] != way) (i 4)) \ +i++; \ + for (j = i; j 3; j++)\ +motion_vec[j] = motion_vec[j + 1]; \ + motion_vec[3] = 0; \ + \ + i = 0; \ + while (motion_vec[i] 0) \ +i++; \ + if (i 0) \ +{\ + if ((motion_vec[i - 1] == 1) || (motion_vec[i - 1] == 3)) \ + camera_move = CAMERA_MOVE; \ + else \ + camera_move = -CAMERA_MOVE; \ + \ + if (motion_vec[i-1] 3) \ + lateral_motion_indicator = 0; \ + else \ + lateral_motion_indicator = 1; \ +}\ + else \ +camera_move = 0; \ } @@ -86,7 +126,7 @@ typedef struct _vec2 eo_do(mesh, evas_canvas3d_mesh_shade_mode_set(EVAS_CANVAS3D_SHADE_MODE_PHONG)); -#define SETUP_MESH(Object, Name, a, d, s)
[EGIT] [core/efl] master 01/04: eina: add test cases for eina matrix map and transform functions
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=70e5687f6c43ffd3a66de592e625ff59c15909b6 commit 70e5687f6c43ffd3a66de592e625ff59c15909b6 Author: Vivek Ellur vivek.el...@samsung.com Date: Thu Jun 25 15:35:33 2015 +0200 eina: add test cases for eina matrix map and transform functions Summary: Added test cases for matrix map and transform functions Signed-off-by: Vivek Ellur vivek.el...@samsung.com Reviewers: stefan_schmidt, cedric Reviewed By: stefan_schmidt, cedric Subscribers: stefan_schmidt, cedric Differential Revision: https://phab.enlightenment.org/D2758 Signed-off-by: Cedric BAIL ced...@osg.samsung.com --- src/tests/eina/eina_test_matrix.c | 53 +++ 1 file changed, 53 insertions(+) diff --git a/src/tests/eina/eina_test_matrix.c b/src/tests/eina/eina_test_matrix.c index ed7c7ef..af1e005 100644 --- a/src/tests/eina/eina_test_matrix.c +++ b/src/tests/eina/eina_test_matrix.c @@ -366,6 +366,58 @@ START_TEST(eina_matrix3_f16p16) } END_TEST +START_TEST(eina_matrix3_map_transform) +{ + double x = 2, y = 3, x1, y1; + Eina_Matrix3 m; + Eina_Rectangle r; + Eina_Quad q; + Eina_Bool ret; + + eina_init(); + + eina_matrix3_values_set(m, + 0, 1, 0, + 1, 0, 0, + 0, 0, 1); + + eina_matrix3_point_transform(m, +x, y, +x1, y1); + fail_if(x1 != 3 || y1 != 2); + + EINA_RECTANGLE_SET(r, 0, 0, 3, 4); + eina_matrix3_rectangle_transform(m, r, q); + + fail_if(q.x0 != 0 || q.y0 != 0 || + q.x1 != 0 || q.y1 != 3 || + q.x2 != 4 || q.y2 != 3 || + q.x3 != 4 || q.y3 != 0); + + eina_quad_coords_set(q, +0.0, 0.0, +3.0, 0.0, +3.0, 3.0, +0.0, 3.0); + ret = eina_matrix3_square_quad_map(m, q); + fail_if(ret != EINA_TRUE); + + fail_if(m.xx != 3 || m.xy != 0 || m.xz != 0 || + m.yx != 0 || m.yy != 3 || m.yz != 0 || + m.zx != 0 || m.zy != 0 || m.zz != 1); + + ret = eina_matrix3_quad_square_map(m, q); + fail_if(ret != EINA_TRUE); + + fail_if(q.x0 != 0 || q.y0 != 0 || + q.x1 != 3 || q.y1 != 0 || + q.x2 != 3 || q.y2 != 3 || + q.x3 != 0 || q.y3 != 3); + + eina_shutdown(); +} +END_TEST + void eina_test_matrix(TCase *tc) { @@ -374,4 +426,5 @@ eina_test_matrix(TCase *tc) tcase_add_test(tc, eina_matrix3); tcase_add_test(tc, eina_matrix3_operations); tcase_add_test(tc, eina_matrix3_f16p16); + tcase_add_test(tc, eina_matrix3_map_transform); } --
[EGIT] [core/efl] master 03/04: edje: add mask_flags instruction for part block
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=2b29f4dfbf901d40aee552345ae5285b1c2e484c commit 2b29f4dfbf901d40aee552345ae5285b1c2e484c Author: Jee-Yong Um con...@gmail.com Date: Thu Jun 25 16:02:41 2015 +0200 edje: add mask_flags instruction for part block Summary: Elementary widgets dealing with Evas Events usually mask event_flags with EVAS_EVENT_FLAG_ON_HOLD, to show that this event is already handled. However, widget like Elm_Button, it does not handle EVAS_CALLBACK_MOUSE_DOWN directly, but it handles Edje_Signal instead, so there's no chance to mask event_flags. Developers can block event propagation by putting rectangle the very last part of EDC, but this instruction can help the case making elementary widget with only Edje_Signal handling. This is not required essentially, so please check the necessity of this function. Reviewers: Hermet, cedric Reviewed By: cedric Subscribers: cedric, Hermet Differential Revision: https://phab.enlightenment.org/D2764 Signed-off-by: Cedric BAIL ced...@osg.samsung.com --- src/bin/edje/edje_cc_handlers.c | 32 ++ src/bin/edje/edje_convert.c | 1 + src/bin/edje/edje_convert.h | 1 + src/bin/edje/edje_data_convert.c | 1 + src/lib/edje/Edje_Edit.h | 19 ++ src/lib/edje/edje_callbacks.c| 42 +++- src/lib/edje/edje_convert.c | 1 + src/lib/edje/edje_convert.h | 1 + src/lib/edje/edje_data.c | 1 + src/lib/edje/edje_edit.c | 23 ++ src/lib/edje/edje_entry.c| 5 + src/lib/edje/edje_private.h | 1 + 12 files changed, 115 insertions(+), 13 deletions(-) diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c index f6458f8..7834ffb 100644 --- a/src/bin/edje/edje_cc_handlers.c +++ b/src/bin/edje/edje_cc_handlers.c @@ -253,6 +253,7 @@ static void st_collections_group_parts_part_mouse_events(void); static void st_collections_group_parts_part_anti_alias(void); static void st_collections_group_parts_part_repeat_events(void); static void st_collections_group_parts_part_ignore_flags(void); +static void st_collections_group_parts_part_mask_flags(void); static void st_collections_group_parts_part_scale(void); static void st_collections_group_parts_part_pointer_mode(void); static void st_collections_group_parts_part_precise_is_inside(void); @@ -691,6 +692,7 @@ New_Statement_Handler statement_handlers[] = {collections.group.parts.part.anti_alias, st_collections_group_parts_part_anti_alias}, {collections.group.parts.part.repeat_events, st_collections_group_parts_part_repeat_events}, {collections.group.parts.part.ignore_flags, st_collections_group_parts_part_ignore_flags}, + {collections.group.parts.part.mask_flags, st_collections_group_parts_part_mask_flags}, {collections.group.parts.part.scale, st_collections_group_parts_part_scale}, {collections.group.parts.part.pointer_mode, st_collections_group_parts_part_pointer_mode}, {collections.group.parts.part.precise_is_inside, st_collections_group_parts_part_precise_is_inside}, @@ -983,6 +985,7 @@ New_Statement_Handler statement_handlers[] = before - insert_before after - insert_after ignore - ignore_flags + mask - mask_flags pointer - pointer_mode alt_font - use_alternate_font_metrics clip - clip_to @@ -1006,6 +1009,7 @@ New_Statement_Handler statement_handlers_short[] = {collections.group.parts.part.before, st_collections_group_parts_part_insert_before}, {collections.group.parts.part.after, st_collections_group_parts_part_insert_after}, {collections.group.parts.part.ignore, st_collections_group_parts_part_ignore_flags}, + {collections.group.parts.part.mask, st_collections_group_parts_part_mask_flags}, {collections.group.parts.part.pointer, st_collections_group_parts_part_pointer_mode}, {collections.group.parts.part.alt_font, st_collections_group_parts_part_use_alternate_font_metrics}, {collections.group.parts.part.clip, st_collections_group_parts_part_clip_to_id}, @@ -3433,6 +3437,7 @@ _part_copy(Edje_Part *ep, Edje_Part *ep2) ep-anti_alias = ep2-anti_alias; ep-repeat_events = ep2-repeat_events; ep-ignore_flags = ep2-ignore_flags; + ep-mask_flags = ep2-mask_flags; ep-scale = ep2-scale; ep-pointer_mode = ep2-pointer_mode; ep-precise_is_inside = ep2-precise_is_inside; @@ -4422,6 +4427,7 @@ st_collections_group_parts_alias(void) mouse_events: 1; repeat_events: 0; ignore_flags: NONE; +mask_flags: NONE; clip_to: anotherpart; source: groupname;
[EGIT] [core/efl] master 02/04: edje: implement methods for mouse_events with edje_part for Edje Embryo script.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ef491e697e60a6e79bec27164342bfb103d2c95a commit ef491e697e60a6e79bec27164342bfb103d2c95a Author: Jee-Yong Um con...@gmail.com Date: Thu Jun 25 15:56:48 2015 +0200 edje: implement methods for mouse_events with edje_part for Edje Embryo script. Summary: In edje_embryo.c, there are the list for supported methods in script. However, methods listed from line 175 to 188 don't exist actually. This patch implements 4 methods among them. set_mouse_events(part_id, ev) get_mouse_events(part_id) set_repeat_events(part_id, rep) get_repeat_events(part_id) Reviewers: Hermet, woohyun, cedric Reviewed By: cedric Subscribers: cedric, Hermet Differential Revision: https://phab.enlightenment.org/D2766 Signed-off-by: Cedric BAIL ced...@osg.samsung.com --- data/edje/include/edje.inc | 4 ++ src/lib/edje/edje_embryo.c | 95 + src/lib/edje/edje_private.h | 5 +++ src/lib/edje/edje_util.c| 48 +++ 4 files changed, 152 insertions(+) diff --git a/data/edje/include/edje.inc b/data/edje/include/edje.inc index 5a3e9dd..98105b6 100644 --- a/data/edje/include/edje.inc +++ b/data/edje/include/edje.inc @@ -131,6 +131,10 @@ native stop_program (program_id); native stop_programs_on (part_id); native set_min_size (Float:w, Float:h); native set_max_size (Float:w, Float:h); +native set_mouse_events (part_id, ev); +native get_mouse_events (part_id); +native set_repeat_events(part_id, rep); +native get_repeat_events(part_id); native part_swallow (part_id, GROUP:str[]); native external_param_get_int(id, param_name[]); diff --git a/src/lib/edje/edje_embryo.c b/src/lib/edje/edje_embryo.c index 2977a54..ddf4ebd 100644 --- a/src/lib/edje/edje_embryo.c +++ b/src/lib/edje/edje_embryo.c @@ -3462,6 +3462,96 @@ _edje_embryo_fn_get_state_val(Embryo_Program *ep, Embryo_Cell *params) return 0; } +/* set_mouse_events(part_id, ev) */ +static Embryo_Cell +_edje_embryo_fn_set_mouse_events(Embryo_Program *ep, Embryo_Cell *params) +{ + int part_id = 0; + Edje *ed; + Edje_Real_Part *rp; + + CHKPARAM(2); + + part_id = params[1]; + if (part_id 0) return 0; + + ed = embryo_program_data_get(ep); + rp = ed-table_parts[part_id % ed-table_parts_size]; + + if (rp) + _edje_part_mouse_events_set(ed, rp, params[2]); + + return 0; +} + +/* get_mouse_events(part_id) */ +static Embryo_Cell +_edje_embryo_fn_get_mouse_events(Embryo_Program *ep, Embryo_Cell *params) +{ + int part_id = 0; + Edje *ed; + Edje_Real_Part *rp; + + CHKPARAM(1); + + part_id = params[1]; + if (part_id 0) return 0; + + ed = embryo_program_data_get(ep); + rp = ed-table_parts[part_id % ed-table_parts_size]; + + if (rp) + return (Embryo_Cell)_edje_var_int_get(ed, (int)_edje_part_mouse_events_get(ed, rp)); + + return 0; + +} + +/* set_repeat_events(part_id, rep) */ +static Embryo_Cell +_edje_embryo_fn_set_repeat_events(Embryo_Program *ep, Embryo_Cell *params) +{ + int part_id = 0; + Edje *ed; + Edje_Real_Part *rp; + + CHKPARAM(2); + + part_id = params[1]; + if (part_id 0) return 0; + + ed = embryo_program_data_get(ep); + rp = ed-table_parts[part_id % ed-table_parts_size]; + + if (rp) + _edje_part_repeat_events_set(ed, rp, params[2]); + + return 0; +} + +/* get_repeat_events(part_id) */ +static Embryo_Cell +_edje_embryo_fn_get_repeat_events(Embryo_Program *ep, Embryo_Cell *params) +{ + int part_id = 0; + Edje *ed; + Edje_Real_Part *rp; + + CHKPARAM(1); + + part_id = params[1]; + if (part_id 0) return 0; + + ed = embryo_program_data_get(ep); + rp = ed-table_parts[part_id % ed-table_parts_size]; + + if (rp) + return (Embryo_Cell)_edje_var_int_get(ed, (int)_edje_part_repeat_events_get(ed, rp)); + + return 0; + +} + /* part_swallow(part_id, group_name) */ static Embryo_Cell _edje_embryo_fn_part_swallow(Embryo_Program *ep, Embryo_Cell *params) @@ -4191,6 +4281,11 @@ _edje_embryo_script_init(Edje_Part_Collection *edc) embryo_program_native_call_add(ep, get_state_val, _edje_embryo_fn_get_state_val); embryo_program_native_call_add(ep, set_state_anim, _edje_embryo_fn_set_state_anim); + embryo_program_native_call_add(ep, set_mouse_events, _edje_embryo_fn_set_mouse_events); + embryo_program_native_call_add(ep, get_mouse_events, _edje_embryo_fn_get_mouse_events); + embryo_program_native_call_add(ep, set_repeat_events, _edje_embryo_fn_set_repeat_events); + embryo_program_native_call_add(ep, get_repeat_events, _edje_embryo_fn_get_repeat_events); + embryo_program_native_call_add(ep, part_swallow, _edje_embryo_fn_part_swallow); embryo_program_native_call_add(ep, external_param_get_int, _edje_embryo_fn_external_param_get_int); diff
[EGIT] [core/elementary] annotated tag v1.14.2 created (now f1090d6)
This is an automated email from the git hooks/post-receive script. stefan pushed a change to annotated tag v1.14.2 in repository core/elementary. at f1090d6 (tag) tagging 19e7b5e424728817c5c3e1b125c1e686323df8e6 (commit) replaces v1.14.1 tagged by Stefan Schmidt on Thu Jun 25 15:58:37 2015 +0200 - Log - v1.14.2 Amitesh Singh (1): genlist: fix resize of items when added after elm_genlist_clear(). Carsten Haitzler (2): elm list - theme - make compress moder work again fix list item mode change on elm list ChunEon Park (1): win: fix bug about engine value. Mike Blumenkrantz (2): win: only trigger del trap if win type is not FAKE win: do not use deferred ecore evas deletion for FAKE wins Stefan Schmidt (2): Revert fileselector: Work around initial genlist size bug for release. release: Update NEWS and bump version for 1.14.2 release taehyub (1): interface scrollerable: modify the loop_v condition in _elm_scroll_momentum_animator() function --- No new revisions were added by this update. --
[EGIT] [tools/erigo] master 01/01: Update black list
yakov pushed a commit to branch master. http://git.enlightenment.org/tools/erigo.git/commit/?id=3312b3cc2a1698f3fea766e4548266476e3153b5 commit 3312b3cc2a1698f3fea766e4548266476e3153b5 Author: Yakov Goldberg yako...@samsung.com Date: Thu Jun 25 17:18:44 2015 +0300 Update black list --- data/config/black_list.json | 1 + 1 file changed, 1 insertion(+) diff --git a/data/config/black_list.json b/data/config/black_list.json index 6db8d75..b610e72 100644 --- a/data/config/black_list.json +++ b/data/config/black_list.json @@ -20,6 +20,7 @@ Eo.Base: [], Edje.Object: [], Efl.File: [mmap], + Efl.Gfx.Filter: [], Efl.Gfx.Stack: [stack_below, stack_above], Efl.Gfx.Fill: [fill_spread], Elm_Interface_Atspi_Text: [], --
[EGIT] [core/elementary] master 01/01: elementary: Add rudimentary support for Elm Wayland apps to set border icon
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=30b6179eb915595180fa30decc87434aa0c7e290 commit 30b6179eb915595180fa30decc87434aa0c7e290 Author: Chris Michael cp.mich...@samsung.com Date: Thu Jun 25 13:33:57 2015 -0400 elementary: Add rudimentary support for Elm Wayland apps to set border icon Summary: This is a patch to fix T2453 where elm apps in weston/E did not display the icon on the border. This is just preliminary support because it only tries to find the efreet desktop file based on _elm_appname. This support Could be extended to allow efreet to search based on window title, etc, etc. @fix Signed-off-by: Chris Michael cp.mich...@samsung.com --- src/lib/elm_win.c | 17 + 1 file changed, 17 insertions(+) diff --git a/src/lib/elm_win.c b/src/lib/elm_win.c index 6d41359..cb909a0 100644 --- a/src/lib/elm_win.c +++ b/src/lib/elm_win.c @@ -2836,6 +2836,23 @@ _elm_win_frame_add(Elm_Win_Data *sd, evas_object_is_frame_object_set(sd-frame_obj, EINA_TRUE); + if (!sd-icon) + { +Efreet_Desktop *d; + +sd-icon = elm_icon_add(sd-obj); + +d = efreet_util_desktop_exec_find(_elm_appname); +if (d) + { + elm_icon_standard_set(sd-icon, d-icon); + efreet_desktop_free(d); + } + } + + edje_object_part_swallow(sd-frame_obj, elm.swallow.icon, +sd-icon); + evas_object_event_callback_add (sd-frame_obj, EVAS_CALLBACK_MOVE, _elm_win_frame_obj_move, sd); evas_object_event_callback_add --
[EGIT] [tools/expedite] master 01/03: expedite: remove FIXME that is already fixed.
cedric pushed a commit to branch master. http://git.enlightenment.org/tools/expedite.git/commit/?id=7de69008b43fdb0d839a2a36d3237247da1453c5 commit 7de69008b43fdb0d839a2a36d3237247da1453c5 Author: Cedric BAIL ced...@osg.samsung.com Date: Thu Jun 25 17:27:53 2015 +0200 expedite: remove FIXME that is already fixed. --- src/bin/main.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/bin/main.c b/src/bin/main.c index 0f4b777..65cdea7 100644 --- a/src/bin/main.c +++ b/src/bin/main.c @@ -1141,8 +1141,6 @@ static const Ecore_Getopt optdesc = { } }; -// FIXME: missing - run all [-a], run specific test [-t], list test [-l], output compatible with expedite-cmp [-m] - static const Expedite_Resolution resolutions[] = { { qvga,320 , 240 }, { qvga-p, 240 , 320 }, --
[EGIT] [core/enlightenment] master 01/01: wl-desktop-shell: Don't crash when trying to place popup menus in QT apps
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=a57ce9ca8585f3fbea784fd8c3e9a9a9da09eb75 commit a57ce9ca8585f3fbea784fd8c3e9a9a9da09eb75 Author: Chris Michael cp.mich...@samsung.com Date: Thu Jun 25 12:05:05 2015 -0400 wl-desktop-shell: Don't crash when trying to place popup menus in QT apps This is a partial fix for T2517. It fixes the crash, but does not address popup menu placement. Signed-off-by: Chris Michael cp.mich...@samsung.com --- src/modules/wl_desktop_shell/e_mod_main.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/modules/wl_desktop_shell/e_mod_main.c b/src/modules/wl_desktop_shell/e_mod_main.c index e262f8f..d69aa60 100644 --- a/src/modules/wl_desktop_shell/e_mod_main.c +++ b/src/modules/wl_desktop_shell/e_mod_main.c @@ -24,7 +24,9 @@ _e_shell_surface_parent_set(E_Client *ec, struct wl_resource *parent_resource) } return; } - else if (!(pc = wl_resource_get_user_data(parent_resource))) + + pc = wl_resource_get_user_data(parent_resource); + if (!pc) { ERR(Could not get parent resource client); return; @@ -44,8 +46,6 @@ _e_shell_surface_parent_set(E_Client *ec, struct wl_resource *parent_resource) if (ec-parent-modal == ec) ec-parent-modal = NULL; ec-parent = NULL; } -else - pc = NULL; } if ((pc != ec) --
[EGIT] [tools/expedite] master 03/03: expedite: add ability to dump any frame.
cedric pushed a commit to branch master. http://git.enlightenment.org/tools/expedite.git/commit/?id=c290c2d15c34f188b1745c7fc92a9d7992316294 commit c290c2d15c34f188b1745c7fc92a9d7992316294 Author: Cedric BAIL ced...@osg.samsung.com Date: Thu Jun 25 18:30:26 2015 +0200 expedite: add ability to dump any frame. --- src/bin/main.c | 55 +++ src/bin/main.h | 19 ++- 2 files changed, 65 insertions(+), 9 deletions(-) diff --git a/src/bin/main.c b/src/bin/main.c index 65cdea7..98e8ee7 100644 --- a/src/bin/main.c +++ b/src/bin/main.c @@ -7,6 +7,7 @@ Evas *evas = NULL; const char *profile = n800; const char *choosen_engine = NULL; +char *output = NULL; int win_w = 720, win_h = 420; int loops = LOOPS; int one_test = 0; @@ -1128,6 +1129,7 @@ static const Ecore_Getopt optdesc = { ECORE_GETOPT_STORE_INT('c', count, Number of main loop run per tests), ECORE_GETOPT_STORE_TRUE('f', fullscreen, Make window fullscreen), ECORE_GETOPT_STORE_STR('d', datadir, Define expedite data directory), +ECORE_GETOPT_STORE_STR('o', output, Output frame specified by count from test to specified file), ECORE_GETOPT_STORE_INT('t', test, Run a single test), ECORE_GETOPT_STORE_TRUE('l', list-tests, List all tests), ECORE_GETOPT_STORE_TRUE('m', compat, Output compatible with expedite-cmp), @@ -1221,6 +1223,7 @@ main(int argc, char **argv) ECORE_GETOPT_VALUE_INT(loops), ECORE_GETOPT_VALUE_BOOL(fullscreen), ECORE_GETOPT_VALUE_STR(datadir), + ECORE_GETOPT_VALUE_STR(output), ECORE_GETOPT_VALUE_INT(test), ECORE_GETOPT_VALUE_BOOL(tests_list), ECORE_GETOPT_VALUE_BOOL(cmp_report), @@ -1283,6 +1286,57 @@ main(int argc, char **argv) ecore_app_args_set(argc, (const char **) argv); + if (output) + { +Ecore_Evas *pee; +Evas_Object *im; + +pee = ecore_evas_buffer_new(1, 1); +if (!pee) return -1; + +im = ecore_evas_object_image_new(pee); +if (!im) return -1; +evas_object_image_filled_set(im, EINA_TRUE); +evas_object_image_size_set(im, + resolutions[resolution_index].width, + resolutions[resolution_index].height); + +ee = ecore_evas_object_ecore_evas_get(im); +if (!ee) return -1; + +ecore_evas_resize(ee, + resolutions[resolution_index].width, + resolutions[resolution_index].height); + +evas_object_show(im); + +choosen_engine = ecore_evas_engine_name_get(pee); +evas = ecore_evas_get(ee); + +evas_font_path_append(evas, datadir); +evas_font_hinting_set(evas, EVAS_FONT_HINTING_AUTO); + +ui_setup(resolutions[resolution_index].width, + resolutions[resolution_index].height); + +if (test 0) + { + one_test = 1; + ui_num(test); + } + +while (loops 0) + { + ui_loop(NULL); + loops--; + } + +ecore_evas_manual_render(pee); +evas_object_image_save(im, output, NULL, NULL); + +goto done; + } + ee = ecore_evas_new(engine, 0, 0, resolutions[resolution_index].width, resolutions[resolution_index].height, @@ -1338,6 +1392,7 @@ main(int argc, char **argv) ecore_main_loop_begin(); ecore_animator_del(anim); + done: ecore_evas_free(ee); ecore_evas_shutdown(); diff --git a/src/bin/main.h b/src/bin/main.h index 4f373b5..cba52c7 100644 --- a/src/bin/main.h +++ b/src/bin/main.h @@ -51,6 +51,7 @@ extern int one_test; extern const char *choosen_engine; extern Eina_Bool fullscreen; extern Eina_Bool cmp_report; +extern char *output; typedef struct _Expedite_Resolution Expedite_Resolution; typedef struct _Expedite_Engine Expedite_Engine; @@ -88,15 +89,15 @@ int engine_abort(void); ui_menu(); \ } -#define FPS_STD(x) \ - if ((f = loops) (!done)) \ - { \ - double fps; \ - fps = (double)f / t; \ - printf(%4.2f , %s\n, fps, x); \ - ui_fps(fps); \ - done = 1; \ - } +#define FPS_STD(x)\ + if (!output (f = loops) (!done)) \ +{ \ + double fps;\ + fps = (double)f / t; \ + printf(%4.2f , %s\n, fps, x);\ + ui_fps(fps); \ + done = 1; \ +} #define SLOW 5.0 --
[EGIT] [core/efl] master 01/01: Revert ecore-wayland: Update xdg shell protocol file
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=590b597e6e2ac6231b44076faf37f4d121f22941 commit 590b597e6e2ac6231b44076faf37f4d121f22941 Author: Chris Michael cp.mich...@samsung.com Date: Thu Jun 25 15:14:56 2015 -0400 Revert ecore-wayland: Update xdg shell protocol file This reverts commit 5793a62fc839af489263c918b78adb7765f8566d. Reverted due to wrong version being pushed --- src/lib/ecore_wayland/xdg-shell-protocol.c | 20 ++-- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/lib/ecore_wayland/xdg-shell-protocol.c b/src/lib/ecore_wayland/xdg-shell-protocol.c index 863f74e..82433ea 100644 --- a/src/lib/ecore_wayland/xdg-shell-protocol.c +++ b/src/lib/ecore_wayland/xdg-shell-protocol.c @@ -50,8 +50,7 @@ static const struct wl_interface *types[] = { NULL, NULL, NULL, - NULL, - wl_surface_interface, + xdg_surface_interface, wl_seat_interface, NULL, NULL, @@ -65,9 +64,10 @@ static const struct wl_interface *types[] = { }; static const struct wl_message xdg_shell_requests[] = { + { destroy, , types + 0 }, { use_unstable_version, i, types + 0 }, { get_xdg_surface, no, types + 4 }, - { get_xdg_popup, nooouiiu, types + 6 }, + { get_xdg_popup, nooouii, types + 6 }, { pong, u, types + 0 }, }; @@ -77,23 +77,23 @@ static const struct wl_message xdg_shell_events[] = { WL_EXPORT const struct wl_interface xdg_shell_interface = { xdg_shell, 1, - 4, xdg_shell_requests, + 5, xdg_shell_requests, 1, xdg_shell_events, }; static const struct wl_message xdg_surface_requests[] = { { destroy, , types + 0 }, - { set_parent, ?o, types + 14 }, + { set_parent, ?o, types + 13 }, { set_title, s, types + 0 }, { set_app_id, s, types + 0 }, - { show_window_menu, ouii, types + 15 }, - { move, ou, types + 19 }, - { resize, ouu, types + 21 }, + { show_window_menu, ouii, types + 14 }, + { move, ou, types + 18 }, + { resize, ouu, types + 20 }, { ack_configure, u, types + 0 }, { set_window_geometry, , types + 0 }, { set_maximized, , types + 0 }, { unset_maximized, , types + 0 }, - { set_fullscreen, ?o, types + 24 }, + { set_fullscreen, ?o, types + 23 }, { unset_fullscreen, , types + 0 }, { set_minimized, , types + 0 }, }; @@ -114,7 +114,7 @@ static const struct wl_message xdg_popup_requests[] = { }; static const struct wl_message xdg_popup_events[] = { - { popup_done, u, types + 0 }, + { popup_done, , types + 0 }, }; WL_EXPORT const struct wl_interface xdg_popup_interface = { --
[EGIT] [core/efl] master 01/02: edje_cc: Fix formatting
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=cbc726ac56040ea3353f2404274836ec1b9a3a32 commit cbc726ac56040ea3353f2404274836ec1b9a3a32 Author: Chris Michael cp.mich...@samsung.com Date: Thu Jun 25 14:54:38 2015 -0400 edje_cc: Fix formatting Signed-off-by: Chris Michael cp.mich...@samsung.com --- src/bin/edje/edje_cc_parse.c | 16 +--- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/bin/edje/edje_cc_parse.c b/src/bin/edje/edje_cc_parse.c index 49da476..9c4e6bc 100644 --- a/src/bin/edje/edje_cc_parse.c +++ b/src/bin/edje/edje_cc_parse.c @@ -1842,11 +1842,13 @@ strstrip(const char *in, char *out, size_t size) int get_param_index(char *str) { - int index ; - for(index = 0; index get_arg_count(); index++) - { - if(!strcmp(str,_parse_param_get(index))) -return index; - } - return -1; + int index; + + for(index = 0; index get_arg_count(); index++) + { +if(!strcmp(str,_parse_param_get(index))) + return index; + } + + return -1; } --
[EGIT] [core/efl] master 01/01: ecore-wayland: Update xdg shell protocol file
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=5793a62fc839af489263c918b78adb7765f8566d commit 5793a62fc839af489263c918b78adb7765f8566d Author: Chris Michael cp.mich...@samsung.com Date: Thu Jun 25 15:11:31 2015 -0400 ecore-wayland: Update xdg shell protocol file Summary: This was a file that should have been updated with the bump to xdg_shell version 5 however it was not pushed with that update. @fix Signed-off-by: Chris Michael cp.mich...@samsung.com --- src/lib/ecore_wayland/xdg-shell-protocol.c | 20 ++-- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/lib/ecore_wayland/xdg-shell-protocol.c b/src/lib/ecore_wayland/xdg-shell-protocol.c index 82433ea..863f74e 100644 --- a/src/lib/ecore_wayland/xdg-shell-protocol.c +++ b/src/lib/ecore_wayland/xdg-shell-protocol.c @@ -50,7 +50,8 @@ static const struct wl_interface *types[] = { NULL, NULL, NULL, - xdg_surface_interface, + NULL, + wl_surface_interface, wl_seat_interface, NULL, NULL, @@ -64,10 +65,9 @@ static const struct wl_interface *types[] = { }; static const struct wl_message xdg_shell_requests[] = { - { destroy, , types + 0 }, { use_unstable_version, i, types + 0 }, { get_xdg_surface, no, types + 4 }, - { get_xdg_popup, nooouii, types + 6 }, + { get_xdg_popup, nooouiiu, types + 6 }, { pong, u, types + 0 }, }; @@ -77,23 +77,23 @@ static const struct wl_message xdg_shell_events[] = { WL_EXPORT const struct wl_interface xdg_shell_interface = { xdg_shell, 1, - 5, xdg_shell_requests, + 4, xdg_shell_requests, 1, xdg_shell_events, }; static const struct wl_message xdg_surface_requests[] = { { destroy, , types + 0 }, - { set_parent, ?o, types + 13 }, + { set_parent, ?o, types + 14 }, { set_title, s, types + 0 }, { set_app_id, s, types + 0 }, - { show_window_menu, ouii, types + 14 }, - { move, ou, types + 18 }, - { resize, ouu, types + 20 }, + { show_window_menu, ouii, types + 15 }, + { move, ou, types + 19 }, + { resize, ouu, types + 21 }, { ack_configure, u, types + 0 }, { set_window_geometry, , types + 0 }, { set_maximized, , types + 0 }, { unset_maximized, , types + 0 }, - { set_fullscreen, ?o, types + 23 }, + { set_fullscreen, ?o, types + 24 }, { unset_fullscreen, , types + 0 }, { set_minimized, , types + 0 }, }; @@ -114,7 +114,7 @@ static const struct wl_message xdg_popup_requests[] = { }; static const struct wl_message xdg_popup_events[] = { - { popup_done, , types + 0 }, + { popup_done, u, types + 0 }, }; WL_EXPORT const struct wl_interface xdg_popup_interface = { --
[EGIT] [core/efl] master 02/02: edje_cc: Fix dereference null return value
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6949d1193eb7f3f7d9218157e78cdf1de5ba8c23 commit 6949d1193eb7f3f7d9218157e78cdf1de5ba8c23 Author: Chris Michael cp.mich...@samsung.com Date: Thu Jun 25 14:55:44 2015 -0400 edje_cc: Fix dereference null return value Summary: Fix Coverity CID1308232 which reports that we may be passing NULL to strcmp here as the function _parse_param_get May return NULL. @fix Signed-off-by: Chris Michael cp.mich...@samsung.com --- src/bin/edje/edje_cc_parse.c | 6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/bin/edje/edje_cc_parse.c b/src/bin/edje/edje_cc_parse.c index 9c4e6bc..5f405df 100644 --- a/src/bin/edje/edje_cc_parse.c +++ b/src/bin/edje/edje_cc_parse.c @@ -1843,10 +1843,14 @@ int get_param_index(char *str) { int index; + char *p; for(index = 0; index get_arg_count(); index++) { -if(!strcmp(str,_parse_param_get(index))) +p = _parse_param_get(index); +if (!p) continue; + +if (!strcmp(str, p)) return index; } --
[EGIT] [core/efl] master 01/01: edje_cc: Fix dereference before null check
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=30363956f1d1cb8d0457ccf784400baa2ff8f5c8 commit 30363956f1d1cb8d0457ccf784400baa2ff8f5c8 Author: Chris Michael cp.mich...@samsung.com Date: Thu Jun 25 14:59:28 2015 -0400 edje_cc: Fix dereference before null check Summary: Fix Coverity CID1302700 which reports a dereference before null check. Basically, it is safe to call free() with a possible NULL value so we can remove the 'if' check here. @fix Signed-off-by: Chris Michael cp.mich...@samsung.com --- src/bin/edje/edje_cc_out.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/edje/edje_cc_out.c b/src/bin/edje/edje_cc_out.c index be534aa..24066ad 100755 --- a/src/bin/edje/edje_cc_out.c +++ b/src/bin/edje/edje_cc_out.c @@ -1065,7 +1065,7 @@ data_write_images(Eet_File *ef, int *image_num) } else { - if (iw) free(iw); + free(iw); error_and_abort_image_load_error (ef, img-entry, load_err); exit(1); // ensure static analysis tools know we exit --
[EGIT] [core/elementary] master 02/05: interface_scrollable: Add more description to animators.
seoz pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=9b47996b6c7a6e09194f4ca537c4f7e4152b573e commit 9b47996b6c7a6e09194f4ca537c4f7e4152b573e Author: Daniel Juyung Seo seojuyu...@gmail.com Date: Tue Jun 9 01:18:48 2015 +0900 interface_scrollable: Add more description to animators. It is surprising that there is no such a comment on a scrollerable interface considering the complexity of scroller. --- src/lib/elm_interface_scrollable.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/elm_interface_scrollable.h b/src/lib/elm_interface_scrollable.h index 1867075..f58ab9f 100644 --- a/src/lib/elm_interface_scrollable.h +++ b/src/lib/elm_interface_scrollable.h @@ -112,9 +112,9 @@ struct _Elm_Scrollable_Smart_Interface_Data Ecore_Idle_Enterer *hold_enterer; Ecore_Animator *hold_animator; Ecore_Animator *onhold_animator; - Ecore_Animator *momentum_animator; - Ecore_Animator *bounce_x_animator; - Ecore_Animator *bounce_y_animator; + Ecore_Animator *momentum_animator; /** an animator which is called whenever a scroller is moving due to a flick action(mouse down, move, up) */ + Ecore_Animator *bounce_x_animator; /** an animator to express the bouncing animation on x axis. */ + Ecore_Animator *bounce_y_animator; /** an animator to express the bouncing animation on y axis. */ Eina_Bool bounce_x_hold : 1; Eina_Bool bounce_y_hold : 1; --
[EGIT] [core/elementary] master 04/05: layout: Add more description for layout's internal smart data members.
seoz pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=3c655aa5ae2c4361526cade434c726be41baea59 commit 3c655aa5ae2c4361526cade434c726be41baea59 Author: Daniel Juyung Seo seojuyu...@gmail.com Date: Fri Jun 19 13:01:46 2015 +0900 layout: Add more description for layout's internal smart data members. --- src/lib/elm_widget_layout.h | 21 +++-- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/lib/elm_widget_layout.h b/src/lib/elm_widget_layout.h index 0e0871c..a8c5e17 100644 --- a/src/lib/elm_widget_layout.h +++ b/src/lib/elm_widget_layout.h @@ -72,19 +72,20 @@ struct _Elm_Layout_Part_Alias_Description */ typedef struct _Elm_Layout_Smart_Data { - Evas_Object *obj; /* The object itself */ - Eina_List*subs; /** List of Elm_Layout_Sub_Object_Data structs, to hold the actual sub objects */ - Eina_List*edje_signals; - Eina_List*parts_cursors; - const char *klass, *group; + Evas_Object *obj; /** The object itself */ + Eina_List*subs; /** List of Elm_Layout_Sub_Object_Data structs, to hold the actual sub objects such as text, content and the children of box and table. */ + Eina_List*edje_signals; /** The list of edje signal callbacks. */ + Eina_List*parts_cursors; /** The list of cursor names of layout parts. This is a list of Elm_Layout_Sub_Object_Cursor struct. */ + const char *klass; /** 1st identifier of an edje object group which is used in theme_set. klass and group are used together. */ + const char *group; /** 2nd identifier of an edje object group which is used in theme_set. klass and group are used together. */ int frozen; /** Layout freeze counter */ - Eina_Bool needs_size_calc : 1; - Eina_Bool restricted_calc_w : 1; - Eina_Bool restricted_calc_h : 1; + Eina_Bool needs_size_calc : 1; /** This flas is set true when the layout sizing eval is already requested. This defers sizing evaluation until smart calculation to avoid unnecessary calculation. */ + Eina_Bool restricted_calc_w : 1; /** This is a flag to support edje restricted_calc in w axis. */ + Eina_Bool restricted_calc_h : 1; /** This is a flag to support edje restricted_calc in y axis. */ Eina_Bool can_access : 1; /** This is true when all text(including textblock) parts can be accessible by accessibility. */ - Eina_Bool destructed_is : 1; /** This flag indicates if Elm_Layout destructor was called */ - Eina_Bool file_set : 1; /** This flag indicates if Elm_Layout source file is set */ + Eina_Bool destructed_is : 1; /** This flag indicates if Elm_Layout destructor was called. This is needed to avoid unnecessary calculation of subobject deletion during layout object's deletion. */ + Eina_Bool file_set : 1; /** This flag indicates if Elm_Layout source is set from a file*/ } Elm_Layout_Smart_Data; /** --
[EGIT] [core/elementary] master 05/05: test_focus_policy: Enhance object focus policy test.
seoz pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=538f3f992008b71662c1213293ba777425c69d63 commit 538f3f992008b71662c1213293ba777425c69d63 Author: Daniel Juyung Seo seojuyu...@gmail.com Date: Fri Jun 19 14:06:16 2015 +0900 test_focus_policy: Enhance object focus policy test. - Add more descriptions in the test. - Set the focus to the first button automatically. --- src/bin/test_focus_policy.c | 159 +++- 1 file changed, 97 insertions(+), 62 deletions(-) diff --git a/src/bin/test_focus_policy.c b/src/bin/test_focus_policy.c index a54c007..66a4244 100644 --- a/src/bin/test_focus_policy.c +++ b/src/bin/test_focus_policy.c @@ -14,15 +14,15 @@ _rdg_changed_cb(void *data, Evas_Object *obj, switch (value) { case 0: -elm_object_text_set(bt, Test Button(MOUSE CLICK or KEY)); +elm_object_text_set(bt, Test Button (MOUSE CLICK or KEY)); elm_object_focus_move_policy_set(bt, ELM_FOCUS_MOVE_POLICY_CLICK); break; case 1: -elm_object_text_set(bt, Test Button(MOUSE IN or KEY)); +elm_object_text_set(bt, Test Button (MOUSE IN or KEY)); elm_object_focus_move_policy_set(bt, ELM_FOCUS_MOVE_POLICY_IN); break; case 2: -elm_object_text_set(bt, Test Button(KEY ONLY)); +elm_object_text_set(bt, Test Button (KEY ONLY)); elm_object_focus_move_policy_set(bt, ELM_FOCUS_MOVE_POLICY_KEY_ONLY); break; default: @@ -33,7 +33,7 @@ _rdg_changed_cb(void *data, Evas_Object *obj, void test_focus_object_policy(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - Evas_Object *win, *fr, *bx, *bt, *test_bt, *rdg, *rd; + Evas_Object *win, *fr, *fr2, *bx, *fr_bx, *bt, *test_bt, *lbl, *rdg, *rd; win = elm_win_util_standard_add(focus-object-policy, Focus Object Policy); elm_win_autodel_set(win, EINA_TRUE); @@ -51,64 +51,99 @@ test_focus_object_policy(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, v elm_object_content_set(fr, bx); evas_object_show(bx); - bt = elm_button_add(bx); - elm_object_text_set(bt, Button 1); - evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_box_pack_end(bx, bt); - evas_object_show(bt); - - bt = elm_button_add(bx); - elm_object_text_set(bt, Button 2); - evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_box_pack_end(bx, bt); - evas_object_show(bt); - - // a button to test focus object policy - test_bt = elm_button_add(bx); - elm_object_text_set(test_bt, Test Button(MOUSE CLICK or KEY)); - evas_object_size_hint_weight_set(test_bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(test_bt, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_box_pack_end(bx, test_bt); - evas_object_show(test_bt); - elm_object_focus_move_policy_set(bt, ELM_FOCUS_MOVE_POLICY_CLICK); - - bt = elm_button_add(bx); - elm_object_text_set(bt, Button 4); - evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_box_pack_end(bx, bt); - evas_object_show(bt); - - // radios to select focus object policy - rd = elm_radio_add(bx); - elm_radio_state_value_set(rd, 0); - evas_object_size_hint_align_set(rd, 0.0, 0.5); - elm_object_text_set(rd, Focus Move Pollicy Mouse Click); - elm_box_pack_end(bx, rd); - evas_object_show(rd); - evas_object_smart_callback_add(rd, changed, _rdg_changed_cb, test_bt); - - rdg = rd; - - rd = elm_radio_add(bx); - elm_radio_state_value_set(rd, 1); - elm_radio_group_add(rd, rdg); - evas_object_size_hint_align_set(rd, 0.0, 0.5); - elm_object_text_set(rd, Focus Move Policy Mouse In); - elm_box_pack_end(bx, rd); - evas_object_show(rd); - evas_object_smart_callback_add(rd, changed, _rdg_changed_cb, test_bt); - - rd = elm_radio_add(bx); - elm_radio_state_value_set(rd, 2); - elm_radio_group_add(rd, rdg); - evas_object_size_hint_align_set(rd, 0.0, 0.5); - elm_object_text_set(rd, Focus Move Pollicy Key Only); - elm_box_pack_end(bx, rd); - evas_object_show(rd); - evas_object_smart_callback_add(rd, changed, _rdg_changed_cb, test_bt); + /* frame 1 for normal buttons */ + { +fr2 = elm_frame_add(bx); +evas_object_size_hint_weight_set(fr2, EVAS_HINT_EXPAND, 0); +evas_object_size_hint_align_set(fr2, EVAS_HINT_FILL, EVAS_HINT_FILL); +elm_object_text_set(fr2, Focusable Buttons); +elm_box_pack_end(bx, fr2); +evas_object_show(fr2); + +fr_bx = elm_box_add(fr2); +elm_object_content_set(fr2, fr_bx); +evas_object_show(fr_bx); + +bt = elm_button_add(fr_bx); +
[EGIT] [core/elementary] master 01/05: elm: Remove shadow variable declarations.
seoz pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=5d5506032f82a3885de0113d6705153aa2e96ea0 commit 5d5506032f82a3885de0113d6705153aa2e96ea0 Author: Daniel Juyung Seo seojuyu...@gmail.com Date: Tue Jun 9 00:43:19 2015 +0900 elm: Remove shadow variable declarations. --- src/lib/elc_naviframe.c | 4 ++-- src/lib/elm_helper.c| 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/lib/elc_naviframe.c b/src/lib/elc_naviframe.c index ff18ee7..2b1c197 100644 --- a/src/lib/elc_naviframe.c +++ b/src/lib/elc_naviframe.c @@ -1377,10 +1377,10 @@ _elm_naviframe_evas_object_smart_add(Eo *obj, Elm_Naviframe_Data *priv) } static void -_send_signal(Elm_Naviframe_Item_Data *it, const char *signal) +_send_signal(Elm_Naviframe_Item_Data *it, const char *sig) { if (!it) return ; - elm_object_signal_emit(VIEW(it), signal, elm); + elm_object_signal_emit(VIEW(it), sig, elm); edje_object_message_signal_process(elm_layout_edje_get(VIEW(it))); } diff --git a/src/lib/elm_helper.c b/src/lib/elm_helper.c index 57a0423..a1aae3f 100644 --- a/src/lib/elm_helper.c +++ b/src/lib/elm_helper.c @@ -13,12 +13,12 @@ struct _Elm_Validator_Regexp }; EAPI Elm_Validator_Regexp * -elm_validator_regexp_new(const char *pattern, const char *signal) +elm_validator_regexp_new(const char *pattern, const char *sig) { Elm_Validator_Regexp *validator; validator = calloc(1, sizeof(Elm_Validator_Regexp)); - validator-signal = eina_stringshare_add(signal ? signal : default); + validator-signal = eina_stringshare_add(sig ? sig : default); validator-status = regcomp(validator-regex, pattern, REG_EXTENDED | REG_NOSUB) ? ELM_REG_BADPAT : ELM_REG_NOERROR; return validator; --
[EGIT] [core/efl] master 01/01: Edje tests: Fix compilation warning
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=8ba212c3b6264096dda8757fe72cd016d68d9137 commit 8ba212c3b6264096dda8757fe72cd016d68d9137 Author: Jean-Philippe Andre jp.an...@samsung.com Date: Fri Jun 26 09:09:03 2015 +0900 Edje tests: Fix compilation warning Thanks Stefan for the report. I don't really like putting all those -DBLA_BETA or #define BLA_BETA everywhere, though. Maybe the @beta flag is not required since the EO APIs are still beta? See: 04466193558ed23f4af3da4a5381aa75ea6e13e5 --- src/tests/edje/edje_test_edje.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/tests/edje/edje_test_edje.c b/src/tests/edje/edje_test_edje.c index 4c80b36..d68a5d9 100644 --- a/src/tests/edje/edje_test_edje.c +++ b/src/tests/edje/edje_test_edje.c @@ -5,6 +5,8 @@ #include unistd.h #include stdio.h +#define EFL_GFX_FILTER_BETA + #include Eina.h #include Edje.h --
[EGIT] [core/enlightenment] master 36/51: unused variable--
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=05a0602f6e8156bfcdf6b569787cf44bb32620dc commit 05a0602f6e8156bfcdf6b569787cf44bb32620dc Author: Mike Blumenkrantz zm...@osg.samsung.com Date: Thu Jun 25 19:20:30 2015 -0400 unused variable-- --- src/bin/e_comp_wl.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 16d2106..d838248 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -69,7 +69,6 @@ _e_comp_wl_cb_prepare(void *data EINA_UNUSED, Ecore_Fd_Handler *hdlr EINA_UNUSED static Eina_Bool _e_comp_wl_cb_module_idle(void *data EINA_UNUSED) { - E_Module *mod = NULL; const char **m, *mods[] = { wl_desktop_shell, --
[EGIT] [core/enlightenment] master 35/51: set wl client surface pointer in surface create method
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=d7c58215f466822ac4c8d581daf3f40321cae0bc commit d7c58215f466822ac4c8d581daf3f40321cae0bc Author: Mike Blumenkrantz zm...@osg.samsung.com Date: Thu Jun 25 19:19:47 2015 -0400 set wl client surface pointer in surface create method remnant from when clients were created by the shell --- src/bin/e_comp_wl.c | 1 + src/modules/wl_desktop_shell/e_mod_main.c | 3 --- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 42888f3..16d2106 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -1486,6 +1486,7 @@ _e_comp_wl_compositor_cb_surface_create(struct wl_client *client, struct wl_reso e_comp-new_clients--; ec-client.w = ec-client.h = 1; ec-ignored = 1; + ec-comp_data-surface = res; } } diff --git a/src/modules/wl_desktop_shell/e_mod_main.c b/src/modules/wl_desktop_shell/e_mod_main.c index 43f03dd..0a23394 100644 --- a/src/modules/wl_desktop_shell/e_mod_main.c +++ b/src/modules/wl_desktop_shell/e_mod_main.c @@ -572,7 +572,6 @@ _e_shell_cb_shell_surface_get(struct wl_client *client, struct wl_resource *reso _e_shell_surface_interface, ec, _e_shell_surface_cb_destroy); - cdata-surface = surface_resource; cdata-shell.configure_send = _e_shell_surface_configure_send; cdata-shell.configure = _e_shell_surface_configure; cdata-shell.ping = _e_shell_surface_ping; @@ -1122,7 +1121,6 @@ _e_xdg_shell_cb_surface_get(struct wl_client *client, struct wl_resource *resour _e_xdg_surface_interface, ec, _e_shell_surface_cb_destroy); - cdata-surface = surface_resource; cdata-shell.configure_send = _e_xdg_shell_surface_configure_send; cdata-shell.configure = _e_xdg_shell_surface_configure; cdata-shell.ping = _e_xdg_shell_surface_ping; @@ -1210,7 +1208,6 @@ _e_xdg_shell_cb_popup_get(struct wl_client *client, struct wl_resource *resource wl_resource_set_implementation(cdata-shell.surface, _e_xdg_popup_interface, ec, NULL); - cdata-surface = surface_resource; cdata-shell.configure_send = _e_xdg_shell_surface_configure_send; cdata-shell.configure = _e_xdg_shell_surface_configure; cdata-shell.ping = _e_xdg_shell_surface_ping; --
[EGIT] [core/enlightenment] master 21/51: load wl_desktop_shell and xwayland after wl comp load
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=dbce3202166fb4b7e26b6aeb18e1fb956514a3aa commit dbce3202166fb4b7e26b6aeb18e1fb956514a3aa Author: Mike Blumenkrantz zm...@osg.samsung.com Date: Tue Apr 28 13:38:26 2015 -0400 load wl_desktop_shell and xwayland after wl comp load --- src/bin/e_comp_wl.c | 25 - 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index b0c8dbd..6c0a4db 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -70,24 +70,31 @@ static Eina_Bool _e_comp_wl_cb_module_idle(void *data EINA_UNUSED) { E_Module *mod = NULL; + const char **m, *mods[] = + { + wl_desktop_shell, + xwayland, + NULL + }; /* check if we are still loading modules */ if (e_module_loading_get()) return ECORE_CALLBACK_RENEW; - if (!(mod = e_module_find(wl_desktop_shell))) - mod = e_module_new(wl_desktop_shell); - - if (mod) + for (m = mods; *m; m++) { -e_module_enable(mod); +E_Module *mod = e_module_find(*m); -/* FIXME: NB: - * Do we need to dispatch pending wl events here ?? */ +if (!mod) + mod = e_module_new(*m); -return ECORE_CALLBACK_CANCEL; +if (mod) + e_module_enable(mod); } - return ECORE_CALLBACK_RENEW; + /* FIXME: NB: +* Do we need to dispatch pending wl events here ?? */ + + return ECORE_CALLBACK_CANCEL; } static void --
[EGIT] [core/enlightenment] master 48/51: add hooking for WL_SURFACE_ID atom on XWayland windows and composite them
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=2b38147c43270815ef71726d8700703968429d90 commit 2b38147c43270815ef71726d8700703968429d90 Author: Mike Blumenkrantz zm...@osg.samsung.com Date: Thu Jun 25 19:55:37 2015 -0400 add hooking for WL_SURFACE_ID atom on XWayland windows and composite them in order to maximize the amount of reused code the following details the current process for xwayland compositing: * get map request from window * force reparenting * show window * await WL_SURFACE_ID x11 message * move x11 client data + pixmap onto corresponding wayland client * business as usual with wayland compositing this is pretty similar to the method of the reference code in weston, except that there's no x11 compositor in weston --- src/bin/e_comp_wl.c | 21 -- src/bin/e_comp_wl.h | 34 ++- src/bin/e_comp_x.c | 119 +--- src/bin/e_comp_x.h | 8 +++- 4 files changed, 161 insertions(+), 21 deletions(-) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 101e62b..6c77a1a 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -40,7 +40,7 @@ _e_comp_wl_focus_check(void) if (stopping) return; ec = e_client_focused_get(); - if ((!ec) || (e_pixmap_type_get(ec-pixmap) != E_PIXMAP_TYPE_WL)) + if ((!ec) || e_pixmap_is_x(ec-pixmap)) e_grabinput_focus(e_comp-ee_win, E_FOCUS_METHOD_PASSIVE); } @@ -1442,7 +1442,8 @@ static void _e_comp_wl_compositor_cb_surface_create(struct wl_client *client, struct wl_resource *resource, uint32_t id) { struct wl_resource *res; - E_Client *ec = NULL; + E_Client *wc, *ec = NULL; + Eina_List *l; pid_t pid; DBG(Compositor Cb Surface Create: %d, id); @@ -1491,7 +1492,15 @@ _e_comp_wl_compositor_cb_surface_create(struct wl_client *client, struct wl_reso /* set reference to pixmap so we can fetch it later */ wl_resource_set_user_data(res, ec); - +#ifndef HAVE_WAYLAND_ONLY + EINA_LIST_FOREACH(e_comp-wl_comp_data-xwl_pending, l, wc) + { +if (!e_pixmap_is_x(wc-pixmap)) continue; +if (wl_resource_get_id(res) != ((E_Comp_X_Client_Data*)ec-comp_data)-surface_id) continue; +e_comp_x_xwayland_client_setup(wc, ec); +break; + } +#endif /* emit surface create signal */ wl_signal_emit(e_comp-wl_comp_data-signals.surface.create, res); } @@ -2964,3 +2973,9 @@ e_comp_wl_output_remove(const char *id) /* free(output); */ } } + +EINTERN void +e_comp_wl_xwayland_client_queue(E_Client *ec) +{ + e_comp-wl_comp_data-xwl_pending = eina_list_append(e_comp-wl_comp_data-xwl_pending, ec); +} diff --git a/src/bin/e_comp_wl.h b/src/bin/e_comp_wl.h index c20aa24..f0bc175 100644 --- a/src/bin/e_comp_wl.h +++ b/src/bin/e_comp_wl.h @@ -1,5 +1,7 @@ #ifdef E_TYPEDEFS - +# ifndef HAVE_WAYLAND_ONLY +# include e_comp_x.h +# endif #else # ifndef E_COMP_WL_H # define E_COMP_WL_H @@ -13,6 +15,10 @@ # include xkbcommon/xkbcommon.h +# ifndef HAVE_WAYLAND_ONLY +# include e_comp_x.h +# endif + /* # ifdef HAVE_WAYLAND_EGL */ /* # include EGL/egl.h */ /* # define GL_GLEXT_PROTOTYPES */ @@ -211,6 +217,7 @@ struct _E_Comp_Wl_Data Ecore_Idler *idler; struct wl_client *xwl_client; + Eina_List *xwl_pending; /* Eina_List *retry_clients; */ /* Ecore_Timer *retry_timer; */ @@ -254,6 +261,10 @@ struct _E_Comp_Wl_Client_Data { int32_t x, y; } popup; +#ifndef HAVE_WAYLAND_ONLY + E_Pixmap *xwayland_pixmap; + E_Comp_X_Client_Data *xwayland_data; +#endif Eina_Bool keep_buffer : 1; Eina_Bool mapped : 1; @@ -294,6 +305,27 @@ E_API struct wl_signal e_comp_wl_surface_create_signal_get(void); E_API double e_comp_wl_idle_time_get(void); E_API Eina_Bool e_comp_wl_output_init(const char *id, const char *make, const char *model, int x, int y, int w, int h, int pw, int ph, unsigned int refresh, unsigned int subpixel, unsigned int transform); E_API void e_comp_wl_output_remove(const char *id); +# ifndef HAVE_WAYLAND_ONLY +EINTERN void e_comp_wl_xwayland_client_queue(E_Client *ec); +static inline E_Comp_X_Client_Data * +e_comp_wl_client_xwayland_data(const E_Client *ec) +{ + return ec-comp_data ? ((E_Comp_Wl_Client_Data*)ec-comp_data)-xwayland_data : NULL; +} + +static inline E_Pixmap * +e_comp_wl_client_xwayland_pixmap(const E_Client *ec) +{ + return ((E_Comp_Wl_Client_Data*)ec-comp_data)-xwayland_pixmap; +} +static inline void +e_comp_wl_client_xwayland_setup(E_Client *ec, E_Comp_X_Client_Data *cd, E_Pixmap *ep) +{ + ((E_Comp_Wl_Client_Data*)ec-comp_data)-xwayland_data = cd; + ((E_Comp_Wl_Client_Data*)ec-comp_data)-xwayland_pixmap = ep; + e_comp-wl_comp_data-xwl_pending = eina_list_remove(e_comp-wl_comp_data-xwl_pending, ec); +} +# endif # endif #endif diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c index
[EGIT] [core/enlightenment] master 13/51: xwayland: Add some debugging code while trying to work out failures with this
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=90f2d06ee09ec89caef3d048fec51a3c5fc91467 commit 90f2d06ee09ec89caef3d048fec51a3c5fc91467 Author: Chris Michael cp.mich...@samsung.com Date: Tue Jul 15 13:54:55 2014 -0400 xwayland: Add some debugging code while trying to work out failures with this Signed-off-by: Chris Michael cp.mich...@samsung.com --- src/modules/xwayland/e_mod_main.c | 27 +++ 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/src/modules/xwayland/e_mod_main.c b/src/modules/xwayland/e_mod_main.c index dec6b88..a01458d 100644 --- a/src/modules/xwayland/e_mod_main.c +++ b/src/modules/xwayland/e_mod_main.c @@ -116,7 +116,11 @@ _abstract_socket_bind(int disp) } /* try to listen on the bound socket */ - if (listen(fd, 1) 0) goto err; + if (listen(fd, 1) 0) + { +ERR(Failed to listen to abstract fd: %d, fd); +goto err; + } return fd; @@ -151,7 +155,11 @@ _unix_socket_bind(int disp) } /* try to listen on the bound socket */ - if (listen(fd, 1) 0) goto err; + if (listen(fd, 1) 0) + { +ERR(Failed to listen to unix fd: %d, fd); +goto err; + } return fd; @@ -200,13 +208,13 @@ _cb_xserver_event(void *data EINA_UNUSED, Ecore_Fd_Handler *hdlr EINA_UNUSED) /* ignore usr1 and have X send it to the parent process */ signal(SIGUSR1, SIG_IGN); -/* FIXME: need to get the path of xwayland */ snprintf(disp, sizeof(disp), :%d, exs-disp); snprintf(xserver, sizeof(xserver), %s, XWAYLAND_BIN); -DBG(\tLaunching XWayland: %s, xserver); +DBG(\tLaunching XWayland: %s: %s, xserver, disp); if (execl(xserver, xserver, disp, -rootless, -listen, abs_fd, - -listen, unx_fd, -wm, wm_fd, -terminate, NULL) 0) + -listen, unx_fd, -wm, wm_fd, -terminate, -shm, + NULL) 0) { ERR(Failed to exec XWayland: %m); } @@ -214,7 +222,6 @@ _cb_xserver_event(void *data EINA_UNUSED, Ecore_Fd_Handler *hdlr EINA_UNUSED) fail: _exit(EXIT_FAILURE); -break; default: close(socks[1]); exs-client = wl_client_create(exs-wl_disp, socks[0]); @@ -222,7 +229,10 @@ fail: close(wms[1]); exs-wm_fd = wms[0]; -/* TODO: remove event sources */ +if (exs-abs_hdlr) + ecore_main_fd_handler_del(exs-abs_hdlr); +if (exs-unx_hdlr) + ecore_main_fd_handler_del(exs-unx_hdlr); break; case -1: ERR(Failed to fork: %m); @@ -247,7 +257,7 @@ _cb_signal_event(void *data EINA_UNUSED, int type EINA_UNUSED, void *event EINA_ * Weston creates a smaller window manager process here. * We Maybe able to just do e_comp_x_init, but will have to test that */ - return ECORE_CALLBACK_RENEW; + return ECORE_CALLBACK_CANCEL; } /* module functions */ @@ -318,6 +328,7 @@ lock: /* assemble x11 display name and set it */ snprintf(disp, sizeof(disp), :%d, exs-disp); + DBG(XWayland Listening on display: %s, disp); setenv(DISPLAY, disp, 1); /* setup ecore_fd handlers for abstract and unix socket fds */ --
[EGIT] [core/enlightenment] master 08/51: xwayland: Fix makefile to use xwayland binary path
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=3af3abf4525b743b62c6f6b91aac33b50592a686 commit 3af3abf4525b743b62c6f6b91aac33b50592a686 Author: Chris Michael cp.mich...@samsung.com Date: Sun Jul 6 10:11:38 2014 -0400 xwayland: Fix makefile to use xwayland binary path Signed-off-by: Chris Michael cp.mich...@samsung.com --- src/modules/Makefile_xwayland.mk | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/modules/Makefile_xwayland.mk b/src/modules/Makefile_xwayland.mk index ec0e133..aa7abff 100644 --- a/src/modules/Makefile_xwayland.mk +++ b/src/modules/Makefile_xwayland.mk @@ -10,7 +10,10 @@ xwaylandpkgdir = $(MDIR)/xwayland/$(MODULE_ARCH) xwaylandpkg_LTLIBRARIES = src/modules/xwayland/module.la src_modules_xwayland_module_la_DEPENDENCIES = $(MDEPENDENCIES) -src_modules_xwayland_module_la_CPPFLAGS = $(MOD_CPPFLAGS) @XWAYLAND_CFLAGS@ @WAYLAND_CFLAGS@ +src_modules_xwayland_module_la_CPPFLAGS = \ + $(MOD_CPPFLAGS) @XWAYLAND_CFLAGS@ @WAYLAND_CFLAGS@ \ + -DXWAYLAND_BIN=\@XWAYLAND_BIN@\ + src_modules_xwayland_module_la_LIBADD = $(LIBS) @XWAYLAND_LIBS@ @WAYLAND_LIBS@ src_modules_xwayland_module_la_LDFLAGS = $(MOD_LDFLAGS) --
[EGIT] [core/enlightenment] master 40/51: set client visibility for shell-less wayland clients appropriately during commit
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=412595dc606fe887bb738e5f00b8bf34cf55f05f commit 412595dc606fe887bb738e5f00b8bf34cf55f05f Author: Mike Blumenkrantz zm...@osg.samsung.com Date: Thu Jun 25 19:22:49 2015 -0400 set client visibility for shell-less wayland clients appropriately during commit --- src/bin/e_comp_wl.c | 4 1 file changed, 4 insertions(+) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index ac5d377..9d230b9 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -1121,6 +1121,7 @@ _e_comp_wl_surface_state_commit(E_Client *ec, E_Comp_Wl_Surface_State *state) ec-comp_data-shell.unmap(ec-comp_data-shell.surface); else { + ec-visible = EINA_FALSE; evas_object_hide(ec-frame); ec-comp_data-mapped = evas_object_visible_get(ec-frame); } @@ -1134,6 +1135,7 @@ _e_comp_wl_surface_state_commit(E_Client *ec, E_Comp_Wl_Surface_State *state) ec-comp_data-shell.map(ec-comp_data-shell.surface); else { + ec-visible = EINA_TRUE; evas_object_show(ec-frame); ec-comp_data-mapped = evas_object_visible_get(ec-frame); } @@ -2710,6 +2712,7 @@ e_comp_wl_surface_commit(E_Client *ec) ec-comp_data-shell.unmap(ec-comp_data-shell.surface); else { + ec-visible = EINA_FALSE; evas_object_hide(ec-frame); ec-comp_data-mapped = evas_object_visible_get(ec-frame); } @@ -2723,6 +2726,7 @@ e_comp_wl_surface_commit(E_Client *ec) ec-comp_data-shell.map(ec-comp_data-shell.surface); else { + ec-visible = EINA_TRUE; evas_object_show(ec-frame); ec-comp_data-mapped = evas_object_visible_get(ec-frame); } --
[EGIT] [core/enlightenment] master 30/51: simplify e build and add X headers for xwayland module
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=9e104dfca113eff99ec1592810c2892a9a8ba430 commit 9e104dfca113eff99ec1592810c2892a9a8ba430 Author: Mike Blumenkrantz zm...@osg.samsung.com Date: Thu Jun 25 18:55:00 2015 -0400 simplify e build and add X headers for xwayland module --- src/bin/Makefile.mk | 5 - src/modules/Makefile_xwayland.mk | 1 + 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/src/bin/Makefile.mk b/src/bin/Makefile.mk index 3917170..8fe0706 100644 --- a/src/bin/Makefile.mk +++ b/src/bin/Makefile.mk @@ -363,11 +363,6 @@ src/bin/e_comp_x.c \ src/bin/e_comp_x_randr.c \ src/bin/e_alert.c \ src/bin/e_xsettings.c -else -if USE_MODULE_WL_X11 -enlightenment_src += \ -src/bin/e_comp_x_randr.c -endif endif if HAVE_WAYLAND diff --git a/src/modules/Makefile_xwayland.mk b/src/modules/Makefile_xwayland.mk index 5afc15b..515bd5b 100644 --- a/src/modules/Makefile_xwayland.mk +++ b/src/modules/Makefile_xwayland.mk @@ -4,6 +4,7 @@ xwaylandpkg_LTLIBRARIES = src/modules/xwayland/module.la src_modules_xwayland_module_la_DEPENDENCIES = $(MDEPENDENCIES) src_modules_xwayland_module_la_CPPFLAGS = \ +-DNEED_X \ $(MOD_CPPFLAGS) \ @XWAYLAND_CFLAGS@ \ @WAYLAND_CFLAGS@ \ --
[EGIT] [core/enlightenment] master 44/51: correct e_comp-new_client count for overrides in x compositor
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=d7c60da84f460754be8fab323b8403a2d1383603 commit d7c60da84f460754be8fab323b8403a2d1383603 Author: Mike Blumenkrantz zm...@osg.samsung.com Date: Thu Jun 25 19:29:24 2015 -0400 correct e_comp-new_client count for overrides in x compositor --- src/bin/e_comp_x.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c index 97a9c1d..5027885 100644 --- a/src/bin/e_comp_x.c +++ b/src/bin/e_comp_x.c @@ -210,6 +210,8 @@ _e_comp_x_client_new_helper(E_Client *ec) ec-take_focus = !starting; } ec-new_client ^= ec-override; + if (!ec-new_client) + e_comp-new_clients--; ec-w = ec-client.w = ec-comp_data-initial_attributes.w; ec-h = ec-client.h = ec-comp_data-initial_attributes.h; --
[EGIT] [core/enlightenment] master 11/51: Whitelist the new xwayland module
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=d79c5657f914011c1a3a128113d97a08e30a7cab commit d79c5657f914011c1a3a128113d97a08e30a7cab Author: Chris Michael cp.mich...@samsung.com Date: Tue Jul 15 09:50:07 2014 -0400 Whitelist the new xwayland module Signed-off-by: Chris Michael cp.mich...@samsung.com Conflicts: src/bin/e_module.c --- src/bin/e_module.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/bin/e_module.c b/src/bin/e_module.c index cc8527e..04b307c 100644 --- a/src/bin/e_module.c +++ b/src/bin/e_module.c @@ -948,6 +948,7 @@ _e_module_whitelist_check(void) packagekit, policy_mobile, geolocation, + xwayland, NULL // end marker }; --
[EGIT] [core/enlightenment] master 10/51: xwayland: Create the wl_client which represents the window manager process.
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=0885237671b1e38029014b252ce70934ab921d93 commit 0885237671b1e38029014b252ce70934ab921d93 Author: Chris Michael cp.mich...@samsung.com Date: Sun Jul 6 10:51:01 2014 -0400 xwayland: Create the wl_client which represents the window manager process. Signed-off-by: Chris Michael cp.mich...@samsung.com --- src/modules/xwayland/e_mod_main.c | 22 +++--- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/modules/xwayland/e_mod_main.c b/src/modules/xwayland/e_mod_main.c index fe8b64e..5ff6d55 100644 --- a/src/modules/xwayland/e_mod_main.c +++ b/src/modules/xwayland/e_mod_main.c @@ -8,10 +8,12 @@ typedef struct _E_XWayland_Server E_XWayland_Server; struct _E_XWayland_Server { int disp; - int abs_fd, unx_fd; + int abs_fd, unx_fd, wm_fd; char lock[256]; + struct wl_display *wl_disp; struct wl_event_loop *loop; + struct wl_client *client; Ecore_Fd_Handler *abs_hdlr, *unx_hdlr; Ecore_Event_Handler *sig_hdlr; @@ -214,9 +216,11 @@ fail: break; default: close(socks[1]); -/* TODO: client_create */ +exs-client = wl_client_create(exs-disp, socks[0]); + close(wms[1]); -/* TODO */ +exs-wm_fd = wms[0]; + /* TODO: remove event sources */ break; case -1: @@ -230,15 +234,16 @@ fail: static Eina_Bool _cb_signal_event(void *data EINA_UNUSED, int type EINA_UNUSED, void *event EINA_UNUSED) { - /* E_XWayland_Server *exs; */ - /* NB: SIGUSR1 comes from XWayland Server when it has finished * initialized. */ - /* if (!(exs = data)) return ECORE_CALLBACK_RENEW; */ - /* TODO: create window manager process */ + /* TODO: NB: +* +* Weston creates a smaller window manager process here. +* We Maybe able to just do e_comp_x_init, but will have to test that */ + return ECORE_CALLBACK_RENEW; } @@ -261,6 +266,9 @@ e_modapi_init(E_Module *m) if (!(exs = calloc(1, sizeof(E_XWayland_Server return NULL; + /* record wayland display */ + exs-wl_disp = comp-wl_comp_data-wl.disp; + /* default display to zero */ exs-disp = 0; --
[EGIT] [core/enlightenment] master 15/51: xwayland: Check for sigusr1 in event handler
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=8f09e55b45a4fb4bdf718c8ef6fd61a4cb4dd754 commit 8f09e55b45a4fb4bdf718c8ef6fd61a4cb4dd754 Author: Chris Michael cp.mich...@samsung.com Date: Fri Sep 5 15:00:00 2014 -0400 xwayland: Check for sigusr1 in event handler XWayland servers sends us SIGUSR1 when it has finished initializing, so we should be checking the signal number when we get the event. Signed-off-by: Chris Michael cp.mich...@samsung.com --- src/modules/xwayland/e_mod_main.c | 7 ++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/modules/xwayland/e_mod_main.c b/src/modules/xwayland/e_mod_main.c index a6dc8bf..f1f6144 100644 --- a/src/modules/xwayland/e_mod_main.c +++ b/src/modules/xwayland/e_mod_main.c @@ -243,8 +243,13 @@ fail: } static Eina_Bool -_cb_signal_event(void *data EINA_UNUSED, int type EINA_UNUSED, void *event EINA_UNUSED) +_cb_signal_event(void *data EINA_UNUSED, int type EINA_UNUSED, void *event) { + Ecore_Event_Signal_User *ev; + + ev = event; + if (ev-number != 1) return ECORE_CALLBACK_RENEW; + /* NB: SIGUSR1 comes from XWayland Server when it has finished * initialized. */ --
[EGIT] [core/enlightenment] master 27/51: remove wayland-clients configure option
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=64b98b712e1e79ebfba08df0b87379aa559aa401 commit 64b98b712e1e79ebfba08df0b87379aa559aa401 Author: Mike Blumenkrantz zm...@osg.samsung.com Date: Thu Jun 25 18:52:04 2015 -0400 remove wayland-clients configure option this has been dead for a long time and is no longer necessary since xwayland support exists --- configure.ac | 21 - 1 file changed, 4 insertions(+), 17 deletions(-) diff --git a/configure.ac b/configure.ac index e685b02..5fa7ae6 100644 --- a/configure.ac +++ b/configure.ac @@ -779,14 +779,6 @@ define([CHECK_MODULE_BLUEZ4], AC_SUBST([EBLUEZ4_CFLAGS]) AC_SUBST([EBLUEZ4_LIBS]) -have_wayland_clients=no -AC_ARG_ENABLE([wayland-clients], - AS_HELP_STRING([--enable-wayland-clients],[enable wayland clients in composite module @:@default=disabled@:@]), - [e_cv_want_wayland_clients=$enableval], - [e_cv_want_wayland_clients=no]) -AC_MSG_CHECKING([whether wayland client support is enabled]) -AC_MSG_RESULT([${e_cv_want_wayland_clients}]) - have_wayland_egl=no AC_ARG_ENABLE([wayland-egl], AS_HELP_STRING([--enable-wayland-egl],[enable wayland to render using EGL @:@default=disabled@:@]), @@ -795,7 +787,7 @@ AC_ARG_ENABLE([wayland-egl], AC_MSG_CHECKING([whether wayland EGL support is enabled]) AC_MSG_RESULT([${e_cv_want_wayland_egl}]) -if test x${e_cv_want_wayland_only} != xno || test x${e_cv_want_wayland_clients} != xno;then +if test x${e_cv_want_wayland_only} != xno ;then PKG_CHECK_MODULES([WAYLAND], [ecore-wayland wayland-server = 1.8.0 xkbcommon uuid], [ have_wayland=yes @@ -806,10 +798,6 @@ else fi if test x${have_wayland} = xyes; then - if test x${e_cv_want_wayland_clients} != xno; then -have_wayland_clients=yes -AC_DEFINE_UNQUOTED([HAVE_WAYLAND_CLIENTS],[1],[enable wayland clients in composite module]) - fi if test x${e_cv_want_wayland_egl} != xno;then PKG_CHECK_MODULES([WAYLAND_EGL], [egl = 7.10], [ @@ -828,7 +816,6 @@ fi AM_CONDITIONAL([HAVE_WAYLAND], [test x${have_wayland} = xyes]) AM_CONDITIONAL([HAVE_WAYLAND_ONLY], [test x${have_wayland_only} = xyes]) -AM_CONDITIONAL([HAVE_WAYLAND_CLIENTS], [test x${have_wayland_clients} = xyes]) AM_CONDITIONAL([HAVE_WAYLAND_EGL], [test x${have_wayland_egl} = xyes]) if test x${have_wayland_only} != xyes; then @@ -847,7 +834,7 @@ define([CHECK_MODULE_WL_X11], if test x${have_wayland_only} = xyes ; then PKG_CHECK_MODULES([ECORE_X], [ecore-x = ${efl_version}]) fi - if test x${have_wayland_clients} = xyes || test x${have_wayland_only} = xyes; then + if test x${have_wayland_only} = xyes; then AC_E_CHECK_PKG(WL_X11, [ ecore-x = $efl_version ], [WL_X11=true], [WL_X11=false]) else WL_X11=false @@ -857,7 +844,7 @@ AM_CONDITIONAL([HAVE_WL_X11], [test x${WL_X11} = xtrue]) define([CHECK_MODULE_WL_DESKTOP_SHELL], [ - if test x${have_wayland_clients} = xyes || test x${e_cv_want_wayland_only} = xyes; then + if test x${e_cv_want_wayland_only} = xyes; then AC_E_CHECK_PKG(WL_DESKTOP_SHELL, [ ecore = $efl_version eina = $efl_version ], [WL_DESKTOP_SHELL=true], [WL_DESKTOP_SHELL=false]) else WL_DESKTOP_SHELL=false @@ -867,7 +854,7 @@ AM_CONDITIONAL([HAVE_WL_DESKTOP_SHELL], [test x${WL_DESKTOP_SHELL} = xtrue]) define([CHECK_MODULE_WL_FB], [ - if test x${have_wayland_clients} = xyes; then + if test x${e_cv_want_wayland_only} = xyes; then AC_E_CHECK_PKG(WL_FB, [ ecore-fb = $efl_version ecore = $efl_version eina = $efl_version ], [WL_FB=true], [WL_FB=false]) else WL_FB=false --
[EGIT] [core/enlightenment] master 51/51: set shm engine for wl internal windows
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=2bf57d79afca8fd98b1ec339bcc5b75152d35c4d commit 2bf57d79afca8fd98b1ec339bcc5b75152d35c4d Author: Mike Blumenkrantz zm...@osg.samsung.com Date: Thu Jun 25 20:04:01 2015 -0400 set shm engine for wl internal windows this seems to be necessary for now to prevent crashing --- src/bin/e_comp_wl.c | 7 +-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 6c77a1a..9e5ca54 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -2607,8 +2607,11 @@ e_comp_wl_init(void) /* add event handlers to catch E events */ if (e_comp-comp_type != E_PIXMAP_TYPE_X) - if (e_randr2_init()) - e_randr2_screens_setup(-1, -1); + { +if (e_randr2_init()) + e_randr2_screens_setup(-1, -1); +elm_config_preferred_engine_set(wayland_shm); + } E_LIST_HANDLER_APPEND(handlers, E_EVENT_RANDR_CHANGE, _e_comp_wl_cb_randr_change, NULL); --
[EGIT] [core/enlightenment] master 12/51: xwayland: Fix launching of XWayland server and pass proper display to wl_client_create
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=eb4df84aa5a9e22f410b5e08e167fe724bc1a113 commit eb4df84aa5a9e22f410b5e08e167fe724bc1a113 Author: Chris Michael cp.mich...@samsung.com Date: Tue Jul 15 10:58:48 2014 -0400 xwayland: Fix launching of XWayland server and pass proper display to wl_client_create Signed-off-by: Chris Michael cp.mich...@samsung.com --- src/modules/xwayland/e_mod_main.c | 13 + 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/modules/xwayland/e_mod_main.c b/src/modules/xwayland/e_mod_main.c index 5ff6d55..dec6b88 100644 --- a/src/modules/xwayland/e_mod_main.c +++ b/src/modules/xwayland/e_mod_main.c @@ -164,7 +164,7 @@ static Eina_Bool _cb_xserver_event(void *data EINA_UNUSED, Ecore_Fd_Handler *hdlr EINA_UNUSED) { int socks[2], wms[2], fd; - char disp[8], s[8], *xserver = NULL; + char disp[8], s[8], xserver[PATH_MAX]; char abs_fd[8], unx_fd[8], wm_fd[8]; if (socketpair(AF_UNIX, (SOCK_STREAM | SOCK_CLOEXEC), 0, socks) 0) @@ -200,10 +200,11 @@ _cb_xserver_event(void *data EINA_UNUSED, Ecore_Fd_Handler *hdlr EINA_UNUSED) /* ignore usr1 and have X send it to the parent process */ signal(SIGUSR1, SIG_IGN); -/* FIXME: need to get the patch of xwayland */ +/* FIXME: need to get the path of xwayland */ snprintf(disp, sizeof(disp), :%d, exs-disp); -DBG(XWAYLAND: %s, XWAYLAND_BIN); +snprintf(xserver, sizeof(xserver), %s, XWAYLAND_BIN); +DBG(\tLaunching XWayland: %s, xserver); if (execl(xserver, xserver, disp, -rootless, -listen, abs_fd, -listen, unx_fd, -wm, wm_fd, -terminate, NULL) 0) { @@ -216,7 +217,7 @@ fail: break; default: close(socks[1]); -exs-client = wl_client_create(exs-disp, socks[0]); +exs-client = wl_client_create(exs-wl_disp, socks[0]); close(wms[1]); exs-wm_fd = wms[0]; @@ -237,6 +238,8 @@ _cb_signal_event(void *data EINA_UNUSED, int type EINA_UNUSED, void *event EINA_ /* NB: SIGUSR1 comes from XWayland Server when it has finished * initialized. */ + DBG(XWayland Finished Init); + /* TODO: create window manager process */ /* TODO: NB: @@ -256,6 +259,8 @@ e_modapi_init(E_Module *m) E_Comp *comp; char disp[8]; + DBG(LOAD XWAYLAND MODULE); + /* try to get the running compositor */ if (!(comp = e_comp_get(NULL))) return NULL; --
[EGIT] [core/enlightenment] master 39/51: reject ignored clients from being processed in client idler
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=179118a70c4f99ed35a6e650c551b6c4a3e9174d commit 179118a70c4f99ed35a6e650c551b6c4a3e9174d Author: Mike Blumenkrantz zm...@osg.samsung.com Date: Thu Jun 25 19:21:49 2015 -0400 reject ignored clients from being processed in client idler --- src/bin/e_client.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/bin/e_client.c b/src/bin/e_client.c index 55b1eb0..b578ff0 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -2322,7 +2322,7 @@ e_client_idler_before(void) Eina_Stringshare *title; // pass 1 - eval0. fetch properties on new or on change and // call hooks to decide what to do - maybe move/resize -if (!ec-changed) continue; +if (ec-ignored || (!ec-changed)) continue; if (!_e_client_hook_call(E_CLIENT_HOOK_EVAL_PRE_FETCH, ec)) continue; /* FETCH is hooked by the compositor to get client hints */ @@ -2345,6 +2345,7 @@ e_client_idler_before(void) E_CLIENT_FOREACH(ec) { +if (ec-ignored) continue; // pass 2 - show windows needing show if ((ec-changes.visible) (ec-visible) (!ec-new_client) (!ec-changes.pos) @@ -2370,7 +2371,7 @@ e_client_idler_before(void) // pass 3 - hide windows needing hide and eval (main eval) E_CLIENT_FOREACH(ec) { -if (e_object_is_del(E_OBJECT(ec))) continue; +if (ec-ignored || e_object_is_del(E_OBJECT(ec))) continue; if ((ec-changes.visible) (!ec-visible)) { --
[EGIT] [core/enlightenment] master 41/51: comment out grabinput focus calls in wayland compositor
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=5b63ce91dc42275be049a95bd827891a052f2a0f commit 5b63ce91dc42275be049a95bd827891a052f2a0f Author: Mike Blumenkrantz zm...@osg.samsung.com Date: Thu Jun 25 19:23:35 2015 -0400 comment out grabinput focus calls in wayland compositor these did nothing, remove for now --- src/bin/e_comp_wl.c | 16 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 9d230b9..971c4a9 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -2257,14 +2257,14 @@ _e_comp_wl_client_cb_focus_set(void *data EINA_UNUSED, E_Client *ec) 0, 0, 0); } - if ((ec-icccm.take_focus) (ec-icccm.accepts_focus)) - e_grabinput_focus(e_client_util_win_get(ec), - E_FOCUS_METHOD_LOCALLY_ACTIVE); - else if (!ec-icccm.accepts_focus) - e_grabinput_focus(e_client_util_win_get(ec), - E_FOCUS_METHOD_GLOBALLY_ACTIVE); - else if (!ec-icccm.take_focus) - e_grabinput_focus(e_client_util_win_get(ec), E_FOCUS_METHOD_PASSIVE); + //if ((ec-icccm.take_focus) (ec-icccm.accepts_focus)) + //e_grabinput_focus(e_client_util_win_get(ec), + //E_FOCUS_METHOD_LOCALLY_ACTIVE); + //else if (!ec-icccm.accepts_focus) + //e_grabinput_focus(e_client_util_win_get(ec), + //E_FOCUS_METHOD_GLOBALLY_ACTIVE); + //else if (!ec-icccm.take_focus) + //e_grabinput_focus(e_client_util_win_get(ec), E_FOCUS_METHOD_PASSIVE); if (e_comp-wl_comp_data-kbd.focus != ec-comp_data-surface) { --
[EGIT] [core/enlightenment] master 31/51: redo wayland-only configure option and define
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=6f46020e5d0fff722f43deb5bb821f04f48035d8 commit 6f46020e5d0fff722f43deb5bb821f04f48035d8 Author: Mike Blumenkrantz zm...@osg.samsung.com Date: Thu Jun 25 18:58:41 2015 -0400 redo wayland-only configure option and define HAVE_WAYLAND_ONLY is now only set when there is only wayland. this means there is no x11 support. zero. no x compositor. no xwayland. no x11 output module. --- configure.ac | 34 -- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/configure.ac b/configure.ac index 5fa7ae6..c9e24d2 100644 --- a/configure.ac +++ b/configure.ac @@ -532,17 +532,6 @@ PKG_CHECK_MODULES(E_SYS, [ ecore = ${efl_version} ]) -if test x${e_cv_want_wayland_only} != xyes; then - PKG_CHECK_MODULES(E_ALERT, [ -xcb -xcb-shape -xcb-keysyms -eina = ${efl_version} -ecore = ${efl_version} -ecore-ipc = ${efl_version} - ]) -fi - e_requires=\ evas = $efl_version \ ecore = $efl_version \ @@ -810,12 +799,10 @@ if test x${have_wayland} = xyes; then fi if test x${e_cv_want_wayland_only} != xno; then have_wayland_only=yes -AC_DEFINE_UNQUOTED([HAVE_WAYLAND_ONLY],[1],[enable wayland-only version of enlightenment]) fi fi AM_CONDITIONAL([HAVE_WAYLAND], [test x${have_wayland} = xyes]) -AM_CONDITIONAL([HAVE_WAYLAND_ONLY], [test x${have_wayland_only} = xyes]) AM_CONDITIONAL([HAVE_WAYLAND_EGL], [test x${have_wayland_egl} = xyes]) if test x${have_wayland_only} != xyes; then @@ -835,7 +822,7 @@ define([CHECK_MODULE_WL_X11], PKG_CHECK_MODULES([ECORE_X], [ecore-x = ${efl_version}]) fi if test x${have_wayland_only} = xyes; then -AC_E_CHECK_PKG(WL_X11, [ ecore-x = $efl_version ], [WL_X11=true], [WL_X11=false]) +AC_E_CHECK_PKG(WL_X11, [ ecore-x = ${efl_version} ], [WL_X11=true], [WL_X11=false]) else WL_X11=false fi @@ -883,6 +870,25 @@ define([CHECK_MODULE_XWAYLAND], ]) AM_CONDITIONAL([HAVE_XWAYLAND], [test x${XWAYLAND_BIN} != xfalse]) +if test x${WL_X11} = xfalse test x${have_wayland} = xyes test x${HAVE_XWAYLAND_DEPS} = xfalse; then + AC_DEFINE_UNQUOTED([HAVE_WAYLAND_ONLY],[1],[enable wayland-only version of enlightenment]) +else + have_wayland_only=no +fi +AM_CONDITIONAL([HAVE_WAYLAND_ONLY], [test x${have_wayland_only} = xyes]) + +if test x${have_wayland_only} != xyes; then + PKG_CHECK_MODULES(E_ALERT, [ +xcb +xcb-shape +xcb-keysyms +eina = ${efl_version} +ecore = ${efl_version} +ecore-ipc = ${efl_version} + ]) +fi + + AC_E_OPTIONAL_MODULE([ibar], true) AC_E_OPTIONAL_MODULE([clock], true) AC_E_OPTIONAL_MODULE([pager], true) --
[EGIT] [core/enlightenment] master 47/51: fix grabinput to work better with multiple compositor backends
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=c8bdacc727e7a437ae51d068dc066c8158469946 commit c8bdacc727e7a437ae51d068dc066c8158469946 Author: Mike Blumenkrantz zm...@osg.samsung.com Date: Thu Jun 25 19:41:04 2015 -0400 fix grabinput to work better with multiple compositor backends check root window to determine existence of X11 compositor, use both wayland and non-wayland define codepaths where available --- src/bin/e_grabinput.c | 52 --- 1 file changed, 33 insertions(+), 19 deletions(-) diff --git a/src/bin/e_grabinput.c b/src/bin/e_grabinput.c index de78c09..a0ca5a8 100644 --- a/src/bin/e_grabinput.c +++ b/src/bin/e_grabinput.c @@ -39,7 +39,7 @@ e_grabinput_get(Ecore_Window mouse_win, int confine_mouse, Ecore_Window key_win) if (grab_mouse_win) { #ifndef HAVE_WAYLAND_ONLY -if (e_comp-comp_type == E_PIXMAP_TYPE_X) +if (e_comp-root) ecore_x_pointer_ungrab(); #else if (e_comp-comp_type == E_PIXMAP_TYPE_WL) @@ -50,7 +50,7 @@ e_grabinput_get(Ecore_Window mouse_win, int confine_mouse, Ecore_Window key_win) if (grab_key_win) { #ifndef HAVE_WAYLAND_ONLY -if (e_comp-comp_type == E_PIXMAP_TYPE_X) +if (e_comp-root) ecore_x_keyboard_ungrab(); #else if (e_comp-comp_type == E_PIXMAP_TYPE_WL) @@ -63,7 +63,7 @@ e_grabinput_get(Ecore_Window mouse_win, int confine_mouse, Ecore_Window key_win) if (mouse_win) { #ifndef HAVE_WAYLAND_ONLY -if (e_comp-comp_type == E_PIXMAP_TYPE_X) +if (e_comp-root) { int ret = 0; if (confine_mouse) @@ -86,7 +86,7 @@ e_grabinput_get(Ecore_Window mouse_win, int confine_mouse, Ecore_Window key_win) if (key_win) { #ifndef HAVE_WAYLAND_ONLY -if (e_comp-comp_type == E_PIXMAP_TYPE_X) +if (e_comp-root) { int ret = 0; @@ -124,7 +124,7 @@ e_grabinput_release(Ecore_Window mouse_win, Ecore_Window key_win) if (mouse_win == grab_mouse_win) { #ifndef HAVE_WAYLAND_ONLY -if (e_comp-comp_type == E_PIXMAP_TYPE_X) +if (e_comp-root) ecore_x_pointer_ungrab(); #else if (e_comp-comp_type == E_PIXMAP_TYPE_WL) @@ -136,7 +136,7 @@ e_grabinput_release(Ecore_Window mouse_win, Ecore_Window key_win) if (key_win == grab_key_win) { #ifndef HAVE_WAYLAND_ONLY -if (e_comp-comp_type == E_PIXMAP_TYPE_X) +if (e_comp-root) ecore_x_keyboard_ungrab(); #else if (e_comp-comp_type == E_PIXMAP_TYPE_WL) @@ -211,7 +211,7 @@ _e_grabinput_focus_check(void *data EINA_UNUSED) static void _e_grabinput_focus_do(Ecore_Window win, E_Focus_Method method) { -#ifdef HAVE_WAYLAND_ONLY +#ifdef HAVE_WAYLAND Ecore_Wl_Window *wl_win; #endif @@ -223,34 +223,49 @@ _e_grabinput_focus_do(Ecore_Window win, E_Focus_Method method) case E_FOCUS_METHOD_LOCALLY_ACTIVE: #ifndef HAVE_WAYLAND_ONLY -ecore_x_window_focus_at_time(win, ecore_x_current_time_get()); -ecore_x_icccm_take_focus_send(win, ecore_x_current_time_get()); -#else -if ((wl_win = ecore_wl_window_find(win))) +if (e_comp-root) { - /* FIXME: Need to add an ecore_wl_window_focus function */ + ecore_x_window_focus_at_time(win, ecore_x_current_time_get()); + ecore_x_icccm_take_focus_send(win, ecore_x_current_time_get()); + } +#endif +#ifdef HAVE_WAYLAND +if (e_comp-comp_type == E_PIXMAP_TYPE_WL) + { + if ((wl_win = ecore_wl_window_find(win))) + { + /* FIXME: Need to add an ecore_wl_window_focus function */ + } } #endif break; case E_FOCUS_METHOD_GLOBALLY_ACTIVE: #ifndef HAVE_WAYLAND_ONLY -ecore_x_icccm_take_focus_send(win, ecore_x_current_time_get()); +if (e_comp-root) + ecore_x_icccm_take_focus_send(win, ecore_x_current_time_get()); #else -if ((wl_win = ecore_wl_window_find(win))) +if (e_comp-comp_type == E_PIXMAP_TYPE_WL) { - /* FIXME: Need to add an ecore_wl_window_focus function */ + if ((wl_win = ecore_wl_window_find(win))) + { + /* FIXME: Need to add an ecore_wl_window_focus function */ + } } #endif break; case E_FOCUS_METHOD_PASSIVE: #ifndef HAVE_WAYLAND_ONLY -ecore_x_window_focus_at_time(win, ecore_x_current_time_get()); +if (e_comp-root) + ecore_x_window_focus_at_time(win, ecore_x_current_time_get()); #else -if ((wl_win = ecore_wl_window_find(win))) +if (e_comp-comp_type == E_PIXMAP_TYPE_WL) { - /* FIXME: Need to add an ecore_wl_window_focus function */ + if ((wl_win = ecore_wl_window_find(win))) + { +
[EGIT] [core/enlightenment] master 43/51: move X idle flusher to comp_x
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=2654b7e3e79197bd31cd21c87406c19ae5d969bb commit 2654b7e3e79197bd31cd21c87406c19ae5d969bb Author: Mike Blumenkrantz zm...@osg.samsung.com Date: Thu Jun 25 19:28:38 2015 -0400 move X idle flusher to comp_x --- src/bin/e_comp_x.c | 9 + src/bin/e_main.c | 20 +--- 2 files changed, 10 insertions(+), 19 deletions(-) diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c index caa264e..97a9c1d 100644 --- a/src/bin/e_comp_x.c +++ b/src/bin/e_comp_x.c @@ -43,6 +43,7 @@ static Eina_Hash *frame_extents = NULL; static Eina_Hash *alarm_hash = NULL; static Ecore_Idle_Enterer *_e_comp_x_post_client_idler = NULL; +static Ecore_Idle_Enterer *_x_idle_flush = NULL; static Eina_List *post_clients = NULL; static int _e_comp_x_mapping_change_disabled = 0; @@ -56,6 +57,13 @@ static Eina_Bool screensaver_dimmed = EINA_FALSE; static Ecore_X_Atom backlight_atom = 0; extern double e_bl_val; +static Eina_Bool +_e_comp_x_flusher(void *data EINA_UNUSED) +{ + ecore_x_flush(); + return ECORE_CALLBACK_RENEW; +} + static inline Ecore_X_Window _e_comp_x_client_window_get(const E_Client *ec) { @@ -5127,6 +5135,7 @@ e_comp_x_init(void) E_LIST_HANDLER_APPEND(handlers, E_EVENT_RANDR_CHANGE, _e_comp_x_randr_change, NULL); ecore_x_sync(); + _x_idle_flush = ecore_idle_enterer_add(_e_comp_x_flusher, NULL); return EINA_TRUE; } diff --git a/src/bin/e_main.c b/src/bin/e_main.c index 8812d02..4575499 100644 --- a/src/bin/e_main.c +++ b/src/bin/e_main.c @@ -84,7 +84,6 @@ static void _e_main_desk_save(void); static void _e_main_desk_restore(void); static void _e_main_efreet_paths_init(void); static void _e_main_modules_load(Eina_Bool safe_mode); -static Eina_Bool _e_main_cb_x_flusher(void *data EINA_UNUSED); static Eina_Bool _e_main_cb_idle_before(void *data EINA_UNUSED); static Eina_Bool _e_main_cb_idle_after(void *data EINA_UNUSED); static Eina_Bool _e_main_cb_startup_fake_end(void *data EINA_UNUSED); @@ -100,7 +99,6 @@ static int(*_e_main_shutdown_func[MAX_LEVEL]) (void); static Ecore_Idle_Enterer *_idle_before = NULL; static Ecore_Idle_Enterer *_idle_after = NULL; -static Ecore_Idle_Enterer *_idle_flush = NULL; static Ecore_Event_Handler *mod_init_end = NULL; @@ -977,10 +975,6 @@ main(int argc, char **argv) TS(E_Order Init Done); _e_main_shutdown_push(e_order_shutdown); - TS(Add Idler For X Flush); - _idle_flush = ecore_idle_enterer_add(_e_main_cb_x_flusher, NULL); - TS(Add Idler For X Flush Done); - TS(E_Comp_Canvas Keys Grab); e_comp_canvas_keys_grab(); TS(E_Comp_Canvas Keys Grab Done); @@ -1090,8 +1084,6 @@ _e_main_shutdown(int errcode) _idle_before = NULL; if (_idle_after) ecore_idle_enterer_del(_idle_after); _idle_after = NULL; - if (_idle_flush) ecore_idle_enterer_del(_idle_flush); - _idle_flush = NULL; dir = getenv(XDG_RUNTIME_DIR); if (dir) @@ -1743,6 +1735,7 @@ _e_main_cb_idle_after(void *data EINA_UNUSED) { static int first_idle = 1; + eet_clearcache(); edje_freeze(); #ifdef E_RELEASE_BUILD @@ -1765,17 +1758,6 @@ _e_main_cb_idle_after(void *data EINA_UNUSED) } static Eina_Bool -_e_main_cb_x_flusher(void *data EINA_UNUSED) -{ - eet_clearcache(); -#ifndef HAVE_WAYLAND_ONLY - if (e_comp-comp_type == E_PIXMAP_TYPE_X) - ecore_x_flush(); -#endif - return ECORE_CALLBACK_RENEW; -} - -static Eina_Bool _e_main_cb_startup_fake_end(void *data EINA_UNUSED) { e_init_hide(); --
[EGIT] [core/enlightenment] master 23/51: fix xwayland fd dup conditionals
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=bd313e90dd5ed2a320e022661b4e773baca298b8 commit bd313e90dd5ed2a320e022661b4e773baca298b8 Author: Mike Blumenkrantz zm...@osg.samsung.com Date: Tue Apr 28 16:58:55 2015 -0400 fix xwayland fd dup conditionals --- src/modules/xwayland/e_mod_main.c | 12 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/modules/xwayland/e_mod_main.c b/src/modules/xwayland/e_mod_main.c index 92bad9a..2013607 100644 --- a/src/modules/xwayland/e_mod_main.c +++ b/src/modules/xwayland/e_mod_main.c @@ -192,17 +192,21 @@ _cb_xserver_event(void *data EINA_UNUSED, Ecore_Fd_Handler *hdlr EINA_UNUSED) { case 0: /* dup will unset CLOEXEC on the client as cloexec closes both ends */ -if ((fd = dup(socks[1]) 0)) goto fail; +fd = dup(socks[1]); +if (fd 0) goto fail; snprintf(s, sizeof(s), %d, fd); setenv(WAYLAND_SOCKET, s, 1); -if ((fd = dup(exs-abs_fd)) 0) goto fail; +fd = dup(exs-abs_fd); +if (fd 0) goto fail; snprintf(abs_fd, sizeof(abs_fd), %d, fd); -if ((fd = dup(exs-unx_fd)) 0) goto fail; +fd = dup(exs-unx_fd); +if (fd 0) goto fail; snprintf(unx_fd, sizeof(unx_fd), %d, fd); -if ((fd = dup(wms[1])) 0) goto fail; +fd = dup(wms[1]); +if (fd 0) goto fail; snprintf(wm_fd, sizeof(wm_fd), %d, fd); /* ignore usr1 and have X send it to the parent process */ --
[EGIT] [core/enlightenment] master 26/51: bump wayland version requirement to 1.8
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=8e282cea608f4b78507da06fff71ed14b0730385 commit 8e282cea608f4b78507da06fff71ed14b0730385 Author: Mike Blumenkrantz zm...@osg.samsung.com Date: Thu Jun 25 18:50:20 2015 -0400 bump wayland version requirement to 1.8 --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 54ffb68..e685b02 100644 --- a/configure.ac +++ b/configure.ac @@ -796,7 +796,7 @@ AC_MSG_CHECKING([whether wayland EGL support is enabled]) AC_MSG_RESULT([${e_cv_want_wayland_egl}]) if test x${e_cv_want_wayland_only} != xno || test x${e_cv_want_wayland_clients} != xno;then - PKG_CHECK_MODULES([WAYLAND], [ecore-wayland wayland-server = 1.7.0 xkbcommon uuid], + PKG_CHECK_MODULES([WAYLAND], [ecore-wayland wayland-server = 1.8.0 xkbcommon uuid], [ have_wayland=yes AC_DEFINE_UNQUOTED([HAVE_WAYLAND],[1],[enable wayland support]) --
[EGIT] [core/enlightenment] master 06/51: Add start of xwayand module code
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=2724f92bc6df5261bdbc18e52a496e7b482520e6 commit 2724f92bc6df5261bdbc18e52a496e7b482520e6 Author: Chris Michael cp.mich...@samsung.com Date: Wed Jul 2 11:46:22 2014 -0400 Add start of xwayand module code Signed-off-by: Chris Michael cp.mich...@samsung.com --- src/modules/xwayland/e_mod_main.c | 129 ++ 1 file changed, 129 insertions(+) diff --git a/src/modules/xwayland/e_mod_main.c b/src/modules/xwayland/e_mod_main.c new file mode 100644 index 000..a6e5ed7 --- /dev/null +++ b/src/modules/xwayland/e_mod_main.c @@ -0,0 +1,129 @@ +#include e.h +#include e_comp_wl.h + +/* local structures */ +typedef struct _E_XWayland_Server E_XWayland_Server; +struct _E_XWayland_Server +{ + int disp; +}; + +/* local variables */ +static E_XWayland_Server *exs; + +/* local functions */ +static Eina_Bool +_lock_create(int disp) +{ + char lock[256], pid[16], *end; + int fd, size; + pid_t opid; + + /* assemble lock file name */ + snprintf(lock, sizeof(lock), /tmp/.X%d-lock, disp); + fd = open(lock, (O_WRONLY | O_CLOEXEC | O_CREAT | O_EXCL), 0444); + if ((fd 0) (errno == EEXIST)) + { +fd = open(lock, (O_CLOEXEC | O_RDONLY)); +if ((fd 0) || (read(fd, pid, 11) != 11)) + { + ERR(Could not read XWayland lock file: %m); + if (fd = 0) close(fd); + errno = EEXIST; + return EINA_FALSE; + } + +opid = strtol(pid, end, 0); +if ((end != (pid + 10))) + { + if (fd = 0) close(fd); + errno = EEXIST; + return EINA_FALSE; + } + +if ((kill(opid, 0) 0) (errno == ESRCH)) + { + /* close stale lock file */ + if (fd = 0) close(fd); + + if (unlink(lock)) + errno = EEXIST; + else + errno = EAGAIN; + + return EINA_FALSE; + } +close(fd); +errno = EEXIST; +return EINA_FALSE; + } + else if (fd 0) + { +ERR(Could not create XWayland lock file: %m); +return EINA_FALSE; + } + + /* use the pid of the wayland compositor */ + size = snprintf(pid, sizeof(pid), %10d\n, getpid()); + if (write(fd, pid, size) != size) + { +unlink(lock); +close(fd); +return EINA_FALSE; + } + + close(fd); + + return EINA_TRUE; +} + +/* module functions */ +EAPI E_Module_Api e_modapi = { E_MODULE_API_VERSION, XWayland }; + +EAPI void * +e_modapi_init(E_Module *m) +{ + E_Comp *comp; + + /* try to get the running compositor */ + if (!(comp = e_comp_get(NULL))) return NULL; + + /* make sure it's a wayland compositor */ + if (comp-comp_type != E_PIXMAP_TYPE_WL) return NULL; + + /* alloc space for server struct */ + if (!(exs = calloc(1, sizeof(E_XWayland_Server + return NULL; + + /* default display to zero */ + exs-disp = 0; + +lock: + if (!_lock_create(exs-disp)) + { +if (errno == EAGAIN) + goto lock; +else if (errno == EEXIST) + { + exs-disp++; + goto lock; + } +else + { + free(exs); + return NULL; + } + } + + /* TODO: bind sockets */ + + return m; +} + +EAPI int +e_modapi_shutdown(E_Module *m) +{ + return 1; +} + + --
[EGIT] [core/enlightenment] master 07/51: xwayland: Fix configure.ac to substitute the xwayland binary path
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=db295ffaf79f661677ffd159012a9c60613c64f5 commit db295ffaf79f661677ffd159012a9c60613c64f5 Author: Chris Michael cp.mich...@samsung.com Date: Sun Jul 6 10:11:04 2014 -0400 xwayland: Fix configure.ac to substitute the xwayland binary path Signed-off-by: Chris Michael cp.mich...@samsung.com --- configure.ac | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 4c15763..0c72375 100644 --- a/configure.ac +++ b/configure.ac @@ -889,7 +889,8 @@ define([CHECK_MODULE_XWAYLAND], [ if test x${e_cv_want_wayland_only} = xyes; then AC_E_CHECK_PKG(XWAYLAND, [ ecore = $efl_version eina = $efl_version ], [HAVE_XWAYLAND_DEPS=true], [HAVE_XWAYLAND_DEPS=false]) -AC_PATH_PROGS([XWAYLAND_BIN], [Xwayland], [HAVE_XWAYLAND_DEPS=false], [/sbin:/usr/sbin:$PATH]) +AC_PATH_PROG([XWAYLAND_BIN], [Xwayland], [HAVE_XWAYLAND_DEPS=false], [/sbin:/usr/sbin:$PATH]) +AC_SUBST(XWAYLAND_BIN) else HAVE_XWAYLAND_DEPS=false fi --
[EGIT] [core/enlightenment] master 28/51: use c array size for e atom init
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=113147fa304907ecbaf419893a718c3738976652 commit 113147fa304907ecbaf419893a718c3738976652 Author: Mike Blumenkrantz zm...@osg.samsung.com Date: Thu Jun 25 18:53:55 2015 -0400 use c array size for e atom init --- src/bin/e_atoms.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/bin/e_atoms.c b/src/bin/e_atoms.c index 94e63d8..3b02184 100644 --- a/src/bin/e_atoms.c +++ b/src/bin/e_atoms.c @@ -33,9 +33,9 @@ e_atoms_init(void) __E_ATOM_DESKTOP_FILE, E_ZONE_GEOMETRY }; - Ecore_X_Atom atoms[11]; + Ecore_X_Atom atoms[EINA_C_ARRAY_LENGTH(atom_names)]; - ecore_x_atoms_get(atom_names, 11, atoms); + ecore_x_atoms_get(atom_names, EINA_C_ARRAY_LENGTH(atom_names), atoms); E_ATOM_MANAGED = atoms[0]; E_ATOM_ZONE = atoms[1]; E_ATOM_DESK = atoms[2]; --
[EGIT] [core/enlightenment] master 09/51: xwayland: Create and bind to unix abstract sockets
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=c1b2bb0618fd8f7412f6619a199ed69321a1b5b7 commit c1b2bb0618fd8f7412f6619a199ed69321a1b5b7 Author: Chris Michael cp.mich...@samsung.com Date: Sun Jul 6 10:12:03 2014 -0400 xwayland: Create and bind to unix abstract sockets NB: XWayland server needs the sockets setup prior to launching it so we add some code to create bind the needed sockets before starting the XWayland binary Signed-off-by: Chris Michael cp.mich...@samsung.com --- src/modules/xwayland/e_mod_main.c | 218 -- 1 file changed, 209 insertions(+), 9 deletions(-) diff --git a/src/modules/xwayland/e_mod_main.c b/src/modules/xwayland/e_mod_main.c index a6e5ed7..fe8b64e 100644 --- a/src/modules/xwayland/e_mod_main.c +++ b/src/modules/xwayland/e_mod_main.c @@ -1,11 +1,26 @@ #include e.h #include e_comp_wl.h +#include sys/socket.h +#include sys/un.h /* local structures */ typedef struct _E_XWayland_Server E_XWayland_Server; struct _E_XWayland_Server { int disp; + int abs_fd, unx_fd; + char lock[256]; + + struct wl_event_loop *loop; + + Ecore_Fd_Handler *abs_hdlr, *unx_hdlr; + Ecore_Event_Handler *sig_hdlr; + + struct + { +pid_t pid; +/* cleanup_func func; */ + } process; }; /* local variables */ @@ -13,14 +28,12 @@ static E_XWayland_Server *exs; /* local functions */ static Eina_Bool -_lock_create(int disp) +_lock_create(char *lock) { - char lock[256], pid[16], *end; + char pid[16], *end; int fd, size; pid_t opid; - /* assemble lock file name */ - snprintf(lock, sizeof(lock), /tmp/.X%d-lock, disp); fd = open(lock, (O_WRONLY | O_CLOEXEC | O_CREAT | O_EXCL), 0444); if ((fd 0) (errno == EEXIST)) { @@ -77,6 +90,158 @@ _lock_create(int disp) return EINA_TRUE; } +static int +_abstract_socket_bind(int disp) +{ + struct sockaddr_un addr; + socklen_t size, nsize; + int fd; + + /* try to create a local socket */ + if ((fd = socket(PF_LOCAL, (SOCK_STREAM | SOCK_CLOEXEC), 0)) 0) + return -1; + + addr.sun_family = AF_LOCAL; + nsize = snprintf(addr.sun_path, sizeof(addr.sun_path), +%c/tmp/.X11-unix/X%d, 0, disp); + size = offsetof(struct sockaddr_un, sun_path) + nsize; + + /* try to bind to the socket */ + if (bind(fd, (struct sockaddr *)addr, size) 0) + { +ERR(Failed to bind to abstract socket %s: %m, addr.sun_path + 1); +goto err; + } + + /* try to listen on the bound socket */ + if (listen(fd, 1) 0) goto err; + + return fd; + +err: + close(fd); + return -1; +} + +static int +_unix_socket_bind(int disp) +{ + struct sockaddr_un addr; + socklen_t size, nsize; + int fd; + + /* try to create a local socket */ + if ((fd = socket(PF_LOCAL, (SOCK_STREAM | SOCK_CLOEXEC), 0)) 0) + return -1; + + addr.sun_family = AF_LOCAL; + nsize = snprintf(addr.sun_path, sizeof(addr.sun_path), +/tmp/.X11-unix/X%d, disp) + 1; + size = offsetof(struct sockaddr_un, sun_path) + nsize; + + unlink(addr.sun_path); + + /* try to bind to the socket */ + if (bind(fd, (struct sockaddr *)addr, size) 0) + { +ERR(Failed to bind to abstract socket %s: %m, addr.sun_path + 1); +goto err; + } + + /* try to listen on the bound socket */ + if (listen(fd, 1) 0) goto err; + + return fd; + +err: + close(fd); + return -1; +} + +static Eina_Bool +_cb_xserver_event(void *data EINA_UNUSED, Ecore_Fd_Handler *hdlr EINA_UNUSED) +{ + int socks[2], wms[2], fd; + char disp[8], s[8], *xserver = NULL; + char abs_fd[8], unx_fd[8], wm_fd[8]; + + if (socketpair(AF_UNIX, (SOCK_STREAM | SOCK_CLOEXEC), 0, socks) 0) + { +ERR(XServer Socketpair failed: %m); +return ECORE_CALLBACK_RENEW; + } + + if (socketpair(AF_UNIX, (SOCK_STREAM | SOCK_CLOEXEC), 0, wms) 0) + { +ERR(Window Manager Socketpair failed: %m); +return ECORE_CALLBACK_RENEW; + } + + exs-process.pid = fork(); + switch (exs-process.pid) + { + case 0: +/* dup will unset CLOEXEC on the client as cloexec closes both ends */ +if ((fd = dup(socks[1]) 0)) goto fail; +snprintf(s, sizeof(s), %d, fd); +setenv(WAYLAND_SOCKET, s, 1); + +if ((fd = dup(exs-abs_fd)) 0) goto fail; +snprintf(abs_fd, sizeof(abs_fd), %d, fd); + +if ((fd = dup(exs-unx_fd)) 0) goto fail; +snprintf(unx_fd, sizeof(unx_fd), %d, fd); + +if ((fd = dup(wms[1])) 0) goto fail; +snprintf(wm_fd, sizeof(wm_fd), %d, fd); + +/* ignore usr1 and have X send it to the parent process */ +signal(SIGUSR1, SIG_IGN); + +/* FIXME: need to get the patch of xwayland */ +snprintf(disp, sizeof(disp), :%d, exs-disp); + +DBG(XWAYLAND: %s, XWAYLAND_BIN); +if (execl(xserver, xserver, disp,
[EGIT] [core/enlightenment] master 02/51: Add xwayland module to modules Makefile
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=68dcfac5d3372ec2a8e1b847be1847c2a3a68e46 commit 68dcfac5d3372ec2a8e1b847be1847c2a3a68e46 Author: Chris Michael cp.mich...@samsung.com Date: Wed Jul 2 11:45:12 2014 -0400 Add xwayland module to modules Makefile Signed-off-by: Chris Michael cp.mich...@samsung.com --- src/modules/Makefile.mk | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/modules/Makefile.mk b/src/modules/Makefile.mk index 62a1afe..abcbeeb 100644 --- a/src/modules/Makefile.mk +++ b/src/modules/Makefile.mk @@ -117,6 +117,8 @@ include src/modules/Makefile_wl_x11.mk include src/modules/Makefile_wl_fb.mk +include src/modules/Makefile_xwayland.mk + #if HAVE_WAYLAND_SCREENSHOT #include src/modules/Makefile_wl_screenshot.mk --
[EGIT] [core/enlightenment] master 05/51: add xwayland module edj file for icon
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=c86c57bee0df024721a255cefcdb5b4558afcbc5 commit c86c57bee0df024721a255cefcdb5b4558afcbc5 Author: Chris Michael cp.mich...@samsung.com Date: Wed Jul 2 11:46:06 2014 -0400 add xwayland module edj file for icon Signed-off-by: Chris Michael cp.mich...@samsung.com --- src/modules/xwayland/e-module-xwayland.edj | Bin 0 - 13048 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/src/modules/xwayland/e-module-xwayland.edj b/src/modules/xwayland/e-module-xwayland.edj new file mode 100644 index 000..2c1f4d2 Binary files /dev/null and b/src/modules/xwayland/e-module-xwayland.edj differ --
[EGIT] [core/enlightenment] master 33/51: don't undef NEED_X in wl compositor headers
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=877597e7a13dc32775d48e5283bba5ab0c57ab58 commit 877597e7a13dc32775d48e5283bba5ab0c57ab58 Author: Mike Blumenkrantz zm...@osg.samsung.com Date: Thu Jun 25 19:17:49 2015 -0400 don't undef NEED_X in wl compositor headers no idea why this was here --- src/bin/e_comp_wl_data.h | 1 - 1 file changed, 1 deletion(-) diff --git a/src/bin/e_comp_wl_data.h b/src/bin/e_comp_wl_data.h index e2963f4..10814d8 100644 --- a/src/bin/e_comp_wl_data.h +++ b/src/bin/e_comp_wl_data.h @@ -3,7 +3,6 @@ # ifndef E_COMP_WL_DATA_H # define E_COMP_WL_DATA_H -# undef NEED_X # include e_comp_wl.h # define CLIPBOARD_CHUNK 1024 --
[EGIT] [core/enlightenment] master 37/51: use ctrl+alt+backspace hotkey in wayland compositor for all non-release builds
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=01a4273c38d4fbcc9887445b84078339039d1664 commit 01a4273c38d4fbcc9887445b84078339039d1664 Author: Mike Blumenkrantz zm...@osg.samsung.com Date: Thu Jun 25 19:20:42 2015 -0400 use ctrl+alt+backspace hotkey in wayland compositor for all non-release builds --- src/bin/e_comp_wl.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index d838248..ac5d377 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -854,14 +854,12 @@ _e_comp_wl_cb_key_down(void *event) keycode = (ev-keycode - 8); if (!(cdata = e_comp-wl_comp_data)) return; -#ifdef HAVE_WAYLAND_ONLY - #ifndef E_RELEASE_BUILD +#ifndef E_RELEASE_BUILD if ((ev-modifiers ECORE_EVENT_MODIFIER_CTRL) ((ev-modifiers ECORE_EVENT_MODIFIER_ALT) || (ev-modifiers ECORE_EVENT_MODIFIER_ALTGR)) eina_streq(ev-key, BackSpace)) exit(0); - #endif #endif end = (uint32_t *)cdata-kbd.keys.data + (cdata-kbd.keys.size / sizeof(*k)); --
[EGIT] [core/enlightenment] master 38/51: reject stacking clients from frame updates in client idler
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=ca013d9439ebe63df7257566112ed798047ef842 commit ca013d9439ebe63df7257566112ed798047ef842 Author: Mike Blumenkrantz zm...@osg.samsung.com Date: Thu Jun 25 19:21:28 2015 -0400 reject stacking clients from frame updates in client idler --- src/bin/e_client.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/bin/e_client.c b/src/bin/e_client.c index 7546a63..55b1eb0 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -2335,7 +2335,8 @@ e_client_idler_before(void) if (!_e_client_hook_call(E_CLIENT_HOOK_EVAL_POST_FETCH, ec)) continue; if (!_e_client_hook_call(E_CLIENT_HOOK_EVAL_PRE_FRAME_ASSIGN, ec)) continue; -if ((ec-border.changed) (!ec-shaded) ((!ec-override) || ec-internal) +if ((ec-border.changed) (!ec-shaded) (!e_client_is_stacking(ec)) +((!ec-override) || ec-internal) (!(((ec-maximized E_MAXIMIZE_TYPE) == E_MAXIMIZE_FULLSCREEN _e_client_frame_update(ec); ec-border.changed = 0; --
[EGIT] [core/enlightenment] master 14/51: xwayland: Fix build breakage with recent e_comp_wl changes
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=f49acd38b417e1ee4d3c991a7bea901034407cdc commit f49acd38b417e1ee4d3c991a7bea901034407cdc Author: Chris Michael cp.mich...@samsung.com Date: Thu Sep 4 14:45:20 2014 -0400 xwayland: Fix build breakage with recent e_comp_wl changes Signed-off-by: Chris Michael cp.mich...@samsung.com --- src/modules/xwayland/e_mod_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/xwayland/e_mod_main.c b/src/modules/xwayland/e_mod_main.c index a01458d..a6dc8bf 100644 --- a/src/modules/xwayland/e_mod_main.c +++ b/src/modules/xwayland/e_mod_main.c @@ -1,5 +1,5 @@ +#define E_COMP_WL #include e.h -#include e_comp_wl.h #include sys/socket.h #include sys/un.h --
[EGIT] [core/enlightenment] master 42/51: don't call wl comp delete function twice on shutdown
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=fab0b8122f06dc4c8562bae03ea3fb998e31173c commit fab0b8122f06dc4c8562bae03ea3fb998e31173c Author: Mike Blumenkrantz zm...@osg.samsung.com Date: Thu Jun 25 19:24:40 2015 -0400 don't call wl comp delete function twice on shutdown --- src/bin/e_comp_wl.c | 4 1 file changed, 4 deletions(-) diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c index 971c4a9..101e62b 100644 --- a/src/bin/e_comp_wl.c +++ b/src/bin/e_comp_wl.c @@ -2657,10 +2657,6 @@ e_comp_wl_surface_create_signal_get(void) EINTERN void e_comp_wl_shutdown(void) { -#ifndef HAVE_WAYLAND_ONLY - _e_comp_wl_compositor_cb_del(e_comp); -#endif - /* free handlers */ E_FREE_LIST(handlers, ecore_event_handler_del); --
[EGIT] [core/enlightenment] master 04/51: add xwayland module desktop file
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=576b11567dd83d209c970dfc0b23672c7bc177f9 commit 576b11567dd83d209c970dfc0b23672c7bc177f9 Author: Chris Michael cp.mich...@samsung.com Date: Wed Jul 2 11:45:55 2014 -0400 add xwayland module desktop file Signed-off-by: Chris Michael cp.mich...@samsung.com --- src/modules/xwayland/module.desktop.in | 7 +++ 1 file changed, 7 insertions(+) diff --git a/src/modules/xwayland/module.desktop.in b/src/modules/xwayland/module.desktop.in new file mode 100644 index 000..c177edb --- /dev/null +++ b/src/modules/xwayland/module.desktop.in @@ -0,0 +1,7 @@ +[Desktop Entry] +Encoding=UTF-8 +Type=Link +Name=XWayland +Comment=Enlightenment XWayland +Icon=e-module-xwayland +X-Enlightenment-ModuleType=look --
[EGIT] [core/enlightenment] master 45/51: block xkb activation for non-X11 compositors
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=f832640f18a5f5cc5dfb32a5223873231ed033c6 commit f832640f18a5f5cc5dfb32a5223873231ed033c6 Author: Mike Blumenkrantz zm...@osg.samsung.com Date: Thu Jun 25 19:29:49 2015 -0400 block xkb activation for non-X11 compositors --- src/bin/e_xkb.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/bin/e_xkb.c b/src/bin/e_xkb.c index 9847419..e306ee1 100644 --- a/src/bin/e_xkb.c +++ b/src/bin/e_xkb.c @@ -13,6 +13,7 @@ _e_xkb_init_timer(void *data) E_Config_XKB_Layout *cl2, *cl = data; int cur_group = -1; + if (!e_comp-root) return EINA_FALSE; EINA_LIST_FOREACH(e_config-xkb.used_layouts, l, cl2) { cur_group++; --
[EGIT] [core/enlightenment] master 19/51: fix xwayland linkage + makefile formatting
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=3e20ea2fbc123d53283f6532a0d3772f3c10bad5 commit 3e20ea2fbc123d53283f6532a0d3772f3c10bad5 Author: Mike Blumenkrantz zm...@osg.samsung.com Date: Tue Apr 28 13:25:18 2015 -0400 fix xwayland linkage + makefile formatting --- src/modules/Makefile_xwayland.mk | 10 ++ 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/modules/Makefile_xwayland.mk b/src/modules/Makefile_xwayland.mk index 15e7eac..5afc15b 100644 --- a/src/modules/Makefile_xwayland.mk +++ b/src/modules/Makefile_xwayland.mk @@ -4,14 +4,16 @@ xwaylandpkg_LTLIBRARIES = src/modules/xwayland/module.la src_modules_xwayland_module_la_DEPENDENCIES = $(MDEPENDENCIES) src_modules_xwayland_module_la_CPPFLAGS = \ - $(MOD_CPPFLAGS) @XWAYLAND_CFLAGS@ @WAYLAND_CFLAGS@ \ - -DXWAYLAND_BIN=\@XWAYLAND_BIN@\ +$(MOD_CPPFLAGS) \ +@XWAYLAND_CFLAGS@ \ +@WAYLAND_CFLAGS@ \ +-DXWAYLAND_BIN=\@XWAYLAND_BIN@\ -src_modules_xwayland_module_la_LIBADD = $(LIBS) @XWAYLAND_LIBS@ @WAYLAND_LIBS@ +src_modules_xwayland_module_la_LIBADD = $(MOD_LIBS) @XWAYLAND_LIBS@ @WAYLAND_LIBS@ src_modules_xwayland_module_la_LDFLAGS = $(MOD_LDFLAGS) src_modules_xwayland_module_la_SOURCES = \ - src/modules/xwayland/e_mod_main.c +src/modules/xwayland/e_mod_main.c PHONIES += xwayland install-xwayland xwayland: $(xwaylandpkg_LTLIBRARIES) --
[EGIT] [core/enlightenment] master 49/51: reject non-x11 clients from _e_comp_x_client_zone_geometry_set()
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=cd646e8ecd79feb4ae6cfd1738d51b6c9c26b9dd commit cd646e8ecd79feb4ae6cfd1738d51b6c9c26b9dd Author: Mike Blumenkrantz zm...@osg.samsung.com Date: Thu Jun 25 19:59:42 2015 -0400 reject non-x11 clients from _e_comp_x_client_zone_geometry_set() --- src/bin/e_comp_x.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c index 4e918f2..d9da7ac 100644 --- a/src/bin/e_comp_x.c +++ b/src/bin/e_comp_x.c @@ -2266,6 +2266,7 @@ _e_comp_x_client_zone_geometry_set(E_Client *ec) { unsigned int zgeom[4]; + E_COMP_X_PIXMAP_CHECK; zgeom[0] = ec-zone-x; zgeom[1] = ec-zone-y; zgeom[2] = ec-zone-w; --
[EGIT] [core/elementary] master 01/02: test_win_keygrab: Fix buffer not null terminated error.
seoz pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=ef5a4717f5a316f861aada9ae7cd0f5a83018cc9 commit ef5a4717f5a316f861aada9ae7cd0f5a83018cc9 Author: Daniel Juyung Seo seojuyu...@gmail.com Date: Fri Jun 26 10:08:08 2015 +0900 test_win_keygrab: Fix buffer not null terminated error. This fixes coverity CID 1308264. --- src/bin/test_win_keygrab.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/test_win_keygrab.c b/src/bin/test_win_keygrab.c index f1c7473..9032e9f 100644 --- a/src/bin/test_win_keygrab.c +++ b/src/bin/test_win_keygrab.c @@ -58,7 +58,7 @@ _entry_changed_cb(void *data , Evas_Object *obj, void *event_info EINA_UNUSED) api_data *api = data; const char *str = elm_entry_entry_get(obj); if (!str) return; - strncpy(api-keyname, str, PATH_MAX); + strncpy(api-keyname, str, PATH_MAX - 1); printf(entry: %s\n,str); } --
[EGIT] [core/efl] master 01/38: Evas render: Fix rendering of objects with no_render
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=8c473648461f48ee07a9d8efa0e5b8ee9b1e43ca commit 8c473648461f48ee07a9d8efa0e5b8ee9b1e43ca Author: Jean-Philippe Andre jp.an...@samsung.com Date: Tue Jun 16 19:20:57 2015 +0900 Evas render: Fix rendering of objects with no_render Well yeah, those objects should still be rendered in their proxy or mask surface :) --- src/lib/evas/canvas/evas_render.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c index ed75d0a..98658d4 100644 --- a/src/lib/evas/canvas/evas_render.c +++ b/src/lib/evas/canvas/evas_render.c @@ -1270,7 +1270,7 @@ evas_render_mapped(Evas_Public_Data *e, Evas_Object *eo_obj, RD(level, }\n); return clean_them; } -else if (obj-no_render) +else if (obj-no_render (!use_mapped_ctx || (surface != obj-proxy-surface))) { RD(level, no render\n}\n); return clean_them; --
[EGIT] [core/efl] master 23/38: Evas filters: EO-ify the filters API
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=64fd278c62e3286c453885216d2d0c86a01ce9fc commit 64fd278c62e3286c453885216d2d0c86a01ce9fc Author: Jean-Philippe Andre jp.an...@samsung.com Date: Wed Jun 17 16:26:30 2015 +0900 Evas filters: EO-ify the filters API This creates the new interface Efl.Gfx.Filter And the implementation is a mixin (evas_filter_mixin.c): Evas.Filter All the filter rendering code has now been moved to this new file. TODO: Merge image filtering. --- doc/previews/preview_text_filter.c | 2 +- src/Makefile_Efl.am | 4 +- src/Makefile_Evas.am | 8 +- src/lib/edje/edje_calc.c | 36 +- src/lib/edje/edje_private.h | 2 +- src/lib/edje/edje_text.c | 2 +- src/lib/efl/Efl.h| 1 + src/lib/efl/interfaces/efl_gfx_filter.eo | 73 src/lib/efl/interfaces/efl_interfaces_main.c | 2 + src/lib/evas/canvas/evas_filter.eo | 66 +++ src/lib/evas/canvas/evas_filter_mixin.c | 512 ++ src/lib/evas/canvas/evas_object_main.c | 2 +- src/lib/evas/canvas/evas_object_text.c | 609 +-- src/lib/evas/canvas/evas_text.eo | 67 +-- src/lib/evas/include/evas_private.h | 3 + src/tests/evas/evas_test_filters.c | 8 +- 16 files changed, 796 insertions(+), 601 deletions(-) diff --git a/doc/previews/preview_text_filter.c b/doc/previews/preview_text_filter.c index 864342b..24c51cd 100644 --- a/doc/previews/preview_text_filter.c +++ b/doc/previews/preview_text_filter.c @@ -111,7 +111,7 @@ main(int argc, char **argv) evas_object_color_set(o, 255, 255, 255, 255); evas_object_show(o); - eo_do(o, evas_obj_text_filter_program_set(filter)); + eo_do(o, efl_gfx_filter_program_set(filter)); ecore_evas_manual_render(wpd.ee); evas_object_geometry_get(o, NULL, NULL, w, h); diff --git a/src/Makefile_Efl.am b/src/Makefile_Efl.am index 5d45ae0..ad49f47 100644 --- a/src/Makefile_Efl.am +++ b/src/Makefile_Efl.am @@ -13,7 +13,9 @@ efl_eolian_files = \ lib/efl/interfaces/efl_gfx_gradient_base.eo \ lib/efl/interfaces/efl_gfx_gradient_linear.eo \ lib/efl/interfaces/efl_gfx_gradient_radial.eo \ - lib/efl/interfaces/efl_model_base.eo + lib/efl/interfaces/efl_gfx_filter.eo \ + lib/efl/interfaces/efl_model_base.eo \ + $(NULL) efl_eolian_files_h = $(efl_eolian_files:%.eo=%.eo.h) efl_eolian_files_c = $(efl_eolian_files:%.eo=%.eo.c) diff --git a/src/Makefile_Evas.am b/src/Makefile_Evas.am index ef59a2f..cfba9b6 100644 --- a/src/Makefile_Evas.am +++ b/src/Makefile_Evas.am @@ -40,7 +40,9 @@ evas_eolian_files = \ lib/evas/canvas/efl_vg_root_node.eo \ lib/evas/canvas/efl_vg_gradient.eo \ lib/evas/canvas/efl_vg_gradient_radial.eo \ - lib/evas/canvas/efl_vg_gradient_linear.eo + lib/evas/canvas/efl_vg_gradient_linear.eo \ + lib/evas/canvas/evas_filter.eo \ + $(NULL) evas_eolian_type_files = \ lib/evas/canvas/evas_types.eot @@ -520,7 +522,9 @@ lib/evas/common/evas_op_sub/op_sub_pixel_mask_i386.c ### Evas filters -lib_evas_libevas_la_SOURCES += lib/evas/filters/evas_filter.c \ +lib_evas_libevas_la_SOURCES += \ +lib/evas/canvas/evas_filter_mixin.c \ +lib/evas/filters/evas_filter.c \ lib/evas/filters/evas_filter_blend.c \ lib/evas/filters/evas_filter_blur.c \ lib/evas/filters/evas_filter_bump.c \ diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c index 30478a6..a1cd9c1 100644 --- a/src/lib/edje/edje_calc.c +++ b/src/lib/edje/edje_calc.c @@ -1603,7 +1603,7 @@ _edje_part_recalc_single_text(FLOAT_T sc EINA_UNUSED, Edje_Part_Description_Text *chosen_desc, Edje_Calc_Params *params, int *minw, int *minh, - int *maxw, int *maxh, double pos) + int *maxw, int *maxh) #define RECALC_SINGLE_TEXT_USING_APPLY 1 #if RECALC_SINGLE_TEXT_USING_APPLY /* @@ -1634,7 +1634,7 @@ _edje_part_recalc_single_text(FLOAT_T sc EINA_UNUSED, free(sfont); params-type.text.size = size; /* XXX TODO used by further calcs, go inside recalc_apply? */ - _edje_text_recalc_apply(ed, ep, params, chosen_desc, EINA_TRUE, pos); + _edje_text_recalc_apply(ed, ep, params, chosen_desc, EINA_TRUE); if ((!chosen_desc) || ((!chosen_desc-text.min_x) (!chosen_desc-text.min_y) @@ -2406,6 +2406,7 @@ _edje_part_recalc_single_map(Edje *ed, static inline const char * _edje_filter_get(Edje *ed, Edje_Part_Description_Spec_Filter *filter) { + if (!filter-code) return NULL; if (EINA_UNLIKELY(!filter-checked_data)) { Edje_String *st; @@ -2433,7 +2434,6 @@ _edje_part_recalc_single_filter(Edje *ed, const
[EGIT] [core/efl] master 37/38: Evas filters: Use smooth scaling by default for proxies
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=14c14349604cea5c7bcd00c634b8416613f08a23 commit 14c14349604cea5c7bcd00c634b8416613f08a23 Author: Jean-Philippe Andre jp.an...@samsung.com Date: Thu Jun 25 15:02:44 2015 +0900 Evas filters: Use smooth scaling by default for proxies Is it too slow? Then I guess a new API option will be required. --- src/lib/evas/filters/evas_filter_utils.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/evas/filters/evas_filter_utils.c b/src/lib/evas/filters/evas_filter_utils.c index 088cb53..c643c67 100644 --- a/src/lib/evas/filters/evas_filter_utils.c +++ b/src/lib/evas/filters/evas_filter_utils.c @@ -58,7 +58,7 @@ evas_filter_buffer_scaled_get(Evas_Filter_Context *ctx, dc.sli.h = 1; dc.render_op = EVAS_RENDER_COPY; - ok = evas_common_scale_rgba_in_to_out_clip_sample + ok = evas_common_scale_rgba_in_to_out_clip_smooth (s, d, dc, 0, 0, src-w, src-h, 0, 0, w, h); if (!ok) { --
[EGIT] [core/efl] master 15/38: Evas filters: Implement Lua classes for colors buffer
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=f3e16bc4854268cecc19a38671c6f68071b7955b commit f3e16bc4854268cecc19a38671c6f68071b7955b Author: Jean-Philippe Andre jp.an...@samsung.com Date: Thu Jun 4 19:42:38 2015 +0900 Evas filters: Implement Lua classes for colors buffer Reuse previous code for buffer. Keeps API stability. The new class color is here for a more convenient color representation. This way, colors can be represented in more natural ways like: {r,g,b[,a]}, 0xaarrggbb, red, #rrggbb Class color is implemented in pure Lua, and adds a .lua file to Evas' share folder. --- src/Makefile_Evas.am | 8 + src/lib/evas/file/evas_module.c| 10 + src/lib/evas/filters/evas_filter.c | 1 + src/lib/evas/filters/evas_filter_parser.c | 581 - src/lib/evas/filters/evas_filter_private.h | 2 + src/lib/evas/filters/lua/color.lua | 302 +++ src/lib/evas/include/evas_private.h| 1 + 7 files changed, 638 insertions(+), 267 deletions(-) diff --git a/src/Makefile_Evas.am b/src/Makefile_Evas.am index 941e1d2..ef59a2f 100644 --- a/src/Makefile_Evas.am +++ b/src/Makefile_Evas.am @@ -2204,3 +2204,11 @@ installed_evasluadir = $(datadir)/elua/modules/evas nodist_installed_evaslua_DATA = $(generated_evas_lua_all) endif + +# Evas filters Lua stuff +evas_filters_lua = \ +lib/evas/filters/lua/color.lua \ +$(NULL) + +installed_evasfiltersdir = $(datadir)/evas/filters/lua +dist_installed_evasfilters_DATA = $(evas_filters_lua) diff --git a/src/lib/evas/file/evas_module.c b/src/lib/evas/file/evas_module.c index ead2612..bafc6e7 100644 --- a/src/lib/evas/file/evas_module.c +++ b/src/lib/evas/file/evas_module.c @@ -680,6 +680,16 @@ _evas_module_libdir_get(void) return eina_prefix_lib_get(pfx); } +const char * +_evas_module_datadir_get(void) +{ + if (!pfx) pfx = eina_prefix_new + (NULL, _evas_module_libdir_get, EVAS, evas, checkme, + PACKAGE_BIN_DIR, PACKAGE_LIB_DIR, PACKAGE_DATA_DIR, PACKAGE_DATA_DIR); + if (!pfx) return NULL; + return eina_prefix_data_get(pfx); +} + EAPI const char * evas_cserve_path_get(void) { diff --git a/src/lib/evas/filters/evas_filter.c b/src/lib/evas/filters/evas_filter.c index 1e369f0..d420929 100644 --- a/src/lib/evas/filters/evas_filter.c +++ b/src/lib/evas/filters/evas_filter.c @@ -2002,6 +2002,7 @@ void evas_filter_shutdown() { if ((--init_cnt) 0) return; + evas_filter_parser_shutdown(); eina_log_domain_unregister(_evas_filter_log_dom); _evas_filter_log_dom = 0; } diff --git a/src/lib/evas/filters/evas_filter_parser.c b/src/lib/evas/filters/evas_filter_parser.c index c5f409d..8992dcb 100644 --- a/src/lib/evas/filters/evas_filter_parser.c +++ b/src/lib/evas/filters/evas_filter_parser.c @@ -215,35 +215,6 @@ @since 1.9 */ -// Map of the most common HTML color names -static struct -{ - const char *name; - DATA32 value; -} color_map[] = -{ - { white, 0x }, - { black, 0xFF00 }, - { red, 0x }, - { green, 0xFF008000 }, - { blue, 0xFFFF }, - { darkblue, 0xFFA0 }, - { yellow, 0xFF00 }, - { magenta, 0x00FF }, - { cyan, 0xFF00 }, - { orange, 0xA500 }, - { purple, 0xFF800080 }, - { brown, 0xFFA52A2A }, - { maroon, 0xFF80 }, - { lime, 0xFF00FF00 }, - { gray, 0xFF808080 }, - { grey, 0xFF808080 }, - { silver, 0xFFC0C0C0 }, - { olive, 0xFF808000 }, - { invisible, 0x }, - { transparent, 0x } -}; - static struct { const char *name; @@ -265,9 +236,15 @@ static struct { stretch_xy, EVAS_FILTER_FILL_MODE_STRETCH_XY } }; -static const char *_lua_buffer_meta = Filter.buffer; +static const char *_lua_buffer_meta = buffer; +static const char *_lua_color_meta = color; +#define _lua_methods_table __methods +#define _lua_register_func __register +#define _lua_errfunc_name __backtrace static Evas_Filter_Fill_Mode _fill_mode_get(Evas_Filter_Instruction *instr); +static Eina_Bool _lua_instruction_run(lua_State *L, Evas_Filter_Instruction *instr); +static int _lua_backtrace(lua_State *L); typedef enum { @@ -618,46 +595,6 @@ _bool_parse(const char *str, Eina_Bool *b) #define PARSE_CHECK(a) do { if (!(a)) { ERR(Parsing failed because '%s' is false at %s:%d, #a, __FUNCTION__, __LINE__); PARSE_ABORT(); goto end; } } while (0) -static Eina_Bool -_color_parse(const char *word, DATA32 *color) -{ - DATA32 value; - Eina_Bool success = EINA_FALSE; - - PARSE_CHECK(word *word); - - errno = 0; - if (*word == '#') - { -unsigned char a, r, g, b; -int slen = strlen(word); -PARSE_CHECK(evas_common_format_color_parse(word, slen, r, g, b, a)); -value = ARGB_JOIN(a, r, g, b); - } - else - { -unsigned int k; -for (k = 0; k (sizeof(color_map) / sizeof(color_map[0])); k++) - { -
[EGIT] [core/efl] master 17/38: Evas filters: Fix blur from rgba to alpha
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=f57929bf6ed4f9e0d20de2c90be663c48cfadd29 commit f57929bf6ed4f9e0d20de2c90be663c48cfadd29 Author: Jean-Philippe Andre jp.an...@samsung.com Date: Mon Jun 15 17:43:39 2015 +0900 Evas filters: Fix blur from rgba to alpha --- src/lib/evas/filters/evas_filter.c | 11 +++ 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/lib/evas/filters/evas_filter.c b/src/lib/evas/filters/evas_filter.c index dc022a3..7ad2878 100644 --- a/src/lib/evas/filters/evas_filter.c +++ b/src/lib/evas/filters/evas_filter.c @@ -931,14 +931,9 @@ evas_filter_command_blur_add(Evas_Filter_Context *ctx, void *drawctx, goto fail; } - if (!in-alpha_only out-alpha_only) - { -/* FIXME: Add temporary buffer + blend */ -ERR(Input is RGBA but output is Alpha only. Unsupported config for blur.); -goto fail; - } - else if ((blend || (in-alpha_only !out-alpha_only)) || -(!blend !in-alpha_only !out-alpha_only (color != 0x))) + if ((blend || (in-alpha_only !out-alpha_only)) || +(!blend !in-alpha_only !out-alpha_only (color != 0x)) || +(!in-alpha_only out-alpha_only)) { XDBG(Adding extra blending step %d -- %d (%s -- %s), in-id, out-id, in-alpha_only ? Alpha : RGBA, --
[EGIT] [core/efl] master 25/38: Evas filters: Complete support for image filtering
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=29402b2ce965c83cdcbfa29ac08b918ab01d95d2 commit 29402b2ce965c83cdcbfa29ac08b918ab01d95d2 Author: Jean-Philippe Andre jp.an...@samsung.com Date: Thu Jun 18 21:45:21 2015 +0900 Evas filters: Complete support for image filtering Reusing the new EO mixin, complete the support for image filtering. This now adds support for edje state inside the image filter. --- src/lib/evas/canvas/evas_filter.eo | 6 + src/lib/evas/canvas/evas_filter_mixin.c | 18 +- src/lib/evas/canvas/evas_image.eo | 65 +--- src/lib/evas/canvas/evas_object_image.c | 559 src/lib/evas/canvas/evas_object_text.c | 31 +- src/lib/evas/canvas/evas_text.eo| 3 +- 6 files changed, 166 insertions(+), 516 deletions(-) diff --git a/src/lib/evas/canvas/evas_filter.eo b/src/lib/evas/canvas/evas_filter.eo index 7f6bdcb..2750e10 100644 --- a/src/lib/evas/canvas/evas_filter.eo +++ b/src/lib/evas/canvas/evas_filter.eo @@ -32,10 +32,15 @@ mixin Evas.Filter (Efl.Gfx.Filter) This should be called at the beginning of a parent's class destructor. ]] } + input_alpha { + [[Called by Evas.Filter to determine whether the input is alpha or rgba.]] + return: bool; + } input_render { [[Called by Evas.Filter when the parent class must render the input. ; ]] + return: bool; [[Indicates success from the object render function.]] params { filter: void*; [[Evas_Filter_Context]] drawctx: void*; @@ -60,6 +65,7 @@ mixin Evas.Filter (Efl.Gfx.Filter) Efl.Gfx.Filter.padding.get; Efl.Gfx.Filter.source_set; Efl.Gfx.Filter.source_get; + @virtual .input_alpha; @virtual .input_render; @virtual .dirty; } diff --git a/src/lib/evas/canvas/evas_filter_mixin.c b/src/lib/evas/canvas/evas_filter_mixin.c index 20aa8cc..243b359 100644 --- a/src/lib/evas/canvas/evas_filter_mixin.c +++ b/src/lib/evas/canvas/evas_filter_mixin.c @@ -222,21 +222,9 @@ evas_filter_object_render(Eo *eo_obj, Evas_Object_Protected_Data *obj, if (fcow-output != previous) evas_filter_buffer_backing_release(filter, previous); +// Request rendering from the object itself (child class) evas_filter_program_padding_get(fcow-chain, l, r, t, b); eo_do(eo_obj, evas_filter_input_render(filter, drawctx, l, r, t, b, do_async)); -#warning TODO: draw text into input buffer -#if 0 -// Render text to input buffer -EINA_INLIST_FOREACH(EINA_INLIST_GET(pd-items), it) - if ((pd-font) (it-text_props.len 0)) -{ - evas_filter_font_draw(filter, drawctx, EVAS_FILTER_BUFFER_INPUT_ID, pd-font, - sl + it-x, - st + (int) pd-max_ascent, - it-text_props, - do_async); -} -#endif ENFN-context_free(ENDT, drawctx); @@ -268,6 +256,7 @@ _evas_filter_efl_gfx_filter_program_set(Eo *eo_obj, Evas_Filter_Data *pd, { Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS); Evas_Filter_Program *pgm = NULL; + Eina_Bool alpha; if (!pd) return; if (pd-data-code == code) return; @@ -280,7 +269,8 @@ _evas_filter_efl_gfx_filter_program_set(Eo *eo_obj, Evas_Filter_Data *pd, evas_filter_program_del(fcow-chain); if (code) { - pgm = evas_filter_program_new(Evas_Text, EINA_TRUE); + alpha = eo_do_ret(eo_obj, alpha, evas_filter_input_alpha()); + pgm = evas_filter_program_new(Evas.Filter, alpha); evas_filter_program_source_set_all(pgm, fcow-sources); evas_filter_program_state_set(pgm, eo_obj, obj, fcow-state.cur.name, fcow-state.cur.value, diff --git a/src/lib/evas/canvas/evas_image.eo b/src/lib/evas/canvas/evas_image.eo index 38231e3..9d387b5 100644 --- a/src/lib/evas/canvas/evas_image.eo +++ b/src/lib/evas/canvas/evas_image.eo @@ -1,4 +1,4 @@ -class Evas.Image (Evas.Object, Efl.File, Efl.Image, Efl.Gfx.Fill, Efl.Gfx.View) +class Evas.Image (Evas.Object, Efl.File, Efl.Image, Efl.Gfx.Fill, Efl.Gfx.View, Evas.Filter) { legacy_prefix: evas_object_image; eo_prefix: evas_obj_image; @@ -756,61 +756,6 @@ class Evas.Image (Evas.Object, Efl.File, Efl.Image, Efl.Gfx.Fill, Efl.Gfx.View) scene: Evas.Canvas3D.Scene *; /*@ 3D scene on an image object. */ } } - @property filter_program { - set { -/*@ Set an Evas filter program on this Text Object. - -If the program fails to compile (syntax error, invalid -buffer name, etc...), the standard text effects will be -applied instead
[EGIT] [core/efl] master 03/38: Evas filters: Add internal function _program_run
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=2faaef966e41b35656fd77be94701009ad183c42 commit 2faaef966e41b35656fd77be94701009ad183c42 Author: Jean-Philippe Andre jp.an...@samsung.com Date: Mon May 18 17:35:49 2015 +0900 Evas filters: Add internal function _program_run This will allow changing the state of the filter and re-run it without re-creating the Lua_State object. This is to handle size, color, animation state and scale changes (amongst other things). --- src/lib/evas/canvas/evas_object_image.c | 2 +- src/lib/evas/canvas/evas_object_text.c| 8 ++-- src/lib/evas/filters/evas_filter.c| 16 +++ src/lib/evas/filters/evas_filter_parser.c | 76 --- src/lib/evas/include/evas_filter.h| 4 +- 5 files changed, 86 insertions(+), 20 deletions(-) diff --git a/src/lib/evas/canvas/evas_object_image.c b/src/lib/evas/canvas/evas_object_image.c index b2f8b95..a272206 100644 --- a/src/lib/evas/canvas/evas_object_image.c +++ b/src/lib/evas/canvas/evas_object_image.c @@ -3315,7 +3315,7 @@ start_draw: if (!ok) goto state_write; evas_filter_context_proxy_render_all(filter, eo_obj, EINA_FALSE); - ok = evas_filter_context_buffers_allocate_all(filter, W, H); + ok = evas_filter_context_buffers_allocate_all(filter); if (!ok) goto state_write; if (ENFN-gl_surface_read_pixels) diff --git a/src/lib/evas/canvas/evas_object_text.c b/src/lib/evas/canvas/evas_object_text.c index d7ee55e..42620cb 100644 --- a/src/lib/evas/canvas/evas_object_text.c +++ b/src/lib/evas/canvas/evas_object_text.c @@ -1760,7 +1760,6 @@ evas_object_text_render(Evas_Object *eo_obj, * image to GL. */ - W = obj-cur-geometry.w; H = obj-cur-geometry.h; X = obj-cur-geometry.x; @@ -1837,6 +1836,7 @@ evas_object_text_render(Evas_Object *eo_obj, } filter = evas_filter_context_new(obj-layer-evas, do_async); +evas_filter_program_run(fcow-chain); ok = evas_filter_context_program_use(filter, fcow-chain); if (!filter || !ok) { @@ -1856,7 +1856,7 @@ evas_object_text_render(Evas_Object *eo_obj, ENFN-context_color_set(ENDT, filter_ctx, 255, 255, 255, 255); // Allocate all buffers now -evas_filter_context_buffers_allocate_all(filter, W, H); +evas_filter_context_buffers_allocate_all(filter); evas_filter_target_set(filter, context, surface, X + x, Y + y); // Steal output and release previous @@ -2379,7 +2379,6 @@ EOLIAN static void _evas_text_filter_program_set(Eo *eo_obj, Evas_Text_Data *o, const char *arg) { Evas_Object_Protected_Data *obj = eo_data_scope_get(eo_obj, EVAS_OBJECT_CLASS); - Evas_Filter_Program *pgm = NULL; if (!o) return; @@ -2393,8 +2392,9 @@ _evas_text_filter_program_set(Eo *eo_obj, Evas_Text_Data *o, const char *arg) evas_filter_program_del(fcow-chain); if (arg) { - pgm = evas_filter_program_new(Evas_Text: Filter Program, EINA_TRUE); + pgm = evas_filter_program_new(Evas_Text, EINA_TRUE); evas_filter_program_source_set_all(pgm, fcow-sources); + evas_filter_program_state_set(pgm, obj-cur-geometry.w, obj-cur-geometry.h); if (!evas_filter_program_parse(pgm, arg)) { ERR(Parsing failed!); diff --git a/src/lib/evas/filters/evas_filter.c b/src/lib/evas/filters/evas_filter.c index 0f24870..523018f 100644 --- a/src/lib/evas/filters/evas_filter.c +++ b/src/lib/evas/filters/evas_filter.c @@ -22,6 +22,8 @@ # include evas_cs2_private.h #endif +#define _assert(a) if (!(a)) CRI(Failed on %s, #a); + static void _buffer_free(Evas_Filter_Buffer *fb); static void _command_del(Evas_Filter_Context *ctx, Evas_Filter_Command *cmd); static RGBA_Image *_rgba_image_alloc(Evas_Filter_Buffer const *fb, void *data); @@ -205,13 +207,13 @@ evas_filter_context_proxy_render_all(Evas_Filter_Context *ctx, Eo *eo_obj, { // TODO: Lock current object as proxyrendering (see image obj) source = eo_data_scope_get(fb-source, EVAS_OBJECT_CLASS); + _assert(fb-w == source-cur-geometry.w); + _assert(fb-h == source-cur-geometry.h); if (source-proxy-surface !source-proxy-redraw) { DBG(Source already rendered: '%s' of type '%s', fb-source_name, eo_class_name_get(eo_class_get(fb-source))); _filter_buffer_backing_free(fb); - fb-w = source-cur-geometry.w; - fb-h = source-cur-geometry.h; if (!ctx-gl_engine) { fb-backing = source-proxy-surface; @@ -232,8 +234,6 @@ evas_filter_context_proxy_render_all(Evas_Filter_Context *ctx, Eo *eo_obj,
[EGIT] [core/efl] master 22/38: Edje: Factorise filter code for TEXT and IMAGE
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=a18107309dc5233e76b77016b6eb3ef09ddf25ec commit a18107309dc5233e76b77016b6eb3ef09ddf25ec Author: Jean-Philippe Andre jp.an...@samsung.com Date: Wed Jun 17 13:49:18 2015 +0900 Edje: Factorise filter code for TEXT and IMAGE TODO: eo-ify the filter API properly and stabilize it. --- src/lib/edje/edje_calc.c | 166 ++- src/lib/edje/edje_data.c | 2 + src/lib/edje/edje_text.c | 104 - 3 files changed, 167 insertions(+), 105 deletions(-) diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c index c1e7e1b..30478a6 100644 --- a/src/lib/edje/edje_calc.c +++ b/src/lib/edje/edje_calc.c @@ -2403,6 +2403,165 @@ _edje_part_recalc_single_map(Edje *ed, EINA_COW_CALC_MAP_END(params, params_write); } +static inline const char * +_edje_filter_get(Edje *ed, Edje_Part_Description_Spec_Filter *filter) +{ + if (EINA_UNLIKELY(!filter-checked_data)) + { +Edje_String *st; +filter-checked_data = 1; +st = eina_hash_find(ed-file-data, filter-code); +if (st) + { + eina_stringshare_del(filter-code); + filter-code = st-str; + filter-no_free = 1; + } + } + return filter-code; +} + +static void +_edje_part_recalc_single_filter(Edje *ed, +Edje_Real_Part *ep, +Edje_Part_Description_Common *desc, +Edje_Part_Description_Common *chosen_desc, +double pos) +{ + Edje_Part_Description_Spec_Filter *filter; + Eina_List *filter_sources = NULL, *prev_sources = NULL; + const char *src1, *src2, *part, *code; + Evas_Object *obj = ep-object; + Eina_List *li1, *li2; + Eina_Bool im = 0; + + /* handle TEXT and IMAGE part types here */ + if (ep-part-type == EDJE_PART_TYPE_TEXT) + { +Edje_Part_Description_Text *chosen_edt = (Edje_Part_Description_Text *) chosen_desc; +Edje_Part_Description_Text *edt = (Edje_Part_Description_Text *) desc; +filter = chosen_edt-text.filter; +if (edt-text.filter.sources != filter-sources) + { + prev_sources = ep-typedata.text-filter.sources; + filter_sources = edt-text.filter.sources; + } +#if 0 +// old form +if (ep-typedata.text-filter.code) + filter = ep-typedata.text-filter; +else + filter = chosen_edt-text.filter; +if (ep-typedata.text-filter.sources != chosen_edt-text.filter.sources) + { + prev_sources = ep-typedata.text-filter.sources; + filter_sources = chosen_edt-text.filter.sources; + //ep-typedata.text-filter.sources = chosen_edt-text.filter.sources; + } +#endif + } + else if (ep-part-type == EDJE_PART_TYPE_IMAGE) + { +Edje_Part_Description_Image *chosen_edi = (Edje_Part_Description_Image *) chosen_desc; +Edje_Part_Description_Image *edi = (Edje_Part_Description_Image *) desc; +filter = chosen_edi-image.filter; +if (edi-image.filter.sources != filter-sources) + { + prev_sources = edi-image.filter.sources; + filter_sources = chosen_edi-image.filter.sources; + } +im = 1; + } + else + { +CRI(Invalid call to filter recalc); +return; + } + + // FIXME: Implement proper EO interface/mixin and remove this ugly thing +#define efl_gfx_filter_program_set(...) do { \ + if (!im) evas_obj_text_filter_program_set(__VA_ARGS__); \ + else evas_obj_text_filter_program_set(__VA_ARGS__); } while (0) +#define efl_gfx_filter_source_set(...) do { \ + if (!im) evas_obj_text_filter_source_set(__VA_ARGS__); \ + else evas_obj_image_filter_source_set(__VA_ARGS__); } while (0) +#define efl_gfx_filter_state_set(...) do { \ + if (!im) evas_obj_text_filter_state_set(__VA_ARGS__); \ + /* else evas_obj_image_filter_state_set(__VA_ARGS__); */ } while (0) + // End of pure ugliness + + /* common code below */ + code = _edje_filter_get(ed, filter); + if (!code) + { +eo_do(obj, efl_gfx_filter_program_set(NULL)); +return; + } + + eo_do(obj, + efl_gfx_filter_program_set(code); + if (prev_sources != filter_sources) + { + /* remove sources that are not there anymore + * this O(n^2) loop assumes a very small number of sources */ + EINA_LIST_FOREACH(prev_sources, li1, src1) +{ + Eina_Bool found = 0; + EINA_LIST_FOREACH(filter_sources, li2, src2) + { +if (!strcmp(src1, src2)) + { + found = 1; + break; + } +
[EGIT] [core/efl] master 34/38: Evas filters: Add @protected tag where applicable
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c86a5edc9f4dbee7660166309d441790e9149e80 commit c86a5edc9f4dbee7660166309d441790e9149e80 Author: Jean-Philippe Andre jp.an...@samsung.com Date: Tue Jun 23 17:25:44 2015 +0900 Evas filters: Add @protected tag where applicable The Evas.Filter interface is basically just an internal thing. --- src/lib/evas/canvas/evas_filter.eo | 14 +++--- src/lib/evas/canvas/evas_filter_mixin.c | 2 ++ src/lib/evas/canvas/evas_object_image.c | 2 ++ src/lib/evas/canvas/evas_object_text.c | 2 ++ 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/lib/evas/canvas/evas_filter.eo b/src/lib/evas/canvas/evas_filter.eo index b461de9..5f8442f 100644 --- a/src/lib/evas/canvas/evas_filter.eo +++ b/src/lib/evas/canvas/evas_filter.eo @@ -3,7 +3,7 @@ mixin Evas.Filter (Efl.Gfx.Filter) // Evas internal implementation legacy_prefix: null; methods { - @property changed { + @property changed @protected { set { [[Marks this filter as changed.]] } @@ -11,7 +11,7 @@ mixin Evas.Filter (Efl.Gfx.Filter) val: bool; } } - @property invalid { + @property invalid @protected { set { [[Marks this filter as invalid.]] } @@ -19,24 +19,24 @@ mixin Evas.Filter (Efl.Gfx.Filter) val: bool; } } - constructor { + constructor @protected { [[Initialize the Evas.Filter mixin. Should be called in a parent's class constructor. ]] } - destructor { + destructor @protected { [[Release all data held by this Evas.Filter. This may include image buffers allocated by the Evas engine. This should be called at the beginning of a parent's class destructor. ]] } - input_alpha { + input_alpha @protected { [[Called by Evas.Filter to determine whether the input is alpha or rgba.]] return: bool; } - input_render { + input_render @protected { [[Called by Evas.Filter when the parent class must render the input. ; ]] @@ -51,7 +51,7 @@ mixin Evas.Filter (Efl.Gfx.Filter) do_async: bool; } } - dirty { + dirty @protected { [[Called when the filter changes must trigger a redraw of the object. Virtual, to be implemented in the parent class. diff --git a/src/lib/evas/canvas/evas_filter_mixin.c b/src/lib/evas/canvas/evas_filter_mixin.c index 70e37b0..046683b 100644 --- a/src/lib/evas/canvas/evas_filter_mixin.c +++ b/src/lib/evas/canvas/evas_filter_mixin.c @@ -1,3 +1,5 @@ +#define EVAS_FILTER_PROTECTED + #include evas_common_private.h #include evas_private.h #include ../../lib/efl/interfaces/efl_gfx_filter.eo.h diff --git a/src/lib/evas/canvas/evas_object_image.c b/src/lib/evas/canvas/evas_object_image.c index 0446ede..807f27c 100644 --- a/src/lib/evas/canvas/evas_object_image.c +++ b/src/lib/evas/canvas/evas_object_image.c @@ -1,3 +1,5 @@ +#define EVAS_FILTER_PROTECTED + #include evas_common_private.h #include sys/types.h diff --git a/src/lib/evas/canvas/evas_object_text.c b/src/lib/evas/canvas/evas_object_text.c index 21b91d9..1113791 100644 --- a/src/lib/evas/canvas/evas_object_text.c +++ b/src/lib/evas/canvas/evas_object_text.c @@ -1,3 +1,5 @@ +#define EVAS_FILTER_PROTECTED + #include evas_common_private.h /* Includes evas_bidi_utils stuff. */ #include evas_private.h --
[EGIT] [core/efl] master 19/38: Edje/evas filters: Add filter.source support
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=d00378edcf08deb6a34eeb9833a4d521ed6cca27 commit d00378edcf08deb6a34eeb9833a4d521ed6cca27 Author: Jean-Philippe Andre jp.an...@samsung.com Date: Tue Jun 16 14:50:43 2015 +0900 Edje/evas filters: Add filter.source support This should preserve ABI stability with earlier versions of edje_cc while still providing more advanced control over proxy bindings for evas filters from EDC. Also fix proxy binding for filters. @feature --- src/bin/edje/edje_cc_handlers.c | 194 ++ src/lib/edje/edje_private.h | 2 +- src/lib/edje/edje_text.c | 65 -- src/lib/evas/canvas/evas_object_text.c| 38 +++--- src/lib/evas/filters/evas_filter_parser.c | 2 +- 5 files changed, 197 insertions(+), 104 deletions(-) diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c index 2268190..53bf91e 100644 --- a/src/bin/edje/edje_cc_handlers.c +++ b/src/bin/edje/edje_cc_handlers.c @@ -362,6 +362,7 @@ static void st_collections_group_parts_part_description_text_source(void); static void st_collections_group_parts_part_description_text_text_source(void); static void st_collections_group_parts_part_description_text_ellipsis(void); static void st_collections_group_parts_part_description_text_filter(void); +static void st_collections_group_parts_part_description_text_filter_source(void); static void st_collections_group_parts_part_description_box_layout(void); static void st_collections_group_parts_part_description_box_align(void); static void st_collections_group_parts_part_description_box_padding(void); @@ -814,6 +815,8 @@ New_Statement_Handler statement_handlers[] = {collections.group.parts.part.description.text.elipsis, st_collections_group_parts_part_description_text_ellipsis}, {collections.group.parts.part.description.text.ellipsis, st_collections_group_parts_part_description_text_ellipsis}, {collections.group.parts.part.description.text.filter, st_collections_group_parts_part_description_text_filter}, + {collections.group.parts.part.description.text.filter.code, st_collections_group_parts_part_description_text_filter}, /* dup */ + {collections.group.parts.part.description.text.filter.source, st_collections_group_parts_part_description_text_filter_source}, {collections.group.parts.part.description.box.layout, st_collections_group_parts_part_description_box_layout}, {collections.group.parts.part.description.box.align, st_collections_group_parts_part_description_box_align}, {collections.group.parts.part.description.box.padding, st_collections_group_parts_part_description_box_padding}, @@ -6696,15 +6699,18 @@ st_collections_group_parts_part_description_inherit(void) ted-text.domain = STRDUP(ted-text.domain); ted-text.text_class = STRDUP(ted-text.text_class); ted-text.font.str = STRDUP(ted-text.font.str); - ted-text.filter.code = STRDUP(ted-text.filter.code); - { - Eina_List *l; - Eina_Stringshare *name; - static int part_key = 0; - EINA_LIST_FOREACH(ted-text.filter.sources, l, name) - data_queue_part_lookup(pc, name, part_key); - } + /* Filters stuff */ + ted-text.filter.code = STRDUP(ted-text.filter.code); + if (ted-text.filter.code) +{ + Eina_List *list, *l; + const char *name; + list = ted-text.filter.sources; + ted-text.filter.sources = NULL; + EINA_LIST_FOREACH(list, l, name) + ted-text.filter.sources = eina_list_append(ted-text.filter.sources, STRDUP(name)); +} data_queue_copied_part_nest_lookup(pc, (tparent-text.id_source), (ted-text.id_source), ted-text.id_source_part); data_queue_copied_part_nest_lookup(pc, (tparent-text.id_text_source), (ted-text.id_text_source), ted-text.id_text_source_part); @@ -8979,31 +8985,88 @@ st_collections_group_parts_part_description_text_ellipsis(void) /** @page edcref +@context +part { +type: TEXT; // or IMAGE +description { +.. +text { +.. +filter { +code: blend {} -- ... +source: part1 buf; +source: part2 otherbuf; +source: part3; +} +// or as short form: +filter: blend {} -- ... +} +.. +} +} @property -filter +filter.code @parameters [filter program as a string]
[EGIT] [core/efl] master 30/38: Edje tests: Add test case for embedded text filters
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6ca1ce305bc9043561f040d52c85dd2781aaec4d commit 6ca1ce305bc9043561f040d52c85dd2781aaec4d Author: Jean-Philippe Andre jp.an...@samsung.com Date: Tue Jun 23 12:38:32 2015 +0900 Edje tests: Add test case for embedded text filters --- src/Makefile_Edje.am | 15 ++--- src/tests/edje/data/filter.lua | 14 src/tests/edje/data/test_filters.edc | 62 src/tests/edje/edje_test_edje.c | 35 4 files changed, 122 insertions(+), 4 deletions(-) diff --git a/src/Makefile_Edje.am b/src/Makefile_Edje.am index 596a02b..17e1cbc 100644 --- a/src/Makefile_Edje.am +++ b/src/Makefile_Edje.am @@ -284,22 +284,29 @@ tests/edje/data/%.edj: tests/edje/data/%.edc bin/edje/edje_cc${EXEEXT} $(AM_V_EDJ) \ $(MKDIR_P) tests/edje/data; \ $(EDJE_CC) $(EDJE_CC_FLAGS) -id $(srcdir)/tests/edje/data \ - -id $(srcdir)/tests/emotion/data $ $@ + -id $(srcdir)/tests/emotion/data \ + -dd $(srcdir)/tests/edje/data \ + $ $@ EDJE_DATA_FILES = tests/edje/data/test_layout.edc \ tests/edje/data/complex_layout.edc \ tests/edje/data/test_parens.edc \ - tests/edje/data/test_masking.edc + tests/edje/data/test_masking.edc \ + tests/edje/data/test_filters.edc \ + tests/edje/data/filter.lua edjedatafilesdir = $(datadir)/edje/data edjedatafiles_DATA = tests/edje/data/test_layout.edj \ tests/edje/data/complex_layout.edj \ tests/edje/data/test_parens.edj \ - tests/edje/data/test_masking.edj + tests/edje/data/test_masking.edj \ + tests/edje/data/test_filters.edj + CLEANFILES += tests/edje/data/test_layout.edj \ tests/edje/data/complex_layout.edj \ tests/edje/data/test_parens.edj \ - tests/edje/data/test_masking.edj + tests/edje/data/test_masking.edj \ + tests/edje/data/test_filters.edj endif diff --git a/src/tests/edje/data/filter.lua b/src/tests/edje/data/filter.lua new file mode 100644 index 000..2ada51b --- /dev/null +++ b/src/tests/edje/data/filter.lua @@ -0,0 +1,14 @@ +-- Evas filter program + +a = buffer { 'alpha' } +b = buffer { src = 'mask' } + +padding_set(10) + +grow { 5, dst = a } +blur { 6, src = a, color = state.color, ox = 1, oy = 1 } +blur { 2, color = color({cc.r, cc.g, cc.b, cc.a }) } +blend { color = mycolor, ox = 1, oy = 1 } + +mask { src = input, mask = b, color = 'cyan', fillmode = 'stretch_y_repeat_x' } + diff --git a/src/tests/edje/data/test_filters.edc b/src/tests/edje/data/test_filters.edc new file mode 100644 index 000..df84c48 --- /dev/null +++ b/src/tests/edje/data/test_filters.edc @@ -0,0 +1,62 @@ +data { + file: filterfile filter.lua; +} +color_classes { + color_class { + name: cc1; + color: 0 0 255 255; + color2: 0 255 255 255; + color3: 0 0 255 255; + } +} +collections { + images { + // found in tests/emotion/data + image: pnl.png COMP; + } + group { name: test_group; + parts { + part { name: background; +type: RECT; +description { state: default 0.0; + color: 33 32 32 255; + rel1.relative: 0 0; + rel2.relative: 1 1; + max: 200 200; +} + } + part { name: mask; +type: IMAGE; +no_render: 1; +description { state: default 0.0; + rel1.relative: 0 0; + rel2.relative: 1 1; + rel.to: text; + max: 999 50; + image.normal: pnl.png; +} + } + part { name: text; +type: TEXT; +description { state: default 0.0; + rel1.relative: 0 0; + rel2.relative: 1 1; + rel1.to: background; + rel2.to: background; + text { + text: FILTER; + font: Sans; + size: 48; + } + filter { + code: filterfile; + source: mask; + data: mycolor #f0f8; + data: cc color_class('cc1'); + } + color: 255 80 0 200; +} + } + } + } +} diff --git a/src/tests/edje/edje_test_edje.c b/src/tests/edje/edje_test_edje.c index 88cc3fc..4c80b36 100644 --- a/src/tests/edje/edje_test_edje.c +++ b/src/tests/edje/edje_test_edje.c @@ -203,6 +203,40 @@ START_TEST(edje_test_masking) } END_TEST +START_TEST(edje_test_filters) +{ + Evas *evas = EDJE_TEST_INIT_EVAS(); + const Evas_Object *text, *sub; + Evas_Object *obj, *src = NULL; + const char *prg, *name; + Eina_Bool b;
[EGIT] [core/efl] master 27/38: Edje evas filters: Add extra data from EDC to Lua program
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=0e8f890dfbdb188d02857b2bcf64d35089f3a297 commit 0e8f890dfbdb188d02857b2bcf64d35089f3a297 Author: Jean-Philippe Andre jp.an...@samsung.com Date: Mon Jun 22 21:52:16 2015 +0900 Edje evas filters: Add extra data from EDC to Lua program This also supports color classes (really rough implementation for now, but the API should remain stable). @feature --- src/bin/edje/edje_cc_handlers.c | 52 ++ src/lib/edje/edje_calc.c | 61 +++ src/lib/edje/edje_data.c | 2 + src/lib/edje/edje_private.h | 1 + src/lib/efl/interfaces/efl_gfx_filter.eo | 9 + src/lib/evas/canvas/evas_filter_mixin.c | 30 +++ src/lib/evas/canvas/evas_object_main.c| 2 +- src/lib/evas/filters/evas_filter_parser.c | 26 + src/lib/evas/include/evas_filter.h| 1 + src/lib/evas/include/evas_private.h | 1 + 10 files changed, 184 insertions(+), 1 deletion(-) diff --git a/src/bin/edje/edje_cc_handlers.c b/src/bin/edje/edje_cc_handlers.c index 8954f08..f6458f8 100644 --- a/src/bin/edje/edje_cc_handlers.c +++ b/src/bin/edje/edje_cc_handlers.c @@ -396,6 +396,7 @@ static void st_collections_group_parts_part_description_mesh_assembly(void); static void st_collections_group_parts_part_description_mesh_geometry(void); static void st_collections_group_parts_part_description_filter_code(void); static void st_collections_group_parts_part_description_filter_source(void); +static void st_collections_group_parts_part_description_filter_data(void); #ifdef HAVE_EPHYSICS static void st_collections_group_parts_part_description_physics_mass(void); @@ -849,6 +850,7 @@ New_Statement_Handler statement_handlers[] = {collections.group.parts.part.description.mesh.geometry, st_collections_group_parts_part_description_mesh_geometry}, {collections.group.parts.part.description.filter.code, st_collections_group_parts_part_description_filter_code}, {collections.group.parts.part.description.filter.source, st_collections_group_parts_part_description_filter_source}, + {collections.group.parts.part.description.filter.data, st_collections_group_parts_part_description_filter_data}, #ifdef HAVE_EPHYSICS {collections.group.parts.part.description.physics.mass, st_collections_group_parts_part_description_physics_mass}, @@ -11649,6 +11651,56 @@ st_collections_group_parts_part_description_filter_source(void) free(name); } +/** +@page edcref + +@property +filter.data +@parameters +[name] [content] +@effect +Pass extra data to the Lua filter program. This can be used to pass +extra colors from a color_class using the following syntax: + filter.data: mycc color_class('my_color_class'); +If not a color class, the data will simply be set as a string attached +to the global variable 'name' in the Lua program. +For more information, please refer to the page Evas filters reference. +@see evasfiltersref +@endproperty +*/ +static void +st_collections_group_parts_part_description_filter_data(void) +{ + Edje_Part_Description_Spec_Filter *filter; + char *name, *value; + + if (current_part-type == EDJE_PART_TYPE_TEXT) + filter = (((Edje_Part_Description_Text *)current_desc)-text.filter); + else if (current_part-type == EDJE_PART_TYPE_IMAGE) + filter = (((Edje_Part_Description_Image *)current_desc)-image.filter); + else + { +ERR(parse error %s:%i. filter set for non-TEXT and non-IMAGE part., +file_in, line - 1); +exit(-1); + } + + check_arg_count(2); + + if (!filter-data) + filter-data = eina_hash_string_small_new(EINA_FREE_CB(free)); + + name = parse_str(0); + value = parse_str(1); + if (eina_hash_find(filter-data, name)) + { +ERR(parse error %s:%i. filter.data '%s' already exists in this context, +file_in, line - 1, name); +exit(-1); + } + + eina_hash_add(filter-data, name, value); +} /** @edcsubsection{collections_group_parts_descriptions_params, * Group.Parts.Part.Description.Params} */ diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c index 48a4d81..b506ef1 100644 --- a/src/lib/edje/edje_calc.c +++ b/src/lib/edje/edje_calc.c @@ -2535,6 +2535,67 @@ _edje_part_recalc_single_filter(Edje *ed, efl_gfx_filter_state_set(chosen_desc-state.name, chosen_desc-state.value, NULL, 0.0, pos); } + /* pass extra data items */ + if (filter-data) + { + Eina_Iterator *it = eina_hash_iterator_tuple_new(filter-data); + Eina_Hash_Tuple *tup; + EINA_ITERATOR_FOREACH(it, tup) +{ + const char
[EGIT] [core/efl] master 28/38: Evas filters: Fix buffer_push and add support for color classes
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=0df37da435150bc84ae46e77cb9949e6ca489ada commit 0df37da435150bc84ae46e77cb9949e6ca489ada Author: Jean-Philippe Andre jp.an...@samsung.com Date: Tue Jun 23 11:44:54 2015 +0900 Evas filters: Fix buffer_push and add support for color classes Makes sure that buffers don't override already existing globals vars such as 'mask' (a function name). Yeah, it happened to me. CC support is a little bit hackish. Need to find a better way. --- src/lib/evas/filters/evas_filter_parser.c | 32 +++ 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/src/lib/evas/filters/evas_filter_parser.c b/src/lib/evas/filters/evas_filter_parser.c index 6b4b8d3..2352d5d 100644 --- a/src/lib/evas/filters/evas_filter_parser.c +++ b/src/lib/evas/filters/evas_filter_parser.c @@ -2297,7 +2297,19 @@ _filter_program_buffers_set(Evas_Filter_Program *pgm) const char *source; EINA_ITERATOR_FOREACH(it, source) - _buffer_add(pgm, source, EINA_FALSE, source, EINA_FALSE); + { + // Cleanup name and avoid overriding existing globals + char name[64]; + unsigned i; + snprintf(name, 64, __source_%s, source); + name[63] = '\0'; + for (i = 0; name[i]; i++) + { + if (!isdigit(name[i]) !isalpha(name[i])) +name[i] = '_'; + } + _buffer_add(pgm, name, EINA_FALSE, source, EINA_FALSE); + } eina_iterator_free(it); } @@ -2631,10 +2643,22 @@ _filter_program_state_set(Evas_Filter_Program *pgm) const char *name = tup-key; const char *value = tup-data; if (value) - lua_pushstring(L, value); + { + if ((value[0] == '-') (value[1] == '-') value[2] == '\n') +{ + int i = luaL_dostring(L, value); + ERR(i %d, i); +} + else +{ + lua_pushstring(L, value); + lua_setglobal(L, name); +} + } else - lua_pushnil(L); - lua_setglobal(L, name); + { + lua_pushnil(L); + } } eina_iterator_free(it); } --
[EGIT] [core/efl] master 32/38: Evas filters: Remove overrides of methods from Evas.Filter
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=f4825006b0994074dacd594b3d239305b4e7963e commit f4825006b0994074dacd594b3d239305b4e7963e Author: Jean-Philippe Andre jp.an...@samsung.com Date: Tue Jun 23 15:21:45 2015 +0900 Evas filters: Remove overrides of methods from Evas.Filter Welp that was stupid to add them in the first place... --- src/lib/evas/canvas/evas_image.eo | 4 src/lib/evas/canvas/evas_object_image.c | 26 -- src/lib/evas/canvas/evas_object_text.c | 26 -- src/lib/evas/canvas/evas_text.eo| 4 4 files changed, 60 deletions(-) diff --git a/src/lib/evas/canvas/evas_image.eo b/src/lib/evas/canvas/evas_image.eo index 9d387b5..cec824a 100644 --- a/src/lib/evas/canvas/evas_image.eo +++ b/src/lib/evas/canvas/evas_image.eo @@ -938,10 +938,6 @@ class Evas.Image (Evas.Object, Efl.File, Efl.Image, Efl.Gfx.Fill, Efl.Gfx.View, Efl.Gfx.View.size.set; Efl.Gfx.View.size.get; Efl.Gfx.Filter.program.set; - Efl.Gfx.Filter.program.get; - Efl.Gfx.Filter.source_set; - Efl.Gfx.Filter.source_get; - Efl.Gfx.Filter.state.set; Evas.Filter.input_alpha; Evas.Filter.input_render; Evas.Filter.dirty; diff --git a/src/lib/evas/canvas/evas_object_image.c b/src/lib/evas/canvas/evas_object_image.c index 7fa102f..0446ede 100644 --- a/src/lib/evas/canvas/evas_object_image.c +++ b/src/lib/evas/canvas/evas_object_image.c @@ -4735,30 +4735,4 @@ _evas_image_efl_gfx_filter_program_set(Eo *obj, Evas_Image_Data *pd EINA_UNUSED, eo_do_super(obj, MY_CLASS, efl_gfx_filter_program_set(code, name)); } -EOLIAN void -_evas_image_efl_gfx_filter_program_get(Eo *obj, Evas_Image_Data *pd EINA_UNUSED, const char **code, const char **name) -{ - eo_do_super(obj, MY_CLASS, efl_gfx_filter_program_get(code, name)); -} - -EOLIAN void -_evas_image_efl_gfx_filter_source_set(Eo *obj, Evas_Image_Data *pd EINA_UNUSED, const char *name, Efl_Gfx_Base *source) -{ - eo_do_super(obj, MY_CLASS, efl_gfx_filter_source_set(name, source)); -} - -EOLIAN void -_evas_image_efl_gfx_filter_source_get(Eo *obj, Evas_Image_Data *pd EINA_UNUSED, const char *name, Efl_Gfx_Base **source) -{ - eo_do_super(obj, MY_CLASS, efl_gfx_filter_source_get(name, source)); -} - -EOLIAN void -_evas_image_efl_gfx_filter_state_set(Eo *obj, Evas_Image_Data *pd EINA_UNUSED, -const char *cur_state, double cur_val, -const char *next_state, double next_val, double pos) -{ - eo_do_super(obj, MY_CLASS, efl_gfx_filter_state_set(cur_state, cur_val, next_state, next_val, pos)); -} - #include canvas/evas_image.eo.c diff --git a/src/lib/evas/canvas/evas_object_text.c b/src/lib/evas/canvas/evas_object_text.c index 89f2523..21b91d9 100644 --- a/src/lib/evas/canvas/evas_object_text.c +++ b/src/lib/evas/canvas/evas_object_text.c @@ -2233,30 +2233,4 @@ _evas_text_efl_gfx_filter_program_set(Eo *obj, Evas_Text_Data *pd EINA_UNUSED, c eo_do_super(obj, MY_CLASS, efl_gfx_filter_program_set(code, name)); } -EOLIAN void -_evas_text_efl_gfx_filter_program_get(Eo *obj, Evas_Text_Data *pd EINA_UNUSED, const char **code, const char **name) -{ - eo_do_super(obj, MY_CLASS, efl_gfx_filter_program_get(code, name)); -} - -EOLIAN void -_evas_text_efl_gfx_filter_source_set(Eo *obj, Evas_Text_Data *pd EINA_UNUSED, const char *name, Efl_Gfx_Base *source) -{ - eo_do_super(obj, MY_CLASS, efl_gfx_filter_source_set(name, source)); -} - -EOLIAN void -_evas_text_efl_gfx_filter_source_get(Eo *obj, Evas_Text_Data *pd EINA_UNUSED, const char *name, Efl_Gfx_Base **source) -{ - eo_do_super(obj, MY_CLASS, efl_gfx_filter_source_get(name, source)); -} - -EOLIAN void -_evas_text_efl_gfx_filter_state_set(Eo *obj, Evas_Text_Data *pd EINA_UNUSED, -const char *cur_state, double cur_val, -const char *next_state, double next_val, double pos) -{ - eo_do_super(obj, MY_CLASS, efl_gfx_filter_state_set(cur_state, cur_val, next_state, next_val, pos)); -} - #include canvas/evas_text.eo.c diff --git a/src/lib/evas/canvas/evas_text.eo b/src/lib/evas/canvas/evas_text.eo index c21b2c4..8cdb204 100644 --- a/src/lib/evas/canvas/evas_text.eo +++ b/src/lib/evas/canvas/evas_text.eo @@ -327,10 +327,6 @@ class Evas.Text (Evas.Object, Efl.Text, Efl.Text_Properties, Evas.Filter) Efl.Text_Properties.font_source.get; Efl.Text_Properties.font_source.set; Efl.Gfx.Filter.program.set; - Efl.Gfx.Filter.program.get; - Efl.Gfx.Filter.source_set; - Efl.Gfx.Filter.source_get; - Efl.Gfx.Filter.state.set; Evas.Filter.input_alpha; Evas.Filter.input_render; Evas.Filter.dirty; --
[EGIT] [core/efl] master 31/38: Evas tests: Fix failing tests
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=068b9d5a5fca1761be2e63e136180c70cded18ef commit 068b9d5a5fca1761be2e63e136180c70cded18ef Author: Jean-Philippe Andre jp.an...@samsung.com Date: Tue Jun 23 12:38:53 2015 +0900 Evas tests: Fix failing tests Syntax error in C and in Lua code. --- src/tests/evas/evas_test_filters.c | 14 +++--- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/tests/evas/evas_test_filters.c b/src/tests/evas/evas_test_filters.c index 2758940..a5528df 100644 --- a/src/tests/evas/evas_test_filters.c +++ b/src/tests/evas/evas_test_filters.c @@ -282,11 +282,11 @@ static struct Filter_Test_Case _test_cases[] = { { 5, 5, 5, 5, a = buffer ({ 'alpha' }) blur ({ 5,dst = a }) bump ({ a, azimuth = 45.0, color = 'yellow' }), NULL }, // Proxy tests ({ RECT as a proxy object }) - { 0, 0, 0, 0, m = buffer ({ src = rect }) mask ({ m, fillmode = 'none' }), rect }, - { 0, 0, 0, 0, m = buffer ({ src = rect }) mask ({ m, fillmode = 'repeat_x_stretch_y' }), rect }, - { 0, 0, 0, 0, m = buffer ({ src = rect }) mask ({ m, fillmode = 'repeat' }), rect }, - { 0, 0, 0, 0, m = buffer ({ src = rect }) mask ({ m, fillmode = 'stretch' }), rect }, - { 0, 0, 0, 0, m = buffer ({ src = rect }) b = buffer ({ 'rgba' }) blend ({ m,dst = b, fillmode = 'repeat_x_stretch_y' }) blend (), rect }, + { 0, 0, 0, 0, m = buffer ({ src = 'rect' }) mask ({ m, fillmode = 'none' }), rect }, + { 0, 0, 0, 0, m = buffer ({ src = 'rect' }) mask ({ m, fillmode = 'repeat_x_stretch_y' }), rect }, + { 0, 0, 0, 0, m = buffer ({ src = 'rect' }) mask ({ m, fillmode = 'repeat' }), rect }, + { 0, 0, 0, 0, m = buffer ({ src = 'rect' }) mask ({ m, fillmode = 'stretch' }), rect }, + { 0, 0, 0, 0, m = buffer ({ src = 'rect' }) b = buffer ({ 'rgba' }) blend ({ m,dst = b, fillmode = 'repeat_x_stretch_y' }) blend (), rect }, // Padding_set { 11, 22, 33, 44, padding_set ({ 11,22,33,44 }) blend ()} @@ -400,13 +400,13 @@ START_TEST(evas_filter_text_render_test) eo_do(to, efl_gfx_color_set(255, 255, 255, 255), efl_gfx_filter_source_set(tc-source, o), - efl_gfx_filter_program_set(tc-code, , evas_test_filter)); + efl_gfx_filter_program_set(tc-code, evas_test_filter)); } else { eo_do(to, efl_gfx_color_set(255, 255, 255, 255), - efl_gfx_filter_program_set(tc-code, , evas_test_filter)); + efl_gfx_filter_program_set(tc-code, evas_test_filter)); } evas_object_geometry_get(to, NULL, NULL, w, h); --
[EGIT] [core/efl] master 12/38: Evas filters: Pass object scale to Lua state
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=4ade39c0ea5ef7ea3716c67841801f8eacf6c31c commit 4ade39c0ea5ef7ea3716c67841801f8eacf6c31c Author: Jean-Philippe Andre jp.an...@samsung.com Date: Thu May 28 15:59:10 2015 +0900 Evas filters: Pass object scale to Lua state --- src/lib/evas/filters/evas_filter_parser.c | 6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/lib/evas/filters/evas_filter_parser.c b/src/lib/evas/filters/evas_filter_parser.c index 0972e7c..c27569d 100644 --- a/src/lib/evas/filters/evas_filter_parser.c +++ b/src/lib/evas/filters/evas_filter_parser.c @@ -342,6 +342,7 @@ struct _Evas_Filter_Program_State } text; struct { int a, r, g, b; } color; int w, h; + double scale; }; struct _Evas_Filter_Program @@ -2533,7 +2534,7 @@ _filter_program_state_set(Evas_Filter_Program *pgm) */ #define JOINC(k) ARGB_JOIN(pgm-state.k.a, pgm-state.k.r, pgm-state.k.g, pgm-state.k.b) -#define SETFIELD(name, val) do { lua_pushinteger(L, val); lua_setfield(L, -2, name); } while(0) +#define SETFIELD(name, val) do { lua_pushnumber(L, val); lua_setfield(L, -2, name); } while(0) // TODO: Mark program as dependent on some values so we can improve // the changed flag (ie. re-run the filter only when required) @@ -2543,6 +2544,7 @@ _filter_program_state_set(Evas_Filter_Program *pgm) lua_newtable(L); // state { SETFIELD(color, JOINC(color)); + SETFIELD(scale, pgm-state.scale); lua_newtable(L); // text { SETFIELD(outline, JOINC(text.outline)); @@ -2765,6 +2767,7 @@ evas_filter_program_new(const char *name, Eina_Bool input_alpha) pgm-state.color.g = 255; pgm-state.color.b = 255; pgm-state.color.a = 255; + pgm-state.scale = 1.0; return pgm; } @@ -2781,6 +2784,7 @@ evas_filter_program_state_set(Evas_Filter_Program *pgm, Evas_Object *eo_obj, pgm-state.w = obj-cur-geometry.w; pgm-state.h = obj-cur-geometry.h; + pgm-state.scale = obj-cur-scale; eo_do(eo_obj, efl_gfx_color_get(pgm-state.color.r, --