Re: [E-devel] Can't get Erigo to Launch
Did you push that update to the main git branch or should I be compiling a different branch? Not seeing any updates to the main branch. On Tue, Mar 17, 2015 at 2:52 AM, Daniel Zaoui daniel.za...@samsung.com wrote: Hi Jeff, On Tue, 17 Mar 2015 02:09:38 -0500 Jeff Hoogland jeffhoogl...@linux.com wrote: Trying Erigo for the first time in awhile and I am getting this message when I try to start it: ERR16944:eo_lexer lib/eolian/eo_lexer.c:652 eo_lexer_set_input() No such file or directory ERR16944:eo_lexer lib/eolian/database_fill.c:221 eo_parser_database_fill() unable to create lexer ERR16944: /home/jeff/bodhi_debs/20150316/erigo-20150316/src/bin/main.c:249 main() Could not start Erigo Using EFL/Elm built from Git today. As you guessed, it works for me :D I pushed some patch in efl to improve the error message. Please update and tell me which file it fails on. JackDanielZ -- ~Jeff Hoogland http://jeffhoogland.com/ My Projects on GitHub https://github.com/JeffHoogland -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/elementary] elementary-1.13 01/01: elm_panel: Fix incorrect scroller content region calculation of panel.
jaehyun pushed a commit to branch elementary-1.13. http://git.enlightenment.org/core/elementary.git/commit/?id=71797204069ea222edfd9e937c762685122c0160 commit 71797204069ea222edfd9e937c762685122c0160 Author: Jaehyun Cho jae_hyun@samsung.com Date: Fri Mar 13 17:27:03 2015 +0900 elm_panel: Fix incorrect scroller content region calculation of panel. Summary: Fix incorrect scroller content region calculation of panel. It is fixed that the parent of panel content becomes scr_ly if panel is scrollable. @fix Test Plan: Test Panel Scrollable in elementary_test. 1. Change panel orient as ELM_PANEL_ORIENT_RIGHT in test_panel.c. 2. Run elementary_test and test Panel Scrollable. 3. You can see the right panel drawer is hidden right after it is shown. (After applying this patch, this problem will be resolved.) Reviewers: seoz, woohyun, eunue, Hermet Reviewed By: Hermet Differential Revision: https://phab.enlightenment.org/D2125 --- src/lib/elm_panel.c | 6 ++ 1 file changed, 6 insertions(+) diff --git a/src/lib/elm_panel.c b/src/lib/elm_panel.c index ebe43c9..28af02f 100644 --- a/src/lib/elm_panel.c +++ b/src/lib/elm_panel.c @@ -886,6 +886,8 @@ _elm_panel_elm_container_content_set(Eo *obj, Elm_Panel_Data *sd, const char *pa { evas_object_box_append(sd-bx, sd-content); evas_object_show(sd-content); +if (sd-scrollable) + elm_widget_sub_object_add(sd-scr_ly, sd-content); } elm_layout_sizing_eval(obj); @@ -940,6 +942,8 @@ _elm_panel_elm_container_content_unset(Eo *obj, Elm_Panel_Data *sd, const char * ret = sd-content; evas_object_box_remove_all(sd-bx, EINA_FALSE); + if (sd-scrollable) + elm_widget_sub_object_del(sd-scr_ly, sd-content); sd-content = NULL; return ret; @@ -1384,6 +1388,7 @@ _elm_panel_scrollable_set(Eo *obj, Elm_Panel_Data *sd, Eina_Bool scrollable) elm_interface_scrollable_content_set(sd-scr_ly)); sd-freeze = EINA_TRUE; elm_layout_content_set(sd-scr_ly, elm.swallow.content, sd-bx); +if (sd-content) elm_widget_sub_object_add(sd-scr_ly, sd-content); switch (sd-orient) { @@ -1432,6 +1437,7 @@ _elm_panel_scrollable_set(Eo *obj, Elm_Panel_Data *sd, Eina_Bool scrollable) elm_layout_content_unset(sd-scr_ly, elm.swallow.content); elm_layout_content_set(obj, elm.swallow.content, sd-bx); +if (sd-content) elm_widget_sub_object_add(sd-bx, sd-content); } } --
Re: [E-devel] Can't get Erigo to Launch
Hi Jeff, On Tue, 17 Mar 2015 02:09:38 -0500 Jeff Hoogland jeffhoogl...@linux.com wrote: Trying Erigo for the first time in awhile and I am getting this message when I try to start it: ERR16944:eo_lexer lib/eolian/eo_lexer.c:652 eo_lexer_set_input() No such file or directory ERR16944:eo_lexer lib/eolian/database_fill.c:221 eo_parser_database_fill() unable to create lexer ERR16944: /home/jeff/bodhi_debs/20150316/erigo-20150316/src/bin/main.c:249 main() Could not start Erigo Using EFL/Elm built from Git today. As you guessed, it works for me :D I pushed some patch in efl to improve the error message. Please update and tell me which file it fails on. JackDanielZ -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/elementary] master 01/01: conform: Use eo_isa() to check object types.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=166bc315d0203334e24d1fe9e1eebb5c0fbf61d8 commit 166bc315d0203334e24d1fe9e1eebb5c0fbf61d8 Author: woochan lee wc0917@samsung.com Date: Tue Mar 17 15:42:36 2015 +0900 conform: Use eo_isa() to check object types. Summary: The strcmp(line 738) has been failed since the eo applied. the widget type get API returned Elm_Genlist now. For fix it, using eo_isa() to check object types instead of string comparison. @fix Reviewers: seoz, woohyun, JackDanielZ, Hermet Reviewed By: Hermet Differential Revision: https://phab.enlightenment.org/D2148 --- src/lib/elm_conform.c | 17 - 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/src/lib/elm_conform.c b/src/lib/elm_conform.c index 13e95af..741a846 100644 --- a/src/lib/elm_conform.c +++ b/src/lib/elm_conform.c @@ -18,11 +18,6 @@ static char CONFORMANT_KEY[] = _elm_conform_key; #define ELM_CONFORM_INDICATOR_TIME 1.0 -#ifdef HAVE_ELEMENTARY_X -#define SUB_TYPE_COUNT 2 -static char *sub_type[SUB_TYPE_COUNT] = { elm_scroller, elm_genlist }; -#endif - static const char INDICATOR_PART[] = elm.swallow.indicator; static const char VIRTUALKEYPAD_PART[] = elm.swallow.virtualkeypad; static const char CLIPBOARD_PART[] = elm.swallow.clipboard; @@ -731,15 +726,11 @@ _autoscroll_objects_update(void *data) while (sub) { -type = elm_widget_type_get(sub); -if (!strcmp(type, MY_CLASS_NAME_LEGACY)) break; +if (eo_isa(sub, ELM_CONFORMANT_CLASS)) break; + +if (eo_isa(sub, ELM_SCROLLER_CLASS) || eo_isa(sub, ELM_GENLIST_CLASS)) + top_scroller = sub; -for (i = 0; i SUB_TYPE_COUNT; i++) - if (!strcmp(type, sub_type[i])) -{ - top_scroller = sub; - break; -} sub = elm_object_parent_widget_get(sub); } --
[EGIT] [core/elementary] master 01/01: conform: remove redundant declares.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=170368e104ca8e84dc3c855e7512db781bdf8401 commit 170368e104ca8e84dc3c855e7512db781bdf8401 Author: ChunEon Park her...@hermet.pe.kr Date: Tue Mar 17 15:44:27 2015 +0900 conform: remove redundant declares. --- src/lib/elm_conform.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/lib/elm_conform.c b/src/lib/elm_conform.c index 741a846..2493ff2 100644 --- a/src/lib/elm_conform.c +++ b/src/lib/elm_conform.c @@ -714,8 +714,6 @@ _on_content_resize(void *data, static void _autoscroll_objects_update(void *data) { - int i; - const char *type; Evas_Object *sub, *top_scroller = NULL; ELM_CONFORMANT_DATA_GET(data, sd); --
[EGIT] [core/elementary] elementary-1.13 01/01: conform: Use eo_isa() to check object types.
hermet pushed a commit to branch elementary-1.13. http://git.enlightenment.org/core/elementary.git/commit/?id=38c0182a3892170a7a8d07a4e2087aec066022ef commit 38c0182a3892170a7a8d07a4e2087aec066022ef Author: woochan lee wc0917@samsung.com Date: Tue Mar 17 15:42:36 2015 +0900 conform: Use eo_isa() to check object types. Summary: The strcmp(line 738) has been failed since the eo applied. the widget type get API returned Elm_Genlist now. For fix it, using eo_isa() to check object types instead of string comparison. @fix Reviewers: seoz, woohyun, JackDanielZ, Hermet Reviewed By: Hermet Differential Revision: https://phab.enlightenment.org/D2148 --- src/lib/elm_conform.c | 17 - 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/src/lib/elm_conform.c b/src/lib/elm_conform.c index 13e95af..741a846 100644 --- a/src/lib/elm_conform.c +++ b/src/lib/elm_conform.c @@ -18,11 +18,6 @@ static char CONFORMANT_KEY[] = _elm_conform_key; #define ELM_CONFORM_INDICATOR_TIME 1.0 -#ifdef HAVE_ELEMENTARY_X -#define SUB_TYPE_COUNT 2 -static char *sub_type[SUB_TYPE_COUNT] = { elm_scroller, elm_genlist }; -#endif - static const char INDICATOR_PART[] = elm.swallow.indicator; static const char VIRTUALKEYPAD_PART[] = elm.swallow.virtualkeypad; static const char CLIPBOARD_PART[] = elm.swallow.clipboard; @@ -731,15 +726,11 @@ _autoscroll_objects_update(void *data) while (sub) { -type = elm_widget_type_get(sub); -if (!strcmp(type, MY_CLASS_NAME_LEGACY)) break; +if (eo_isa(sub, ELM_CONFORMANT_CLASS)) break; + +if (eo_isa(sub, ELM_SCROLLER_CLASS) || eo_isa(sub, ELM_GENLIST_CLASS)) + top_scroller = sub; -for (i = 0; i SUB_TYPE_COUNT; i++) - if (!strcmp(type, sub_type[i])) -{ - top_scroller = sub; - break; -} sub = elm_object_parent_widget_get(sub); } --
[EGIT] [core/efl] master 01/01: Eolian: add filename to error message
jackdanielz pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=d7d9317da4a876936ae9f8c9d8f70fcd6a6394b9 commit d7d9317da4a876936ae9f8c9d8f70fcd6a6394b9 Author: Daniel Zaoui daniel.za...@yahoo.com Date: Tue Mar 17 09:32:54 2015 +0200 Eolian: add filename to error message --- src/lib/eolian/database_fill.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/eolian/database_fill.c b/src/lib/eolian/database_fill.c index 2f29520..999c03b 100644 --- a/src/lib/eolian/database_fill.c +++ b/src/lib/eolian/database_fill.c @@ -218,7 +218,7 @@ eo_parser_database_fill(const char *filename, Eina_Bool eot) Eo_Lexer *ls = eo_lexer_new(filename); if (!ls) { -ERR(unable to create lexer); +ERR(unable to create lexer for file %s, filename); return EINA_FALSE; } --
Re: [E-devel] [EGIT] [core/elementary] master 01/01: elm_panel: Fix incorrect scroller content region calculation of panel.
please append @fix tag and backport to elementary.1.13 branch. thank you. -Regards, Hermet- -Original Message- From: Jaehyun Chojae_hyun@samsung.com To: g...@lists.enlightenment.org; Cc: Sent: 2015-03-13 (금) 17:34:42 Subject: [EGIT] [core/elementary] master 01/01: elm_panel: Fix incorrect scroller content region calculation of panel. jaehyun pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=8ee8864bdc8615602e7ed45341092d26e5e76627 commit 8ee8864bdc8615602e7ed45341092d26e5e76627 Author: Jaehyun Cho jae_hyun@samsung.com Date: Fri Mar 13 17:27:03 2015 +0900 elm_panel: Fix incorrect scroller content region calculation of panel. Summary: Fix incorrect scroller content region calculation of panel. It is fixed that the parent of panel content becomes scr_ly if panel is scrollable. Test Plan: Test Panel Scrollable in elementary_test. 1. Change panel orient as ELM_PANEL_ORIENT_RIGHT in test_panel.c. 2. Run elementary_test and test Panel Scrollable. 3. You can see the right panel drawer is hidden right after it is shown. (After applying this patch, this problem will be resolved.) Reviewers: seoz, woohyun, eunue, Hermet Reviewed By: Hermet Differential Revision: https://phab.enlightenment.org/D2125 --- src/lib/elm_panel.c 6 ++ 1 file changed, 6 insertions(+) diff --git a/src/lib/elm_panel.c b/src/lib/elm_panel.c index a8da6a8..733386f 100644 --- a/src/lib/elm_panel.c +++ b/src/lib/elm_panel.c @@ -886,6 +886,8 @@ _elm_panel_elm_container_content_set(Eo *obj, Elm_Panel_Data *sd, const char *pa { evas_object_box_append(sd-bx, sd-content); evas_object_show(sd-content); +if (sd-scrollable) + elm_widget_sub_object_add(sd-scr_ly, sd-content); } elm_layout_sizing_eval(obj); @@ -940,6 +942,8 @@ _elm_panel_elm_container_content_unset(Eo *obj, Elm_Panel_Data *sd, const char * ret = sd-content; evas_object_box_remove_all(sd-bx, EINA_FALSE); + if (sd-scrollable) + elm_widget_sub_object_del(sd-scr_ly, sd-content); sd-content = NULL; return ret; @@ -1384,6 +1388,7 @@ _elm_panel_scrollable_set(Eo *obj, Elm_Panel_Data *sd, Eina_Bool scrollable) elm_interface_scrollable_content_set(sd-scr_ly)); sd-freeze = EINA_TRUE; elm_layout_content_set(sd-scr_ly, elm.swallow.content, sd-bx); +if (sd-content) elm_widget_sub_object_add(sd-scr_ly, sd-content); switch (sd-orient) { @@ -1432,6 +1437,7 @@ _elm_panel_scrollable_set(Eo *obj, Elm_Panel_Data *sd, Eina_Bool scrollable) elm_layout_content_unset(sd-scr_ly, elm.swallow.content); elm_layout_content_set(obj, elm.swallow.content, sd-bx); +if (sd-content) elm_widget_sub_object_add(sd-bx, sd-content); } } -- -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Probie proposal: spacegrapher
+1 -Regards, Hermet- -Original Message- From: Jean-Philippe Andréj...@videolan.org To: Enlightenment developer listenlightenment-devel@lists.sourceforge.net; Cc: Sent: 2015-03-16 (월) 16:02:23 Subject: [E-devel] Probie proposal: spacegrapher Hello, I would like to propose Dongyeon Kim (aka spacegrapher) as a new probie. He has been working on Evas and all GL stuff for a while now at Samsung Mobile. He also expressed his desire to become more involved in the upstream project and contribute to open source. The quality of his patches is usually pretty damn good, too. As seems usual, if no one objects, I'll simply add him as a probie in a few days. Best regards, -- Jean-Philippe André -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[E-devel] Can't get Erigo to Launch
Trying Erigo for the first time in awhile and I am getting this message when I try to start it: ERR16944:eo_lexer lib/eolian/eo_lexer.c:652 eo_lexer_set_input() No such file or directory ERR16944:eo_lexer lib/eolian/database_fill.c:221 eo_parser_database_fill() unable to create lexer ERR16944: /home/jeff/bodhi_debs/20150316/erigo-20150316/src/bin/main.c:249 main() Could not start Erigo Using EFL/Elm built from Git today. -- ~Jeff Hoogland http://jeffhoogland.com/ My Projects on GitHub https://github.com/JeffHoogland -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/efl] master 01/01: evas/clip: If the clipper is image or has color, clipped area should be redrawn.
be sure @fix ? -Regards, Hermet- -Original Message- From: Youngbok Shinyoungb.s...@samsung.com To: g...@lists.enlightenment.org; Cc: Sent: 2015-03-17 (화) 11:13:54 Subject: [EGIT] [core/efl] master 01/01: evas/clip: If the clipper is image or has color, clipped area should be redrawn. jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=84634ea51f18e6f88ca43527cfb7f2f56828e76a commit 84634ea51f18e6f88ca43527cfb7f2f56828e76a Author: Youngbok Shin youngb.s...@samsung.com Date: Tue Mar 17 11:02:04 2015 +0900 evas/clip: If the clipper is image or has color, clipped area should be redrawn. Summary: If the clipper is image or has color, it affects to its clipees. Even if we unset the clipper or change the clipper to another object, it seems the clipper is not changed. Test Plan: Make two clipper objects and one clipee object. And make clip the clipee according to following example ex) Clipee object - inner_clipper - clipper evas_object_clip_set(clipee, inner_clipper); evas_object_clip_set(inner_clipper, clipper); After checking the result and hide inner_clipper. evas_object_clip_set(clipee, clipper); evas_object_hide(inner_clipper); See the result. Reviewers: raster, cedric, Hermet, jpeg Subscribers: woohyun, cedric Differential Revision: https://phab.enlightenment.org/D2112 Signed-off-by: Jean-Philippe Andre jp.an...@samsung.com Note: Technically we should not check the color of the fact that the clipper is a mask and not a simple rect. But because of real-life performance issues, damage_add was disabled so we're trying to keep the perf in most cases while being correct in cases where the clipper is visually important. --- src/lib/evas/canvas/evas_clip.c 22 -- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/lib/evas/canvas/evas_clip.c b/src/lib/evas/canvas/evas_clip.c index 833a7e4..a6f1e6f 100644 --- a/src/lib/evas/canvas/evas_clip.c +++ b/src/lib/evas/canvas/evas_clip.c @@ -294,8 +294,13 @@ _evas_object_clip_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, Evas_Object * EINA_COW_STATE_WRITE_END(obj-cur-clipper, state_write, cur); /* i know this was to handle a case where a clip stops having children and * becomes a solid colored box - no one ever does that... they hide the clip - * so dont add damages - if ((obj-cur-clipper-cur) (obj-cur-clipper-cur-visible)) + * so dont add damages. + * But, if the clipper could affect color to its clipees, + * the clipped area should be redrawn. */ + if (((obj-cur-clipper-cur) (obj-cur-clipper-cur-visible)) + (((obj-cur-clipper-cur-color.r != 255) (obj-cur-clipper-cur-color.g != 255) + (obj-cur-clipper-cur-color.b != 255) (obj-cur-clipper-cur-color.a != 255)) + (obj-cur-clipper-mask-is_mask))) { if (obj-cur-clipper-layer) { @@ -307,7 +312,7 @@ _evas_object_clip_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, Evas_Object * obj-cur-clipper-cur-geometry.h); } } - */ + _evas_object_clip_mask_unset(obj-cur-clipper); } evas_object_change(obj-cur-clipper-object, obj-cur-clipper); @@ -417,8 +422,13 @@ _evas_object_clip_unset(Eo *eo_obj, Evas_Object_Protected_Data *obj) EINA_COW_STATE_WRITE_END(obj-cur-clipper, state_write, cur); /* i know this was to handle a case where a clip stops having children and * becomes a solid colored box - no one ever does that... they hide the clip - * so dont add damages - if ((obj-cur-clipper-cur) (obj-cur-clipper-cur-visible)) + * so dont add damages. + * But, if the clipper could affect color to its clipees, + * the clipped area should be redrawn. */ + if (((obj-cur-clipper-cur) (obj-cur-clipper-cur-visible)) + (((obj-cur-clipper-cur-color.r != 255) (obj-cur-clipper-cur-color.g != 255) + (obj-cur-clipper-cur-color.b != 255) (obj-cur-clipper-cur-color.a != 255)) + (obj-cur-clipper-mask-is_mask))) { if (obj-cur-clipper-layer) { @@ -430,7 +440,7 @@ _evas_object_clip_unset(Eo *eo_obj, Evas_Object_Protected_Data *obj) obj-cur-clipper-cur-geometry.h); } } - */ + _evas_object_clip_mask_unset(obj-cur-clipper); } evas_object_change(obj-cur-clipper-object, obj-cur-clipper); -- -- Dive into the World of Parallel
Re: [E-devel] [EGIT] [core/efl] master 01/01: evas/clip: If the clipper is image or has color, clipped area should be redrawn.
I removed the @fix tag O_o Do you think this should be backported? On Tue, Mar 17, 2015 at 4:03 PM, ChunEon Park her...@naver.com wrote: be sure @fix ? -Regards, Hermet- -Original Message- From: Youngbok Shinyoungb.s...@samsung.com To: g...@lists.enlightenment.org; Cc: Sent: 2015-03-17 (화) 11:13:54 Subject: [EGIT] [core/efl] master 01/01: evas/clip: If the clipper is image or has color, clipped area should be redrawn. jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=84634ea51f18e6f88ca43527cfb7f2f56828e76a commit 84634ea51f18e6f88ca43527cfb7f2f56828e76a Author: Youngbok Shin youngb.s...@samsung.com Date: Tue Mar 17 11:02:04 2015 +0900 evas/clip: If the clipper is image or has color, clipped area should be redrawn. Summary: If the clipper is image or has color, it affects to its clipees. Even if we unset the clipper or change the clipper to another object, it seems the clipper is not changed. Test Plan: Make two clipper objects and one clipee object. And make clip the clipee according to following example ex) Clipee object - inner_clipper - clipper evas_object_clip_set(clipee, inner_clipper); evas_object_clip_set(inner_clipper, clipper); After checking the result and hide inner_clipper. evas_object_clip_set(clipee, clipper); evas_object_hide(inner_clipper); See the result. Reviewers: raster, cedric, Hermet, jpeg Subscribers: woohyun, cedric Differential Revision: https://phab.enlightenment.org/D2112 Signed-off-by: Jean-Philippe Andre jp.an...@samsung.com Note: Technically we should not check the color of the fact that the clipper is a mask and not a simple rect. But because of real-life performance issues, damage_add was disabled so we're trying to keep the perf in most cases while being correct in cases where the clipper is visually important. --- src/lib/evas/canvas/evas_clip.c 22 -- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/lib/evas/canvas/evas_clip.c b/src/lib/evas/canvas/evas_clip.c index 833a7e4..a6f1e6f 100644 --- a/src/lib/evas/canvas/evas_clip.c +++ b/src/lib/evas/canvas/evas_clip.c @@ -294,8 +294,13 @@ _evas_object_clip_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, Evas_Object * EINA_COW_STATE_WRITE_END(obj-cur-clipper, state_write, cur); /* i know this was to handle a case where a clip stops having children and * becomes a solid colored box - no one ever does that... they hide the clip - * so dont add damages - if ((obj-cur-clipper-cur) (obj-cur-clipper-cur-visible)) + * so dont add damages. + * But, if the clipper could affect color to its clipees, + * the clipped area should be redrawn. */ + if (((obj-cur-clipper-cur) (obj-cur-clipper-cur-visible)) + (((obj-cur-clipper-cur-color.r != 255) (obj-cur-clipper-cur-color.g != 255) + (obj-cur-clipper-cur-color.b != 255) (obj-cur-clipper-cur-color.a != 255)) + (obj-cur-clipper-mask-is_mask))) { if (obj-cur-clipper-layer) { @@ -307,7 +312,7 @@ _evas_object_clip_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, Evas_Object * obj-cur-clipper-cur-geometry.h); } } - */ + _evas_object_clip_mask_unset(obj-cur-clipper); } evas_object_change(obj-cur-clipper-object, obj-cur-clipper); @@ -417,8 +422,13 @@ _evas_object_clip_unset(Eo *eo_obj, Evas_Object_Protected_Data *obj) EINA_COW_STATE_WRITE_END(obj-cur-clipper, state_write, cur); /* i know this was to handle a case where a clip stops having children and * becomes a solid colored box - no one ever does that... they hide the clip - * so dont add damages - if ((obj-cur-clipper-cur) (obj-cur-clipper-cur-visible)) + * so dont add damages. + * But, if the clipper could affect color to its clipees, + * the clipped area should be redrawn. */ + if (((obj-cur-clipper-cur) (obj-cur-clipper-cur-visible)) + (((obj-cur-clipper-cur-color.r != 255) (obj-cur-clipper-cur-color.g != 255) + (obj-cur-clipper-cur-color.b != 255) (obj-cur-clipper-cur-color.a != 255)) + (obj-cur-clipper-mask-is_mask))) { if (obj-cur-clipper-layer) { @@ -430,7 +440,7 @@ _evas_object_clip_unset(Eo *eo_obj, Evas_Object_Protected_Data *obj) obj-cur-clipper-cur-geometry.h); } } - */ + _evas_object_clip_mask_unset(obj-cur-clipper); } evas_object_change(obj-cur-clipper-object, obj-cur-clipper); --
Re: [E-devel] [EGIT] [core/efl] master 01/01: evas/clip: If the clipper is image or has color, clipped area should be redrawn.
yes, it's bug. -Regards, Hermet- -Original Message- From: Jean-Philippe Andréj...@videolan.org To: Enlightenment developer listenlightenment-devel@lists.sourceforge.net; Cc: Sent: 2015-03-17 (화) 17:25:02 Subject: Re: [E-devel] [EGIT] [core/efl] master 01/01: evas/clip: If the clipper is image or has color, clipped area should be redrawn. I removed the @fix tag O_o Do you think this should be backported? On Tue, Mar 17, 2015 at 4:03 PM, ChunEon Park her...@naver.com wrote: be sure @fix ? -Regards, Hermet- -Original Message- From: Youngbok Shinyoungb.s...@samsung.com To: g...@lists.enlightenment.org; Cc: Sent: 2015-03-17 (화) 11:13:54 Subject: [EGIT] [core/efl] master 01/01: evas/clip: If the clipper is image or has color, clipped area should be redrawn. jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=84634ea51f18e6f88ca43527cfb7f2f56828e76a commit 84634ea51f18e6f88ca43527cfb7f2f56828e76a Author: Youngbok Shin youngb.s...@samsung.com Date: Tue Mar 17 11:02:04 2015 +0900 evas/clip: If the clipper is image or has color, clipped area should be redrawn. Summary: If the clipper is image or has color, it affects to its clipees. Even if we unset the clipper or change the clipper to another object, it seems the clipper is not changed. Test Plan: Make two clipper objects and one clipee object. And make clip the clipee according to following example ex) Clipee object - inner_clipper - clipper evas_object_clip_set(clipee, inner_clipper); evas_object_clip_set(inner_clipper, clipper); After checking the result and hide inner_clipper. evas_object_clip_set(clipee, clipper); evas_object_hide(inner_clipper); See the result. Reviewers: raster, cedric, Hermet, jpeg Subscribers: woohyun, cedric Differential Revision: https://phab.enlightenment.org/D2112 Signed-off-by: Jean-Philippe Andre jp.an...@samsung.com Note: Technically we should not check the color of the fact that the clipper is a mask and not a simple rect. But because of real-life performance issues, damage_add was disabled so we're trying to keep the perf in most cases while being correct in cases where the clipper is visually important. --- src/lib/evas/canvas/evas_clip.c 22 -- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/lib/evas/canvas/evas_clip.c b/src/lib/evas/canvas/evas_clip.c index 833a7e4..a6f1e6f 100644 --- a/src/lib/evas/canvas/evas_clip.c +++ b/src/lib/evas/canvas/evas_clip.c @@ -294,8 +294,13 @@ _evas_object_clip_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, Evas_Object * EINA_COW_STATE_WRITE_END(obj-cur-clipper, state_write, cur); /* i know this was to handle a case where a clip stops having children and * becomes a solid colored box - no one ever does that... they hide the clip - * so dont add damages - if ((obj-cur-clipper-cur) (obj-cur-clipper-cur-visible)) + * so dont add damages. + * But, if the clipper could affect color to its clipees, + * the clipped area should be redrawn. */ + if (((obj-cur-clipper-cur) (obj-cur-clipper-cur-visible)) + (((obj-cur-clipper-cur-color.r != 255) (obj-cur-clipper-cur-color.g != 255) + (obj-cur-clipper-cur-color.b != 255) (obj-cur-clipper-cur-color.a != 255)) + (obj-cur-clipper-mask-is_mask))) { if (obj-cur-clipper-layer) { @@ -307,7 +312,7 @@ _evas_object_clip_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, Evas_Object * obj-cur-clipper-cur-geometry.h); } } - */ + _evas_object_clip_mask_unset(obj-cur-clipper); } evas_object_change(obj-cur-clipper-object, obj-cur-clipper); @@ -417,8 +422,13 @@ _evas_object_clip_unset(Eo *eo_obj, Evas_Object_Protected_Data *obj) EINA_COW_STATE_WRITE_END(obj-cur-clipper, state_write, cur); /* i know this was to handle a case where a clip stops having children and * becomes a solid colored box - no one ever does that... they hide the clip - * so dont add damages - if ((obj-cur-clipper-cur) (obj-cur-clipper-cur-visible)) + * so dont add damages. + * But, if the clipper could affect color to its clipees, + * the clipped area should be redrawn. */ + if (((obj-cur-clipper-cur) (obj-cur-clipper-cur-visible)) + (((obj-cur-clipper-cur-color.r != 255) (obj-cur-clipper-cur-color.g != 255) + (obj-cur-clipper-cur-color.b != 255) (obj-cur-clipper-cur-color.a != 255)) + (obj-cur-clipper-mask-is_mask))) { if
[EGIT] [tools/edi] v0.0.2 01/01: elm_code: Remove accidental dep on efl-git
ajwillia-ms pushed a commit to tag v0.0.2. http://git.enlightenment.org/tools/edi.git/commit/?id=d06ca03a4aa42d079c3aefd4adec1646931b66a4 commit d06ca03a4aa42d079c3aefd4adec1646931b66a4 Author: Andy Williams a...@andywilliams.me Date: Tue Mar 17 08:45:04 2015 + elm_code: Remove accidental dep on efl-git --- elm_code/src/lib/elm_code_widget.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/elm_code/src/lib/elm_code_widget.c b/elm_code/src/lib/elm_code_widget.c index 310db71..958b7e5 100644 --- a/elm_code/src/lib/elm_code_widget.c +++ b/elm_code/src/lib/elm_code_widget.c @@ -29,7 +29,9 @@ Eina_Unicode status_icons[] = { #define EO_CONSTRUCTOR_CHECK_RETURN(obj) do { \ Eina_Bool finalized; \ - if (eo_do_ret(obj, finalized, eo_finalized_get())) \ + \ + eo_do(obj, finalized = eo_finalized_get()); \ + if (finalized) \ { \ ERR(This function is only allowed during construction.); \ return; \ --
[EGIT] [core/elementary] elementary-1.13 01/01: Revert widget: fix the abi break.
hermet pushed a commit to branch elementary-1.13. http://git.enlightenment.org/core/elementary.git/commit/?id=e01f432732be488112a8110eb96a899d2427333c commit e01f432732be488112a8110eb96a899d2427333c Author: ChunEon Park her...@hermet.pe.kr Date: Tue Mar 17 15:46:19 2015 +0900 Revert widget: fix the abi break. This reverts commit 841fcdfb18a414a7381910bcbb0b0ef4807bc5c2. It's been too much passed. we have more dependencies to the change (ie, key bindings) so conclude to have the abi break in this case. --- src/lib/elm_widget.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/elm_widget.c b/src/lib/elm_widget.c index 4f27d83..c4d2d69 100644 --- a/src/lib/elm_widget.c +++ b/src/lib/elm_widget.c @@ -3684,7 +3684,7 @@ elm_widget_type_get(const Evas_Object *obj) { API_ENTRY return NULL; - return evas_object_type_get(obj); + return eo_class_name_get(eo_class_get(obj)); } EAPI Eina_Bool --
[EGIT] [core/elementary] master 01/01: Revert widget: fix the abi break.
hermet pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=0f9873d6541348d6b79e5ea35fd958f43d5ef551 commit 0f9873d6541348d6b79e5ea35fd958f43d5ef551 Author: ChunEon Park her...@hermet.pe.kr Date: Tue Mar 17 15:46:19 2015 +0900 Revert widget: fix the abi break. This reverts commit 841fcdfb18a414a7381910bcbb0b0ef4807bc5c2. It's been too much passed. we have more dependencies to the change (ie, key bindings) so conclude to have the abi break in this case. --- src/lib/elm_widget.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/elm_widget.c b/src/lib/elm_widget.c index e00f021..39e3c32 100644 --- a/src/lib/elm_widget.c +++ b/src/lib/elm_widget.c @@ -3684,7 +3684,7 @@ elm_widget_type_get(const Evas_Object *obj) { API_ENTRY return NULL; - return evas_object_type_get(obj); + return eo_class_name_get(eo_class_get(obj)); } EAPI Eina_Bool --
[EGIT] [core/efl] master 04/04: Merge branch 'devs/devilhorns/evas_wayland_shm'
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=d54591720e16bf92aeca6c1a1691f01f5b01b4a8 commit d54591720e16bf92aeca6c1a1691f01f5b01b4a8 Merge: 9baacf8 b55a247 Author: Chris Michael cp.mich...@samsung.com Date: Tue Mar 17 15:53:38 2015 -0400 Merge branch 'devs/devilhorns/evas_wayland_shm' This merge pulls in the Evas Wayland Shm engine refactor which addressed resize issues causing crashes in E wl compositor. src/Makefile_Evas.am | 6 +- .../engines/wayland/ecore_evas_wayland_common.c| 61 --- .../engines/wayland/ecore_evas_wayland_egl.c | 1 - .../engines/wayland/ecore_evas_wayland_private.h | 2 - .../engines/wayland/ecore_evas_wayland_shm.c | 1 - src/modules/evas/engines/wayland_shm/evas_engine.c | 253 +- src/modules/evas/engines/wayland_shm/evas_engine.h | 85 +++- .../wayland_shm/{evas_swapbuf.c = evas_outbuf.c} | 502 +-- src/modules/evas/engines/wayland_shm/evas_shm.c| 477 ++ .../evas/engines/wayland_shm/evas_swapbuf.h| 17 - .../evas/engines/wayland_shm/evas_swapper.c| 541 - .../evas/engines/wayland_shm/evas_swapper.h| 17 - 12 files changed, 914 insertions(+), 1049 deletions(-) --
[EGIT] [core/efl] master 01/02: Evas GL: Fallback to safe values of depth, stencil msaa if not supported
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=9e0095a53cb03229819e39c65100e0af273a3eb0 commit 9e0095a53cb03229819e39c65100e0af273a3eb0 Author: Jean-Philippe Andre jp.an...@samsung.com Date: Tue Mar 17 12:12:19 2015 +0900 Evas GL: Fallback to safe values of depth, stencil msaa if not supported Depth32, Stencil16 and MSAA are known to be unsupported on many platforms. While applications should try not to request them, we can try to fallback nicely and still render using depth24+stencil8 (which is often supported), or reducing the number of MSAA samples (until 0 if not supported at all). --- src/modules/evas/engines/gl_x11/evas_x_main.c | 43 ++- 1 file changed, 36 insertions(+), 7 deletions(-) diff --git a/src/modules/evas/engines/gl_x11/evas_x_main.c b/src/modules/evas/engines/gl_x11/evas_x_main.c index fccf47d..b192d60 100644 --- a/src/modules/evas/engines/gl_x11/evas_x_main.c +++ b/src/modules/evas/engines/gl_x11/evas_x_main.c @@ -784,7 +784,11 @@ eng_best_visual_get(Evas_Engine_Info_GL_X11 *einfo) int config_attrs[40], i, n, num; int depth = DefaultDepth(einfo-info.display, einfo-info.screen); + int depth_bits = einfo-depth_bits; + int stencil_bits = einfo-stencil_bits; + int msaa_samples = einfo-msaa_bits; +try_again: n = 0; config_attrs[n++] = EGL_SURFACE_TYPE; config_attrs[n++] = EGL_WINDOW_BIT; @@ -814,31 +818,55 @@ eng_best_visual_get(Evas_Engine_Info_GL_X11 *einfo) config_attrs[n++] = 0; } - if (einfo-depth_bits) + if (depth_bits) { config_attrs[n++] = EGL_DEPTH_SIZE; - config_attrs[n++] = einfo-depth_bits; + config_attrs[n++] = depth_bits; } - if (einfo-stencil_bits) + if (stencil_bits) { config_attrs[n++] = EGL_STENCIL_SIZE; - config_attrs[n++] = einfo-stencil_bits; + config_attrs[n++] = stencil_bits; } - if (einfo-msaa_bits) + if (msaa_samples) { config_attrs[n++] = EGL_SAMPLE_BUFFERS; config_attrs[n++] = 1; config_attrs[n++] = EGL_SAMPLES; - config_attrs[n++] = einfo-msaa_bits; + config_attrs[n++] = msaa_samples; } config_attrs[n++] = EGL_NONE; num = 0; if ((!eglChooseConfig(egl_disp, config_attrs, configs, 200, num)) || (num 1)) { - ERR(eglChooseConfig() can't find any configs); + ERR(eglChooseConfig() can't find any configs (gles%d, alpha: %d, depth: %d, stencil: %d, msaa: %d), + gles3_supported ? 3 : 2, alpha, depth_bits, stencil_bits, msaa_samples); + if ((depth_bits 24) || (stencil_bits 8)) +{ + WRN(Please note that GLES might not support 32-bit depth or + 16-bit stencil buffers, so depth24, stencil8 are the maximum + recommended values.); + if (depth_bits 24) depth_bits = 24; + if (stencil_bits 8) stencil_bits = 8; + DBG(Trying again with depth:%d, stencil:%d, depth_bits, stencil_bits); + goto try_again; +} + else if (msaa_samples) +{ + msaa_samples /= 2; + DBG(Trying again with msaa_samples: %d, msaa_samples); + goto try_again; +} + else if (depth_bits || stencil_bits) +{ + depth_bits = 0; + stencil_bits = 0; + DBG(Trying again without any depth or stencil buffer); + goto try_again; +} return NULL; } found = EINA_FALSE; @@ -973,6 +1001,7 @@ eng_best_visual_get(Evas_Engine_Info_GL_X11 *einfo) config_attrs[i++] = GLX_ALPHA_SIZE; config_attrs[i++] = 0; } + // TODO: Implement support for depth, stencil msaa config_attrs[i++] = GLX_DEPTH_SIZE; config_attrs[i++] = 0; config_attrs[i++] = GLX_STENCIL_SIZE; --
[EGIT] [core/efl] master 05/10: evas: bypass lockfocus in NSView on OSX
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c380812496f226d6d3243a2b1c083f6aed8a4dc9 commit c380812496f226d6d3243a2b1c083f6aed8a4dc9 Author: pierre lamot pierre.la...@openwide.fr Date: Tue Feb 24 15:50:58 2015 +0100 evas: bypass lockfocus in NSView on OSX this patch bypass calls to (un)lockFocus, avoid segv when closing windows This is certainly not the cleanest way to do it but it seems to be working correctly at the moment. this may leads to unexepected behavior which haven't been identified now @fix Signed-off-by: Cedric BAIL ced...@osg.samsung.com --- src/modules/evas/engines/gl_cocoa/evas_gl_cocoa_main.m | 9 ++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/modules/evas/engines/gl_cocoa/evas_gl_cocoa_main.m b/src/modules/evas/engines/gl_cocoa/evas_gl_cocoa_main.m index 6a4c0ad..882a7d7 100644 --- a/src/modules/evas/engines/gl_cocoa/evas_gl_cocoa_main.m +++ b/src/modules/evas/engines/gl_cocoa/evas_gl_cocoa_main.m @@ -1,4 +1,3 @@ - #include Cocoa/Cocoa.h #include evas_engine.h @@ -59,12 +58,16 @@ static NSOpenGLContext *_evas_gl_cocoa_shared_context = NULL; return self; } +- (void)unlockFocus +{ + //[super unlockFocus]; +} + - (void)lockFocus { NSOpenGLContext* context = [self openGLContext]; - [super lockFocus]; - + //[super lockFocus]; if ([context view] != self) { [context setView:self]; } --
[EGIT] [core/efl] master 10/10: ecore_cocoa: add missing window state functions
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=59532c7d9692d70d8fb6b59a76a0611aec15ce3f commit 59532c7d9692d70d8fb6b59a76a0611aec15ce3f Author: pierre lamot pierre.la...@openwide.fr Date: Thu Mar 12 12:13:08 2015 +0100 ecore_cocoa: add missing window state functions implement missing window state functions: * raise * lower * activate * iconified_set * withdrawn_set * move Signed-off-by: Cedric BAIL ced...@osg.samsung.com --- src/lib/ecore_cocoa/Ecore_Cocoa.h | 2 + src/lib/ecore_cocoa/ecore_cocoa_window.m | 40 ++ .../ecore_evas/engines/cocoa/ecore_evas_cocoa.c| 64 +++--- 3 files changed, 98 insertions(+), 8 deletions(-) diff --git a/src/lib/ecore_cocoa/Ecore_Cocoa.h b/src/lib/ecore_cocoa/Ecore_Cocoa.h index c081721..3b65001 100644 --- a/src/lib/ecore_cocoa/Ecore_Cocoa.h +++ b/src/lib/ecore_cocoa/Ecore_Cocoa.h @@ -145,6 +145,8 @@ EAPI void ecore_cocoa_window_raise(Ecore_Cocoa_Window *window); EAPI void ecore_cocoa_window_lower(Ecore_Cocoa_Window *window); +EAPI void ecore_cocoa_window_activate(Ecore_Cocoa_Window *window); + EAPI void ecore_cocoa_window_title_set(Ecore_Cocoa_Window *window, const char *title); diff --git a/src/lib/ecore_cocoa/ecore_cocoa_window.m b/src/lib/ecore_cocoa/ecore_cocoa_window.m index b231106..eabc65f 100644 --- a/src/lib/ecore_cocoa/ecore_cocoa_window.m +++ b/src/lib/ecore_cocoa/ecore_cocoa_window.m @@ -410,6 +410,46 @@ ecore_cocoa_window_hide(Ecore_Cocoa_Window *window) [window-window orderOut:NSApp]; } +void ecore_cocoa_window_raise(Ecore_Cocoa_Window *window) +{ + if (!window) +return; + + [window-window orderFront:nil]; +} + +void ecore_cocoa_window_lower(Ecore_Cocoa_Window *window) +{ + if (!window) + return; + + [window-window orderBack:nil]; +} + +void ecore_cocoa_window_activate(Ecore_Cocoa_Window *window) +{ + if (!window) + return; + + [window-window makeKeyAndOrderFront:nil]; +} + +void ecore_cocoa_window_iconified_set(Ecore_Cocoa_Window *window, + int on) +{ + if (!window) + return; + + if (on) + { +[window-window miniaturize:nil]; + } + else + { +[window-window deminiaturize:nil]; + } +} + void ecore_cocoa_window_borderless_set(Ecore_Cocoa_Window *window, int on) diff --git a/src/modules/ecore_evas/engines/cocoa/ecore_evas_cocoa.c b/src/modules/ecore_evas/engines/cocoa/ecore_evas_cocoa.c index 5adf742..985792b 100644 --- a/src/modules/ecore_evas/engines/cocoa/ecore_evas_cocoa.c +++ b/src/modules/ecore_evas/engines/cocoa/ecore_evas_cocoa.c @@ -319,7 +319,14 @@ _ecore_evas_size_step_set(Ecore_Evas *ee, int w, int h) { ecore_cocoa_window_size_step_set((Ecore_Cocoa_Window *)ee-prop.window, w, h); } - + +static void +_ecore_evas_move(Ecore_Evas *ee, int x, int y) +{ + DBG(Move); + ecore_cocoa_window_move((Ecore_Cocoa_Window *)ee-prop.window, x, y); +} + static void _ecore_evas_resize(Ecore_Evas *ee, int w, int h) { @@ -390,6 +397,38 @@ _ecore_evas_hide(Ecore_Evas *ee) } static void +_ecore_evas_raise(Ecore_Evas *ee) +{ + DBG(Raise); + + ecore_cocoa_window_raise((Ecore_Cocoa_Window *)ee-prop.window); +} + +static void +_ecore_evas_lower(Ecore_Evas *ee) +{ + DBG(Lower); + + ecore_cocoa_window_lower((Ecore_Cocoa_Window *)ee-prop.window); +} + +static void +_ecore_evas_activate(Ecore_Evas *ee) +{ + DBG(Activate); + + ecore_cocoa_window_activate((Ecore_Cocoa_Window *)ee-prop.window); +} + +static void +_ecore_evas_iconified_set(Ecore_Evas *ee, Eina_Bool on) +{ + DBG(IconifiedSet); + + ecore_cocoa_window_iconified_set((Ecore_Cocoa_Window *)ee-prop.window, on); +} + +static void _ecore_evas_title_set(Ecore_Evas *ee, const char *title) { INF(ecore evas title set); @@ -455,6 +494,15 @@ _ecore_evas_object_cursor_set(Ecore_Evas *ee, Evas_Object *obj, int layer, int h evas_object_event_callback_add(obj, EVAS_CALLBACK_DEL, _ecore_evas_object_cursor_del, ee); } +static void +_ecore_evas_withdrawn_set(Ecore_Evas *ee, Eina_Bool on) +{ + if (on) + _ecore_evas_hide(ee); + else + _ecore_evas_show(ee); +} + static int _ecore_evas_engine_cocoa_init(Ecore_Evas *ee) { @@ -518,8 +566,8 @@ static Ecore_Evas_Engine_Func _ecore_cocoa_engine_func = NULL, NULL, NULL, -_ecore_evas_callback_delete_request_set, NULL, +_ecore_evas_callback_delete_request_set, NULL, NULL, NULL, @@ -529,7 +577,7 @@ static Ecore_Evas_Engine_Func _ecore_cocoa_engine_func = NULL, NULL, NULL, -NULL, //move +_ecore_evas_move, //move NULL, _ecore_evas_resize, _ecore_evas_move_resize, @@ -537,9 +585,9 @@ static Ecore_Evas_Engine_Func _ecore_cocoa_engine_func = NULL,
[EGIT] [core/efl] master 07/10: ecore_cocoa: don't reject mouse events outside the window
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ef7e8562a1cb73e0df5d5ee97d0d7c2c1426c0c4 commit ef7e8562a1cb73e0df5d5ee97d0d7c2c1426c0c4 Author: pierre lamot pierre.la...@openwide.fr Date: Tue Mar 3 17:11:08 2015 +0100 ecore_cocoa: don't reject mouse events outside the window mouse events ouside the window where rejected. that was creating interactions where half an event was created, the application was then not able to process correctly following events. @fix Signed-off-by: Cedric BAIL ced...@osg.samsung.com --- src/lib/ecore_cocoa/ecore_cocoa_window.m | 12 ++-- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/src/lib/ecore_cocoa/ecore_cocoa_window.m b/src/lib/ecore_cocoa/ecore_cocoa_window.m index 62743d9..2586087 100644 --- a/src/lib/ecore_cocoa/ecore_cocoa_window.m +++ b/src/lib/ecore_cocoa/ecore_cocoa_window.m @@ -117,18 +117,14 @@ NSPoint event_location = [event locationInWindow]; NSPoint pt = [view convertPoint:event_location fromView:nil]; - int w = [view frame].size.width; int h = [view frame].size.height; int x = pt.x; int y = h - pt.y; - if (y = 0 || x = 0 || y h || x w) - return; - Ecore_Event_Mouse_Button * ev = calloc(1, sizeof(Ecore_Event_Mouse_Button)); if (!ev) return; - ev-x = pt.x; + ev-x = x; ev-y = y; ev-root.x = ev-x; ev-root.y = ev-y; @@ -174,18 +170,14 @@ NSPoint event_location = [event locationInWindow]; NSPoint pt = [view convertPoint:event_location fromView:nil]; - int w = [view frame].size.width; int h = [view frame].size.height; int x = pt.x; int y = h - pt.y; - if (y = 0 || x = 0 || y h || x w) - return; - Ecore_Event_Mouse_Button * ev = calloc(1, sizeof(Ecore_Event_Mouse_Button)); if (!ev) return; - ev-x = pt.x; + ev-x = x; ev-y = y; ev-root.x = ev-x; ev-root.y = ev-y; --
[EGIT] [core/efl] master 08/10: ecore_cocoa: fix mouse scrollwheel direction
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=be98af31bf2b2b1931018f71a628b9089be89675 commit be98af31bf2b2b1931018f71a628b9089be89675 Author: pierre lamot pierre.la...@openwide.fr Date: Tue Mar 3 18:11:55 2015 +0100 ecore_cocoa: fix mouse scrollwheel direction horizontal and vertical direction where inverted @fix --- src/lib/ecore_cocoa/ecore_cocoa.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/ecore_cocoa/ecore_cocoa.m b/src/lib/ecore_cocoa/ecore_cocoa.m index a20c72b..1da3ed5 100644 --- a/src/lib/ecore_cocoa/ecore_cocoa.m +++ b/src/lib/ecore_cocoa/ecore_cocoa.m @@ -333,7 +333,7 @@ ecore_cocoa_feed_events(void *anEvent) ev-modifiers = 0; /* FIXME: keep modifier around. */ ev-timestamp = time; ev-z = [event deltaX] != 0 ? [event deltaX] : -([event deltaY]); - ev-direction = [event deltaX] != 0 ? 0 : 1; + ev-direction = [event deltaX] != 0 ? 1 : 0; ecore_event_add(ECORE_EVENT_MOUSE_WHEEL, ev, NULL, NULL); --
[EGIT] [core/efl] master 02/10: evas: make current context on lockFocus for gl_cocoa backend.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=e573d65424abb1f0425e183516880d30e0227a2e commit e573d65424abb1f0425e183516880d30e0227a2e Author: pierre lamot pierre.la...@openwide.fr Date: Fri Jan 30 17:42:09 2015 +0100 evas: make current context on lockFocus for gl_cocoa backend. make current context on lockFocus as suggested by (following best practice): https://developer.apple.com/library/mac/documentation/GraphicsImaging/Conceptual/OpenGL-MacProgGuide @fix Signed-off-by: Cedric BAIL ced...@osg.samsung.com --- .../evas/engines/gl_cocoa/evas_gl_cocoa_main.m | 24 -- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/modules/evas/engines/gl_cocoa/evas_gl_cocoa_main.m b/src/modules/evas/engines/gl_cocoa/evas_gl_cocoa_main.m index 256bd66..6a4c0ad 100644 --- a/src/modules/evas/engines/gl_cocoa/evas_gl_cocoa_main.m +++ b/src/modules/evas/engines/gl_cocoa/evas_gl_cocoa_main.m @@ -59,13 +59,25 @@ static NSOpenGLContext *_evas_gl_cocoa_shared_context = NULL; return self; } +- (void)lockFocus +{ + NSOpenGLContext* context = [self openGLContext]; + + [super lockFocus]; + + if ([context view] != self) { + [context setView:self]; + } + [context makeCurrentContext]; +} + @end Evas_GL_Cocoa_Window * eng_window_new(void *window, - int w, - int h) + int w, + int h) { Evas_GL_Cocoa_Window *gw; @@ -81,8 +93,8 @@ eng_window_new(void *window, if (!gw-gl_context) { - free(gw); - return NULL; +free(gw); +return NULL; } evas_gl_common_context_use(gw-gl_context); evas_gl_common_context_resize(gw-gl_context, w, h, 0); @@ -106,10 +118,10 @@ eng_window_use(Evas_GL_Cocoa_Window *gw) { if (_evas_gl_cocoa_window != gw) { - [[(NSOpenGLView*)gw-view openGLContext] makeCurrentContext]; +[[(NSOpenGLView*)gw-view openGLContext] makeCurrentContext]; if (_evas_gl_cocoa_window) evas_gl_common_context_flush(_evas_gl_cocoa_window-gl_context); - _evas_gl_cocoa_window = gw; +_evas_gl_cocoa_window = gw; } evas_gl_common_context_use(gw-gl_context); --
[EGIT] [core/efl] master 04/10: ecore_cocoa: add support for non latin keyboard events
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=fec6d1207ac0b34f5ab83ef25e797c10e129cdc1 commit fec6d1207ac0b34f5ab83ef25e797c10e129cdc1 Author: pierre lamot pierre.la...@openwide.fr Date: Fri Feb 20 14:35:16 2015 +0100 ecore_cocoa: add support for non latin keyboard events this patch adds support for non latin keyboard layout such as arabic, greek or hebrew, some language might not be functionnal tough like korean or chineese Signed-off-by: Cedric BAIL ced...@osg.samsung.com --- src/lib/ecore_cocoa/ecore_cocoa.m | 5 + 1 file changed, 5 insertions(+) diff --git a/src/lib/ecore_cocoa/ecore_cocoa.m b/src/lib/ecore_cocoa/ecore_cocoa.m index a28dc99..a20c72b 100644 --- a/src/lib/ecore_cocoa/ecore_cocoa.m +++ b/src/lib/ecore_cocoa/ecore_cocoa.m @@ -139,6 +139,11 @@ _ecore_cocoa_event_key(NSEvent *event, int keyType) break; } } +if (ev-keyname == NULL) + { + ev-keyname = ; + ev-key = ; + } } if ([keycharRaw length] == 0 keyType == NSKeyDown) --
[EGIT] [core/efl] master 06/10: eio: don't restart a monitor on MacOSX when every paths have been removed.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=de767cabfaf84f262c785ce468508f6ed52cc009 commit de767cabfaf84f262c785ce468508f6ed52cc009 Author: pierre lamot pierre.la...@openwide.fr Date: Tue Mar 3 17:01:03 2015 +0100 eio: don't restart a monitor on MacOSX when every paths have been removed. This patch check that when a monitor is removed the FSEvent service, it is not restarted if there is no more paths to monitor. This was generating an error message from FSEvent. Signed-off-by: Cedric BAIL ced...@osg.samsung.com --- src/lib/eio/eio_monitor_cocoa.c | 22 ++- src/tests/eio/eio_test_monitor.c | 80 2 files changed, 92 insertions(+), 10 deletions(-) diff --git a/src/lib/eio/eio_monitor_cocoa.c b/src/lib/eio/eio_monitor_cocoa.c index ea1d793..8cadeaf 100644 --- a/src/lib/eio/eio_monitor_cocoa.c +++ b/src/lib/eio/eio_monitor_cocoa.c @@ -195,7 +195,6 @@ _eio_get_monitor_path(const char *path, char **monpath, char **fullpath) char realPath[PATH_MAX]; char *realPathOk; char *dname = NULL; - char *fname = NULL; struct stat sb; realPathOk = realpath(path, realPath); @@ -383,15 +382,18 @@ void eio_monitor_backend_del(Eio_Monitor *monitor) CFArrayRemoveValueAtIndex(_paths_to_watch, idx); } - _stream = FSEventStreamCreate(NULL, - _eio_fsevent_cb, - NULL, - _paths_to_watch, - eventid, - _latency, - kFSEventStreamCreateFlagFileEvents - | kFSEventStreamCreateFlagNoDefer -); + if (CFArrayGetCount(_paths_to_watch) 0) + { +_stream = FSEventStreamCreate(NULL, + _eio_fsevent_cb, + NULL, + _paths_to_watch, + eventid, + _latency, + kFSEventStreamCreateFlagFileEvents + | kFSEventStreamCreateFlagNoDefer + ); + } backend = monitor-backend; monitor-backend = NULL; if (!backend) return; diff --git a/src/tests/eio/eio_test_monitor.c b/src/tests/eio/eio_test_monitor.c index 378c427..ba5943f 100644 --- a/src/tests/eio/eio_test_monitor.c +++ b/src/tests/eio/eio_test_monitor.c @@ -135,6 +135,82 @@ static void _common_shutdown(Eina_Tmpstr *dirname) /// tests monitoring a directory +START_TEST(eio_test_monitor_add_and_remove) +{ + Eina_Tmpstr *dirname = _common_init(); + Eina_Stringshare *filename; + Eio_Monitor *monitor; + + filename = eina_stringshare_printf(%s/eio_test_monitor_directory_file_created_notify, dirname); + _create_directory((void*)filename); + + //sleep to avoid catching event generated by above manipulations + usleep(50); + + //monitor directory + monitor = eio_monitor_add(filename); + + usleep(50); + + eio_monitor_del(monitor); + + _common_shutdown(dirname); +} +END_TEST + +START_TEST(eio_test_monitor_add_remove_add) +{ + Eina_Tmpstr *dirname = _common_init(); + Eina_Stringshare *filename; + Eio_Monitor *monitor1; + Eio_Monitor *monitor2; + + filename = eina_stringshare_printf(%s/eio_test_monitor_add_remove_add, dirname); + _create_directory((void*)filename); + + //sleep to avoid catching event generated by above manipulations + usleep(50); + + //monitor directory + monitor1 = eio_monitor_add(filename); + eio_monitor_del(monitor1); + + usleep(50); + + monitor2 = eio_monitor_add(filename); + eio_monitor_del(monitor2); + + _common_shutdown(dirname); +} +END_TEST + +START_TEST(eio_test_monitor_add_add_remove_remove) +{ + Eina_Tmpstr *dirname = _common_init(); + Eina_Stringshare *filename1; + Eina_Stringshare *filename2; + Eio_Monitor *monitor1; + Eio_Monitor *monitor2; + + filename1 = eina_stringshare_printf(%s/eio_test_monitor_add_add_remove_remove, dirname); + filename2 = eina_stringshare_printf(%s/eio_test_monitor_add_add_remove_remove, dirname); + _create_directory((void*)filename1); + _create_directory((void*)filename2); + + //sleep to avoid catching event generated by above manipulations + usleep(50); + + //monitor directory + monitor1 = eio_monitor_add(filename1); + monitor2 = eio_monitor_add(filename2); + usleep(50); + eio_monitor_del(monitor2); + eio_monitor_del(monitor1); + + _common_shutdown(dirname); +} +END_TEST + static void _file_created_cb(void *data, int type, void *event) { ck_assert_int_eq(type, (int)EIO_MONITOR_FILE_CREATED); @@ -650,6 +726,10 @@ END_TEST void eio_test_monitor(TCase *tc) { +
[EGIT] [core/efl] master 03/10: ecore_evas: rewrite render loop to conform with other engines.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c80f527dbc2a0714014263401310ee0eef69b889 commit c80f527dbc2a0714014263401310ee0eef69b889 Author: pierre lamot pierre.la...@openwide.fr Date: Fri Jan 30 18:21:14 2015 +0100 ecore_evas: rewrite render loop to conform with other engines. Signed-off-by: Cedric BAIL ced...@osg.samsung.com --- .../ecore_evas/engines/cocoa/ecore_evas_cocoa.c| 39 -- 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/src/modules/ecore_evas/engines/cocoa/ecore_evas_cocoa.c b/src/modules/ecore_evas/engines/cocoa/ecore_evas_cocoa.c index be18222..1dc290b 100644 --- a/src/modules/ecore_evas/engines/cocoa/ecore_evas_cocoa.c +++ b/src/modules/ecore_evas/engines/cocoa/ecore_evas_cocoa.c @@ -27,7 +27,19 @@ static Ecore_Idle_Enterer *ecore_evas_idle_enterer = NULL; //static const char *ecore_evas_cocoa_default = EFL Cocoa; +static int +_ecore_evas_render(Ecore_Evas *ee) +{ + Eina_List *updates; + updates = evas_render_updates(ee-evas); + if (updates) + { +evas_render_updates_free(updates); +_ecore_evas_idle_timeout_update(ee); + } + return updates ? 1 : 0; +} static int _ecore_evas_cocoa_render(Ecore_Evas *ee) @@ -48,29 +60,20 @@ _ecore_evas_cocoa_render(Ecore_Evas *ee) } if (ee-func.fn_pre_render) ee-func.fn_pre_render(ee); - updates = evas_render_updates(ee-evas); + if (ee-prop.avoid_damage) { -updates = evas_render_updates(ee-evas); -if (updates) evas_render_updates_free(updates); +rend = _ecore_evas_render(ee); } else if ((ee-visible) || ((ee-should_be_visible) (ee-prop.fullscreen)) || ((ee-should_be_visible) (ee-prop.override))) { -if (ee-shaped) - { - updates = evas_render_updates(ee-evas); - if (updates) evas_render_updates_free(updates); - } -else - { - updates = evas_render_updates(ee-evas); - if (updates) evas_render_updates_free(updates); - } +rend |= _ecore_evas_render(ee); } else evas_norender(ee-evas); + if (updates) rend = 1; if (ee-func.fn_post_render) ee-func.fn_post_render(ee); @@ -85,7 +88,7 @@ _ecore_evas_cocoa_render(Ecore_Evas *ee) if ((t - t0) 1.0) { td = t - t0; - printf(FPS: %3.3f\n, (double)frames / td); + DBG(FPS: %3.3f\n, (double)frames / td); frames = 0; t0 = t; } @@ -278,7 +281,7 @@ _ecore_evas_cocoa_shutdown(void) _ecore_evas_free(ee); for (i = 0; i sizeof (ecore_evas_event_handlers) / sizeof (Ecore_Event_Handler*); i++) - ecore_event_handler_del(ecore_evas_event_handlers[i]); +ecore_event_handler_del(ecore_evas_event_handlers[i]); ecore_event_evas_shutdown(); ecore_idle_enterer_del(ecore_evas_idle_enterer); ecore_evas_idle_enterer = NULL; @@ -423,8 +426,8 @@ _ecore_evas_object_cursor_set(Ecore_Evas *ee, Evas_Object *obj, int layer, int h evas_pointer_output_xy_get(ee-evas, x, y); evas_object_layer_set(ee-prop.cursor.object, ee-prop.cursor.layer); evas_object_move(ee-prop.cursor.object, - x - ee-prop.cursor.hot.x, - y - ee-prop.cursor.hot.y); + x - ee-prop.cursor.hot.x, + y - ee-prop.cursor.hot.y); evas_object_pass_events_set(ee-prop.cursor.object, 1); @@ -464,7 +467,7 @@ _ecore_evas_engine_cocoa_init(Ecore_Evas *ee) ERR(evas_engine_info_set() for engine '%s' failed., ee-driver); return 0; } - ecore_cocoa_window_view_set(einfo-window, einfo-view); +ecore_cocoa_window_view_set(einfo-window, einfo-view); } else { --
[EGIT] [core/efl] master 09/10: ecore_cocoa: add functions to allow min/max window size
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=ca3bd69485f2c8c49a7a121bcb32b7862736a2e4 commit ca3bd69485f2c8c49a7a121bcb32b7862736a2e4 Author: pierre lamot pierre.la...@openwide.fr Date: Wed Mar 11 15:31:36 2015 +0100 ecore_cocoa: add functions to allow min/max window size Signed-off-by: Cedric BAIL ced...@osg.samsung.com --- src/lib/ecore_cocoa/ecore_cocoa_window.m | 33 ++ .../ecore_evas/engines/cocoa/ecore_evas_cocoa.c| 24 ++-- 2 files changed, 54 insertions(+), 3 deletions(-) diff --git a/src/lib/ecore_cocoa/ecore_cocoa_window.m b/src/lib/ecore_cocoa/ecore_cocoa_window.m index 2586087..b231106 100644 --- a/src/lib/ecore_cocoa/ecore_cocoa_window.m +++ b/src/lib/ecore_cocoa/ecore_cocoa_window.m @@ -293,6 +293,39 @@ ecore_cocoa_window_free(Ecore_Cocoa_Window *window) } void +ecore_cocoa_window_size_min_set(Ecore_Cocoa_Window *window, +unsigned int w, +unsigned int h) +{ + if (!window) +return; + NSSize size = {w,h}; + window-window.contentMinSize = size; +} + +void +ecore_cocoa_window_size_max_set(Ecore_Cocoa_Window *window, +unsigned int w, +unsigned int h) +{ + if (!window) +return; + NSSize size = {w,h}; + window-window.contentMaxSize = size; +} + +void +ecore_cocoa_window_size_step_set(Ecore_Cocoa_Window *window, + unsigned int w, + unsigned int h) +{ + if (!window) +return; + NSSize size = {w,h}; + window-window.contentResizeIncrements = size; +} + +void ecore_cocoa_window_move(Ecore_Cocoa_Window *window, int x, int y) diff --git a/src/modules/ecore_evas/engines/cocoa/ecore_evas_cocoa.c b/src/modules/ecore_evas/engines/cocoa/ecore_evas_cocoa.c index 1dc290b..5adf742 100644 --- a/src/modules/ecore_evas/engines/cocoa/ecore_evas_cocoa.c +++ b/src/modules/ecore_evas/engines/cocoa/ecore_evas_cocoa.c @@ -303,6 +303,24 @@ _ecore_evas_cocoa_free(Ecore_Evas *ee) } static void +_ecore_evas_size_min_set(Ecore_Evas *ee, int w, int h) +{ + ecore_cocoa_window_size_min_set((Ecore_Cocoa_Window *)ee-prop.window, w, h); +} + +static void +_ecore_evas_size_max_set(Ecore_Evas *ee, int w, int h) +{ + ecore_cocoa_window_size_max_set((Ecore_Cocoa_Window *)ee-prop.window, w, h); +} + +static void +_ecore_evas_size_step_set(Ecore_Evas *ee, int w, int h) +{ + ecore_cocoa_window_size_step_set((Ecore_Cocoa_Window *)ee-prop.window, w, h); +} + +static void _ecore_evas_resize(Ecore_Evas *ee, int w, int h) { DBG(Resize); @@ -524,10 +542,10 @@ static Ecore_Evas_Engine_Func _ecore_cocoa_engine_func = NULL, //activate _ecore_evas_title_set, NULL, +_ecore_evas_size_min_set, +_ecore_evas_size_max_set, NULL, -NULL, -NULL, -NULL, +_ecore_evas_size_step_set, _ecore_evas_object_cursor_set, _ecore_evas_object_cursor_unset, NULL, --
[EGIT] [core/efl] master 02/02: Evas GL: Fallback to safe GL configs with GLX as well
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=358bd3eb256c537afbc1606cef2be0233f076e1b commit 358bd3eb256c537afbc1606cef2be0233f076e1b Author: Jean-Philippe Andre jp.an...@samsung.com Date: Tue Mar 17 12:21:00 2015 +0900 Evas GL: Fallback to safe GL configs with GLX as well --- src/modules/evas/engines/gl_x11/evas_x_main.c | 44 --- 1 file changed, 39 insertions(+), 5 deletions(-) diff --git a/src/modules/evas/engines/gl_x11/evas_x_main.c b/src/modules/evas/engines/gl_x11/evas_x_main.c index b192d60..45065cb 100644 --- a/src/modules/evas/engines/gl_x11/evas_x_main.c +++ b/src/modules/evas/engines/gl_x11/evas_x_main.c @@ -846,7 +846,7 @@ try_again: gles3_supported ? 3 : 2, alpha, depth_bits, stencil_bits, msaa_samples); if ((depth_bits 24) || (stencil_bits 8)) { - WRN(Please note that GLES might not support 32-bit depth or + WRN(Please note that your driver might not support 32-bit depth or 16-bit stencil buffers, so depth24, stencil8 are the maximum recommended values.); if (depth_bits 24) depth_bits = 24; @@ -977,7 +977,11 @@ try_again: int config_attrs[40]; GLXFBConfig *configs = NULL, config = 0; int i, num; + int depth_bits = einfo-depth_bits; + int stencil_bits = einfo-stencil_bits; + int msaa_samples = einfo-msaa_bits; +try_again: i = 0; config_attrs[i++] = GLX_DRAWABLE_TYPE; config_attrs[i++] = GLX_WINDOW_BIT; @@ -1001,11 +1005,17 @@ try_again: config_attrs[i++] = GLX_ALPHA_SIZE; config_attrs[i++] = 0; } - // TODO: Implement support for depth, stencil msaa config_attrs[i++] = GLX_DEPTH_SIZE; - config_attrs[i++] = 0; + config_attrs[i++] = depth_bits; config_attrs[i++] = GLX_STENCIL_SIZE; - config_attrs[i++] = 0; + config_attrs[i++] = stencil_bits; + if (msaa_samples) + { + config_attrs[i++] = GLX_SAMPLE_BUFFERS; + config_attrs[i++] = 1; + config_attrs[i++] = GLX_SAMPLES; + config_attrs[i++] = msaa_samples; + } config_attrs[i++] = GLX_AUX_BUFFERS; config_attrs[i++] = 0; config_attrs[i++] = GLX_STEREO; @@ -1019,7 +1029,31 @@ try_again: config_attrs, num); if ((!configs) || (num 1)) { - ERR(glXChooseFBConfig returned no configs); + ERR(glXChooseFBConfig() can't find any configs (alpha: %d, depth: %d, stencil: %d, msaa: %d), + alpha, depth_bits, stencil_bits, msaa_samples); + if ((depth_bits 24) || (stencil_bits 8)) +{ + WRN(Please note that your driver might not support 32-bit depth or + 16-bit stencil buffers, so depth24, stencil8 are the maximum + recommended values.); + if (depth_bits 24) depth_bits = 24; + if (stencil_bits 8) stencil_bits = 8; + DBG(Trying again with depth:%d, stencil:%d, depth_bits, stencil_bits); + goto try_again; +} + else if (msaa_samples) +{ + msaa_samples /= 2; + DBG(Trying again with msaa_samples: %d, msaa_samples); + goto try_again; +} + else if (depth_bits || stencil_bits) +{ + depth_bits = 0; + stencil_bits = 0; + DBG(Trying again without any depth or stencil buffer); + goto try_again; +} return NULL; } for (i = 0; i num; i++) --
Re: [E-devel] Probie proposal: spacegrapher
On Tue, Mar 17, 2015 at 7:28 PM, Daniel Kolesa dan...@octaforge.org wrote: On Mon, Mar 16, 2015 at 7:36 AM, Cedric BAIL cedric.b...@free.fr wrote: Hello, Le 16 mars 2015 08:02, Jean-Philippe André j...@videolan.org a écrit : I would like to propose Dongyeon Kim (aka spacegrapher) as a new probie. I agree.he did some good technically difficult contribution, but the patch review seems to indicate that his contribution almost always get in directly. So why not directly a developer access ? Probie is not a necessary step in my opinion. I'd go for probie now and switch to normal once he's more involved in the community. Commits seem good enough, I wtf'd at at least one of his commits (because it included garbage files) but apparently that was jpeg's fault.. bad jpeg! :P Yeah that was entirely my fault. And I did this just after we all screamed at Cedric for pushing binaries. I really am following into his b0rker steps :D D5 Have fun, Cedric He has been working on Evas and all GL stuff for a while now at Samsung Mobile. He also expressed his desire to become more involved in the upstream project and contribute to open source. The quality of his patches is usually pretty damn good, too. As seems usual, if no one objects, I'll simply add him as a probie in a few days. Best regards, -- Jean-Philippe André -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel D5 -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Jean-Philippe André -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] Probie proposal: spacegrapher
On Mon, Mar 16, 2015 at 7:36 AM, Cedric BAIL cedric.b...@free.fr wrote: Hello, Le 16 mars 2015 08:02, Jean-Philippe André j...@videolan.org a écrit : I would like to propose Dongyeon Kim (aka spacegrapher) as a new probie. I agree.he did some good technically difficult contribution, but the patch review seems to indicate that his contribution almost always get in directly. So why not directly a developer access ? Probie is not a necessary step in my opinion. I'd go for probie now and switch to normal once he's more involved in the community. Commits seem good enough, I wtf'd at at least one of his commits (because it included garbage files) but apparently that was jpeg's fault.. bad jpeg! :P D5 Have fun, Cedric He has been working on Evas and all GL stuff for a while now at Samsung Mobile. He also expressed his desire to become more involved in the upstream project and contribute to open source. The quality of his patches is usually pretty damn good, too. As seems usual, if no one objects, I'll simply add him as a probie in a few days. Best regards, -- Jean-Philippe André -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel D5 -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 01/10: ecore_cocoa: release resources on window close event
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6ea9b476ad50bf218f3b0ca46df47b1a40517882 commit 6ea9b476ad50bf218f3b0ca46df47b1a40517882 Author: pierre lamot pierre.la...@openwide.fr Date: Fri Jan 30 17:15:55 2015 +0100 ecore_cocoa: release resources on window close event @fix this patch: catch the window close event from cocoa and send an ecore event this event is catched by a handler in ecore_evas wich will call the registered fn_delete_request (from elementary for instance) /!\ this patch is currently incomplete and leads to a segv when closing the last window Signed-off-by: Cedric BAIL ced...@osg.samsung.com --- src/lib/ecore_cocoa/Ecore_Cocoa.h | 1 + src/lib/ecore_cocoa/ecore_cocoa.m | 2 ++ src/lib/ecore_cocoa/ecore_cocoa_window.m | 11 .../ecore_evas/engines/cocoa/ecore_evas_cocoa.c| 33 -- src/modules/evas/engines/gl_cocoa/evas_engine.c| 2 -- 5 files changed, 45 insertions(+), 4 deletions(-) diff --git a/src/lib/ecore_cocoa/Ecore_Cocoa.h b/src/lib/ecore_cocoa/Ecore_Cocoa.h index 50796f1..c081721 100644 --- a/src/lib/ecore_cocoa/Ecore_Cocoa.h +++ b/src/lib/ecore_cocoa/Ecore_Cocoa.h @@ -38,6 +38,7 @@ EAPI extern int ECORE_COCOA_EVENT_GOT_FOCUS; EAPI extern int ECORE_COCOA_EVENT_LOST_FOCUS; EAPI extern int ECORE_COCOA_EVENT_RESIZE; EAPI extern int ECORE_COCOA_EVENT_EXPOSE; +EAPI extern int ECORE_COCOA_EVENT_WINDOW_DESTROY; typedef void * Ecore_Cocoa_Window_Id; typedef struct _Ecore_Cocoa_Event_Video_Resize Ecore_Cocoa_Event_Video_Resize; diff --git a/src/lib/ecore_cocoa/ecore_cocoa.m b/src/lib/ecore_cocoa/ecore_cocoa.m index 4f1b01f..a28dc99 100644 --- a/src/lib/ecore_cocoa/ecore_cocoa.m +++ b/src/lib/ecore_cocoa/ecore_cocoa.m @@ -20,6 +20,7 @@ EAPI int ECORE_COCOA_EVENT_GOT_FOCUS = 0; EAPI int ECORE_COCOA_EVENT_LOST_FOCUS = 0; EAPI int ECORE_COCOA_EVENT_RESIZE = 0; EAPI int ECORE_COCOA_EVENT_EXPOSE = 0; +EAPI int ECORE_COCOA_EVENT_WINDOW_DESTROY = 0; static int _ecore_cocoa_init_count = 0; @@ -50,6 +51,7 @@ ecore_cocoa_init(void) ECORE_COCOA_EVENT_LOST_FOCUS = ecore_event_type_new(); ECORE_COCOA_EVENT_RESIZE = ecore_event_type_new(); ECORE_COCOA_EVENT_EXPOSE = ecore_event_type_new(); + ECORE_COCOA_EVENT_WINDOW_DESTROY = ecore_event_type_new(); /* Init the Application handler */ [Ecore_Cocoa_Application sharedApplication]; diff --git a/src/lib/ecore_cocoa/ecore_cocoa_window.m b/src/lib/ecore_cocoa/ecore_cocoa_window.m index 4c5352f..62743d9 100644 --- a/src/lib/ecore_cocoa/ecore_cocoa_window.m +++ b/src/lib/ecore_cocoa/ecore_cocoa_window.m @@ -50,6 +50,17 @@ - (void)windowWillClose:(NSNotification *) EINA_UNUSED notification { NSLog(@window is going to be closed); + Ecore_Cocoa_Event_Window *event; + + event = malloc(sizeof(Ecore_Cocoa_Event_Window)); + if (event == NULL) + { + // FIXME Use Eina_Log + printf(Failed to allocate Ecore_Cocoa_Event_Window_destroy\n); + return; + } + event-wid = [notification object]; + ecore_event_add(ECORE_COCOA_EVENT_WINDOW_DESTROY, event, NULL, NULL); } - (void)windowDidResize:(NSNotification *) EINA_UNUSED notif diff --git a/src/modules/ecore_evas/engines/cocoa/ecore_evas_cocoa.c b/src/modules/ecore_evas/engines/cocoa/ecore_evas_cocoa.c index 324ec017..be18222 100644 --- a/src/modules/ecore_evas/engines/cocoa/ecore_evas_cocoa.c +++ b/src/modules/ecore_evas/engines/cocoa/ecore_evas_cocoa.c @@ -20,7 +20,7 @@ static int _ecore_evas_init_count = 0; // FIXME: In case we have a lot of windows per app, we should probably use another container // like a rbtree or a dictionnary-based container static Eina_List*ecore_evases = NULL; -static Ecore_Event_Handler *ecore_evas_event_handlers[4] = { +static Ecore_Event_Handler *ecore_evas_event_handlers[5] = { NULL, NULL, NULL, NULL }; static Ecore_Idle_Enterer *ecore_evas_idle_enterer = NULL; @@ -204,6 +204,27 @@ _ecore_evas_cocoa_event_video_expose(void *data EINA_UNUSED, int type EINA_UNUSE return ECORE_CALLBACK_PASS_ON; } +static Eina_Bool +_ecore_evas_cocoa_event_window_destroy(void *data EINA_UNUSED, int type EINA_UNUSED, void *event) +{ + Ecore_Cocoa_Event_Window *e = event; + Ecore_Evas *ee; + + DBG(Window destroy); + + ee = _ecore_evas_cocoa_match(e-wid); + if (!ee) + { +WRN(%s: Unregistered Ecore_Evas for window Id %p\n, __func__, e-wid); +return ECORE_CALLBACK_PASS_ON; + } + + if (ee-func.fn_delete_request) ee-func.fn_delete_request(ee); + + return ECORE_CALLBACK_PASS_ON; +} + + //static int //_ecore_evas_idle_enter(void *data EINA_UNUSED) //{ @@ -238,6 +259,7 @@ _ecore_evas_cocoa_init(void) ecore_evas_event_handlers[1] = ecore_event_handler_add(ECORE_COCOA_EVENT_LOST_FOCUS,
[EGIT] [core/efl] master 01/01: Merge branch 'devs/cedric/emile'
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=0cf042baeee9473c107e96da4499e38bfcb78281 commit 0cf042baeee9473c107e96da4499e38bfcb78281 Merge: d7d9317 f875f75 Author: Cedric BAIL ced...@osg.samsung.com Date: Tue Mar 17 09:59:16 2015 +0100 Merge branch 'devs/cedric/emile' Here come a major code refactoring. There is still work to be done, especially on Ecore_Con_SSl and also image compression, but it is already an improvement over current situation. Further development should happen in master. Emile does provide a library to put together serialization, compression and ciphering. It is a low level library and can be use by anything above Eina. COPYING|1 + Makefile.am|1 + configure.ac | 341 +-- data/Makefile.am |3 - doc/previews/Makefile.am |5 +- m4/efl.m4 |2 +- pc/.gitignore |1 + pc/emile.pc.in | 12 + src/Makefile.am| 28 +- src/Makefile_Emile.am | 91 + src/Makefile_Evas.am |8 +- src/examples/ecore/Makefile.am |3 + src/examples/eina/Makefile.am |2 + src/examples/eio/Makefile.am |4 + src/examples/eolian_cxx/Makefile.am|4 + src/lib/ecore_con/ecore_con_socks.c|8 +- src/lib/ecore_con/ecore_con_ssl.c | 83 +- src/lib/edje/edje_edit.c |2 +- src/lib/eet/Eet.h | 40 +- src/lib/eet/Eet_private.h | 11 + src/lib/eet/eet_cipher.c | 475 +--- src/lib/eet/eet_image.c| 1181 +++--- src/lib/eet/eet_lib.c | 663 ++ src/lib/eina/eina_binbuf.c | 13 + src/lib/eina/eina_binbuf.h | 29 +- src/lib/emile/Emile.h | 117 + src/lib/emile/emile_cipher.c | 151 ++ src/lib/emile/emile_cipher.h | 134 ++ src/lib/emile/emile_cipher_gnutls.c| 575 + src/lib/emile/emile_cipher_openssl.c | 1095 + src/lib/emile/emile_compress.c | 156 ++ src/lib/emile/emile_compress.h | 90 + src/lib/emile/emile_image.c| 2435 src/lib/emile/emile_image.h| 322 +++ src/lib/emile/emile_main.c | 176 ++ src/lib/emile/emile_private.h | 46 + src/lib/evas/Evas_Loader.h | 149 +- .../evas/image_loaders/jpeg/evas_image_load_jpeg.c | 1471 +--- .../evas/image_loaders/tgv/evas_image_load_tgv.c | 491 +--- src/tests/emile/emile_suite.c | 105 + 40 files changed, 6473 insertions(+), 4051 deletions(-) --
[EGIT] [core/efl] efl-1.13 01/01: evas/clip: If the clipper is image or has color, clipped area should be redrawn.
jpeg pushed a commit to branch efl-1.13. http://git.enlightenment.org/core/efl.git/commit/?id=e1bcd5ccae5d8c89ac1ab14e8aea2f2c45f6e4c1 commit e1bcd5ccae5d8c89ac1ab14e8aea2f2c45f6e4c1 Author: Youngbok Shin youngb.s...@samsung.com Date: Tue Mar 17 11:02:04 2015 +0900 evas/clip: If the clipper is image or has color, clipped area should be redrawn. Summary: If the clipper is image or has color, it affects to its clipees. Even if we unset the clipper or change the clipper to another object, it seems the clipper is not changed. Test Plan: Make two clipper objects and one clipee object. And make clip the clipee according to following example ex) Clipee object - inner_clipper - clipper evas_object_clip_set(clipee, inner_clipper); evas_object_clip_set(inner_clipper, clipper); After checking the result and hide inner_clipper. evas_object_clip_set(clipee, clipper); evas_object_hide(inner_clipper); See the result. Reviewers: raster, cedric, Hermet, jpeg Subscribers: woohyun, cedric Differential Revision: https://phab.enlightenment.org/D2112 Signed-off-by: Jean-Philippe Andre jp.an...@samsung.com Note: Technically we should not check the color of the fact that the clipper is a mask and not a simple rect. But because of real-life performance issues, damage_add was disabled so we're trying to keep the perf in most cases while being correct in cases where the clipper is visually important. @fix (following hermet's advice) --- src/lib/evas/canvas/evas_clip.c | 22 -- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/lib/evas/canvas/evas_clip.c b/src/lib/evas/canvas/evas_clip.c index 0e1d43a..4eb3101 100644 --- a/src/lib/evas/canvas/evas_clip.c +++ b/src/lib/evas/canvas/evas_clip.c @@ -289,8 +289,13 @@ _evas_object_clip_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, Evas_Object * EINA_COW_STATE_WRITE_END(obj-cur-clipper, state_write, cur); /* i know this was to handle a case where a clip stops having children and * becomes a solid colored box - no one ever does that... they hide the clip - * so dont add damages - if ((obj-cur-clipper-cur) (obj-cur-clipper-cur-visible)) + * so dont add damages. + * But, if the clipper could affect color to its clipees, + * the clipped area should be redrawn. */ + if (((obj-cur-clipper-cur) (obj-cur-clipper-cur-visible)) + (((obj-cur-clipper-cur-color.r != 255) || (obj-cur-clipper-cur-color.g != 255) || + (obj-cur-clipper-cur-color.b != 255) || (obj-cur-clipper-cur-color.a != 255)) || + (obj-cur-clipper-mask-is_mask))) { if (obj-cur-clipper-layer) { @@ -302,7 +307,7 @@ _evas_object_clip_set(Eo *eo_obj, Evas_Object_Protected_Data *obj, Evas_Object * obj-cur-clipper-cur-geometry.h); } } - */ + _evas_object_clip_mask_unset(obj-cur-clipper); } evas_object_change(obj-cur-clipper-object, obj-cur-clipper); @@ -411,8 +416,13 @@ _evas_object_clip_unset(Eo *eo_obj, Evas_Object_Protected_Data *obj) EINA_COW_STATE_WRITE_END(obj-cur-clipper, state_write, cur); /* i know this was to handle a case where a clip stops having children and * becomes a solid colored box - no one ever does that... they hide the clip - * so dont add damages - if ((obj-cur-clipper-cur) (obj-cur-clipper-cur-visible)) + * so dont add damages. + * But, if the clipper could affect color to its clipees, + * the clipped area should be redrawn. */ + if (((obj-cur-clipper-cur) (obj-cur-clipper-cur-visible)) + (((obj-cur-clipper-cur-color.r != 255) || (obj-cur-clipper-cur-color.g != 255) || + (obj-cur-clipper-cur-color.b != 255) || (obj-cur-clipper-cur-color.a != 255)) || + (obj-cur-clipper-mask-is_mask))) { if (obj-cur-clipper-layer) { @@ -424,7 +434,7 @@ _evas_object_clip_unset(Eo *eo_obj, Evas_Object_Protected_Data *obj) obj-cur-clipper-cur-geometry.h); } } - */ + _evas_object_clip_mask_unset(obj-cur-clipper); } evas_object_change(obj-cur-clipper-object, obj-cur-clipper); --
[EGIT] [core/efl] master 01/01: cmake: Add files for Emile, the serial killer
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=841890a7b63d5c9dc4c73e28856d43981f017ef4 commit 841890a7b63d5c9dc4c73e28856d43981f017ef4 Author: Jean-Philippe Andre jp.an...@samsung.com Date: Tue Mar 17 19:19:28 2015 +0900 cmake: Add files for Emile, the serial killer --- Makefile.am | 5 + cmakeconfig/EmileConfig.cmake.in | 32 configure.ac | 2 ++ 3 files changed, 39 insertions(+) diff --git a/Makefile.am b/Makefile.am index af334fe..345b6fa 100644 --- a/Makefile.am +++ b/Makefile.am @@ -371,6 +371,11 @@ elua_cmakeconfig_DATA = \ cmakeconfig/EluaConfig.cmake \ cmakeconfig/EluaConfigVersion.cmake +emile_cmakeconfigdir = $(libdir)/cmake/Emile +emile_cmakeconfig_DATA = \ +cmakeconfig/EmileConfig.cmake \ +cmakeconfig/EmileConfigVersion.cmake + # D-Bus services: servicedir = @dbusservicedir@ diff --git a/cmakeconfig/EmileConfig.cmake.in b/cmakeconfig/EmileConfig.cmake.in new file mode 100644 index 000..68c284c --- /dev/null +++ b/cmakeconfig/EmileConfig.cmake.in @@ -0,0 +1,32 @@ +# - Try to find emile +# Once done this will define +# EMILE_FOUND - System has emile +# EMILE_INCLUDE_DIRS - The emile include directories +# EMILE_LIBRARIES - The libraries needed to use emile +# EMILE_DEFINITIONS - Compiler switches required for using emile + +set(MY_PKG emile) + +find_package(PkgConfig) +if (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION} VERSION_GREATER 2.8.1) + # QUIET was introduced in 2.8.2 + set(_QUIET QUIET) +endif () +pkg_check_modules(PC_LIBEMILE ${_QUIET} ${MY_PKG}) + +find_library(EMILE_LIBRARY + NAMES ${PC_LIBEMILE_LIBRARIES} + HINTS ${PC_LIBEMILE_LIBDIR} ${PC_LIBEMILE_LIBRARY_DIRS} ) + +set(EMILE_DEFINITIONS ${PC_LIBEMILE_CFLAGS_OTHER}) +set(EMILE_LIBRARIES ${EMILE_LIBRARY}) +set(EMILE_INCLUDE_DIRS ${PC_LIBEMILE_INCLUDE_DIRS}) + +include(FindPackageHandleStandardArgs) +# handle the QUIETLY and REQUIRED arguments and set EMILE_FOUND to TRUE +# if all listed variables are TRUE +find_package_handle_standard_args(${MY_PKG} DEFAULT_MSG + EMILE_LIBRARIES EMILE_INCLUDE_DIRS) + +mark_as_advanced(EMILE_INCLUDE_DIRS EMILE_LIBRARY EMILE_LIBRARIES EMILE_DEFINITIONS) + diff --git a/configure.ac b/configure.ac index 0466b01..fb4ea3e 100644 --- a/configure.ac +++ b/configure.ac @@ -4576,6 +4576,8 @@ cmakeconfig/EmotionConfig.cmake cmakeconfig/EmotionConfigVersion.cmake:cmakeconfig/EFLConfigVersion.cmake.in cmakeconfig/EluaConfig.cmake cmakeconfig/EluaConfigVersion.cmake:cmakeconfig/EFLConfigVersion.cmake.in +cmakeconfig/EmileConfig.cmake +cmakeconfig/EmileConfigVersion.cmake:cmakeconfig/EFLConfigVersion.cmake.in ]) AC_OUTPUT --
[EGIT] [enlightenment/modules/tclock] master 01/01: make tclock build with current E (remove e_util_zone_current_get)
q66 pushed a commit to branch master. http://git.enlightenment.org/enlightenment/modules/tclock.git/commit/?id=fb8a3512a4929319007d00035f407ee4e44bfe37 commit fb8a3512a4929319007d00035f407ee4e44bfe37 Author: Daniel Kolesa d.kol...@samsung.com Date: Tue Mar 17 10:51:56 2015 + make tclock build with current E (remove e_util_zone_current_get) --- src/e_mod_main.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/e_mod_main.c b/src/e_mod_main.c index b10c906..265de7a 100644 --- a/src/e_mod_main.c +++ b/src/e_mod_main.c @@ -190,8 +190,7 @@ _tclock_cb_mouse_down(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNU tclock_config-menu = m; e_gadcon_canvas_zone_geometry_get(inst-gcc-gadcon, x, y, NULL, NULL); -e_menu_activate_mouse(m, - e_util_zone_current_get(e_manager_current_get()), +e_menu_activate_mouse(m, e_zone_current_get(), x + ev-output.x, y + ev-output.y, 1, 1, E_MENU_POP_DIRECTION_DOWN, ev-timestamp); } --
[EGIT] [apps/terminology] master 02/02: typo
billiob pushed a commit to branch master. http://git.enlightenment.org/apps/terminology.git/commit/?id=ed178f5a1395bf5327972adea4e00910f87d453b commit ed178f5a1395bf5327972adea4e00910f87d453b Author: Boris Faure bill...@gmail.com Date: Tue Mar 17 18:47:26 2015 +0100 typo --- src/bin/termpty.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/termpty.c b/src/bin/termpty.c index ad3ab81..8c035e6 100644 --- a/src/bin/termpty.c +++ b/src/bin/termpty.c @@ -858,7 +858,7 @@ termpty_resize(Termpty *ty, int new_w, int new_h) y_end = ty-state.cy; new_y_end = new_h - 1; - /* For each full line in old buffers, revrap. + /* For each full line in old buffers, rewrap. * From most recent to oldest */ while ((y_end = -ty-backscroll_num) (new_y_end = -ty-backmax)) { --
[EGIT] [apps/terminology] master 01/02: toggle fullscreen by pressing F11
billiob pushed a commit to branch master. http://git.enlightenment.org/apps/terminology.git/commit/?id=33322d04af384c98b6f98117c3d55dbe833a3e2b commit 33322d04af384c98b6f98117c3d55dbe833a3e2b Author: Boris Faure bill...@gmail.com Date: Tue Mar 17 18:46:39 2015 +0100 toggle fullscreen by pressing F11 --- src/bin/config.c | 31 --- src/bin/keyin.c | 14 ++ 2 files changed, 38 insertions(+), 7 deletions(-) diff --git a/src/bin/config.c b/src/bin/config.c index 0f4e7cb..b98dce5 100644 --- a/src/bin/config.c +++ b/src/bin/config.c @@ -7,7 +7,7 @@ #include col.h #include utils.h -#define CONF_VER 4 +#define CONF_VER 5 #define LIM(v, min, max) {if (v = max) v = max; else if (v = min) v = min;} @@ -280,10 +280,6 @@ _config_upgrade_to_v2(Config *config) config-version = 2; } -static void -_add_default_keys(Config *config) -{ - Config_Keys *kb; #define ADD_KB(Name, Ctrl, Alt, Shift, Win, Cb) \ kb = calloc(1, sizeof(Config_Keys)); \ if (!kb) return; \ @@ -295,6 +291,24 @@ _add_default_keys(Config *config) kb-cb = eina_stringshare_add_length(Cb, strlen(Cb)); \ config-keys = eina_list_append(config-keys, kb) +static void +_config_upgrade_to_v4(Config *config) +{ + Config_Keys *kb; + + ADD_KB(F11, 0, 0, 0, 0, win_fullscreen); + + config-version = 4; +} + +static void +_add_default_keys(Config *config) +{ + Config_Keys *kb; + + ADD_KB(F11, 0, 0, 0, 0, win_fullscreen); + + /* Ctrl- */ ADD_KB(Prior, 1, 0, 0, 0, term_prev); ADD_KB(Next, 1, 0, 0, 0, term_next); ADD_KB(0, 1, 0, 0, 0, tab_10); @@ -340,9 +354,9 @@ _add_default_keys(Config *config) ADD_KB(KP_Subtract, 0, 0, 1, 0, decrease_font_size); ADD_KB(KP_Multiply, 0, 0, 1, 0, reset_font_size); ADD_KB(KP_Divide, 0, 0, 1, 0, copy_clipboard); +} #undef ADD_KB -} void @@ -459,7 +473,10 @@ config_load(const char *key) } config-gravatar = EINA_TRUE; /*pass through*/ -case CONF_VER: /* 4 */ +case 4: + _config_upgrade_to_v4(config); + /*pass through*/ +case CONF_VER: /* 5 */ config-version = CONF_VER; break; default: diff --git a/src/bin/keyin.c b/src/bin/keyin.c index c3c0442..2473f54 100644 --- a/src/bin/keyin.c +++ b/src/bin/keyin.c @@ -449,6 +449,19 @@ cb_miniview(Evas_Object *term) } static Eina_Bool +cb_win_fullscreen(Evas_Object *term) +{ + Evas_Object *win = termio_win_get(term); + Eina_Bool fullscreen; + + if (!win) + return EINA_FALSE; + fullscreen = elm_win_fullscreen_get(win); + elm_win_fullscreen_set(win, !fullscreen); + return EINA_TRUE; +} + +static Eina_Bool cb_increase_font_size(Evas_Object *term) { termcmd_do(term, NULL, NULL, f+); @@ -565,6 +578,7 @@ static Shortcut_Action _actions[] = {reset_font_size, gettext_noop(Reset font size), cb_reset_font_size}, {group, gettext_noop(Actions), NULL}, + {win_fullscreen, gettext_noop(Toggle Fullscreen of the window), cb_win_fullscreen}, {miniview, gettext_noop(Display the history miniview), cb_miniview}, {cmd_box, gettext_noop(Display the command box), cb_cmd_box}, --
[EGIT] [core/efl] master 01/01: Evas: Really use GLES3 by default (fix logic)
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=4315944259b253a566b7c64a62bee34e66fb2c61 commit 4315944259b253a566b7c64a62bee34e66fb2c61 Author: Jean-Philippe Andre jp.an...@samsung.com Date: Wed Mar 18 10:04:27 2015 +0900 Evas: Really use GLES3 by default (fix logic) I enabled gles3 by default in a previous commit but apparently my logic was all wrong and it fell back to gles2. --- src/modules/evas/engines/gl_x11/evas_x_main.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/evas/engines/gl_x11/evas_x_main.c b/src/modules/evas/engines/gl_x11/evas_x_main.c index 45065cb..071f8e4 100644 --- a/src/modules/evas/engines/gl_x11/evas_x_main.c +++ b/src/modules/evas/engines/gl_x11/evas_x_main.c @@ -772,7 +772,7 @@ eng_best_visual_get(Evas_Engine_Info_GL_X11 *einfo) } if (gles3_supported -(!(s = getenv(EVAS_GL_DISABLE_GLES3)) || (atoi(s) != 1))) +((s = getenv(EVAS_GL_DISABLE_GLES3)) (atoi(s) == 1))) { INF(Disabling OpenGL ES 3.x support.); gles3_supported = EINA_FALSE; --
[EGIT] [core/efl] master 01/01: ecore-wayland: Use calloc rather than malloc+memset
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=a2e301db71b93fb5981c6aa3f7988fc220ec5d0b commit a2e301db71b93fb5981c6aa3f7988fc220ec5d0b Author: Bryce Harrington br...@osg.samsung.com Date: Tue Mar 17 20:30:32 2015 -0400 ecore-wayland: Use calloc rather than malloc+memset Summary: In addition to being fewer lines of code, malloc + memset to 0 is slower than calloc. See http://stackoverflow.com/questions/2688466/why-mallocmemset-is-slower-than-calloc Signed-off-by: Bryce Harrington br...@osg.samsung.com Reviewers: zmike, cedric, devilhorns Reviewed By: devilhorns Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D2182 --- src/lib/ecore_wayland/ecore_wl.c| 4 +--- src/lib/ecore_wayland/ecore_wl_output.c | 4 +--- src/lib/ecore_wayland/ecore_wl_window.c | 4 +--- 3 files changed, 3 insertions(+), 9 deletions(-) diff --git a/src/lib/ecore_wayland/ecore_wl.c b/src/lib/ecore_wayland/ecore_wl.c index b6e95ce..49d7f6c 100644 --- a/src/lib/ecore_wayland/ecore_wl.c +++ b/src/lib/ecore_wayland/ecore_wl.c @@ -162,14 +162,12 @@ ecore_wl_init(const char *name) ECORE_WL_EVENT_INTERFACES_BOUND = ecore_event_type_new(); } - if (!(_ecore_wl_disp = malloc(sizeof(Ecore_Wl_Display + if (!(_ecore_wl_disp = calloc(1, sizeof(Ecore_Wl_Display { ERR(Could not allocate memory for Ecore_Wl_Display structure); goto exit_ecore_disp; } - memset(_ecore_wl_disp, 0, sizeof(Ecore_Wl_Display)); - if (!(_ecore_wl_disp-wl.display = wl_display_connect(name))) { ERR(Could not connect to Wayland display); diff --git a/src/lib/ecore_wayland/ecore_wl_output.c b/src/lib/ecore_wayland/ecore_wl_output.c index 28c430f..412611b 100644 --- a/src/lib/ecore_wayland/ecore_wl_output.c +++ b/src/lib/ecore_wayland/ecore_wl_output.c @@ -73,9 +73,7 @@ _ecore_wl_output_add(Ecore_Wl_Display *ewd, unsigned int id) LOGFN(__FILE__, __LINE__, __FUNCTION__); - if (!(output = malloc(sizeof(Ecore_Wl_Output return; - - memset(output, 0, sizeof(Ecore_Wl_Output)); + if (!(output = calloc(1, sizeof(Ecore_Wl_Output return; output-display = ewd; diff --git a/src/lib/ecore_wayland/ecore_wl_window.c b/src/lib/ecore_wayland/ecore_wl_window.c index 05f3832..8f2f192 100644 --- a/src/lib/ecore_wayland/ecore_wl_window.c +++ b/src/lib/ecore_wayland/ecore_wl_window.c @@ -74,14 +74,12 @@ ecore_wl_window_new(Ecore_Wl_Window *parent, int x, int y, int w, int h, int buf LOGFN(__FILE__, __LINE__, __FUNCTION__); - if (!(win = malloc(sizeof(Ecore_Wl_Window + if (!(win = calloc(1, sizeof(Ecore_Wl_Window { ERR(Failed to allocate an Ecore Wayland Window); return NULL; } - memset(win, 0, sizeof(Ecore_Wl_Window)); - win-display = _ecore_wl_disp; win-parent = parent; win-allocation.x = x; --
[EGIT] [admin/devs] master 01/01: probies: Add spacegrapher
jpeg pushed a commit to branch master. http://git.enlightenment.org/admin/devs.git/commit/?id=c0eb522f602bf1b6d79aa66690de4e25358bd93c commit c0eb522f602bf1b6d79aa66690de4e25358bd93c Author: Jean-Philippe Andre jp.an...@samsung.com Date: Wed Mar 18 09:38:07 2015 +0900 probies: Add spacegrapher Welcome to Dongyeon Kim! --- probies/spacegrapher/icon-big.png | Bin 0 - 50351 bytes probies/spacegrapher/icon-map.png | Bin 0 - 1729 bytes probies/spacegrapher/icon-med.png | Bin 0 - 15056 bytes probies/spacegrapher/icon-sml.png | Bin 0 - 5036 bytes probies/spacegrapher/id_rsa.pub | 1 + probies/spacegrapher/info.txt | 10 ++ 6 files changed, 11 insertions(+) diff --git a/probies/spacegrapher/icon-big.png b/probies/spacegrapher/icon-big.png new file mode 100644 index 000..898eb7f Binary files /dev/null and b/probies/spacegrapher/icon-big.png differ diff --git a/probies/spacegrapher/icon-map.png b/probies/spacegrapher/icon-map.png new file mode 100644 index 000..be4be1c Binary files /dev/null and b/probies/spacegrapher/icon-map.png differ diff --git a/probies/spacegrapher/icon-med.png b/probies/spacegrapher/icon-med.png new file mode 100644 index 000..5f8085b Binary files /dev/null and b/probies/spacegrapher/icon-med.png differ diff --git a/probies/spacegrapher/icon-sml.png b/probies/spacegrapher/icon-sml.png new file mode 100644 index 000..bd8519f Binary files /dev/null and b/probies/spacegrapher/icon-sml.png differ diff --git a/probies/spacegrapher/id_rsa.pub b/probies/spacegrapher/id_rsa.pub new file mode 100644 index 000..0d3457c --- /dev/null +++ b/probies/spacegrapher/id_rsa.pub @@ -0,0 +1 @@ +ssh-rsa B3NzaC1yc2EDAQABAAABAQC/A43WrqvC8Ykj6c16aypMufbhVAIjymXenq0K9kumu75BDhPRibOhzX2K+b+TloYdHk2mzu3o2M8NxNIxcLBRHNeoNBiGUmRwTot8eWkfMYdEEu55+FoQEHxU/9Lb/boQ/gie3A4WFtjznKY+KOabzC6ap46Kdj/gFmlxE+vg7Kwaod2UprfdYB/N7Q3D1eV3ZpvsSvCIrrS+N91L+L9HBArmogkWCcHUJBGl1jfGvUcoLGfywh1yajcSNuLc7KMlE+gEeV13f6ssOLJOEhiXMyi6eL2MyfeANTPZ2vmbeJyQUmgkwICiJgvlnLz/dGm4AYxiKsXKKOw5rcugXZAt dy5@samsung.com diff --git a/probies/spacegrapher/info.txt b/probies/spacegrapher/info.txt new file mode 100644 index 000..452ffe0 --- /dev/null +++ b/probies/spacegrapher/info.txt @@ -0,0 +1,10 @@ +Login:spacegrapher +IRC Nick: spacegrapher +Name: Dongyeon Kim +Location: Suwon, Korea +E-Mail: spiffm...@gmail.com +WWW: None +Contributing: Evas +Group:Libraries +Platform: Ubuntu (Linux), Windows 7 +GeoData: 37.258876, 127.056252 --
[EGIT] [core/efl] master 01/01: ecore_wayland: Improve API docs
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=931ac66be1ccadc58194b2b4cf1e4d51851b0b12 commit 931ac66be1ccadc58194b2b4cf1e4d51851b0b12 Author: Bryce Harrington br...@osg.samsung.com Date: Tue Mar 17 19:23:48 2015 -0400 ecore_wayland: Improve API docs Summary: For calls that return pointers, specify that NULL is a potential return value. Add API documentation for some misc. routines missing it. Reviewers: zmike, cedric, devilhorns Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D2180 --- src/lib/ecore_wayland/Ecore_Wayland.h | 124 +++--- 1 file changed, 114 insertions(+), 10 deletions(-) diff --git a/src/lib/ecore_wayland/Ecore_Wayland.h b/src/lib/ecore_wayland/Ecore_Wayland.h index ea59967..9460e95 100644 --- a/src/lib/ecore_wayland/Ecore_Wayland.h +++ b/src/lib/ecore_wayland/Ecore_Wayland.h @@ -231,8 +231,8 @@ struct _Ecore_Wl_Event_Interfaces_Bound * @ingroup Ecore * Ecore_Wl provides a wrapper and convenience functions for using the - * Wayland window system. Function groups for this part of the library - * include the following: + * Wayland protocol in implementing a window system. Function groups for + * this part of the library include the following: * * @li @ref Ecore_Wl_Init_Group * @li @ref Ecore_Wl_Display_Group @@ -327,7 +327,7 @@ EAPI void ecore_wl_sync(void); /** * Retrieves the Wayland Shm Interface used for the current Wayland connection. * - * @return The current wayland shm interface + * @return The current wayland shm interface, or NULL on error * * @ingroup Ecore_Wl_Display_Group * @since 1.2 @@ -337,7 +337,7 @@ EAPI struct wl_shm *ecore_wl_shm_get(void); /** * Retrieves the Wayland Display Interface used for the current Wayland connection. * - * @return The current wayland display interface + * @return The current wayland display interface, or NULL on error * * @ingroup Ecore_Wl_Display_Group * @since 1.2 @@ -350,7 +350,7 @@ EAPI struct wl_display *ecore_wl_display_get(void); * This interface is used by clients to request the creation of surfaces and * regions. * - * @return The current wayland compositor interface + * @return The current wayland compositor interface, or NULL on error * @since 1.8 */ @@ -364,6 +364,16 @@ EAPI struct wl_display *ecore_wl_display_get(void); * @since 1.2 */ EAPI void ecore_wl_screen_size_get(int *w, int *h); + +/** + * Retrieves the position of the current screen. + * + * @param x where to return the horizontal position. May be NULL. Returns 0 on error. + * @param y where to return the vertical position. May be NULL. Returns 0 on error. + * + * @ingroup Ecore_Wl_Display_Group + * @since 1.2 + */ EAPI void ecore_wl_pointer_xy_get(int *x, int *y); /** @@ -378,6 +388,14 @@ EAPI void ecore_wl_pointer_xy_get(int *x, int *y); * @since 1.2 */ EAPI int ecore_wl_dpi_get(void); + +/** + * Dispatch Wayland events + * + * Dispatches any events queued on the default queue. Wayland will attempt + * to read from the display fd and queue things up according to the proxy + * assignment. + */ EAPI void ecore_wl_display_iterate(void); /* @@ -436,7 +454,7 @@ EAPI void ecore_wl_input_cursor_theme_name_set(Ecore_Wl_Input *input, const char * * There's no need to call dispatch manually, since this call will do it if necessary. * - * @return The current wayland globals interface list + * @return The current wayland globals interface list, or NULL on error * * @ingroup Ecore_Wl_Display_Group * @since 1.7.6 @@ -446,7 +464,7 @@ EAPI Eina_Inlist *ecore_wl_globals_get(void); /** * Retrieves the Wayland Registry used for the current Wayland connection. * - * @return The current wayland registry + * @return The current wayland registry, or NULL on error * * @ingroup Ecore_Wl_Display_Group * @since 1.7.6 @@ -471,7 +489,7 @@ EAPI struct wl_registry *ecore_wl_registry_get(void); * @param h Height * @param buffer_type The type of the buffer to be used to create a new Ecore_Wl_Window. * - * @return The new window + * @return The new window, or NULL on failure * * @ingroup Ecore_Wl_Window_Group * @since 1.2 @@ -598,6 +616,7 @@ EAPI Ecore_Wl_Input *ecore_wl_window_keyboard_get(Ecore_Wl_Window *win); * Returns a wl_surface with no association to any wl_shell_surface. * * @param win The window which will use this newly created surface. + * @return wl_surface or NULL on error * * @ingroup Ecore_Wl_Window_Group * @since 1.8 @@ -611,7 +630,7 @@ EAPI Eina_Bool ecore_wl_window_alpha_get(Ecore_Wl_Window *win); * Returns the Ecore_Wl_Window from a wl_surface * * @param surface The surface for which to find the Ecore_Wl_Window from - * @return the Ecore_Wl_Window associated with this surface + * @return the Ecore_Wl_Window associated with this surface, or NULL if not found * * @ingroup
[EGIT] [admin/devs] master 01/01: dev/jpeg: Update info.txt and add avatar picture
jpeg pushed a commit to branch master. http://git.enlightenment.org/admin/devs.git/commit/?id=7aa30838d53394833f95b87add8c36d51279f2c8 commit 7aa30838d53394833f95b87add8c36d51279f2c8 Author: Jean-Philippe Andre jp.an...@samsung.com Date: Wed Mar 18 09:16:25 2015 +0900 dev/jpeg: Update info.txt and add avatar picture --- developers/jpeg/icon-big.png | Bin 0 - 42049 bytes developers/jpeg/icon-map.png | Bin 0 - 1723 bytes developers/jpeg/icon-med.png | Bin 0 - 9301 bytes developers/jpeg/icon-sml.png | Bin 0 - 3030 bytes developers/jpeg/info.txt | 8 5 files changed, 4 insertions(+), 4 deletions(-) diff --git a/developers/jpeg/icon-big.png b/developers/jpeg/icon-big.png new file mode 100644 index 000..640e84b Binary files /dev/null and b/developers/jpeg/icon-big.png differ diff --git a/developers/jpeg/icon-map.png b/developers/jpeg/icon-map.png new file mode 100644 index 000..67e73ec Binary files /dev/null and b/developers/jpeg/icon-map.png differ diff --git a/developers/jpeg/icon-med.png b/developers/jpeg/icon-med.png new file mode 100644 index 000..f659a2f Binary files /dev/null and b/developers/jpeg/icon-med.png differ diff --git a/developers/jpeg/icon-sml.png b/developers/jpeg/icon-sml.png new file mode 100644 index 000..966adca Binary files /dev/null and b/developers/jpeg/icon-sml.png differ diff --git a/developers/jpeg/info.txt b/developers/jpeg/info.txt index 6fc8fb4..1ced519 100644 --- a/developers/jpeg/info.txt +++ b/developers/jpeg/info.txt @@ -5,7 +5,7 @@ Name: Jean-Philippe ANDRE Location: Seoul, Korea E-Mail:j...@videolan.org, jp.an...@samsung.com WWW: none -Managing: none -Contributing: Evas (cserve2) -Group: Libraries -Platform: Ubuntu, Arch (Linux) +Managing: evas +Contributing: Evas: GL, filters, masking, cserve2 +Group: Core, Libraries +Platform: Arch (Linux) --
[EGIT] [core/efl] master 01/01: ecore-wayland: Doublecheck input validity
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c0bc1be83e55de2b0ed0dc1ad24a8e43461cad5f commit c0bc1be83e55de2b0ed0dc1ad24a8e43461cad5f Author: Bryce Harrington br...@osg.samsung.com Date: Tue Mar 17 19:52:43 2015 -0400 ecore-wayland: Doublecheck input validity Summary: Most of the other ecore-wayland API will return NULL in the (hopefully theoretical) case of bad inputs; this API routine should so similarly for consistency. Reviewers: zmike, cedric Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D2181 --- src/lib/ecore_wayland/Ecore_Wayland.h | 2 ++ src/lib/ecore_wayland/ecore_wl_dnd.c | 1 + 2 files changed, 3 insertions(+) diff --git a/src/lib/ecore_wayland/Ecore_Wayland.h b/src/lib/ecore_wayland/Ecore_Wayland.h index 9460e95..dd1260e 100644 --- a/src/lib/ecore_wayland/Ecore_Wayland.h +++ b/src/lib/ecore_wayland/Ecore_Wayland.h @@ -787,6 +787,8 @@ EAPI Eina_Bool ecore_wl_dnd_drag_get(Ecore_Wl_Input *input, const char *type); EAPI void ecore_wl_dnd_drag_types_set(Ecore_Wl_Input *input, const char **types_offered); /** + * @return the data types being offered for drag-and-drop, or NULL on error + * * @ingroup Ecore_Wl_Dnd_Group * @since 1.8 */ diff --git a/src/lib/ecore_wayland/ecore_wl_dnd.c b/src/lib/ecore_wayland/ecore_wl_dnd.c index 4fd7b05..5165328 100644 --- a/src/lib/ecore_wayland/ecore_wl_dnd.c +++ b/src/lib/ecore_wayland/ecore_wl_dnd.c @@ -398,6 +398,7 @@ ecore_wl_dnd_drag_types_get(Ecore_Wl_Input *input) /* check for valid input. if not, get the default one */ if (!input) input = _ecore_wl_disp-input; + if (!input) return NULL; return input-data_types; } --
[EGIT] [apps/terminology] master 01/01: config: typo in config upgrade names
billiob pushed a commit to branch master. http://git.enlightenment.org/apps/terminology.git/commit/?id=73c9e827772cc68a9d510d7d89d55308da518e1d commit 73c9e827772cc68a9d510d7d89d55308da518e1d Author: Jean Guyomarc'h jean.guyoma...@gmail.com Date: Tue Mar 17 20:20:52 2015 +0100 config: typo in config upgrade names Summary: If CONF_VER was 4, config should be upgraded to 5. Reviewers: billiob Differential Revision: https://phab.enlightenment.org/D2179 --- src/bin/config.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/bin/config.c b/src/bin/config.c index b98dce5..aabdfee 100644 --- a/src/bin/config.c +++ b/src/bin/config.c @@ -292,13 +292,13 @@ _config_upgrade_to_v2(Config *config) config-keys = eina_list_append(config-keys, kb) static void -_config_upgrade_to_v4(Config *config) +_config_upgrade_to_v5(Config *config) { Config_Keys *kb; ADD_KB(F11, 0, 0, 0, 0, win_fullscreen); - config-version = 4; + config-version = 5; } static void @@ -474,7 +474,7 @@ config_load(const char *key) config-gravatar = EINA_TRUE; /*pass through*/ case 4: - _config_upgrade_to_v4(config); + _config_upgrade_to_v5(config); /*pass through*/ case CONF_VER: /* 5 */ config-version = CONF_VER; --
[EGIT] [core/efl] master 02/04: evas-wayland-shm: Refactor Evas Wayland Shm Engine (Fix T2201)
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=3ebe41af1827a536e36d926007e1c7dd967c571c commit 3ebe41af1827a536e36d926007e1c7dd967c571c Author: Chris Michael cp.mich...@samsung.com Date: Tue Mar 17 15:49:09 2015 -0400 evas-wayland-shm: Refactor Evas Wayland Shm Engine (Fix T2201) Summary: This patch set fixes the issue of Evas wayland shm engine causing crashes when resizing efl apps in the E wayland compositor. It refactors the evas engine to wait for release events on buffers, and hooks into frame callbacks so that release events will get triggered at the appropriate time. @fix Signed-off-by: Chris Michael cp.mich...@samsung.com --- src/Makefile_Evas.am | 6 +- src/modules/evas/engines/wayland_shm/evas_engine.c | 253 +- src/modules/evas/engines/wayland_shm/evas_engine.h | 85 +++- src/modules/evas/engines/wayland_shm/evas_outbuf.c | 515 + src/modules/evas/engines/wayland_shm/evas_shm.c| 477 +++ 5 files changed, 1189 insertions(+), 147 deletions(-) diff --git a/src/Makefile_Evas.am b/src/Makefile_Evas.am index cb79b49..af00028 100644 --- a/src/Makefile_Evas.am +++ b/src/Makefile_Evas.am @@ -1179,10 +1179,8 @@ WAYLAND_SHM_SOURCES = \ modules/evas/engines/wayland_shm/Evas_Engine_Wayland_Shm.h \ modules/evas/engines/wayland_shm/evas_engine.c \ modules/evas/engines/wayland_shm/evas_engine.h \ -modules/evas/engines/wayland_shm/evas_swapbuf.c \ -modules/evas/engines/wayland_shm/evas_swapbuf.h \ -modules/evas/engines/wayland_shm/evas_swapper.c \ -modules/evas/engines/wayland_shm/evas_swapper.h +modules/evas/engines/wayland_shm/evas_shm.c \ +modules/evas/engines/wayland_shm/evas_outbuf.c if EVAS_STATIC_BUILD_WAYLAND_SHM lib_evas_libevas_la_SOURCES += $(WAYLAND_SHM_SOURCES) lib_evas_libevas_la_CPPFLAGS += @evas_engine_wayland_shm_cflags@ diff --git a/src/modules/evas/engines/wayland_shm/evas_engine.c b/src/modules/evas/engines/wayland_shm/evas_engine.c index 21f4ef3..fd97de6 100644 --- a/src/modules/evas/engines/wayland_shm/evas_engine.c +++ b/src/modules/evas/engines/wayland_shm/evas_engine.c @@ -1,171 +1,156 @@ #include evas_common_private.h #include evas_private.h -#include Evas_Engine_Wayland_Shm.h +#ifdef EVAS_CSERVE2 +# include evas_cs2_private.h +#endif + #include evas_engine.h -#include evas_swapbuf.h -/* local structures */ -typedef struct _Render_Engine Render_Engine; +/* logging domain variable */ +int _evas_engine_way_shm_log_dom = -1; +/* evas function tables - filled in later (func and parent func) */ +static Evas_Func func, pfunc; + +/* engine structure data */ +typedef struct _Render_Engine Render_Engine; struct _Render_Engine { Render_Engine_Software_Generic generic; - void (*outbuf_reconfigure)(Outbuf *ob, int x, int y, int w, int h, int rot, Outbuf_Depth depth, Eina_Bool alpha); + void (*outbuf_reconfigure)(Outbuf *ob, int x, int y, int w, int h, int rot, Outbuf_Depth depth, Eina_Bool alpha, Eina_Bool resize); }; -/* engine function prototypes */ -static void *eng_info(Evas *eo_evas EINA_UNUSED); -static void eng_info_free(Evas *eo_evas EINA_UNUSED, void *einfo); -static int eng_setup(Evas *eo_evas, void *einfo); -static void eng_output_free(void *data); - -/* local variables */ -static Evas_Func func, pfunc; - -/* external variables */ -int _evas_engine_way_shm_log_dom = -1; - -/* local functions */ -static void * -_output_engine_setup(Evas_Engine_Info_Wayland_Shm *info, - int w, int h, - unsigned int rotation, unsigned int depth, - Eina_Bool destination_alpha, - struct wl_shm *wl_shm, - struct wl_surface *wl_surface) +/* LOCAL FUNCTIONS */ +Render_Engine * +_render_engine_swapbuf_setup(int w, int h, unsigned int rotation, unsigned int depth, Eina_Bool alpha, struct wl_shm *shm, struct wl_surface *surface) { - Render_Engine *re = NULL; + Render_Engine *re; Outbuf *ob; LOGFN(__FILE__, __LINE__, __FUNCTION__); - /* try to allocate a new render engine */ - if (!(re = calloc(1, sizeof(Render_Engine - return NULL; - + /* try to allocate space for new render engine */ + if (!(re = calloc(1, sizeof(Render_Engine return NULL; - ob = evas_swapbuf_setup(info, w, h, rotation, depth, - destination_alpha, wl_shm, - wl_surface); - if (!ob) goto on_error; + ob = _evas_outbuf_setup(w, h, rotation, depth, alpha, shm, surface); + if (!ob) goto err; - if (!evas_render_engine_software_generic_init(re-generic, ob, - evas_swapbuf_state_get, - evas_swapbuf_rotation_get, - NULL, + if (!evas_render_engine_software_generic_init(re-generic, ob, +
[EGIT] [core/efl] master 01/04: evas-wayland-shm: Remove old wayland_shm engine swapper files
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=5c753a859bfb0b4a49f8d2196a5f33c011ff1a2c commit 5c753a859bfb0b4a49f8d2196a5f33c011ff1a2c Author: Chris Michael cp.mich...@samsung.com Date: Tue Mar 17 15:32:29 2015 -0400 evas-wayland-shm: Remove old wayland_shm engine swapper files Summary: Part of engine refactor to address resize issue in E wayland compositor Signed-off-by: Chris Michael cp.mich...@samsung.com --- .../evas/engines/wayland_shm/evas_swapbuf.c| 537 .../evas/engines/wayland_shm/evas_swapbuf.h| 17 - .../evas/engines/wayland_shm/evas_swapper.c| 541 - .../evas/engines/wayland_shm/evas_swapper.h| 17 - 4 files changed, 1112 deletions(-) diff --git a/src/modules/evas/engines/wayland_shm/evas_swapbuf.c b/src/modules/evas/engines/wayland_shm/evas_swapbuf.c deleted file mode 100644 index 79101b4..000 --- a/src/modules/evas/engines/wayland_shm/evas_swapbuf.c +++ /dev/null @@ -1,537 +0,0 @@ -#ifdef HAVE_CONFIG_H -# include config.h -#endif - -//#include sys/mman.h - -#ifdef EVAS_CSERVE2 -# include evas_cs2_private.h -#endif - -#include evas_common_private.h -#include evas_macros.h -#include evas_engine.h -#include evas_swapbuf.h -#include evas_swapper.h - -#define RED_MASK 0x00ff -#define GREEN_MASK 0xff00 -#define BLUE_MASK 0x00ff - -/* local function prototypes */ - -Outbuf * -evas_swapbuf_setup(Evas_Engine_Info_Wayland_Shm *info, int w, int h, unsigned int rotation, Outbuf_Depth depth, Eina_Bool alpha, struct wl_shm *wl_shm, struct wl_surface *wl_surface) -{ - Outbuf *ob = NULL; - - LOGFN(__FILE__, __LINE__, __FUNCTION__); - - /* try to allocate a new Outbuf */ - if (!(ob = calloc(1, sizeof(Outbuf - return NULL; - - /* set some properties */ - ob-w = w; - ob-h = h; - ob-rotation = rotation; - ob-depth = depth; - ob-priv.destination_alpha = alpha; - ob-priv.wl.shm = wl_shm; - ob-priv.wl.surface = wl_surface; - ob-info = info; - - if ((ob-rotation == 0) || (ob-rotation == 180)) - { -ob-priv.swapper = - evas_swapper_setup(0, 0, w, h, depth, alpha, ob-priv.wl.shm, - ob-priv.wl.surface); - } - else if ((ob-rotation == 90) || (ob-rotation == 270)) - { -ob-priv.swapper = - evas_swapper_setup(0, 0, h, w, depth, alpha, ob-priv.wl.shm, - ob-priv.wl.surface); - } - - /* check that a swapper was created */ - if (!ob-priv.swapper) - { -/* free the Outbuf structure allocation */ -free(ob); - -return NULL; - } - - /* set step size of regions array */ - eina_array_step_set(ob-priv.onebuf_regions, sizeof(Eina_Array), 8); - - /* return allocated Outbuf */ - return ob; -} - -void -evas_swapbuf_free(Outbuf *ob) -{ - LOGFN(__FILE__, __LINE__, __FUNCTION__); - - /* check for valid output buffer */ - if (!ob) return; - - /* flush the output buffer */ - evas_swapbuf_flush(ob, NULL, MODE_FULL); - evas_swapbuf_idle_flush(ob); - evas_swapper_free(ob-priv.swapper); - eina_array_flush(ob-priv.onebuf_regions); - - /* free the allocated structure */ - free(ob); -} - -void -evas_swapbuf_reconfigure(Outbuf *ob, int x, int y, int w, int h, int rotation, Outbuf_Depth depth, Eina_Bool alpha) -{ - LOGFN(__FILE__, __LINE__, __FUNCTION__); - - /* check for valid output buffer */ - if (!ob) return; - - if (depth == OUTBUF_DEPTH_INHERIT) depth = ob-depth; - - /* check that something was actually changed */ - if ((ob-w == w) (ob-h == h) - (ob-rotation == rotation) (ob-depth == depth)) - return; - - /* set some properties */ - ob-w = w; - ob-h = h; - ob-rotation = rotation; - ob-depth = depth; - ob-priv.destination_alpha = alpha; - - /* check for valid swapper */ - if (ob-priv.swapper) - { -if ((ob-rotation == 0) || (ob-rotation == 180)) - ob-priv.swapper = evas_swapper_reconfigure(ob-priv.swapper, - x, y, w, h, depth, - alpha); -else if ((ob-rotation == 90) || (ob-rotation == 270)) - ob-priv.swapper = evas_swapper_reconfigure(ob-priv.swapper, - x, y, h, w, depth, - alpha); -return; - } - - /* create new swapper */ - if ((ob-rotation == 0) || (ob-rotation == 180)) - { -ob-priv.swapper = - evas_swapper_setup(x, y, w, h, depth, alpha, ob-priv.wl.shm, - ob-priv.wl.surface); - } - else if ((ob-rotation == 90) || (ob-rotation == 270)) - { -ob-priv.swapper = - evas_swapper_setup(x, y, h, w, depth, alpha, ob-priv.wl.shm, - ob-priv.wl.surface); - }
[EGIT] [core/efl] master 03/04: ecore-evas-wayland: Remove frame callbacks from Ecore_Evas wayland engine
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b55a24727a30460792fb5d0ac8bbfb0f91442687 commit b55a24727a30460792fb5d0ac8bbfb0f91442687 Author: Chris Michael cp.mich...@samsung.com Date: Tue Mar 17 15:50:56 2015 -0400 ecore-evas-wayland: Remove frame callbacks from Ecore_Evas wayland engine Summary: Frame callbacks are now handled inside the engine itself and are thus not needed here anymore @fix Signed-off-by: Chris Michael cp.mich...@samsung.com --- .../engines/wayland/ecore_evas_wayland_common.c| 61 -- .../engines/wayland/ecore_evas_wayland_egl.c | 1 - .../engines/wayland/ecore_evas_wayland_private.h | 2 - .../engines/wayland/ecore_evas_wayland_shm.c | 1 - 4 files changed, 65 deletions(-) diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c index e7521d5..926269d 100644 --- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c +++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_common.c @@ -46,15 +46,6 @@ static void _ecore_evas_wayland_alpha_do(Ecore_Evas *ee, int alpha); static void _ecore_evas_wayland_transparent_do(Ecore_Evas *ee, int transparent); static void _ecore_evas_wl_common_border_update(Ecore_Evas *ee); -/* Frame listener */ -static void _ecore_evas_wl_frame_complete(void *data, struct wl_callback *callback, uint32_t tm); - -/* Frame listener */ -static const struct wl_callback_listener frame_listener = -{ - _ecore_evas_wl_frame_complete, -}; - /* local functions */ static void _ecore_evas_wl_common_state_update(Ecore_Evas *ee) @@ -592,8 +583,6 @@ _ecore_evas_wl_common_free(Ecore_Evas *ee) if (!ee) return; wdata = ee-engine.data; - if (wdata-frame_callback) wl_callback_destroy(wdata-frame_callback); - wdata-frame_callback = NULL; if (wdata-win) ecore_wl_window_free(wdata-win); wdata-win = NULL; free(wdata); @@ -1441,42 +1430,6 @@ _ecore_evas_wl_common_post_render(Ecore_Evas *ee) if (ee-func.fn_post_render) ee-func.fn_post_render(ee); } -void -_ecore_evas_wl_common_frame_callback_clean(Ecore_Evas *ee) -{ - Ecore_Evas_Engine_Wl_Data *wdata; - - wdata = ee-engine.data; - - if (!wdata-frame_pending) - return; - wl_callback_destroy(wdata-frame_callback); - wdata-frame_callback = NULL; - wdata-frame_pending = EINA_FALSE; -} - -static void -_ecore_evas_wl_frame_complete(void *data, struct wl_callback *callback EINA_UNUSED, uint32_t tm EINA_UNUSED) -{ - Ecore_Evas *ee = data; - Ecore_Wl_Window *win = NULL; - Ecore_Evas_Engine_Wl_Data *wdata; - - if (!ee) return; - - _ecore_evas_wl_common_frame_callback_clean(ee); - - wdata = ee-engine.data; - if (!(win = wdata-win)) return; - - if (ecore_wl_window_surface_get(win)) - { -wdata-frame_callback = - wl_surface_frame(ecore_wl_window_surface_get(win)); -wl_callback_add_listener(wdata-frame_callback, frame_listener, ee); - } -} - int _ecore_evas_wl_common_render(Ecore_Evas *ee) { @@ -1516,20 +1469,6 @@ _ecore_evas_wl_common_render(Ecore_Evas *ee) updates = evas_render_updates(ee-evas); rend = _ecore_evas_wl_common_render_updates_process(ee, updates); evas_render_updates_free(updates); - -if (!wdata-frame_pending) - { - if (!wdata-frame_callback) - { - wdata-frame_callback = -wl_surface_frame(ecore_wl_window_surface_get(win)); - wl_callback_add_listener(wdata-frame_callback, - frame_listener, ee); - } - - if (rend) - wdata-frame_pending = EINA_TRUE; - } } else if (evas_render_async(ee-evas)) { diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c index 46003e8..d9b579d 100644 --- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c +++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_egl.c @@ -373,7 +373,6 @@ _ecore_evas_wl_hide(Ecore_Evas *ee) if (!ee-visible) return; ee-visible = 0; ee-should_be_visible = 0; - _ecore_evas_wl_common_frame_callback_clean(ee); if (ee-func.fn_hide) ee-func.fn_hide(ee); } diff --git a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_private.h b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_private.h index 98e2624..206d178 100644 --- a/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_private.h +++ b/src/modules/ecore_evas/engines/wayland/ecore_evas_wayland_private.h @@ -35,8 +35,6 @@ struct _Ecore_Evas_Engine_Wl_Data #ifdef BUILD_ECORE_EVAS_WAYLAND_EGL struct wl_egl_window *egl_win; #endif - Eina_Bool frame_pending : 1; - struct wl_callback
[EGIT] [core/enlightenment] master 01/01: only throw frame object size CRI for X comp objects
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=d4c0a663cfcda9dcf49c8f8f7e3280013264d9a7 commit d4c0a663cfcda9dcf49c8f8f7e3280013264d9a7 Author: Mike Blumenkrantz zm...@osg.samsung.com Date: Tue Mar 17 16:15:00 2015 -0400 only throw frame object size CRI for X comp objects --- src/bin/e_comp_object.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index 4921175..eee3aa9 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -1333,7 +1333,8 @@ _e_comp_intercept_show_helper(E_Comp_Object *cw) /* re-set geometry */ evas_object_move(cw-smart_obj, cw-ec-x, cw-ec-y); /* ensure that some kind of frame calc has occurred if there's a frame */ - if (cw-frame_object (cw-ec-h == cw-ec-client.h) (cw-ec-w == cw-ec-client.w)) + if (e_pixmap_is_x(cw-ec-pixmap) cw-frame_object + (cw-ec-h == cw-ec-client.h) (cw-ec-w == cw-ec-client.w)) CRI(ACK!); /* force resize in case it hasn't happened yet, or just to update size */ evas_object_resize(cw-smart_obj, cw-ec-w, cw-ec-h); --
[EGIT] [core/efl] master 01/01: ecore-drm: add ecore_drm_devices_get to get the list of drm devices
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=9baacf802d637b2573af58e3d5c4fe1f336792cf commit 9baacf802d637b2573af58e3d5c4fe1f336792cf Author: Boram Park boram1288.p...@samsung.com Date: Tue Mar 17 09:30:59 2015 -0400 ecore-drm: add ecore_drm_devices_get to get the list of drm devices Summary: when enlightenment is working as wayland display server, enlightenment changes KDSETMODE to KD_GRAPHICS in _ecore_drm_tty_setup(). However, when enlightenment is killed by SIGSEGV, it doesn't changes KDSETMODE to KD_TEXT because englightenment process doesn't call ecore_drm_tty_close(). To make possible enlightenment call ecore_drm_tty_close(), drm devices should be exposed. When enlightenment is killed by SIGSEGV, it will get drm devices with ecore_drm_device_get_list(), and will call ecore_drm_launcher_disconnect(), and ecore_drm_launcher_disconnect will call ecore_drm_tty_close() internally. @feature Change-Id: I1c594739ec96660a09cee77b823ace6548ee5282 Reviewers: zmike, cedric, raster, gwanglim, devilhorns Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D2159 --- src/lib/ecore_drm/Ecore_Drm.h| 10 ++ src/lib/ecore_drm/ecore_drm_device.c | 12 2 files changed, 22 insertions(+) diff --git a/src/lib/ecore_drm/Ecore_Drm.h b/src/lib/ecore_drm/Ecore_Drm.h index 10928ed..ff460e3 100644 --- a/src/lib/ecore_drm/Ecore_Drm.h +++ b/src/lib/ecore_drm/Ecore_Drm.h @@ -326,4 +326,14 @@ EAPI Eina_Stringshare *ecore_drm_output_make_get(Ecore_Drm_Output *output); */ EAPI void ecore_drm_device_pointer_xy_get(Ecore_Drm_Device *dev, int *x, int *y); +/** + * Get the list of drm devices which are allocated. + * + * @return Eina_List of drm devices, NULL otherwise + * + * @ingroup Ecore_Drm_Device_Group + * @since 1.14 + */ +EAPI Eina_List *ecore_drm_devices_get(void); + #endif diff --git a/src/lib/ecore_drm/ecore_drm_device.c b/src/lib/ecore_drm/ecore_drm_device.c index 89c6b86..917a02b 100644 --- a/src/lib/ecore_drm/ecore_drm_device.c +++ b/src/lib/ecore_drm/ecore_drm_device.c @@ -5,6 +5,8 @@ #include ecore_drm_private.h #include dlfcn.h +static Eina_List *drm_devices; + static void _ecore_drm_device_cb_page_flip(int fd EINA_UNUSED, unsigned int frame EINA_UNUSED, unsigned int sec EINA_UNUSED, unsigned int usec EINA_UNUSED, void *data) { @@ -191,6 +193,8 @@ cont: dev-session = NULL; DBG(Using Drm Device: %s, dev-drm.name); + +drm_devices = eina_list_append(drm_devices, dev); } out: @@ -236,6 +240,8 @@ ecore_drm_device_free(Ecore_Drm_Device *dev) /* free session */ free(dev-session); + drm_devices = eina_list_remove(drm_devices, dev); + /* free structure */ free(dev); } @@ -334,6 +340,12 @@ ecore_drm_device_close(Ecore_Drm_Device *dev) return EINA_TRUE; } +EAPI Eina_List * +ecore_drm_devices_get(void) +{ + return drm_devices; +} + /** * Get if a given Ecore_Drm_Device is master * --
Re: [E-devel] Probie proposal: spacegrapher
On Tue, Mar 17, 2015 at 7:28 PM, Daniel Kolesa dan...@octaforge.org wrote: On Mon, Mar 16, 2015 at 7:36 AM, Cedric BAIL cedric.b...@free.fr wrote: Hello, Le 16 mars 2015 08:02, Jean-Philippe André j...@videolan.org a écrit : I would like to propose Dongyeon Kim (aka spacegrapher) as a new probie. I agree.he did some good technically difficult contribution, but the patch review seems to indicate that his contribution almost always get in directly. So why not directly a developer access ? Probie is not a necessary step in my opinion. Yo I'd go for probie now and switch to normal once he's more involved in the community. Commits seem good enough, I wtf'd at at least one of his commits +1 here. I think we had enough talk about this, *involving in the community*. If that is not required, there are a lot of contributors who I want to give permissions. Thanks. Daniel Juyung Seo (SeoZ) (because it included garbage files) but apparently that was jpeg's fault.. bad jpeg! :P D5 Have fun, Cedric He has been working on Evas and all GL stuff for a while now at Samsung Mobile. He also expressed his desire to become more involved in the upstream project and contribute to open source. The quality of his patches is usually pretty damn good, too. As seems usual, if no one objects, I'll simply add him as a probie in a few days. Best regards, -- Jean-Philippe André -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel D5 -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/enlightenment] master 01/01: fix tty problem when enlightenment(drm-backend) is killed by SIGSEGV
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=7c41fb431d165e723db51cd69a208f99102d743b commit 7c41fb431d165e723db51cd69a208f99102d743b Author: Boram Park boram1288.p...@samsung.com Date: Tue Mar 17 09:33:55 2015 -0400 fix tty problem when enlightenment(drm-backend) is killed by SIGSEGV Summary: When enlightenment is working as wayland display server, enlightenment changes KDSETMODE to KD_GRAPHICS in _ecore_drm_tty_setup(). However, when enlightenment is killed by SIGSEGV, it doesn't changes KDSETMODE to KD_TEXT because englightenment process doesn't call ecore_drm_tty_close(). When enlightenment is killed by SIGSEGV, it should get drm devices with ecore_drm_device_get_list(), and will call ecore_drm_launcher_disconnect(), and ecore_drm_launcher_disconnect will call ecore_drm_tty_close() internally. Change-Id: I425488eb4489709cc968b77bd4bc48a4aa4ae30c Reviewers: zmike, cedric, raster, gwanglim, devilhorns Reviewed By: devilhorns Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D2160 --- src/bin/e_signals.c | 76 - 1 file changed, 70 insertions(+), 6 deletions(-) diff --git a/src/bin/e_signals.c b/src/bin/e_signals.c index 5abc5d7..7d2b8e2 100644 --- a/src/bin/e_signals.c +++ b/src/bin/e_signals.c @@ -5,16 +5,20 @@ */ #include e.h +#ifdef HAVE_WAYLAND_ONLY +#include Ecore_Drm.h +#endif + #ifdef HAVE_EXECINFO_H # include execinfo.h #endif static volatile Eina_Bool _e_x_composite_shutdown_try = 0; +#ifndef HAVE_WAYLAND_ONLY static void _e_x_composite_shutdown(void) { -#ifndef HAVE_WAYLAND_ONLY // Ecore_X_Display *dpy; Ecore_X_Window root; @@ -27,8 +31,8 @@ _e_x_composite_shutdown(void) /* ignore errors, we really don't care at this point */ ecore_x_composite_unredirect_subwindows(root, ECORE_X_COMPOSITE_UPDATE_MANUAL); _e_x_composite_shutdown_try = 0; -#endif } +#endif #if 0 #define _e_write_safe(fd, buf) _e_write_safe_int(fd, buf, sizeof(buf)) @@ -65,8 +69,23 @@ _e_write_safe_int(int fd, const char *buf, size_t size) EAPI void e_sigseg_act(int x __UNUSED__, siginfo_t *info __UNUSED__, void *data __UNUSED__) { +#ifdef HAVE_WAYLAND_ONLY + Eina_List *list, *l, *ll; + Ecore_Drm_Device *dev; + + list = ecore_drm_devices_get(); + EINA_LIST_FOREACH_SAFE(list, l, ll, dev) + { +ecore_drm_inputs_destroy(dev); +ecore_drm_sprites_destroy(dev); +ecore_drm_device_close(dev); +ecore_drm_launcher_disconnect(dev); +ecore_drm_device_free(dev); + } + + ecore_drm_shutdown(); +#else _e_x_composite_shutdown(); -#ifndef HAVE_WAYLAND_ONLY ecore_x_pointer_ungrab(); ecore_x_keyboard_ungrab(); ecore_x_ungrab(); @@ -96,8 +115,23 @@ e_sigill_act(int x __UNUSED__, siginfo_t *info __UNUSED__, void *data __UNUSED__ EAPI void e_sigfpe_act(int x __UNUSED__, siginfo_t *info __UNUSED__, void *data __UNUSED__) { +#ifdef HAVE_WAYLAND_ONLY + Eina_List *list, *l, *ll; + Ecore_Drm_Device *dev; + + list = ecore_drm_devices_get(); + EINA_LIST_FOREACH_SAFE(list, l, ll, dev) + { +ecore_drm_inputs_destroy(dev); +ecore_drm_sprites_destroy(dev); +ecore_drm_device_close(dev); +ecore_drm_launcher_disconnect(dev); +ecore_drm_device_free(dev); + } + + ecore_drm_shutdown(); +#else _e_x_composite_shutdown(); -#ifndef HAVE_WAYLAND_ONLY ecore_x_pointer_ungrab(); ecore_x_keyboard_ungrab(); ecore_x_ungrab(); @@ -109,8 +143,23 @@ e_sigfpe_act(int x __UNUSED__, siginfo_t *info __UNUSED__, void *data __UNUSED__ EAPI void e_sigbus_act(int x __UNUSED__, siginfo_t *info __UNUSED__, void *data __UNUSED__) { +#ifdef HAVE_WAYLAND_ONLY + Eina_List *list, *l, *ll; + Ecore_Drm_Device *dev; + + list = ecore_drm_devices_get(); + EINA_LIST_FOREACH_SAFE(list, l, ll, dev) + { +ecore_drm_inputs_destroy(dev); +ecore_drm_sprites_destroy(dev); +ecore_drm_device_close(dev); +ecore_drm_launcher_disconnect(dev); +ecore_drm_device_free(dev); + } + + ecore_drm_shutdown(); +#else _e_x_composite_shutdown(); -#ifndef HAVE_WAYLAND_ONLY ecore_x_pointer_ungrab(); ecore_x_keyboard_ungrab(); ecore_x_ungrab(); @@ -122,8 +171,23 @@ e_sigbus_act(int x __UNUSED__, siginfo_t *info __UNUSED__, void *data __UNUSED__ EAPI void e_sigabrt_act(int x __UNUSED__, siginfo_t *info __UNUSED__, void *data __UNUSED__) { +#ifdef HAVE_WAYLAND_ONLY + Eina_List *list, *l, *ll; + Ecore_Drm_Device *dev; + + list = ecore_drm_devices_get(); + EINA_LIST_FOREACH_SAFE(list, l, ll, dev) + { +ecore_drm_inputs_destroy(dev); +ecore_drm_sprites_destroy(dev); +ecore_drm_device_close(dev); +ecore_drm_launcher_disconnect(dev); +
[EGIT] [apps/terminology] master 01/01: correctly swap term states. Ref T725
billiob pushed a commit to branch master. http://git.enlightenment.org/apps/terminology.git/commit/?id=7edeea350332427b1045e79a457cddb2e6f812bc commit 7edeea350332427b1045e79a457cddb2e6f812bc Author: Boris Faure bill...@gmail.com Date: Tue Mar 17 17:15:50 2015 +0100 correctly swap term states. Ref T725 --- src/bin/termpty.c | 13 +++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/bin/termpty.c b/src/bin/termpty.c index f4271a9..ad3ab81 100644 --- a/src/bin/termpty.c +++ b/src/bin/termpty.c @@ -1101,15 +1101,24 @@ termpty_screen_swap(Termpty *ty) { Termcell *tmp_screen; int tmp_circular_offset; + Termstate tmp; tmp_screen = ty-screen; ty-screen = ty-screen2; ty-screen2 = tmp_screen; if (ty-altbuf) - ty-state = ty-swap; + { +tmp = ty-state; +ty-state = ty-swap; +ty-swap = tmp; + } else - ty-swap = ty-state; + { +tmp = ty-swap; +ty-swap = ty-state; +ty-state = tmp; + } tmp_circular_offset = ty-circular_offset; ty-circular_offset = ty-circular_offset2; --