[EGIT] [core/efl] efl-1.20 01/01: evas: Fix potential crash with draw context

2017-12-14 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch efl-1.20.

http://git.enlightenment.org/core/efl.git/commit/?id=411b6345c80e50773702e210204e906b0dd8f672

commit 411b6345c80e50773702e210204e906b0dd8f672
Author: Jean-Philippe Andre 
Date:   Wed Dec 13 19:16:28 2017 +0900

evas: Fix potential crash with draw context

Using filters I end up in situations where this function returns NULL
and all hell breaks loose. I guess the spinlock is what makes this
possible (race condition).

@fix
---
 src/lib/evas/common/evas_draw_main.c | 10 --
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/src/lib/evas/common/evas_draw_main.c 
b/src/lib/evas/common/evas_draw_main.c
index d6b0a8942b..31695339d8 100644
--- a/src/lib/evas/common/evas_draw_main.c
+++ b/src/lib/evas/common/evas_draw_main.c
@@ -107,13 +107,9 @@ _evas_common_draw_context_stash(RGBA_Draw_Context *dc)
 static RGBA_Draw_Context *
 _evas_common_draw_context_find(void)
 {
-   RGBA_Draw_Context *dc;
+   RGBA_Draw_Context *dc = NULL;
 
-   if (!_ctxt_spares)
- {
-dc = malloc(sizeof(RGBA_Draw_Context));
- }
-   else
+   if (_ctxt_spares)
  {
 SLKL(_ctx_spares_lock);
 dc = eina_trash_pop(&_ctxt_spares);
@@ -121,6 +117,8 @@ _evas_common_draw_context_find(void)
 SLKU(_ctx_spares_lock);
  }
 
+   if (!dc) dc = malloc(sizeof(RGBA_Draw_Context));
+
return dc;
 }
 

-- 




[EGIT] [core/efl] master 01/01: ecore - unify comment style

2017-12-14 Thread Carsten Haitzler
raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=02737b1308ef62f0c12dd35b145bbd8148ec3385

commit 02737b1308ef62f0c12dd35b145bbd8148ec3385
Author: Carsten Haitzler (Rasterman) 
Date:   Fri Dec 15 14:36:30 2017 +0900

ecore - unify comment style
---
 src/lib/ecore/ecore_main.c | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/lib/ecore/ecore_main.c b/src/lib/ecore/ecore_main.c
index 59631892e7..ed115abff9 100644
--- a/src/lib/ecore/ecore_main.c
+++ b/src/lib/ecore/ecore_main.c
@@ -560,7 +560,7 @@ _ecore_main_fdh_glib_mark_active(Eo *obj, Efl_Loop_Data *pd)
Ecore_Fd_Handler *fdh;
int ret = 0;
 
-   /* call the prepare callback for all handlers */
+   // call the prepare callback for all handlers
EINA_INLIST_FOREACH(pd->fd_handlers, fdh)
  {
 if (fdh->delete_me) continue;
@@ -577,7 +577,7 @@ _ecore_main_fdh_glib_mark_active(Eo *obj, Efl_Loop_Data *pd)
return ret;
 }
 
-/* like we are about to enter main_loop_select in  _ecore_main_select */
+// like we are about to enter main_loop_select in  _ecore_main_select
 static gboolean
 _ecore_main_gsource_prepare(GSource *source EINA_UNUSED,
 gint*next_time)
@@ -871,7 +871,7 @@ _ecore_main_loop_setup(Eo *obj, Efl_Loop_Data *pd)
 
 pd->epoll_pid = getpid();
 
-/* add polls on all our file descriptors */
+// add polls on all our file descriptors
 Ecore_Fd_Handler *fdh;
 EINA_INLIST_FOREACH(pd->fd_handlers, fdh)
   {
@@ -2382,7 +2382,7 @@ start_loop: 
//-*
 
  // no timers - spin
  if (next_time < 0) action = _ecore_main_loop_spin_no_timers(obj, 
pd);
- /* timers - spin */
+ // timers - spin
  else action = _ecore_main_loop_spin_timers(obj, pd);
  if (action == SPIN_RESTART) goto start_loop;
   }

-- 




[EGIT] [core/efl] master 04/08: eldbus test - del not unref obj as it has a parent ...

2017-12-14 Thread Carsten Haitzler
raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=d896a2365b4b4092026c1827a1ca5e5187fb7a3b

commit d896a2365b4b4092026c1827a1ca5e5187fb7a3b
Author: Carsten Haitzler (Rasterman) 
Date:   Tue Nov 21 21:36:30 2017 +0900

eldbus test - del not unref obj as it has a parent ...

if you ONLy unref it wont force an unparent if you never del'd.

@fix
---
 src/tests/eldbus/eldbus_test_fake_server_eldbus_model_proxy.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/tests/eldbus/eldbus_test_fake_server_eldbus_model_proxy.c 
b/src/tests/eldbus/eldbus_test_fake_server_eldbus_model_proxy.c
index 53d016621e..c06721b2c3 100644
--- a/src/tests/eldbus/eldbus_test_fake_server_eldbus_model_proxy.c
+++ b/src/tests/eldbus/eldbus_test_fake_server_eldbus_model_proxy.c
@@ -42,7 +42,7 @@ _setup(void)
 static void
 _teardown(void)
 {
-   efl_unref(fake_server_object);
+   efl_del(fake_server_object);
 
fake_server_stop(fake_server);
 

-- 




[EGIT] [core/efl] master 02/08: eo - fi missed error condition if eoid passed in is NULL

2017-12-14 Thread Carsten Haitzler
raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=c4e96e4e8388c6e20e06f2723309f573b914c0b1

commit c4e96e4e8388c6e20e06f2723309f573b914c0b1
Author: Carsten Haitzler (Rasterman) 
Date:   Tue Nov 21 19:33:12 2017 +0900

eo - fi missed error condition if eoid passed in is NULL

in some cases construction can fail badly and this causes a crash...
eoid is NULL going in and this causes a cascade of failure. survive
and be more robust.
---
 src/lib/eo/eo.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/lib/eo/eo.c b/src/lib/eo/eo.c
index 0d443ef625..d944f40759 100644
--- a/src/lib/eo/eo.c
+++ b/src/lib/eo/eo.c
@@ -1023,6 +1023,7 @@ cleanup:
 EAPI Eo *
 _efl_add_end(Eo *eo_id, Eina_Bool is_ref, Eina_Bool is_fallback)
 {
+   if (!eo_id) return NULL;
Eo *ret = efl_finalize(eo_id);
ret = _efl_add_internal_end(eo_id, ret);
 

-- 




[EGIT] [core/efl] master 05/08: eo - set opts hash to NULL after free

2017-12-14 Thread Carsten Haitzler
raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=3a703dbf4aebc003ac0dabe28a40022e63c5f96c

commit 3a703dbf4aebc003ac0dabe28a40022e63c5f96c
Author: Carsten Haitzler (Rasterman) 
Date:   Fri Dec 15 01:45:07 2017 +0900

eo - set opts hash to NULL after free
---
 src/lib/eo/eo.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/lib/eo/eo.c b/src/lib/eo/eo.c
index d944f40759..32939afa50 100644
--- a/src/lib/eo/eo.c
+++ b/src/lib/eo/eo.c
@@ -2320,6 +2320,7 @@ efl_object_shutdown(void)
eina_lock_release(&_efl_class_creation_lock);
 
eina_hash_free(_ops_storage);
+   _ops_storage = NULL;
 
eina_spinlock_free(&_ops_storage_lock);
eina_lock_free(&_efl_class_creation_lock);

-- 




[EGIT] [core/efl] master 06/08: tests - ecore suite - dont shadow a global var - use different one

2017-12-14 Thread Carsten Haitzler
raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=4d7d5913ddbfbe0b9ac0e56d29dba50332c3dc91

commit 4d7d5913ddbfbe0b9ac0e56d29dba50332c3dc91
Author: Carsten Haitzler (Rasterman) 
Date:   Fri Dec 15 02:44:39 2017 +0900

tests - ecore suite - dont shadow a global var - use different one
---
 src/tests/ecore/ecore_test_ecore.c | 12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/tests/ecore/ecore_test_ecore.c 
b/src/tests/ecore/ecore_test_ecore.c
index 810e517bf1..dec46c8f5a 100644
--- a/src/tests/ecore/ecore_test_ecore.c
+++ b/src/tests/ecore/ecore_test_ecore.c
@@ -465,8 +465,8 @@ _event_free(void *user_data, void *func_data)
 static void*
 _filter_start(void *data)
 {
-   int *did = data;
-   (*did)++;
+   int *fdid = data;
+   (*fdid)++;
return NULL;
 }
 
@@ -474,7 +474,7 @@ static Eina_Bool
 _filter(void *data, void *loop_data EINA_UNUSED, int type EINA_UNUSED, void 
*event)
 {
Eina_Bool res = EINA_TRUE;
-   int *did = data;
+   int *fdid = data;
int *ev = event;
 
if (NULL != event)
@@ -486,7 +486,7 @@ _filter(void *data, void *loop_data EINA_UNUSED, int type 
EINA_UNUSED, void *eve
   }
}
 
-   (*did)++;
+   (*fdid)++;
 
return res;
 }
@@ -494,8 +494,8 @@ _filter(void *data, void *loop_data EINA_UNUSED, int type 
EINA_UNUSED, void *eve
 static void
 _filter_end(void *user_data, void *func_data EINA_UNUSED)
 {
-   int *did = user_data;
-   (*did)++;
+   int *fdid = user_data;
+   (*fdid)++;
 }
 
 START_TEST(ecore_test_ecore_main_loop_event)

-- 




[EGIT] [core/efl] master 08/08: tests - disable loop fd and timer lifecycle tests

2017-12-14 Thread Carsten Haitzler
raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=5bd7beb53fc4e417759442d09ee657c21d177e82

commit 5bd7beb53fc4e417759442d09ee657c21d177e82
Author: Carsten Haitzler (Rasterman) 
Date:   Fri Dec 15 03:29:25 2017 +0900

tests - disable loop fd and timer lifecycle tests

these tests assume we delete the loop object on shutdown which we are
not doing atm as it's a lot of trouble... and frankly of little value.
---
 src/tests/ecore/ecore_test_ecore.c | 2 ++
 src/tests/ecore/ecore_test_timer.c | 2 ++
 2 files changed, 4 insertions(+)

diff --git a/src/tests/ecore/ecore_test_ecore.c 
b/src/tests/ecore/ecore_test_ecore.c
index dec46c8f5a..be99c37423 100644
--- a/src/tests/ecore/ecore_test_ecore.c
+++ b/src/tests/ecore/ecore_test_ecore.c
@@ -899,7 +899,9 @@ void ecore_test_ecore(TCase *tc)
tcase_add_test(tc, ecore_test_ecore_main_loop_poller);
tcase_add_test(tc, ecore_test_ecore_main_loop_poller_add_del);
tcase_add_test(tc, ecore_test_efl_loop_fd);
+/* XXX: this seems a silly test... that we delete the loop object?
tcase_add_test(tc, ecore_test_efl_loop_fd_lifecycle);
+ */
tcase_add_test(tc, ecore_test_efl_loop_register);
tcase_add_test(tc, ecore_test_efl_app_version);
 }
diff --git a/src/tests/ecore/ecore_test_timer.c 
b/src/tests/ecore/ecore_test_timer.c
index a074069049..32bc498f82 100644
--- a/src/tests/ecore/ecore_test_timer.c
+++ b/src/tests/ecore/ecore_test_timer.c
@@ -289,6 +289,8 @@ END_TEST
 void ecore_test_timer(TCase *tc)
 {
   tcase_add_test(tc, ecore_test_timers);
+/* XXX: this seems a silly test - that we del the loop object?
   tcase_add_test(tc, ecore_test_timer_lifecycle);
+ */
   tcase_add_test(tc, ecore_test_timer_inside_call);
 }

-- 




[EGIT] [core/efl] master 03/08: efl model tests - fix mainloop iterate to not assume a single iter

2017-12-14 Thread Carsten Haitzler
raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=db7fefc006520c4f5e17b928841e01068e5432c2

commit db7fefc006520c4f5e17b928841e01068e5432c2
Author: Carsten Haitzler (Rasterman) 
Date:   Tue Nov 21 21:35:39 2017 +0900

efl model tests - fix mainloop iterate to not assume a single iter

it may have to loop multiple times as there isnt a guarantee on WHEN
the result comes back :)
---
 src/tests/efl/efl_test_model_composite.c | 4 ++--
 src/tests/efl/efl_test_model_container.c | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/tests/efl/efl_test_model_composite.c 
b/src/tests/efl/efl_test_model_composite.c
index a38e776746..175adee339 100644
--- a/src/tests/efl/efl_test_model_composite.c
+++ b/src/tests/efl/efl_test_model_composite.c
@@ -204,7 +204,7 @@ START_TEST(efl_test_model_composite_boolean)
future = efl_model_children_slice_get(model, 0, 0);
efl_future_then(future, _children_slice_get_then, _future_error_then, NULL, 
tdata);
 
-   ecore_main_loop_iterate();
+   while (!tdata->success_flag) ecore_main_loop_iterate();
 
ck_assert(tdata->success_flag);
 
@@ -246,7 +246,7 @@ START_TEST(efl_test_model_composite_selection)
future = efl_model_children_slice_get(model, 0, 0);
efl_future_then(future, _selection_children_slice_get_then, 
_future_error_then, NULL, tdata);
 
-   ecore_main_loop_iterate();
+   while (!tdata->success_flag) ecore_main_loop_iterate();
 
ck_assert(tdata->success_flag);
 
diff --git a/src/tests/efl/efl_test_model_container.c 
b/src/tests/efl/efl_test_model_container.c
index 5710ef2337..bfd1984d4d 100644
--- a/src/tests/efl/efl_test_model_container.c
+++ b/src/tests/efl/efl_test_model_container.c
@@ -154,7 +154,7 @@ START_TEST(efl_test_model_container_values)
 
efl_future_then(future, _children_slice_future_then, _future_error_then, 
NULL, _data);
 
-   ecore_main_loop_iterate();
+   while ((!test_data.pass_flag) && (!test_data.fail_flag)) 
ecore_main_loop_iterate();
 
ck_assert(!!test_data.pass_flag);
ck_assert(!test_data.fail_flag);

-- 




[EGIT] [core/efl] master 07/08: tests - ecore promise - assuming a single loop iterate... wrong

2017-12-14 Thread Carsten Haitzler
raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=6d2226385c376a52d3eea4623f47499dfda3a99f

commit 6d2226385c376a52d3eea4623f47499dfda3a99f
Author: Carsten Haitzler (Rasterman) 
Date:   Fri Dec 15 03:28:48 2017 +0900

tests - ecore promise - assuming a single loop iterate... wrong

this should really be an ecore_main_loop_begin plus a quit condition.
---
 src/tests/ecore/ecore_test_promise.c | 9 +
 1 file changed, 9 insertions(+)

diff --git a/src/tests/ecore/ecore_test_promise.c 
b/src/tests/ecore/ecore_test_promise.c
index 003dcfa798..ac7cc08d70 100644
--- a/src/tests/ecore/ecore_test_promise.c
+++ b/src/tests/ecore/ecore_test_promise.c
@@ -858,6 +858,9 @@ START_TEST(efl_test_promise_all)
 
efl_promise_value_set(p1, [0], NULL);
 
+   // XXX: assuming a single iteration does it? wrong. need to fix...
+   ecore_main_loop_iterate();
+   ecore_main_loop_iterate();
ecore_main_loop_iterate();
 
fail_if(!donep1.then || donep1.cancel || donep1.progress);
@@ -866,6 +869,9 @@ START_TEST(efl_test_promise_all)
efl_promise_value_set(p2, [1], NULL);
efl_promise_value_set(p3, [2], NULL);
 
+   // XXX: assuming a single iteration does it? wrong. need to fix...
+   ecore_main_loop_iterate();
+   ecore_main_loop_iterate();
ecore_main_loop_iterate();
 
fail_if(!donea.then || donea.cancel || donea.progress);
@@ -906,6 +912,9 @@ START_TEST(efl_test_promise_all_after_value_set)
 
fail_if(!efl_future_then(all, _then_all, _cancel, _progress, ));
 
+   // XXX: assuming a single iteration does it? wrong. need to fix...
+   ecore_main_loop_iterate();
+   ecore_main_loop_iterate();
ecore_main_loop_iterate();
 
fail_if(!donea.then || donea.cancel || donea.progress);

-- 




[EGIT] [core/efl] master 01/01: Efl.Ui.Popup.Anchor: apply group calculate with size problem fix

2017-12-14 Thread JinYong Park
jaehyun pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=ccfa9ae2201a6b567859f8d16d2674c3be7b81f6

commit ccfa9ae2201a6b567859f8d16d2674c3be7b81f6
Author: JinYong Park 
Date:   Fri Dec 15 13:56:25 2017 +0900

Efl.Ui.Popup.Anchor: apply group calculate with size problem fix

Summary:
Size and align calculation in Efl.Ui.Popup was advanced using group 
calculate,
so Efl.Ui.Popup.Anchor apply it also.

Test Plan: elementary_test -to efl.ui.popup.anchor

Reviewers: Jaehyun_Cho, herb, jpeg, woohyun, cedric

Reviewed By: Jaehyun_Cho

Differential Revision: https://phab.enlightenment.org/D5655
---
 src/bin/elementary/test_ui_popup.c   |  56 
 src/lib/elementary/efl_ui_popup.c|  12 +--
 src/lib/elementary/efl_ui_popup_anchor.c | 104 +++
 src/lib/elementary/efl_ui_popup_anchor.eo|   2 +-
 src/lib/elementary/efl_ui_popup_anchor_private.h |   1 -
 5 files changed, 97 insertions(+), 78 deletions(-)

diff --git a/src/bin/elementary/test_ui_popup.c 
b/src/bin/elementary/test_ui_popup.c
index 04bd30828c..5f57e79179 100644
--- a/src/bin/elementary/test_ui_popup.c
+++ b/src/bin/elementary/test_ui_popup.c
@@ -185,6 +185,22 @@ _position_set_cb(void *data EINA_UNUSED, const Efl_Event 
*ev EINA_UNUSED)
 }
 
 static void
+_popup_resize_cb(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
+{
+   efl_ui_popup_data *p_data = data;
+   if (!p_data->efl_ui_popup) return;
+
+   static Eina_Bool size_changed = EINA_FALSE;
+
+   if (!size_changed)
+ efl_ui_popup_size_set(p_data->efl_ui_popup, EINA_SIZE2D(300, 160));
+   else
+ efl_ui_popup_size_set(p_data->efl_ui_popup, EINA_SIZE2D(160, 120));
+
+   size_changed = !size_changed;
+}
+
+static void
 _timeout_set_cb(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
 {
efl_ui_popup_data *p_data = data;
@@ -1038,37 +1054,43 @@ test_ui_popup_anchor(void *data EINA_UNUSED, 
Evas_Object *obj EINA_UNUSED, void
efl_text_set(btn, "Center Align");
efl_gfx_size_hint_min_set(btn, EINA_SIZE2D(70, 35));
efl_event_callback_add(btn, EFL_UI_EVENT_CLICKED, _center_align_cb, p_data);
-   efl_pack_grid(grid, btn, 0, 0, 1, 1);
-
-   btn = efl_add(EFL_UI_BUTTON_CLASS, efl_ui_popup);
-   efl_text_set(btn, "Left Align");
-   efl_gfx_size_hint_min_set(btn, EINA_SIZE2D(70, 35));
-   efl_event_callback_add(btn, EFL_UI_EVENT_CLICKED, _left_align_cb, p_data);
-   efl_pack_grid(grid, btn, 1, 0, 1, 1);
-
-   btn = efl_add(EFL_UI_BUTTON_CLASS, efl_ui_popup);
-   efl_text_set(btn, "Right Align");
-   efl_gfx_size_hint_min_set(btn, EINA_SIZE2D(70, 35));
-   efl_event_callback_add(btn, EFL_UI_EVENT_CLICKED, _right_align_cb, p_data);
-   efl_pack_grid(grid, btn, 2, 0, 1, 1);
+   efl_pack_grid(grid, btn, 0, 0, 2, 1);
 
btn = efl_add(EFL_UI_BUTTON_CLASS, efl_ui_popup);
efl_text_set(btn, "Top Align");
efl_gfx_size_hint_min_set(btn, EINA_SIZE2D(70, 35));
efl_event_callback_add(btn, EFL_UI_EVENT_CLICKED, _top_align_cb, p_data);
-   efl_pack_grid(grid, btn, 0, 1, 1, 1);
+   efl_pack_grid(grid, btn, 2, 0, 2, 1);
 
btn = efl_add(EFL_UI_BUTTON_CLASS, efl_ui_popup);
efl_text_set(btn, "Bottom Align");
efl_gfx_size_hint_min_set(btn, EINA_SIZE2D(70, 35));
efl_event_callback_add(btn, EFL_UI_EVENT_CLICKED, _bottom_align_cb, p_data);
-   efl_pack_grid(grid, btn, 1, 1, 1, 1);
+   efl_pack_grid(grid, btn, 4, 0, 2, 1);
+
+   btn = efl_add(EFL_UI_BUTTON_CLASS, efl_ui_popup);
+   efl_text_set(btn, "Left Align");
+   efl_gfx_size_hint_min_set(btn, EINA_SIZE2D(100, 35));
+   efl_event_callback_add(btn, EFL_UI_EVENT_CLICKED, _left_align_cb, p_data);
+   efl_pack_grid(grid, btn, 0, 1, 3, 1);
+
+   btn = efl_add(EFL_UI_BUTTON_CLASS, efl_ui_popup);
+   efl_text_set(btn, "Right Align");
+   efl_gfx_size_hint_min_set(btn, EINA_SIZE2D(100, 35));
+   efl_event_callback_add(btn, EFL_UI_EVENT_CLICKED, _right_align_cb, p_data);
+   efl_pack_grid(grid, btn, 3, 1, 3, 1);
 
btn = efl_add(EFL_UI_BUTTON_CLASS, efl_ui_popup);
efl_text_set(btn, "Position Set");
-   efl_gfx_size_hint_min_set(btn, EINA_SIZE2D(70, 35));
+   efl_gfx_size_hint_min_set(btn, EINA_SIZE2D(100, 35));
efl_event_callback_add(btn, EFL_UI_EVENT_CLICKED, _position_set_cb, p_data);
-   efl_pack_grid(grid, btn, 2, 1, 1, 1);
+   efl_pack_grid(grid, btn, 0, 2, 3, 1);
+
+   btn = efl_add(EFL_UI_BUTTON_CLASS, efl_ui_popup);
+   efl_text_set(btn, "Resize");
+   efl_gfx_size_hint_min_set(btn, EINA_SIZE2D(100, 35));
+   efl_event_callback_add(btn, EFL_UI_EVENT_CLICKED, _popup_resize_cb, p_data);
+   efl_pack_grid(grid, btn, 3, 2, 3, 1);
 
efl_content_set(efl_ui_popup, grid);
 }
diff --git a/src/lib/elementary/efl_ui_popup.c 
b/src/lib/elementary/efl_ui_popup.c
index f8134d285b..c5cf4f54dd 100644
--- a/src/lib/elementary/efl_ui_popup.c
+++ b/src/lib/elementary/efl_ui_popup.c
@@ -40,9 +40,6 @@ _calc_align(Eo *obj)
 
Eina_Rect 

[EGIT] [core/efl] master 01/01: efl-mono: Fix installation in out-of-tree compilation

2017-12-14 Thread Felipe Magno de Almeida
jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=fe8c5f8269b06165a7c7b1da9a956ef0839bad52

commit fe8c5f8269b06165a7c7b1da9a956ef0839bad52
Author: Felipe Magno de Almeida 
Date:   Fri Dec 15 01:17:28 2017 -0200

efl-mono: Fix installation in out-of-tree compilation
---
 src/Makefile_Efl_Mono.am | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/Makefile_Efl_Mono.am b/src/Makefile_Efl_Mono.am
index 247f053370..72a1916515 100644
--- a/src/Makefile_Efl_Mono.am
+++ b/src/Makefile_Efl_Mono.am
@@ -202,8 +202,9 @@ endif
 
 EFL_INSTALL_EXEC_HOOK += \
 $(MKDIR_P) $(efl_mono_dll_dest); \
-cp -f $(srcdir)/lib/efl_mono/libefl_mono.dll 
$(efl_mono_dll_dest)/libefl_mono.dll; \
-cp -f $(srcdir)/bindings/mono/efl_mono/efl_libs.csv 
$(DESTDIR)$(datadir)/efl_mono/efl_libs.csv;
+cp -f $(builddir)/lib/efl_mono/libefl_mono.dll 
$(efl_mono_dll_dest)/libefl_mono.dll; \
+$(MKDIR_P) $(DESTDIR)$(datadir)/efl_mono; \
+cp -f $(builddir)/bindings/mono/efl_mono/efl_libs.csv 
$(DESTDIR)$(datadir)/efl_mono/efl_libs.csv;
 
 all-local: lib/efl_mono/libefl_mono.dll
 

-- 




[EGIT] [core/efl] master 04/04: eio: update efl_io_manager_xattr_ls test to use Eina_Future.

2017-12-14 Thread Cedric BAIL
cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=348c71e9ec16f1fca04261a1b8fd3da951a331ce

commit 348c71e9ec16f1fca04261a1b8fd3da951a331ce
Author: Cedric Bail 
Date:   Thu Dec 14 16:42:23 2017 -0800

eio: update efl_io_manager_xattr_ls test to use Eina_Future.
---
 src/tests/eio/eio_test_manager_xattr.c | 38 +++---
 1 file changed, 7 insertions(+), 31 deletions(-)

diff --git a/src/tests/eio/eio_test_manager_xattr.c 
b/src/tests/eio/eio_test_manager_xattr.c
index 261d2e2c8b..2f41b1bc6c 100644
--- a/src/tests/eio/eio_test_manager_xattr.c
+++ b/src/tests/eio/eio_test_manager_xattr.c
@@ -36,17 +36,16 @@ static const char *attr_data[] =
 int total_attributes = sizeof(attribute)/sizeof(attribute[0]);
 
 static void
-_main_cb(void *data, const Efl_Event *ev)
+_main_cb(void *data, Eina_Accessor *access)
 {
-   Efl_Future_Event_Progress *progress = ev->info;
-   const Eina_Array *attrs = progress->progress;
const char* attr;
int *num_of_attr = (int *)data;
-   unsigned int i, j;
-   Eina_Array_Iterator it;
+   unsigned int count;
 
-   EINA_ARRAY_ITER_NEXT(attrs, j, attr, it)
+   EINA_ACCESSOR_FOREACH(access, count, attr)
  {
+unsigned int i;
+
 for (i = 0; i < sizeof (attribute) / sizeof (attribute[0]); ++i)
   {
  if (strcmp(attr, attribute[i]) == 0)
@@ -58,28 +57,6 @@ _main_cb(void *data, const Efl_Event *ev)
  }
 }
 
-static void
-_done_cb(void *data, const Efl_Event *ev EINA_UNUSED)
-
-{
-   int *num_of_attr = (int *)data;
-
-   fail_if(*num_of_attr != total_attributes);
-
-   ecore_main_loop_quit();
-}
-
-static void
-_error_cb(void *data EINA_UNUSED, const Efl_Event *ev)
-{
-   Efl_Future_Event_Failure *failure = ev->info;
-
-   fprintf(stderr, "Something has gone wrong:%s\n", 
eina_error_msg_get(failure->error));
-   abort();
-
-   ecore_main_loop_quit();
-}
-
 static Eina_Value
 _future_done_cb(void *data EINA_UNUSED,
 const Eina_Value array,
@@ -147,7 +124,6 @@ START_TEST(eio_test_job_xattr_set)
int num_of_attr = 0, fd;
unsigned int i;
Eo *job;
-   Efl_Future *ls = NULL;
Eina_Future **futures = NULL;
 
ecore_init();
@@ -199,8 +175,8 @@ START_TEST(eio_test_job_xattr_set)
 
num_of_attr = 0;
 
-   efl_future_use(, efl_io_manager_xattr_ls(job, test_file_path));
-   efl_future_then(ls, _done_cb, _error_cb, _main_cb, _of_attr);
+   eina_future_then(efl_io_manager_xattr_ls(job, test_file_path, _of_attr, 
_main_cb, NULL),
+_future_done_cb, _of_attr);
 
fail_if(num_of_attr != 0);
 

-- 




[EGIT] [core/efl] master 02/04: eio: migrate Efl.Io.Manager.xattr_ls to use Eina_Future.

2017-12-14 Thread Cedric BAIL
cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=d5c9c0b784a80fe80c0c4066dd8e0deb70bcbd3c

commit d5c9c0b784a80fe80c0c4066dd8e0deb70bcbd3c
Author: Cedric Bail 
Date:   Thu Dec 14 16:02:49 2017 -0800

eio: migrate Efl.Io.Manager.xattr_ls to use Eina_Future.
---
 src/lib/eio/efl_io_manager.c  | 30 ++
 src/lib/eio/efl_io_manager.eo |  3 ++-
 2 files changed, 20 insertions(+), 13 deletions(-)

diff --git a/src/lib/eio/efl_io_manager.c b/src/lib/eio/efl_io_manager.c
index 4d832dffc5..e6066eaa3b 100644
--- a/src/lib/eio/efl_io_manager.c
+++ b/src/lib/eio/efl_io_manager.c
@@ -466,31 +466,37 @@ _efl_io_manager_stat(Eo *obj,
 
 /* eXtended attribute manipulation */
 
-static Efl_Future *
+static Eina_Future *
 _efl_io_manager_xattr_ls(Eo *obj,
  Efl_Io_Manager_Data *pd EINA_UNUSED,
- const char *path)
+ const char *path,
+ void *paths_data, EflIoPath paths, Eina_Free_Cb 
paths_free_cb)
 {
-   Efl_Promise *p;
+   Eina_Promise *p;
+   Eina_Future *future;
Eio_File *h;
 
-   Eo *loop = efl_loop_get(obj);
-   p = efl_add(EFL_PROMISE_CLASS, loop);
+   p = eina_promise_new(efl_loop_future_scheduler_get(obj),
+_efl_io_manager_future_cancel, NULL);
if (!p) return NULL;
+   future = eina_future_new(p);
 
h = _eio_file_xattr(path,
-   _file_string_cb,
-   _file_done_cb,
-   _file_error_cb,
+   _future_string_cb,
+   _future_file_done_cb,
+   _future_file_error_cb,
p);
if (!h) goto end;
 
-   efl_event_callback_array_add(p, promise_progress_handling(), h);
-   return efl_promise_future_get(p);
+   // There is no race condition here as all the callback are called in the 
main loop after this
+   ecore_thread_local_data_add(h->thread, ".paths", paths, NULL, EINA_TRUE);
+   ecore_thread_local_data_add(h->thread, ".paths_data", paths_data, 
paths_free_cb, EINA_TRUE);
+   eina_promise_data_set(p, h);
+
+   return efl_future_Eina_FutureXXX_then(obj, future);
 
  end:
-   efl_del(p);
-   return NULL;
+   return efl_future_Eina_FutureXXX_then(obj, future);;
 }
 
 static void
diff --git a/src/lib/eio/efl_io_manager.eo b/src/lib/eio/efl_io_manager.eo
index 84ac7700b6..371d71f7cd 100644
--- a/src/lib/eio/efl_io_manager.eo
+++ b/src/lib/eio/efl_io_manager.eo
@@ -60,8 +60,9 @@ class Efl.Io.Manager (Efl.Loop.Consumer)
   [[Lists all extended attributes asynchronously.]]
   params {
  @in path: string; [[Path we want to list entries for]]
+paths: EflIoPath; [[Callback called for each packet of extended 
attributes found.]]
   }
-  return: future; [[Extended attributes]]
+  return: ptr(Eina.Future) @owned; [[Amount of extended attributes found]]
 }
 
 stat {

-- 




[EGIT] [core/efl] master 01/04: ecore_con: move Efl.Net.Control.Access_Point to use Eina_Future.

2017-12-14 Thread Cedric BAIL
cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=affd07a11f08610553b12fdee9ac2d510938712c

commit affd07a11f08610553b12fdee9ac2d510938712c
Author: Cedric Bail 
Date:   Thu Dec 14 14:56:40 2017 -0800

ecore_con: move Efl.Net.Control.Access_Point to use Eina_Future.
---
 .../efl_net_control_access_point-connman.c | 43 +++---
 .../ecore_con/efl_net_control_access_point-none.c  |  5 ++-
 src/lib/ecore_con/efl_net_control_access_point.eo  |  2 +-
 3 files changed, 26 insertions(+), 24 deletions(-)

diff --git a/src/lib/ecore_con/efl_net_control_access_point-connman.c 
b/src/lib/ecore_con/efl_net_control_access_point-connman.c
index efb4730859..bd8e3d4e34 100644
--- a/src/lib/ecore_con/efl_net_control_access_point-connman.c
+++ b/src/lib/ecore_con/efl_net_control_access_point-connman.c
@@ -724,15 +724,14 @@ _efl_net_control_access_point_configuration_proxy_get(Eo 
*o EINA_UNUSED, Efl_Net
 static void
 _efl_net_control_access_point_connect_cb(void *data, const Eldbus_Message 
*msg, Eldbus_Pending *pending)
 {
-   Efl_Promise *promise = data;
-   Eo *o = efl_parent_get(promise);
+   Eina_Promise *promise = data;
+   Efl_Object *o = eina_promise_data_get(promise);
Efl_Net_Control_Access_Point_Data *pd = efl_data_scope_get(o, MY_CLASS);
const char *err_name, *err_msg;
 
EINA_SAFETY_ON_NULL_RETURN(pd);
 
pd->pending = eina_list_remove(pd->pending, pending);
-   efl_key_data_set(promise, "eldbus_pending", NULL);
if (eldbus_message_error_get(msg, _name, _msg))
  {
 Eina_Error err = EINVAL;
@@ -742,53 +741,55 @@ _efl_net_control_access_point_connect_cb(void *data, 
const Eldbus_Message *msg,
 else if (strcmp(err_name, "net.connman.Error.AlreadyConnected") == 0)
   err = EALREADY;
 WRN("Could not Connect %p: %s=%s", o, err_name, err_msg);
-efl_promise_failed_set(promise, err);
+
+eina_promise_reject(promise, err);
 return;
  }
 
-   efl_promise_value_set(promise, o, NULL);
-   efl_del(promise);
+   eina_promise_resolve(promise, EINA_VALUE_EMPTY);
 }
 
 static void
-_efl_net_control_access_point_connect_promise_del(void *data, const Efl_Event 
*event)
+_efl_net_control_access_point_connect_promise_del(void *data, const 
Eina_Promise *dead_ptr)
 {
-   Eldbus_Pending *p;
-   Eo *o = data;
-   Efl_Net_Control_Access_Point_Data *pd = efl_data_scope_get(o, MY_CLASS);
-
-   EINA_SAFETY_ON_NULL_RETURN(pd);
+   Eldbus_Pending *p = data;
+   Efl_Net_Control_Access_Point_Data *pd;
 
-   p = efl_key_data_get(event->object, "eldbus_pending");
+   p = eina_promise_data_get(dead_ptr);
if (!p) return; /* already gone, nothing to do */
 
+   pd = eldbus_pending_data_get(p, ".object");
+
pd->pending = eina_list_remove(pd->pending, p);
DBG("cancel pending connect %p", p);
eldbus_pending_cancel(p);
 }
 
-EOLIAN static Efl_Future *
+EOLIAN static Eina_Future *
 _efl_net_control_access_point_connect(Eo *o, Efl_Net_Control_Access_Point_Data 
*pd)
 {
Eldbus_Pending *p;
-   Efl_Promise *promise;
+   Eina_Promise *promise;
+   Eina_Future *f = NULL;
 
-   promise = efl_add(EFL_PROMISE_CLASS, o,
- efl_event_callback_add(efl_added, EFL_EVENT_DEL, 
_efl_net_control_access_point_connect_promise_del, o));
+   promise = eina_promise_new(efl_loop_future_scheduler_get(o),
+  
_efl_net_control_access_point_connect_promise_del, o);
EINA_SAFETY_ON_NULL_RETURN_VAL(promise, NULL);
 
+   f = eina_future_new(promise);
+
p = eldbus_proxy_call(pd->proxy, "Connect",
  _efl_net_control_access_point_connect_cb, promise, 
-1.0, "");
EINA_SAFETY_ON_NULL_GOTO(p, error_dbus);
 
pd->pending = eina_list_append(pd->pending, p);
-   efl_key_data_set(promise, "eldbus_pending", p);
+   eldbus_pending_data_set(p, ".object", pd);
 
-   return efl_promise_future_get(promise);
+   return efl_future_Eina_FutureXXX_then(o, f);
 
  error_dbus:
-   efl_promise_failed_set(promise, ENOSYS);
-   return promise;
+   eina_promise_reject(promise, ENOSYS);
+   return efl_future_Eina_FutureXXX_then(o, f);
 }
 
 static void
diff --git a/src/lib/ecore_con/efl_net_control_access_point-none.c 
b/src/lib/ecore_con/efl_net_control_access_point-none.c
index 8eba6dcb18..26353f4f5f 100644
--- a/src/lib/ecore_con/efl_net_control_access_point-none.c
+++ b/src/lib/ecore_con/efl_net_control_access_point-none.c
@@ -189,10 +189,11 @@ _efl_net_control_access_point_configuration_proxy_get(Eo 
*obj EINA_UNUSED, Efl_N
 {
 }
 
-EOLIAN static Efl_Future *
+EOLIAN static Eina_Future *
 _efl_net_control_access_point_connect(Eo *obj EINA_UNUSED, 
Efl_Net_Control_Access_Point_Data *pd EINA_UNUSED)
 {
-   return NULL;
+   return eina_future_rejected(efl_loop_future_scheduler_get(obj),
+   EINA_ERROR_NOT_IMPLEMENTED);
 }
 
 EOLIAN static void
diff --git a/src/lib/ecore_con/efl_net_control_access_point.eo 

[EGIT] [core/efl] master 03/04: ecore_con: update efl_net_control_access_point_connect to use Eina_Future.

2017-12-14 Thread Cedric BAIL
cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=2853f9c3b3cac3dc5c3d93a29198f7c58d1ed2b7

commit 2853f9c3b3cac3dc5c3d93a29198f7c58d1ed2b7
Author: Cedric Bail 
Date:   Thu Dec 14 16:15:53 2017 -0800

ecore_con: update efl_net_control_access_point_connect to use Eina_Future.
---
 src/examples/ecore/efl_net_control_example.c | 39 +++-
 1 file changed, 21 insertions(+), 18 deletions(-)

diff --git a/src/examples/ecore/efl_net_control_example.c 
b/src/examples/ecore/efl_net_control_example.c
index d13475cb85..4dd596e0ba 100644
--- a/src/examples/ecore/efl_net_control_example.c
+++ b/src/examples/ecore/efl_net_control_example.c
@@ -852,22 +852,28 @@ _cmd_access_point_show(Eo *ctl, size_t argc EINA_UNUSED, 
char **argv)
_access_point_print(ap);
 }
 
-static void
-_access_point_connect_done(void *data, const Efl_Event *event EINA_UNUSED)
+static Eina_Value
+_access_point_connect(void *data, const Eina_Value v,
+  const Eina_Future *dead EINA_UNUSED)
 {
Eo *ap = data;
-   printf("INFO: access point '%s' finished connect.\n",
-  efl_net_control_access_point_name_get(ap));
-}
 
-static void
-_access_point_connect_error(void *data, const Efl_Event *event)
-{
-   Eo *ap = data;
-   Efl_Future_Event_Failure *f = event->info;
-   printf("INFO: access point '%s' could not connect: %s\n",
-  efl_net_control_access_point_name_get(ap),
-  eina_error_msg_get(f->error));
+   if (v.type == EINA_VALUE_TYPE_ERROR)
+ {
+Eina_Error err = 0;
+
+eina_value_error_get(, );
+printf("INFO: access point '%s' could not connect: %s\n",
+   efl_net_control_access_point_name_get(ap),
+   eina_error_msg_get(err));
+ }
+   else
+ {
+printf("INFO: access point '%s' finished connect.\n",
+   efl_net_control_access_point_name_get(ap));
+ }
+
+   return v;
 }
 
 static void
@@ -876,11 +882,8 @@ _cmd_access_point_connect(Eo *ctl, size_t argc 
EINA_UNUSED, char **argv)
Eo *ap = _access_point_find(ctl, argv[1]);
if (!ap) return;
printf("INFO: connecting point '%s'\n", argv[1]);
-   efl_future_then(efl_net_control_access_point_connect(ap),
-   _access_point_connect_done,
-   _access_point_connect_error,
-   NULL,
-   ap);
+   eina_future_then(efl_net_control_access_point_connect(ap),
+_access_point_connect, ap);
 }
 
 static void

-- 




[EGIT] [core/efl] master 01/01: elm: Fix typo in copy and paste in efl_ui_list precise layouter

2017-12-14 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=9a120e3e7268b0eb398a2302f14a4fd5a4412f3f

commit 9a120e3e7268b0eb398a2302f14a4fd5a4412f3f
Author: Felipe Magno de Almeida 
Date:   Thu Dec 14 22:23:07 2017 -0200

elm: Fix typo in copy and paste in efl_ui_list precise layouter

Fix comparison between height and width instead of width and width.

CID 1383711
---
 src/lib/elementary/efl_ui_list_precise_layouter.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/elementary/efl_ui_list_precise_layouter.c 
b/src/lib/elementary/efl_ui_list_precise_layouter.c
index ce66239be3..692317005f 100644
--- a/src/lib/elementary/efl_ui_list_precise_layouter.c
+++ b/src/lib/elementary/efl_ui_list_precise_layouter.c
@@ -129,7 +129,7 @@ _item_min_calc(Efl_Ui_List_Precise_Layouter_Data *pd, 
Efl_Ui_List_LayoutItem* it
min.w += pad[0] + pad[1];
min.h += pad[2] + pad[3];
 
-   if (item->min.h == min.h && item->min.w == min.h)
+   if (item->min.h == min.h && item->min.w == min.w)
  return;
 
pd->min.h += min.h - item->min.h;

-- 




[EGIT] [core/efl] master 02/04: efl-mono: Fix examples Makefiles for mono examples

2017-12-14 Thread Vitor Sousa
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=e8edf882bf75b203d8a3440a0a5e2b75eeed64a6

commit e8edf882bf75b203d8a3440a0a5e2b75eeed64a6
Author: Vitor Sousa 
Date:   Wed Dec 13 19:59:54 2017 -0200

efl-mono: Fix examples Makefiles for mono examples
---
 src/Makefile_Efl_Mono.am| 43 +++---
 src/examples/efl_mono/Makefile.am   | 34 ++---
 src/examples/eina/Makefile.am   | 53 +++-
 src/examples/elementary/Makefile.am | 34 ++---
 src/examples/evas/Makefile.am   | 60 ++---
 5 files changed, 118 insertions(+), 106 deletions(-)

diff --git a/src/Makefile_Efl_Mono.am b/src/Makefile_Efl_Mono.am
index b40cacf69e..247f053370 100644
--- a/src/Makefile_Efl_Mono.am
+++ b/src/Makefile_Efl_Mono.am
@@ -37,14 +37,17 @@ efl_eldbus_mono_files = \
 efl_ecore_evas_mono_files = \
bindings/mono/ecore_evas_mono/ecore_evas.cs
 
-lib_efl_mono_libefl_mono_dll_SOURCES = \
+lib_efl_mono_libefl_mono_dll_sources = \
bindings/mono/efl_mono/efl_all.cs \
-   $(builddir)/bindings/mono/efl_mono/efl_libs.cs \
$(efl_eo_mono_files) \
$(efl_eina_mono_files) \
$(efl_eldbus_mono_files) \
$(efl_ecore_evas_mono_files)
 
+EXTRA_DIST2 += \
+bindings/mono/efl_mono/efl_libs.cs.in \
+bindings/mono/efl_mono/efl_libs.csv.in
+
 if HAVE_CSHARP
 
 bin_PROGRAMS += bin/eolian_mono/eolian_mono
@@ -151,10 +154,16 @@ lib/efl/interfaces/efl_text_properties.eo.cs \
 $(evas_canvas_eolian_type_files:%.eot=%.eot.cs) \
 lib/eo/eina_types.eot.cs
 
+efl_mono_files_gen =\
+$(lib_efl_mono_libefl_mono_dll_sources) \
+$(efl_eolian_mono_files) \
+$(builddir)/bindings/mono/efl_mono/efl_libs.cs
+
+
 installed_eflmonomainheadersdir = $(includedir)/efl-mono-@VMAJ@/
-nodist_installed_eflmonomainheaders_DATA = $(efl_eolian_files:%.eo=%.eo.cs)
+nodist_installed_eflmonomainheaders_DATA = $(efl_eolian_files:%.eo=%.eo.cs) 
$(builddir)/bindings/mono/efl_mono/efl_libs.csv
 
-CLEANFILES += $(efl_eolian_mono_files)
+CLEANFILES += $(efl_mono_files_gen)
 
 if HAVE_WIN32
 
@@ -180,13 +189,25 @@ lib_efl_mono_libeflcustomexportsmono_la_LIBADD = 
@EFL_CUSTOM_EXPORTS_MONO_LIBS@
 lib_efl_mono_libeflcustomexportsmono_la_DEPENDENCIES = 
@EFL_CUSTOM_EXPORTS_MONO_INTERNAL_LIBS@
 
 #Efl Mono - C Sharp binding library
-bin_PROGRAMS += lib/efl_mono/libefl_mono.dll
 
-
-lib/efl_mono/libefl_mono.dll: $(lib_efl_mono_libefl_mono_dll_SOURCES) 
lib/efl_mono/$(am__dirstamp) $(efl_eolian_mono_files) 
lib/efl_mono/libefl_mono.dll.config
+lib/efl_mono/libefl_mono.dll: $(efl_mono_files_dist) 
lib/efl_mono/$(am__dirstamp) $(efl_mono_files_gen) 
lib/efl_mono/libefl_mono.dll.config
@rm -f lib/efl_mono/libefl_mono.dll
$(AM_V_MCS) $(MCS) $(MCS_FLAGS) -out:$@ -t:library $(filter %.cs, $(^))
 
+if HAVE_WIN32
+efl_mono_dll_dest = $(DESTDIR)$(bindir)
+else
+efl_mono_dll_dest = $(DESTDIR)$(libdir)/efl-mono-@VMAJ@
+endif
+
+EFL_INSTALL_EXEC_HOOK += \
+$(MKDIR_P) $(efl_mono_dll_dest); \
+cp -f $(srcdir)/lib/efl_mono/libefl_mono.dll 
$(efl_mono_dll_dest)/libefl_mono.dll; \
+cp -f $(srcdir)/bindings/mono/efl_mono/efl_libs.csv 
$(DESTDIR)$(datadir)/efl_mono/efl_libs.csv;
+
+all-local: lib/efl_mono/libefl_mono.dll
+
+
 ### MSBuild
 
 bin_PROGRAMS += bin/efl_mono_msbuild_gen/efl_mono_msbuild_gen
@@ -210,7 +231,7 @@ bin_efl_mono_msbuild_gen_efl_mono_msbuild_gen_DEPENDENCIES 
= @USE_EOLIAN_INTERNA
 include Makefile_Efl_Mono_MSBuild_Gen_Helper.am
 
 # Efl Mono DLL for MSBuild
-../libefl_mono.csproj: $(lib_efl_mono_libefl_mono_dll_SOURCES) 
lib/efl_mono/$(am__dirstamp) $(efl_eolian_mono_files) 
$(_EFL_MONO_MSBUILD_GEN_DEP)
+../libefl_mono.csproj: $(efl_mono_files_dist) lib/efl_mono/$(am__dirstamp) 
$(efl_mono_files_gen) $(_EFL_MONO_MSBUILD_GEN_DEP)
@rm -f $@
$(EFL_MONO_MSBUILD_GEN) $(MSBUILD_GEN_FLAGS) -o $@ -a libefl_mono.dll 
-t library $(patsubst %.cs,src/%.cs,$(filter %.cs, $(^)))
 
@@ -361,10 +382,12 @@ lib/efl_mono/libefl_mono.dll.config:
echo "  " >> 
$@
echo "" >> $@
 
-tests/efl_mono/efl_mono.exe: $(tests_efl_mono_efl_mono_exe_SOURCES) 
tests/efl_mono/$(am__dirstamp) lib/efl_mono/libefl_mono.dll 
tests/efl_mono/libefl_mono_test.dll
-   @rm -f tests/efl_mono/efl_mono_exe
+tests/efl_mono/efl_mono.exe$(EXEEXT): $(tests_efl_mono_efl_mono_exe_SOURCES) 
tests/efl_mono/$(am__dirstamp) lib/efl_mono/libefl_mono.dll 
tests/efl_mono/libefl_mono_test.dll
+   @rm -f tests/efl_mono/efl_mono.exe
$(AM_V_MCS) $(MCS) $(MCS_FLAGS) 
-r:$(abs_top_builddir)/src/lib/efl_mono/libefl_mono.dll 
-r:$(abs_top_builddir)/src/tests/efl_mono/libefl_mono_test.dll -out:$@ $(filter 
%.cs, $(^))
 
+###EXTRA_DIST2 += $(tests_efl_mono_efl_mono_exe_srcs)
+
 # Rule for generating the .cs files
 tests/efl_mono/%.eo.cs: tests/efl_mono/%.eo $(_EOLIAN_MONO_DEP)
$(AM_V_EOLMONO) \
diff --git a/src/examples/efl_mono/Makefile.am 

[EGIT] [core/efl] master 04/04: eolian-cxx: Fix distributing eo files in examples

2017-12-14 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=0322ff14a6c8d037460085e16a0746e059c52dd4

commit 0322ff14a6c8d037460085e16a0746e059c52dd4
Author: Felipe Magno de Almeida 
Date:   Thu Dec 14 18:19:54 2017 -0200

eolian-cxx: Fix distributing eo files in examples
---
 src/examples/eolian_cxx/Makefile.am | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/examples/eolian_cxx/Makefile.am 
b/src/examples/eolian_cxx/Makefile.am
index fc9ec9045d..16cddb3410 100644
--- a/src/examples/eolian_cxx/Makefile.am
+++ b/src/examples/eolian_cxx/Makefile.am
@@ -79,7 +79,7 @@ SRCS = \
eolian_cxx_simple_01.cc \
eolian_cxx_callbacks_01.cc \
ns_colourable.eo \
-   ns_colourablesquare.eo
+   ns_colourablesquare.eo \
$(IMPL)
 
 if HAVE_CXX
@@ -121,7 +121,9 @@ eolian_cxx_callbacks_01_SOURCES = eolian_cxx_callbacks_01.cc
 endif
 
 DATA_FILES = Makefile.examples $(ECXX_EXAMPLE_EOS)
-EXTRA_DIST = $(DATA_FILES)
+EXTRA_DIST = $(DATA_FILES) \
+ns_colourable.eo \
+ns_colourablesquare.eo
 
 %.eo.hh: %.eo
$(AM_V_EOLCXX)$(EOLIAN_CXX) $(EOLIAN_FLAGS) -I${abs_srcdir} -o $@ $<

-- 




[EGIT] [core/efl] master 01/04: efl-cxx: Fixes in automake Makefiles

2017-12-14 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=f86906587359b890142d467e0b9641ca93570f6e

commit f86906587359b890142d467e0b9641ca93570f6e
Author: Felipe Magno de Almeida 
Date:   Wed Dec 13 21:38:35 2017 -0200

efl-cxx: Fixes in automake Makefiles
---
 src/Makefile_Cxx.am | 2 +-
 src/examples/eolian_cxx/Makefile.am | 6 +-
 2 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/src/Makefile_Cxx.am b/src/Makefile_Cxx.am
index ab4b55204b..8f929d2f8e 100644
--- a/src/Makefile_Cxx.am
+++ b/src/Makefile_Cxx.am
@@ -105,7 +105,7 @@ nodist_installed_elementarycxxmainheaders_DATA = 
$(elementary_eolian_cxx_hh) $(e
 lib/elementary/Elementary.eo.hh
 nodist_installed_eldbuscxxmainheaders_DATA = $(eldbus_eolian_cxx_hh) 
$(eldbus_eolian_cxx_impl_hh) lib/eldbus/Eldbus_Model.eo.hh
 
-CLEANFILES = $(eo_eolian_cxx_hh) $(eo_eolian_cxx_impl_hh)
+CLEANFILES += $(eo_eolian_cxx_hh) $(eo_eolian_cxx_impl_hh)
 
 ### Elementary C++
 
diff --git a/src/examples/eolian_cxx/Makefile.am 
b/src/examples/eolian_cxx/Makefile.am
index a908170856..fc9ec9045d 100644
--- a/src/examples/eolian_cxx/Makefile.am
+++ b/src/examples/eolian_cxx/Makefile.am
@@ -78,13 +78,9 @@ IMPL = \
 SRCS = \
eolian_cxx_simple_01.cc \
eolian_cxx_callbacks_01.cc \
-   $(IMPL)
-
-ECXX_EXAMPLE_EOS = \
ns_colourable.eo \
ns_colourablesquare.eo
-
-dist_example_eos_SOURCES = $(ECXX_EXAMPLE_EOS)
+   $(IMPL)
 
 if HAVE_CXX
 GENERATED = \

-- 




[EGIT] [core/efl] master 03/04: efl-mono: Add workaround for efl_ui_list

2017-12-14 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=61af82f21de7a4e221df4e36d5fc84f6fa1dada4

commit 61af82f21de7a4e221df4e36d5fc84f6fa1dada4
Author: Felipe Magno de Almeida 
Date:   Thu Dec 14 18:04:14 2017 -0200

efl-mono: Add workaround for efl_ui_list

Efl_Ui_List doesn't properly define, as it should, the class 
Efl_Ui_List_SegArray. This workaround allows the mono  binding compilation in 
spite of this.
---
 src/bin/eolian_mono/eolian/mono/function_blacklist.hh | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/bin/eolian_mono/eolian/mono/function_blacklist.hh 
b/src/bin/eolian_mono/eolian/mono/function_blacklist.hh
index 314235b5dc..b2d712c6ac 100644
--- a/src/bin/eolian_mono/eolian/mono/function_blacklist.hh
+++ b/src/bin/eolian_mono/eolian/mono/function_blacklist.hh
@@ -40,7 +40,10 @@ inline bool is_function_blacklisted(std::string const& 
c_name)
 || c_name == "efl_access_image_description_set"
 || c_name == "efl_access_component_layer_get" // duplicated signature
 || c_name == "efl_access_component_alpha_get"
+|| c_name == "efl_access_component_size_get"
 || c_name == "efl_ui_spin_button_loop_get"
+|| c_name == "efl_ui_list_model_size_get"
+|| c_name == "efl_ui_list_relayout_layout_do"
 ;
 }
 

-- 




[EGIT] [core/efl] master 01/01: evas: forgotten adjustement to handle the output geometry offset.

2017-12-14 Thread Cedric BAIL
cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=dd4be85d7e7af6c69d2424181fd904e225d4feea

commit dd4be85d7e7af6c69d2424181fd904e225d4feea
Author: Cedric Bail 
Date:   Thu Dec 14 10:54:10 2017 -0800

evas: forgotten adjustement to handle the output geometry offset.
---
 src/lib/evas/canvas/evas_render.c | 4 
 1 file changed, 4 insertions(+)

diff --git a/src/lib/evas/canvas/evas_render.c 
b/src/lib/evas/canvas/evas_render.c
index 1409f39ebb..2a46387737 100644
--- a/src/lib/evas/canvas/evas_render.c
+++ b/src/lib/evas/canvas/evas_render.c
@@ -3424,6 +3424,10 @@ evas_render_updates_internal(Evas *eo_e,
 
   haveup = EINA_TRUE;
 
+  /* adjust the rendering rectangle to the output offset */
+  ux += out->geometry.x;
+  uy += out->geometry.y;
+
   /* phase 7.1 render every snapshot that needs to be updated
  for this part of the screen */
   eina_evlog("+render_snapshots", eo_e, 0.0, NULL);

-- 




[EGIT] [core/efl] master 01/01: elementary: fix building agaiunst efl - missing installed headers

2017-12-14 Thread Carsten Haitzler
raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=ec2b6e4d67e71bce7c5d60ec90dcf302802dba5f

commit ec2b6e4d67e71bce7c5d60ec90dcf302802dba5f
Author: Carsten Haitzler (Rasterman) 
Date:   Thu Dec 14 23:56:48 2017 +0900

elementary: fix building agaiunst efl - missing installed headers

yet again a fix needed for something that should have been tested
BEFORE a push. build stuff AGAINST efl. seriously. do you forget to
put your pants on before you leave your home? is it that hard to do
something as simple as BUILD AGAINST EFL before a push if any commit
you did made changes that MIGHT affect that? serousoly? do i have to
remind peolpe to put their pants on? i already have done this several
times recently. thigns that would have been caught by simply building
against efl after changes and before a push. this is a basic thing to
do like putting your pants on. do it.
---
 src/Makefile_Elementary.am | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am
index d674d299c0..6e4b3bee82 100644
--- a/src/Makefile_Elementary.am
+++ b/src/Makefile_Elementary.am
@@ -60,6 +60,7 @@ elm_public_eolian_files = \
lib/elementary/efl_ui_focus_util.eo \
lib/elementary/efl_ui_button_part.eo \
lib/elementary/efl_ui_flip_part.eo \
+   lib/elementary/efl_ui_layout_factory.eo \
lib/elementary/efl_ui_layout_part.eo \
lib/elementary/efl_ui_layout_part_box.eo \
lib/elementary/efl_ui_layout_part_content.eo \
@@ -67,6 +68,10 @@ elm_public_eolian_files = \
lib/elementary/efl_ui_layout_part_table.eo \
lib/elementary/efl_ui_layout_part_bg.eo \
lib/elementary/efl_ui_layout_part_legacy.eo \
+   lib/elementary/efl_ui_list.eo \
+   lib/elementary/efl_ui_list_model.eo \
+   lib/elementary/efl_ui_list_pan.eo \
+   lib/elementary/efl_ui_list_relayout.eo \
lib/elementary/efl_ui_multibuttonentry_part.eo \
lib/elementary/efl_ui_panes_part.eo \
lib/elementary/efl_ui_progressbar_part.eo \
@@ -211,12 +216,7 @@ elm_legacy_eolian_files = \
lib/elementary/elm_slideshow_item.eo \
lib/elementary/elm_table.eo \
lib/elementary/elm_thumb.eo \
-   lib/elementary/efl_ui_list.eo \
-   lib/elementary/efl_ui_list_pan.eo \
-   lib/elementary/efl_ui_list_model.eo \
-   lib/elementary/efl_ui_list_relayout.eo \
lib/elementary/efl_ui_list_precise_layouter.eo \
-   lib/elementary/efl_ui_layout_factory.eo \
$(NULL)
 
 elm_eolian_type_files = \

-- 




[EGIT] [core/efl] master 03/03: eolian: remove _cunit and prepare for returning actual units

2017-12-14 Thread Daniel Kolesa
q66 pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=9aaa5cf83915007ed43acabeb8ab3171b8ec23d1

commit 9aaa5cf83915007ed43acabeb8ab3171b8ec23d1
Author: Daniel Kolesa 
Date:   Thu Dec 14 17:18:32 2017 +0100

eolian: remove _cunit and prepare for returning actual units
---
 src/lib/eolian/eo_lexer.c| 11 +++
 src/lib/eolian/eo_parser.c   | 36 +++
 src/lib/eolian/eo_parser.h   |  2 +-
 src/lib/eolian/eolian_database.c | 63 ++--
 src/lib/eolian/eolian_database.h |  2 +-
 5 files changed, 61 insertions(+), 53 deletions(-)

diff --git a/src/lib/eolian/eo_lexer.c b/src/lib/eolian/eo_lexer.c
index afe7cc8a4c..80f08eac2c 100644
--- a/src/lib/eolian/eo_lexer.c
+++ b/src/lib/eolian/eo_lexer.c
@@ -1035,6 +1035,12 @@ eo_lexer_set_input(Eo_Lexer *ls, Eolian *state, const 
char *source)
ls->icolumn = ls->column = -1;
ls->decpoint= '.';
next_char(ls);
+
+   Eolian_Unit *ncunit = calloc(1, sizeof(Eolian_Unit));
+   ls->unit = ncunit;
+   database_unit_init(state, ncunit);
+   eina_hash_add(state->units, ls->filename, ncunit);
+
if (ls->current != 0xEF)
  return;
next_char(ls);
@@ -1044,11 +1050,6 @@ eo_lexer_set_input(Eo_Lexer *ls, Eolian *state, const 
char *source)
if (ls->current != 0xBF)
  return;
next_char(ls);
-
-   Eolian_Unit *ncunit = calloc(1, sizeof(Eolian_Unit));
-   ls->unit = ncunit;
-   database_unit_init(state, ncunit, ls->filename);
-   eina_hash_add(state->units, ls->filename, ncunit);
 }
 
 static void
diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c
index e8cecef038..71e1d7ee55 100644
--- a/src/lib/eolian/eo_parser.c
+++ b/src/lib/eolian/eo_parser.c
@@ -683,7 +683,7 @@ _parse_dep(Eo_Lexer *ls, const char *fname, const char 
*name)
if (eina_hash_find(ls->state->parsing, fname))
  return NULL;
Eolian_Class *cl = NULL;
-   if (!eo_parser_database_fill(ls->state, fname, EINA_FALSE, ) || !cl)
+   if (!eo_parser_database_fill(ls->unit, fname, EINA_FALSE, ) || !cl)
  {
 char buf[PATH_MAX];
 eo_lexer_context_restore(ls);
@@ -2496,19 +2496,30 @@ end:
return ret;
 }
 
-Eina_Bool
-eo_parser_database_fill(Eolian *state, const char *filename, Eina_Bool eot, 
Eolian_Class **fcl)
+Eolian_Unit *
+eo_parser_database_fill(Eolian_Unit *parent, const char *filename, Eina_Bool 
eot, Eolian_Class **fcl)
 {
-   Eolian_Class *cl = eina_hash_find(state->parsed, filename);
+   Eolian_Class *cl = eina_hash_find(parent->state->parsed, filename);
if (cl)
  {
 if (!eot && fcl) *fcl = cl;
-return EINA_TRUE;
+const char *fsl = strrchr(filename, '/');
+const char *bsl = strrchr(filename, '\\');
+const char *fname = NULL;
+if (fsl || bsl)
+  fname = eina_stringshare_add((fsl > bsl) ? (fsl + 1) : (bsl + 1));
+if (fname)
+  {
+ Eolian_Unit *ret = eina_hash_find(parent->state->units, fname);
+ eina_stringshare_del(fname);
+ return ret;
+  }
+return NULL;
  }
 
-   eina_hash_set(state->parsing, filename, (void *)EINA_TRUE);
+   eina_hash_set(parent->state->parsing, filename, (void *)EINA_TRUE);
 
-   Eo_Lexer *ls = eo_lexer_new(state, filename);
+   Eo_Lexer *ls = eo_lexer_new(parent->state, filename);
if (!ls)
  {
 _eolian_log("unable to create lexer for file '%s'", filename);
@@ -2544,14 +2555,15 @@ eo_parser_database_fill(Eolian *state, const char 
*filename, Eina_Bool eot, Eoli
if (fcl) *fcl = cl;
 
 done:
-   eina_hash_set(state->parsed, filename, eot ? (void *)EINA_TRUE : cl);
-   eina_hash_set(state->parsing, filename, (void *)EINA_FALSE);
+   eina_hash_set(ls->state->parsed, filename, eot ? (void *)EINA_TRUE : cl);
+   eina_hash_set(ls->state->parsing, filename, (void *)EINA_FALSE);
+   eina_hash_add(parent->children, filename, ls->unit);
 
eo_lexer_free(ls);
-   return EINA_TRUE;
+   return ls->unit;
 
 error:
-   eina_hash_set(state->parsing, filename, (void *)EINA_FALSE);
+   eina_hash_set(ls->state->parsing, filename, (void *)EINA_FALSE);
eo_lexer_free(ls);
-   return EINA_FALSE;
+   return NULL;
 }
diff --git a/src/lib/eolian/eo_parser.h b/src/lib/eolian/eo_parser.h
index 8196c5bf9d..f7422e4704 100644
--- a/src/lib/eolian/eo_parser.h
+++ b/src/lib/eolian/eo_parser.h
@@ -3,6 +3,6 @@
 
 #include "eo_lexer.h"
 
-Eina_Bool eo_parser_database_fill(Eolian *state, const char *filename, 
Eina_Bool eot, Eolian_Class **cl);
+Eolian_Unit *eo_parser_database_fill(Eolian_Unit *parent, const char 
*filename, Eina_Bool eot, Eolian_Class **cl);
 
 #endif /* __EO_PARSER_H__ */
\ No newline at end of file
diff --git a/src/lib/eolian/eolian_database.c b/src/lib/eolian/eolian_database.c
index 360d979d77..bf1cd50c10 100644
--- a/src/lib/eolian/eolian_database.c
+++ b/src/lib/eolian/eolian_database.c
@@ -11,8 +11,6 @@
 Eina_Hash *_decls  

[EGIT] [core/efl] master 01/03: eolian: store unit inside lexer

2017-12-14 Thread Daniel Kolesa
q66 pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=f9868b541ea57ade726e7d474d8d80c2b298a283

commit f9868b541ea57ade726e7d474d8d80c2b298a283
Author: Daniel Kolesa 
Date:   Thu Dec 14 16:38:35 2017 +0100

eolian: store unit inside lexer
---
 src/lib/eolian/eo_lexer.c | 1 +
 src/lib/eolian/eo_lexer.h | 2 ++
 2 files changed, 3 insertions(+)

diff --git a/src/lib/eolian/eo_lexer.c b/src/lib/eolian/eo_lexer.c
index 1aa02ae777..afe7cc8a4c 100644
--- a/src/lib/eolian/eo_lexer.c
+++ b/src/lib/eolian/eo_lexer.c
@@ -1046,6 +1046,7 @@ eo_lexer_set_input(Eo_Lexer *ls, Eolian *state, const 
char *source)
next_char(ls);
 
Eolian_Unit *ncunit = calloc(1, sizeof(Eolian_Unit));
+   ls->unit = ncunit;
database_unit_init(state, ncunit, ls->filename);
eina_hash_add(state->units, ls->filename, ncunit);
 }
diff --git a/src/lib/eolian/eo_lexer.h b/src/lib/eolian/eo_lexer.h
index e6f3249dcd..9ca577101b 100644
--- a/src/lib/eolian/eo_lexer.h
+++ b/src/lib/eolian/eo_lexer.h
@@ -168,6 +168,8 @@ typedef struct _Eo_Lexer
const char  *stream_line;
/* a pointer to the state this lexer belongs to */
Eolian  *state;
+   /* the unit being filled during current parsing */
+   Eolian_Unit *unit;
/* this is jumped to when an error happens */
jmp_buf  err_jmp;
 

-- 




[EGIT] [core/efl] master 02/03: eolian: remove parent info from units (actually doesn't make sense)

2017-12-14 Thread Daniel Kolesa
q66 pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=2259b6f16fc3f7cd186cc4966fb53efc12761938

commit 2259b6f16fc3f7cd186cc4966fb53efc12761938
Author: Daniel Kolesa 
Date:   Thu Dec 14 16:45:13 2017 +0100

eolian: remove parent info from units (actually doesn't make sense)
---
 src/lib/eolian/eolian_database.c | 1 -
 src/lib/eolian/eolian_database.h | 1 -
 2 files changed, 2 deletions(-)

diff --git a/src/lib/eolian/eolian_database.c b/src/lib/eolian/eolian_database.c
index ee016dd016..360d979d77 100644
--- a/src/lib/eolian/eolian_database.c
+++ b/src/lib/eolian/eolian_database.c
@@ -549,7 +549,6 @@ database_unit_init(Eolian *state, Eolian_Unit *unit, 
Eina_Stringshare *fname)
if (fname)
  {
 Eolian_Unit *ocunit = _cunit;
-unit->parent = ocunit;
 if (ocunit)
   eina_hash_add(ocunit->children, fname, unit);
  }
diff --git a/src/lib/eolian/eolian_database.h b/src/lib/eolian/eolian_database.h
index 56fabc099e..6b4a06b0f7 100644
--- a/src/lib/eolian/eolian_database.h
+++ b/src/lib/eolian/eolian_database.h
@@ -38,7 +38,6 @@ extern Eina_Hash *_declsf;
 struct _Eolian_Unit
 {
Eolian*state;
-   Eolian_Unit   *parent;
Eina_Hash *children;
Eina_Hash *classes;
Eina_Hash *globals;

-- 




[EGIT] [website/www-content] master 01/01: Wiki page general changed with summary [] by Andrew Williams

2017-12-14 Thread Andrew Williams
WWW-www.enlightenment.org pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=7ee633a347472dc7109b9d0a0dbf873ba1f8dbd5

commit 7ee633a347472dc7109b9d0a0dbf873ba1f8dbd5
Author: Andrew Williams 
Date:   Thu Dec 14 06:29:53 2017 -0800

Wiki page general changed with summary [] by Andrew Williams
---
 pages/develop/api-include/reference/general.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pages/develop/api-include/reference/general.txt 
b/pages/develop/api-include/reference/general.txt
index 9bced8a71..e2f7c6599 100644
--- a/pages/develop/api-include/reference/general.txt
+++ b/pages/develop/api-include/reference/general.txt
@@ -4,4 +4,4 @@ The Enlightenment Foundation Libraries (EFL) cover a wide range 
of functions inc
 
 The Unified EFL API (Currently in BETA) is a reworking of the old 
many-libraries API into a single (Efl) namespace. It is build on top of Eo 
(Enlightenment Object) class definitions to provide inheritance of objects and 
to bind more closely to higher level languages.
 
-The Efl API is split into three main areas: ''Efl_Core'', ''Efl_Net'' and 
''Efl_Ui'', each encompassing the one before so you can include a single 
reference in your app. For basic offline applications use Efl_Core, for 
additional network and connectivity use Efl_Net and if you are building a 
graphical application then use Efl_Ui. In the C language (the default for our 
this documentation) you will also see reference to Eina which provides common 
data constructs missing in low level languages.
\ No newline at end of file
+The Efl API is split into three main areas: ''Efl_Core'', ''Efl_Net'' and 
''Efl_Ui'', each encompassing the one before so you can include a single 
reference in your app. For basic offline applications use Efl_Core, for 
additional network and connectivity use Efl_Net and if you are building a 
graphical application then use Efl_Ui. In the C language (the default for this 
documentation) you will also see reference to Eina which provides common data 
constructs missing in low level languages.
\ No newline at end of file

-- 




[EGIT] [core/efl] master 01/01: docs: Don't ignore eo.legacy.h files in doxygen

2017-12-14 Thread Andy Williams
ajwillia-ms pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=6df492b6b75041ec3154fa27079bb54fd8458f9b

commit 6df492b6b75041ec3154fa27079bb54fd8458f9b
Author: Andy Williams 
Date:   Thu Dec 14 14:28:19 2017 +

docs: Don't ignore eo.legacy.h files in doxygen
---
 doc/Doxyfile.in | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/doc/Doxyfile.in b/doc/Doxyfile.in
index 7f2db3fce0..970156898b 100644
--- a/doc/Doxyfile.in
+++ b/doc/Doxyfile.in
@@ -662,7 +662,9 @@ EXCLUDE_SYMLINKS   = NO
 # for example use the pattern */test/*
 
 EXCLUDE_PATTERNS   = *_private* \
- */efl_* \
+ */efl_*.eo.c \
+ */efl_*.eo.h \
+ */efl_*.eot.h \
  */Efl_*
 
 # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names

-- 




[EGIT] [website/www-content] master 01/01: Wiki page osx-start.md changed with summary [created] by Nate Drake

2017-12-14 Thread Nate Drake
WWW-www.enlightenment.org pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=be1a7764c196df4a84264a270e6b4a32fbbfbc6f

commit be1a7764c196df4a84264a270e6b4a32fbbfbc6f
Author: Nate Drake 
Date:   Thu Dec 14 06:14:11 2017 -0800

Wiki page osx-start.md changed with summary [created] by Nate Drake
---
 pages/docs/playground/osx-start.md.txt | 114 +
 1 file changed, 114 insertions(+)

diff --git a/pages/docs/playground/osx-start.md.txt 
b/pages/docs/playground/osx-start.md.txt
new file mode 100644
index 0..cc0f93f8b
--- /dev/null
+++ b/pages/docs/playground/osx-start.md.txt
@@ -0,0 +1,114 @@
+~~Title: EFL on Mac OS X~~
+~~NOCACHE~~
+
+
+If you are coming here for Enlightenment (the desktop manager) on Mac OS X... 
sorry but Enlightenment is not supported on Mac OS X... and it is not planned 
in a near future (but any help is very welcomed).
+
+
+The Enlightenment Foundation's projects mostly targets Linux platforms, 
therefore not everything work on Mac OS X works the first time. This is due to:
+  * the specificities of the Operating System (kernel+userland);
+  * the fact there are a very few Enlightened OS X users :-\
+
+This document explains how to install the EFL which are key projects to 
install anything else made by the Enlightenment Foundation.
+
+
+== Mac OS X Homebrew Packages (for EFL USERS) ==
+
+Homebrew is a package manager for Mac OS X. See at http://brew.sh how to 
install Homebrew if it isn't already installed.
+Then, just execute:
+
+
+brew update# To make sure you have the latest versions
+brew install efl   # To install EFL
+
+
+And that's it! Enjoy your freshly distributed EFL :-).
+The distributed version of EFL is 
[[http://braumeister.org/formula/efl|1.20.4]].
+
+
+== Manual Installation (for EFL DEVELOPERS) ==
+
+= Setting up the environment =
+
+You need to have the OS X CLT (Command-Line Tools) first, then install the EFL 
dependancies. The easiest way is by using a package manager. 
[[http://brew.sh|Homebrew]] is assumed to be the package manager.
+
+
+The CTL are not bundled with Xcode. Don't assume that they are installed if 
Xcode is installed.
+
+
+To install the CTL, you should process as it follows:
+  * download the latest version of Xcode on the Mac App Store;
+  * run ''xcode-select --install'' in a terminal to install the CLT.
+
+
+If you want to have the very latest version of EFL, here is the procedure:
+  * install the dependancies;
+  * configure the source;
+  * compile the sources and install them.
+
+= Dependancies with Homebrew =
+
+
+brew install autoconf automake libtool autoconf-archive gettext check 
pkg-config luajit jpeg freetype fribidi fontconfig giflib libtiff glib dbus 
libsndfile bullet libspectre libraw librsvg poppler gstreamer gst-plugins-good 
pulseaudio
+brew migrate dbus
+mkdir -p ~/Library/LaunchAgents
+ln -sfv /usr/local/opt/dbus/*.plist ~/Library/LaunchAgents
+launchctl load ~/Library/LaunchAgents/org.freedesktop.dbus-session.plist
+
+
+You need to add ''autopoint'' to your ''$PATH'' if you want to use gettext. 
Write the line below in your ''$HOME/.profile'' or similar file.
+
+
+export PATH="$(brew --prefix gettext)/bin:$PATH"
+
+
+= OpenSSL handling =
+
+Since Mac OS X El Capitan, Apple does not distribute OpenSSL headers anymore.
+It is necessary to install OpenSLL manually through homebrew:
+
+
+brew install openssl
+brew link openssl --force
+
+
+and to add flags to your bashrc (or equivalent):
+
+
+export CFLAGS="-I/usr/local/opt/openssl/include $CFLAGS"
+export LDFLAGS="-L/usr/local/opt/openssl/lib $LDFLAGS"
+
+
+= Modifying your linker flags =
+
+
+This step is **required** if you wish to build Mac OS X App Bundles (i.e. 
''.app''). Otherwise, you can safely ignore this section.
+
+
+''osx-packager'' is a python package initially developed at Open Wide to
+generate App Bundles and/or DMG files for easy distribution.
+It is available at 
[[https://git.enlightenment.org/devs/jayji/osx-packager.git]].
+
+To make it work, you **MUST** provide custom linker flags:
+
+
+export LDFLAGS="-Wl,-headerpad_max_install_names ${LDFLAGS}"
+
+
+= Configuring, Building and Installing EFL =
+
+Installing dependancies on OS X is painful, but now you did it (congrats'), 
you can grab the sources from the git repository:
+
+
+git clone https://git.enlightenment.org/core/efl.git # Get the sources
+cd efl # Go to repository you cloned
+./autogen.sh --disable-cxx-bindings
+make -j $(nproc) # Compile
+sudo make -j $(nproc) install # Install
+
+
+
+=== Additional Resources ===
+
+  * Enlightenment Developer Days 2016 Slides (EFL & Mac OS X slides): 
https://phab.enlightenment.org/F36470.
+  * Internal Wiki Page. Contains “legacy” information: 
https://phab.enlightenment.org/w/osx/.
\ No newline at end of file

-- 




[EGIT] [core/enlightenment] master 01/01: e come client - actually set placed more generally...

2017-12-14 Thread Carsten Haitzler
raster pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=4f26b4b1ddac297f1a320a921d11d916b305359c

commit 4f26b4b1ddac297f1a320a921d11d916b305359c
Author: Carsten Haitzler (Rasterman) 
Date:   Sun Nov 26 00:30:58 2017 +0900

e come client - actually set placed more generally...

previous fix... was not general enough. put this outside the if that
only places if props change or size pos hints need fetching.

@fix
---
 src/bin/e_comp_x.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c
index 1c18f9ead..cbc3ec773 100644
--- a/src/bin/e_comp_x.c
+++ b/src/bin/e_comp_x.c
@@ -3783,6 +3783,7 @@ _e_comp_x_hook_client_fetch(void *d EINA_UNUSED, E_Client 
*ec)
 ec->icccm.fetch.hints = 0;
 rem_change = 1;
  }
+   if (ec->override) ec->placed = EINA_TRUE;
if (ec->changes.prop || ec->icccm.fetch.size_pos_hints)
  {
 Eina_Bool request_pos;
@@ -3803,7 +3804,6 @@ _e_comp_x_hook_client_fetch(void *d EINA_UNUSED, E_Client 
*ec)
  >icccm.max_aspect))
   {
  ec->icccm.request_pos = request_pos;
- if (ec->override) ec->placed = EINA_TRUE;
  if (request_pos && (!ec->placed) && (!ec->re_manage))
{
   Ecore_X_Window_Attributes *att;

-- 




[EGIT] [website/www-content] master 01/01: Wiki page general changed with summary [formatting] by Andrew Williams

2017-12-14 Thread Andrew Williams
WWW-www.enlightenment.org pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=13fc34c61d26a2b2714007facd311f5ac16f1e25

commit 13fc34c61d26a2b2714007facd311f5ac16f1e25
Author: Andrew Williams 
Date:   Thu Dec 14 05:42:42 2017 -0800

Wiki page general changed with summary [formatting] by Andrew Williams
---
 pages/develop/api-include/reference/general.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pages/develop/api-include/reference/general.txt 
b/pages/develop/api-include/reference/general.txt
index 62012fe31..9bced8a71 100644
--- a/pages/develop/api-include/reference/general.txt
+++ b/pages/develop/api-include/reference/general.txt
@@ -4,4 +4,4 @@ The Enlightenment Foundation Libraries (EFL) cover a wide range 
of functions inc
 
 The Unified EFL API (Currently in BETA) is a reworking of the old 
many-libraries API into a single (Efl) namespace. It is build on top of Eo 
(Enlightenment Object) class definitions to provide inheritance of objects and 
to bind more closely to higher level languages.
 
-The Efl API is split into 3 main areas Efl_Core, Efl_Net and Efl_Ui, each 
encompassing the one before so you can include a single reference in your app. 
For basic offline applications use Efl_Core, for additional network and 
connectivity use Efl_Net and if you are building a graphical application then 
use Efl_Ui. In the C language (the default for our this documentation) you will 
also see reference to Eina which provides common data constructs missing in low 
level languages.
\ No newline at end of file
+The Efl API is split into three main areas: ''Efl_Core'', ''Efl_Net'' and 
''Efl_Ui'', each encompassing the one before so you can include a single 
reference in your app. For basic offline applications use Efl_Core, for 
additional network and connectivity use Efl_Net and if you are building a 
graphical application then use Efl_Ui. In the C language (the default for our 
this documentation) you will also see reference to Eina which provides common 
data constructs missing in low level languages.
\ No newline at end of file

-- 




[EGIT] [core/efl] master 02/02: eeze: Remove unused device variables

2017-12-14 Thread Christopher Michael
devilhorns pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=af4af300af748f9090971409f733bff641537469

commit af4af300af748f9090971409f733bff641537469
Author: Chris Michael 
Date:   Thu Dec 14 07:35:07 2017 -0500

eeze: Remove unused device variables

As we do not ever use the udev_devices created from
udev_device_new_from_syspath in these functions, remove them.

@fix

Signed-off-by: Chris Michael 
---
 src/lib/eeze/eeze_udev_find.c | 16 ++--
 1 file changed, 2 insertions(+), 14 deletions(-)

diff --git a/src/lib/eeze/eeze_udev_find.c b/src/lib/eeze/eeze_udev_find.c
index 35cdbe83c5..3b1e5ef926 100644
--- a/src/lib/eeze/eeze_udev_find.c
+++ b/src/lib/eeze/eeze_udev_find.c
@@ -328,7 +328,6 @@ eeze_udev_find_by_filter(const char *subsystem,
 {
_udev_enumerate *en;
_udev_list_entry *devs, *cur;
-   _udev_device *device;
const char *devname;
Eina_List *ret = NULL;
 
@@ -350,15 +349,11 @@ eeze_udev_find_by_filter(const char *subsystem,
udev_list_entry_foreach(cur, devs)
  {
 devname = udev_list_entry_get_name(cur);
-device = udev_device_new_from_syspath(udev, devname);
 
-if (name)
-  if (!strstr(devname, name))
-goto out;
+if (name && (!strstr(devname, name)))
+  continue;
 
 ret = eina_list_append(ret, eina_stringshare_add(devname));
-out:
-udev_device_unref(device);
  }
udev_enumerate_unref(en);
return ret;
@@ -370,7 +365,6 @@ eeze_udev_find_by_sysattr(const char *sysattr,
 {
_udev_enumerate *en;
_udev_list_entry *devs, *cur;
-   _udev_device *device;
const char *devname;
Eina_List *ret = NULL;
 
@@ -388,9 +382,7 @@ eeze_udev_find_by_sysattr(const char *sysattr,
udev_list_entry_foreach(cur, devs)
  {
 devname = udev_list_entry_get_name(cur);
-device = udev_device_new_from_syspath(udev, devname);
 ret = eina_list_append(ret, eina_stringshare_add(devname));
-udev_device_unref(device);
  }
udev_enumerate_unref(en);
return ret;
@@ -401,7 +393,6 @@ eeze_udev_find_by_subsystem_sysname(const char *subsystem, 
const char *sysname)
 {
_udev_enumerate *en;
_udev_list_entry *devs, *cur;
-   _udev_device *device;
const char *devname;
Eina_List *ret = NULL;
 
@@ -416,10 +407,7 @@ eeze_udev_find_by_subsystem_sysname(const char *subsystem, 
const char *sysname)
udev_list_entry_foreach(cur, devs)
  {
 devname = udev_list_entry_get_name(cur);
-device = udev_device_new_from_syspath(udev, devname);
-if (!device) continue;
 ret = eina_list_append(ret, eina_stringshare_add(devname));
-udev_device_unref(device);
  }
udev_enumerate_unref(en);
return ret;

-- 




[EGIT] [core/efl] master 01/02: eeze: Don't leak udev enumeration

2017-12-14 Thread Christopher Michael
devilhorns pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=5f7d942253afadb6e0623fe6561fc03f000bc1ea

commit 5f7d942253afadb6e0623fe6561fc03f000bc1ea
Author: Chris Michael 
Date:   Thu Dec 14 07:31:39 2017 -0500

eeze: Don't leak udev enumeration

If we cannot create a new udev device, then we should free the
previously created udev enumeration from above.

@fix

Signed-off-by: Chris Michael 
---
 src/lib/eeze/eeze_udev_find.c | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/lib/eeze/eeze_udev_find.c b/src/lib/eeze/eeze_udev_find.c
index b96e5f33b9..35cdbe83c5 100644
--- a/src/lib/eeze/eeze_udev_find.c
+++ b/src/lib/eeze/eeze_udev_find.c
@@ -28,7 +28,10 @@ eeze_udev_find_similar_from_syspath(const char *syspath)
  return NULL;
 
if (!(device = _new_device(syspath)))
- return NULL;
+ {
+udev_enumerate_unref(en);
+return NULL;
+ }
 
vendor = udev_device_get_property_value(device, "ID_VENDOR_ID");
 

-- 




[EGIT] [core/efl] master 03/07: evas filters: Add "alphaonly" flag for blend and blur

2017-12-14 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=88bfba1fdd35e3aadd4c3fde266cc48c2544db32

commit 88bfba1fdd35e3aadd4c3fde266cc48c2544db32
Author: Jean-Philippe Andre 
Date:   Thu Dec 14 17:22:09 2017 +0900

evas filters: Add "alphaonly" flag for blend and blur

This is very useful to specify precisely which kind of RGBA -> Alpha
conversion you want. If all you wanted was the alpha layer to use as a
mask, set this flag to true.

@feature
---
 src/lib/evas/filters/evas_filter.c | 52 +---
 src/lib/evas/filters/evas_filter_parser.c  | 40 ++--
 src/lib/evas/filters/evas_filter_private.h |  1 +
 src/lib/evas/include/evas_filter.h |  9 ++--
 .../evas/engines/gl_common/evas_gl_common.h|  8 +++-
 .../evas/engines/gl_common/evas_gl_context.c   | 55 --
 src/modules/evas/engines/gl_common/evas_gl_image.c | 15 +++---
 .../evas/engines/gl_common/evas_gl_shader.c| 11 -
 .../engines/gl_common/shader/evas_gl_shaders.x |  3 ++
 .../evas/engines/gl_common/shader/fragment.glsl|  4 ++
 .../engines/gl_generic/filters/gl_filter_blend.c   | 13 +++--
 .../engines/gl_generic/filters/gl_filter_blur.c|  3 +-
 .../engines/gl_generic/filters/gl_filter_mask.c|  3 +-
 .../software_generic/filters/evas_filter_blend.c   | 48 +--
 14 files changed, 194 insertions(+), 71 deletions(-)

diff --git a/src/lib/evas/filters/evas_filter.c 
b/src/lib/evas/filters/evas_filter.c
index c83b5e35b0..135d20b2bc 100644
--- a/src/lib/evas/filters/evas_filter.c
+++ b/src/lib/evas/filters/evas_filter.c
@@ -734,7 +734,7 @@ evas_filter_command_blur_add_gl(Evas_Filter_Context *ctx,
 Evas_Filter_Buffer *in, Evas_Filter_Buffer 
*out,
 Evas_Filter_Blur_Type type,
 int rx, int ry, int ox, int oy, int count,
-int R, int G, int B, int A)
+int R, int G, int B, int A, Eina_Bool 
alphaonly)
 {
Evas_Filter_Command *cmd = NULL;
Evas_Filter_Buffer *dx_in, *dx_out, *dy_in, *dy_out, *tmp = NULL;
@@ -798,6 +798,7 @@ evas_filter_command_blur_add_gl(Evas_Filter_Context *ctx,
  cmd->draw.scale.pad_y = pad_y;
  cmd->draw.scale.factor_x = down_x;
  cmd->draw.scale.factor_y = down_y;
+ cmd->draw.alphaonly = alphaonly;
  dx_in = tmp;
 
  tmp = evas_filter_temporary_buffer_get(ctx, ww, hh, 
in->alpha_only, EINA_TRUE);
@@ -827,6 +828,7 @@ evas_filter_command_blur_add_gl(Evas_Filter_Context *ctx,
 cmd->blur.type = type;
 cmd->blur.dx = dx;
 cmd->blur.count = count;
+cmd->draw.alphaonly = alphaonly;
  }
 
if (dy)
@@ -837,6 +839,7 @@ evas_filter_command_blur_add_gl(Evas_Filter_Context *ctx,
 cmd->blur.type = type;
 cmd->blur.dy = dy;
 cmd->blur.count = count;
+cmd->draw.alphaonly = alphaonly;
  }
 
EINA_SAFETY_ON_NULL_RETURN_VAL(cmd, NULL);
@@ -852,6 +855,7 @@ evas_filter_command_blur_add_gl(Evas_Filter_Context *ctx,
 cmd->draw.scale.pad_y = pad_y;
 cmd->draw.scale.factor_x = down_x;
 cmd->draw.scale.factor_y = down_y;
+cmd->draw.alphaonly = alphaonly;
  }
 
cmd->draw.ox = ox;
@@ -886,7 +890,8 @@ _blur_support_gl(Evas_Filter_Context *ctx, 
Evas_Filter_Buffer *in, Evas_Filter_B
 Evas_Filter_Command *
 evas_filter_command_blur_add(Evas_Filter_Context *ctx, void *drawctx,
  int inbuf, int outbuf, Evas_Filter_Blur_Type type,
- int dx, int dy, int ox, int oy, int count)
+ int dx, int dy, int ox, int oy, int count,
+ Eina_Bool alphaonly)
 {
Evas_Filter_Buffer *in = NULL, *out = NULL, *tmp = NULL, *in_dy = NULL;
Evas_Filter_Buffer *out_dy = NULL, *out_dx = NULL;
@@ -904,7 +909,7 @@ evas_filter_command_blur_add(Evas_Filter_Context *ctx, void 
*drawctx,
if (!dx && !dy)
  {
 XDBG("Changing 0px blur into simple blend");
-return evas_filter_command_blend_add(ctx, drawctx, inbuf, outbuf, ox, 
oy, EVAS_FILTER_FILL_MODE_NONE);
+return evas_filter_command_blend_add(ctx, drawctx, inbuf, outbuf, ox, 
oy, EVAS_FILTER_FILL_MODE_NONE, alphaonly);
  }
 
in = _filter_buffer_get(ctx, inbuf);
@@ -922,7 +927,8 @@ evas_filter_command_blur_add(Evas_Filter_Context *ctx, void 
*drawctx,
  }
 
if (_blur_support_gl(ctx, in, out))
- return evas_filter_command_blur_add_gl(ctx, in, out, type, dx, dy, ox, 
oy, count, R, G, B, A);
+ return evas_filter_command_blur_add_gl(ctx, in, out, type, dx, dy, ox, oy,
+count, R, G, B, A, alphaonly);
 
// Note (SW engine):
// The basic blur operation overrides the 

[EGIT] [core/efl] master 02/07: evas: Avoid invalid call to efl_file

2017-12-14 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=8bb03d8170219211be16974792d55f579806aa0d

commit 8bb03d8170219211be16974792d55f579806aa0d
Author: Jean-Philippe Andre 
Date:   Thu Dec 14 17:21:13 2017 +0900

evas: Avoid invalid call to efl_file

If not legacy, the object does not accept files, resulting in an ERR
message.
---
 src/lib/evas/canvas/efl_canvas_proxy.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/lib/evas/canvas/efl_canvas_proxy.c 
b/src/lib/evas/canvas/efl_canvas_proxy.c
index ab46ff391e..60049ecaaf 100644
--- a/src/lib/evas/canvas/efl_canvas_proxy.c
+++ b/src/lib/evas/canvas/efl_canvas_proxy.c
@@ -219,7 +219,8 @@ _evas_image_proxy_set(Evas_Object *eo_proxy, Evas_Object 
*eo_src)
Evas_Object_Protected_Data *proxy = efl_data_scope_get(eo_proxy, 
EFL_CANVAS_OBJECT_CLASS);
Evas_Image_Data *o = efl_data_scope_get(eo_proxy, 
EFL_CANVAS_IMAGE_INTERNAL_CLASS);
 
-   efl_file_set(eo_proxy, NULL, NULL);
+   if (o->legacy_type)
+ efl_file_set(eo_proxy, NULL, NULL);
 
EINA_COW_WRITE_BEGIN(evas_object_proxy_cow, proxy->proxy, 
Evas_Object_Proxy_Data, proxy_write)
  proxy_write->is_proxy = EINA_TRUE;

-- 




[EGIT] [core/efl] master 07/07: tests: Add an example test case for shadows

2017-12-14 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=d29f01e5ee53dac79f2685996a9958ef88e38b98

commit d29f01e5ee53dac79f2685996a9958ef88e38b98
Author: Jean-Philippe Andre 
Date:   Thu Dec 14 18:03:21 2017 +0900

tests: Add an example test case for shadows

This is fun.
---
 src/Makefile_Elementary.am|   1 +
 src/bin/elementary/test.c |   4 +-
 src/bin/elementary/test_part_shadow.c | 194 ++
 3 files changed, 198 insertions(+), 1 deletion(-)

diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am
index 7f3d733ebd..d674d299c0 100644
--- a/src/Makefile_Elementary.am
+++ b/src/Makefile_Elementary.am
@@ -905,6 +905,7 @@ bin/elementary/test_panel.c \
 bin/elementary/test_panes.c \
 bin/elementary/test_ui_panes.c \
 bin/elementary/test_part_bg.c \
+bin/elementary/test_part_shadow.c \
 bin/elementary/test_photo.c \
 bin/elementary/test_photocam.c \
 bin/elementary/test_popup.c \
diff --git a/src/bin/elementary/test.c b/src/bin/elementary/test.c
index 8a592ab7d2..114cd7927a 100644
--- a/src/bin/elementary/test.c
+++ b/src/bin/elementary/test.c
@@ -314,6 +314,7 @@ void test_win_modal(void *data, Evas_Object *obj, void 
*event_info);
 void test_box_disable(void *data, Evas_Object *obj, void *event_info);
 void test_layout_disable(void *data, Evas_Object *obj, void *event_info);
 void test_part_background(void *data, Evas_Object *obj, void *event_info);
+void test_part_shadow(void *data, Evas_Object *obj, void *event_info);
 
 void test_colorclass(void *data, Evas_Object *obj, void *event_info);
 
@@ -1148,7 +1149,7 @@ add_tests:
ADD_TEST(NULL, "Evas", "Gfx Filters", test_gfx_filters);
ADD_TEST(NULL, "Evas", "Snapshot", test_evas_snapshot);
ADD_TEST(NULL, "Evas", "Map", test_evas_map);
-   ADD_TEST_EO(NULL, "Evas", "Gfx Map", test_efl_gfx_map);
+   ADD_TEST_EO(NULL, "Evas", "Efl.Gfx.Map", test_efl_gfx_map);
 
//--//
ADD_TEST(NULL, "Widgets Disable/Enable", "Box", test_box_disable);
@@ -1156,6 +1157,7 @@ add_tests:
 
//--//
ADD_TEST_EO(NULL, "Widgets Part", "Part Background", test_part_background);
+   ADD_TEST_EO(NULL, "Widgets Part", "Part Shadow", test_part_shadow);
 #undef ADD_TEST
 
if (autorun)
diff --git a/src/bin/elementary/test_part_shadow.c 
b/src/bin/elementary/test_part_shadow.c
new file mode 100644
index 00..a1eee81a4d
--- /dev/null
+++ b/src/bin/elementary/test_part_shadow.c
@@ -0,0 +1,194 @@
+#ifdef HAVE_CONFIG_H
+# include "elementary_config.h"
+#endif
+
+#define ELM_WIDGET_PROTECTED
+#include 
+
+typedef struct Test_Data
+{
+   Evas_Object *pb1;
+   Evas_Object *pb2;
+   Evas_Object *pb3;
+   Evas_Object *pb4;
+   Evas_Object *pb5;
+   Evas_Object *ico;
+   Evas_Object *btn_start;
+   Evas_Object *btn_stop;
+   int loop;
+} Test_Data;
+
+static void
+animate(void *data, const Efl_Event *ev EINA_UNUSED)
+{
+   Test_Data *td = data;
+   int loop = td->loop++;
+   double radius;
+
+   loop = (loop % 120) < 60 ? (loop % 60) : (60 - (loop % 60));
+   radius = 3.0 + (loop * 32.0 / 60.0);
+   radius *= elm_config_scale_get() / elm_app_base_scale_get();
+   efl_gfx_blur_radius_set(efl_part(td->ico, "shadow"), radius, radius);
+}
+
+static void
+pulse_start(void *data, const Efl_Event *ev EINA_UNUSED)
+{
+   Test_Data *td = data;
+
+   efl_ui_progressbar_pulse_set(td->pb1, EINA_TRUE);
+   efl_ui_progressbar_pulse_set(td->pb2, EINA_TRUE);
+   efl_ui_progressbar_pulse_set(td->pb3, EINA_TRUE);
+   efl_ui_progressbar_pulse_set(td->pb4, EINA_TRUE);
+   efl_ui_progressbar_pulse_set(td->pb5, EINA_TRUE);
+
+   efl_ui_widget_disabled_set(td->btn_start, EINA_TRUE);
+   efl_ui_widget_disabled_set(td->btn_stop, EINA_FALSE);
+
+   efl_event_callback_add(td->ico, EFL_EVENT_ANIMATOR_TICK, animate, td);
+}
+
+static void
+pulse_stop(void *data, const Efl_Event *ev EINA_UNUSED)
+{
+   Test_Data *td = data;
+
+   efl_ui_progressbar_pulse_set(td->pb1, EINA_FALSE);
+   efl_ui_progressbar_pulse_set(td->pb2, EINA_FALSE);
+   efl_ui_progressbar_pulse_set(td->pb3, EINA_FALSE);
+   efl_ui_progressbar_pulse_set(td->pb4, EINA_FALSE);
+   efl_ui_progressbar_pulse_set(td->pb5, EINA_FALSE);
+
+   efl_ui_widget_disabled_set(td->btn_start, EINA_FALSE);
+   efl_ui_widget_disabled_set(td->btn_stop, EINA_TRUE);
+
+   efl_event_callback_del(td->ico, EFL_EVENT_ANIMATOR_TICK, animate, td);
+}
+
+static void
+_delete_cb(void *data, const Efl_Event *ev)
+{
+   Test_Data *td = data;
+
+   pulse_stop(td, NULL);
+   efl_del(ev->object);
+   free(td);
+}
+
+void
+test_part_shadow(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void 
*event_info EINA_UNUSED)
+{
+   Evas_Object *win, *pb, *bx, *hbx, *bt, *bt_bx, *ic, *shadow;
+   char buf[PATH_MAX];
+   Test_Data *td;
+   char loops[32];
+
+   td = calloc(1, sizeof(*td));
+
+   win = efl_add(EFL_UI_WIN_CLASS, NULL,
+ efl_ui_win_name_set(efl_added, 

[EGIT] [core/efl] master 05/07: elm: Add "shadow" part to all widgets

2017-12-14 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=a13e61a37b6859b99a09bd3c33c5caa359459451

commit a13e61a37b6859b99a09bd3c33c5caa359459451
Author: Jean-Philippe Andre 
Date:   Thu Dec 14 17:25:37 2017 +0900

elm: Add "shadow" part to all widgets

This makes it possible to very easily create drop shadows and glow
effects on any widget. This is absolutely not optimized, though the main
performance bottleneck is that the proxy images get redrawn after just
moving.

@feature
---
 src/Makefile_Elementary.am  |   1 +
 src/lib/elementary/Elementary.h |   1 +
 src/lib/elementary/efl_ui_layout.c  |   2 +
 src/lib/elementary/efl_ui_widget_part_shadow.eo |  35 
 src/lib/elementary/elm_widget.c | 267 
 src/lib/elementary/elm_widget.eo|   3 +
 src/lib/elementary/elm_widget.h |   1 +
 7 files changed, 310 insertions(+)

diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am
index d95ddd9774..7f3d733ebd 100644
--- a/src/Makefile_Elementary.am
+++ b/src/Makefile_Elementary.am
@@ -74,6 +74,7 @@ elm_public_eolian_files = \
lib/elementary/efl_ui_textpath_part.eo \
lib/elementary/efl_ui_widget_part.eo \
lib/elementary/efl_ui_widget_part_bg.eo \
+   lib/elementary/efl_ui_widget_part_shadow.eo \
lib/elementary/efl_ui_win_part.eo \
lib/elementary/efl_access.eo \
lib/elementary/efl_access_action.eo \
diff --git a/src/lib/elementary/Elementary.h b/src/lib/elementary/Elementary.h
index c1422ae838..95c54b35ac 100644
--- a/src/lib/elementary/Elementary.h
+++ b/src/lib/elementary/Elementary.h
@@ -284,6 +284,7 @@ EAPI extern Elm_Version *elm_version;
 # include 
 # include 
 # include 
+# include 
 # include 
 # include 
 # include 
diff --git a/src/lib/elementary/efl_ui_layout.c 
b/src/lib/elementary/efl_ui_layout.c
index 5981fc1a54..0eda685bad 100644
--- a/src/lib/elementary/efl_ui_layout.c
+++ b/src/lib/elementary/efl_ui_layout.c
@@ -2448,6 +2448,8 @@ _efl_ui_layout_efl_part_part(const Eo *obj, 
Efl_Ui_Layout_Data *sd EINA_UNUSED,
 
 return ELM_PART_IMPLEMENT(EFL_UI_LAYOUT_PART_BG_CLASS, obj, part);
  }
+   else if (eina_streq(part, "shadow"))
+ return efl_part(efl_super(obj, MY_CLASS), part);
 
if (type >= EFL_CANVAS_LAYOUT_PART_TYPE_LAST)
  {
diff --git a/src/lib/elementary/efl_ui_widget_part_shadow.eo 
b/src/lib/elementary/efl_ui_widget_part_shadow.eo
new file mode 100644
index 00..8947b9a0c7
--- /dev/null
+++ b/src/lib/elementary/efl_ui_widget_part_shadow.eo
@@ -0,0 +1,35 @@
+class Efl.Ui.Widget.Part_Shadow (Efl.Ui.Widget.Part, Efl.Gfx,
+ Efl.Gfx.Blur, Efl.Gfx.Filter)
+{
+   [[A drop-shadow or glow effect around any widget.
+
+ A simple drop-shadow effect can be applied to any widget by setting the
+ color and blur radius on this part.
+
+ For instance, a blue glow can be achieved with:
+  obj.shadow().color_set(0, 128, 255, 255);
+  obj.shadow().grow_set(2);
+  obj.shadow().radius_set(3, 3);
+
+ As another example, here's a black drop-shadow:
+  obj.shadow().color_set(0, 0, 0, 255);
+  obj.shadow().grow_set(1);
+  obj.shadow().radius_set(5, 5);
+  obj.shadow().offset_set(5, 5);
+
+ It is also possible to manually specify which @Efl.Gfx.Filter program to
+ use.
+   ]]
+   data: null;
+   implements {
+  Efl.Gfx.color { set; get; }
+  Efl.Gfx.Blur.radius { set; get; }
+  Efl.Gfx.Blur.offset { set; get; }
+  Efl.Gfx.Blur.grow { set; get; }
+  Efl.Gfx.Filter.filter_program { set; get; }
+  Efl.Gfx.Filter.filter_source { set; get; }
+  Efl.Gfx.Filter.filter_data { set; get; }
+  Efl.Gfx.Filter.filter_padding { get; }
+  Efl.Gfx.Filter.filter_state { set; get; }
+   }
+}
diff --git a/src/lib/elementary/elm_widget.c b/src/lib/elementary/elm_widget.c
index 83437d604b..d67ec8008b 100644
--- a/src/lib/elementary/elm_widget.c
+++ b/src/lib/elementary/elm_widget.c
@@ -114,6 +114,7 @@ static void
 _on_sub_obj_del(void *data, const Efl_Event *event);
 static void _propagate_event(void *data, const Efl_Event *eo_event);
 static void _elm_widget_focus_tree_unfocusable_handle(Eo *obj);
+static void _elm_widget_shadow_update(Elm_Widget *obj);
 
 EFL_CALLBACKS_ARRAY_DEFINE(elm_widget_subitems_callbacks,
   { EFL_EVENT_DEL, _on_sub_obj_del });
@@ -795,6 +796,8 @@ _smart_reconfigure(Elm_Widget_Smart_Data *sd)
 evas_object_move(sd->bg, sd->x, sd->y);
 evas_object_resize(sd->bg, sd->w, sd->h);
  }
+   if (sd->has_shadow)
+ _elm_widget_shadow_update(sd->obj);
 }
 
 EOLIAN static void
@@ -5625,6 +5628,268 @@ elm_widget_signal_callback_del(Eo *obj, const char 
*emission, const char *source
 }
 
 
+/* Widget Shadow Begin */
+
+typedef struct _Widget_Shadow
+{
+   Eo *widget;

[EGIT] [core/efl] master 01/07: evas: Fix potential crash with draw context

2017-12-14 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=fc82281603e814368584c06cd6de22f4155e9d06

commit fc82281603e814368584c06cd6de22f4155e9d06
Author: Jean-Philippe Andre 
Date:   Wed Dec 13 19:16:28 2017 +0900

evas: Fix potential crash with draw context

Using filters I end up in situations where this function returns NULL
and all hell breaks loose. I guess the spinlock is what makes this
possible (race condition).

@fix
---
 src/lib/evas/common/evas_draw_main.c | 10 --
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/src/lib/evas/common/evas_draw_main.c 
b/src/lib/evas/common/evas_draw_main.c
index 2f3fa949de..518bfb2ac7 100644
--- a/src/lib/evas/common/evas_draw_main.c
+++ b/src/lib/evas/common/evas_draw_main.c
@@ -107,13 +107,9 @@ _evas_common_draw_context_stash(RGBA_Draw_Context *dc)
 static RGBA_Draw_Context *
 _evas_common_draw_context_find(void)
 {
-   RGBA_Draw_Context *dc;
+   RGBA_Draw_Context *dc = NULL;
 
-   if (!_ctxt_spares)
- {
-dc = malloc(sizeof(RGBA_Draw_Context));
- }
-   else
+   if (_ctxt_spares)
  {
 SLKL(_ctx_spares_lock);
 dc = eina_trash_pop(&_ctxt_spares);
@@ -121,6 +117,8 @@ _evas_common_draw_context_find(void)
 SLKU(_ctx_spares_lock);
  }
 
+   if (!dc) dc = malloc(sizeof(RGBA_Draw_Context));
+
return dc;
 }
 

-- 




[EGIT] [core/efl] master 04/07: efl: Add simple API for "blur" effects

2017-12-14 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=00bb3bd3c7781f76ca8010f44dc6998f6bbff89d

commit 00bb3bd3c7781f76ca8010f44dc6998f6bbff89d
Author: Jean-Philippe Andre 
Date:   Thu Dec 14 17:23:46 2017 +0900

efl: Add simple API for "blur" effects

This will use the Efl.Gfx.Filter interface internally, but makes it
usable by normal people.
---
 src/Makefile_Efl.am  |  1 +
 src/lib/efl/Efl.h|  1 +
 src/lib/efl/interfaces/efl_gfx_blur.eo   | 41 
 src/lib/efl/interfaces/efl_interfaces_main.c |  1 +
 4 files changed, 44 insertions(+)

diff --git a/src/Makefile_Efl.am b/src/Makefile_Efl.am
index 8ddbe80c38..243a04eac1 100644
--- a/src/Makefile_Efl.am
+++ b/src/Makefile_Efl.am
@@ -40,6 +40,7 @@ efl_eolian_files = \
   lib/efl/interfaces/efl_gfx_gradient_linear.eo \
   lib/efl/interfaces/efl_gfx_gradient_radial.eo \
   lib/efl/interfaces/efl_gfx_filter.eo \
+  lib/efl/interfaces/efl_gfx_blur.eo \
   lib/efl/interfaces/efl_gfx_size_hint.eo \
   lib/efl/interfaces/efl_model.eo \
   lib/efl/interfaces/efl_animator.eo \
diff --git a/src/lib/efl/Efl.h b/src/lib/efl/Efl.h
index b0a258b36c..eb9e5f17ec 100644
--- a/src/lib/efl/Efl.h
+++ b/src/lib/efl/Efl.h
@@ -123,6 +123,7 @@ typedef Efl_Gfx_Path_Command_Type Efl_Gfx_Path_Command;
 #include "interfaces/efl_gfx_gradient_linear.eo.h"
 #include "interfaces/efl_gfx_gradient_radial.eo.h"
 #include "interfaces/efl_gfx_filter.eo.h"
+#include "interfaces/efl_gfx_blur.eo.h"
 #include "interfaces/efl_gfx_size_hint.eo.h"
 #include "interfaces/efl_gfx_color_class.eo.h"
 #include "interfaces/efl_gfx_text_class.eo.h"
diff --git a/src/lib/efl/interfaces/efl_gfx_blur.eo 
b/src/lib/efl/interfaces/efl_gfx_blur.eo
new file mode 100644
index 00..7e35ee20e5
--- /dev/null
+++ b/src/lib/efl/interfaces/efl_gfx_blur.eo
@@ -0,0 +1,41 @@
+interface Efl.Gfx.Blur
+{
+   [[A simple API to apply blur effects.
+
+ Those API's might use @Efl.Gfx.Filter internally. It might be necessary to
+ also specify the color of the blur with @Efl.Gfx.color.
+   ]]
+   methods {
+  @property radius {
+ [[The blur radius in pixels.]]
+ values {
+rx: double; [[The horizontal blur radius.]]
+ry: double; [[The vertical blur radius.]]
+ }
+  }
+  @property offset {
+ [[An offset relative to the original pixels.
+
+   This property allows for drop shadow effects.
+ ]]
+ values {
+ox: double; [[Horizontal offset in pixels.]]
+oy: double; [[Vertical offset in pixels.]]
+ }
+  }
+  @property grow {
+ [[How much the original image should be "grown" before blurring.
+
+   Growing is a combination of blur & color levels adjustment. If the
+   value of grow is positive, the pixels will appear more "fat" or 
"bold"
+   than the original. If the value is negative, a shrink effect happens
+   instead.
+
+   This is can be used efficiently to create glow effects.
+ ]]
+ values {
+radius: double; [[How much to grow the original pixel data.]]
+ }
+  }
+   }
+}
diff --git a/src/lib/efl/interfaces/efl_interfaces_main.c 
b/src/lib/efl/interfaces/efl_interfaces_main.c
index ea97773e27..3f19f054f8 100644
--- a/src/lib/efl/interfaces/efl_interfaces_main.c
+++ b/src/lib/efl/interfaces/efl_interfaces_main.c
@@ -38,6 +38,7 @@
 #include "interfaces/efl_gfx_gradient_radial.eo.c"
 
 #include "interfaces/efl_gfx_filter.eo.c"
+#include "interfaces/efl_gfx_blur.eo.c"
 
 #include "interfaces/efl_gfx_size_hint.eo.c"
 #include "interfaces/efl_canvas.eo.c"

-- 




[EGIT] [website/www-content] master 01/01: Wiki page general changed with summary [] by Andrew Williams

2017-12-14 Thread Andrew Williams
WWW-www.enlightenment.org pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=e7e20877b1f6141280693dfd4430c62f03e886b1

commit e7e20877b1f6141280693dfd4430c62f03e886b1
Author: Andrew Williams 
Date:   Thu Dec 14 03:32:09 2017 -0800

Wiki page general changed with summary [] by Andrew Williams
---
 pages/develop/api-include/reference/general.txt | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/pages/develop/api-include/reference/general.txt 
b/pages/develop/api-include/reference/general.txt
index 29d50f56f..62012fe31 100644
--- a/pages/develop/api-include/reference/general.txt
+++ b/pages/develop/api-include/reference/general.txt
@@ -1,3 +1,5 @@
+== Unified EFL API ==
+
 The Enlightenment Foundation Libraries (EFL) cover a wide range of functions 
including inter-process communication (IPC), graphics, audio and even location 
services. Other powerful features include file handling utilities, widgets and 
user interface controls, thumbnailing and rendering via scene graph. You can 
discover more of EFL's capabilities by visiting the [[:about-efl | About EFL]] 
page.
 
 The Unified EFL API (Currently in BETA) is a reworking of the old 
many-libraries API into a single (Efl) namespace. It is build on top of Eo 
(Enlightenment Object) class definitions to provide inheritance of objects and 
to bind more closely to higher level languages.

-- 




[EGIT] [website/www-content] master 01/01: Wiki page general changed with summary [created] by Andrew Williams

2017-12-14 Thread Andrew Williams
WWW-www.enlightenment.org pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=3f2dcff23a7d778d9c06caa164f747af89a35613

commit 3f2dcff23a7d778d9c06caa164f747af89a35613
Author: Andrew Williams 
Date:   Thu Dec 14 03:31:05 2017 -0800

Wiki page general changed with summary [created] by Andrew Williams
---
 pages/develop/api-include/reference/general.txt | 5 +
 1 file changed, 5 insertions(+)

diff --git a/pages/develop/api-include/reference/general.txt 
b/pages/develop/api-include/reference/general.txt
new file mode 100644
index 0..29d50f56f
--- /dev/null
+++ b/pages/develop/api-include/reference/general.txt
@@ -0,0 +1,5 @@
+The Enlightenment Foundation Libraries (EFL) cover a wide range of functions 
including inter-process communication (IPC), graphics, audio and even location 
services. Other powerful features include file handling utilities, widgets and 
user interface controls, thumbnailing and rendering via scene graph. You can 
discover more of EFL's capabilities by visiting the [[:about-efl | About EFL]] 
page.
+
+The Unified EFL API (Currently in BETA) is a reworking of the old 
many-libraries API into a single (Efl) namespace. It is build on top of Eo 
(Enlightenment Object) class definitions to provide inheritance of objects and 
to bind more closely to higher level languages.
+
+The Efl API is split into 3 main areas Efl_Core, Efl_Net and Efl_Ui, each 
encompassing the one before so you can include a single reference in your app. 
For basic offline applications use Efl_Core, for additional network and 
connectivity use Efl_Net and if you are building a graphical application then 
use Efl_Ui. In the C language (the default for our this documentation) you will 
also see reference to Eina which provides common data constructs missing in low 
level languages.
\ No newline at end of file

-- 




[EGIT] [core/efl] master 01/01: elm_code: Correct tooltip behaviour for elm_cde_widget

2017-12-14 Thread Andy Williams
ajwillia-ms pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=fcdf4e9d10a5b48117ce1ee4669a4c57db6d8052

commit fcdf4e9d10a5b48117ce1ee4669a4c57db6d8052
Author: Andy Williams 
Date:   Thu Dec 14 08:55:01 2017 +

elm_code: Correct tooltip behaviour for elm_cde_widget
---
 src/lib/elementary/elm_code_widget.c | 35 +--
 1 file changed, 29 insertions(+), 6 deletions(-)

diff --git a/src/lib/elementary/elm_code_widget.c 
b/src/lib/elementary/elm_code_widget.c
index fd9e781984..2f9b693322 100644
--- a/src/lib/elementary/elm_code_widget.c
+++ b/src/lib/elementary/elm_code_widget.c
@@ -1024,6 +1024,29 @@ _mouse_selection_paste_at_position(Elm_Code_Widget 
*widget,
free(text);
 }
 
+static Evas_Object *
+_elm_code_widget_tooltip_cb(void *data, Evas_Object *obj EINA_UNUSED, 
Evas_Object *tooltip)
+{
+   Evas_Object *label;
+
+   if (!data)
+ return NULL;
+
+   label = elm_label_add(tooltip);
+   elm_object_text_set(label, (Eina_Stringshare *)data);
+   return label;
+}
+
+static void
+_elm_code_widget_tooltip_del_cb(void *data, Evas_Object *obj EINA_UNUSED,
+void *event_info EINA_UNUSED)
+{
+   if (!data)
+ return;
+
+   eina_stringshare_del((Eina_Stringshare *)data);
+}
+
 static void
 _elm_code_widget_mouse_down_cb(void *data, Evas *e EINA_UNUSED, Evas_Object 
*obj EINA_UNUSED,
void *event_info)
@@ -1099,12 +1122,13 @@ _elm_code_widget_mouse_move_cb(void *data, Evas *e 
EINA_UNUSED, Evas_Object *obj
if (!pd->editable || !event->buttons)
  {
 Elm_Code_Line *line;
+Eina_Stringshare *text = NULL;
 
 line = elm_code_file_line_get(elm_code_widget_code_get(widget)->file, 
row);
-if (line)
-  elm_object_tooltip_text_set(widget, line->status_text);
-else
-  elm_object_tooltip_text_set(widget, NULL);
+if (line && line->status_text)
+  text = eina_stringshare_add(line->status_text);
+elm_object_tooltip_content_cb_set(pd->gridbox, 
_elm_code_widget_tooltip_cb,
+  text, 
_elm_code_widget_tooltip_del_cb);
 
 return;
  }
@@ -2253,6 +2277,7 @@ _elm_code_widget_efl_canvas_group_group_add(Eo *obj, 
Elm_Code_Widget_Data *pd)
if (!elm_widget_theme_klass_get(obj))
  elm_widget_theme_klass_set(obj, "code");
elm_widget_theme_element_set(obj, "layout");
+   _elm_code_widget_elm_widget_theme_apply(obj, pd);
 
efl_canvas_group_add(efl_super(obj, ELM_CODE_WIDGET_CLASS));
elm_object_focus_allow_set(obj, EINA_TRUE);
@@ -2283,8 +2308,6 @@ _elm_code_widget_efl_canvas_group_group_add(Eo *obj, 
Elm_Code_Widget_Data *pd)
elm_object_content_set(scroller, gridrows);
pd->gridbox = gridrows;
 
-   _elm_code_widget_elm_widget_theme_apply(obj, pd);
-
evas_object_event_callback_add(obj, EVAS_CALLBACK_RESIZE, 
_elm_code_widget_resize_cb, obj);
evas_object_event_callback_add(obj, EVAS_CALLBACK_KEY_DOWN, 
_elm_code_widget_key_down_cb, obj);
evas_object_event_callback_add(obj, EVAS_CALLBACK_HIDE, 
_elm_code_widget_hidden_cb, obj);

--