[EGIT] [core/enlightenment] master 03/03: add window maximize animation

2016-03-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit d44de2e1928f12c191ba8be78cf6835e400bd0a0
Author: Mike Blumenkrantz 
Date:   Tue Mar 8 18:04:31 2016 -0500

add window maximize animation

this has been implemented and working well in desksanity for a couple years,
and it's a trivial thing to bring over now that efx is available
---
 src/bin/e_client.c | 75 ++
 src/bin/e_config.c | 15 +
 src/bin/e_config.h |  5 +-
 .../e_int_config_window_display.c  | 45 +
 4 files changed, 113 insertions(+), 27 deletions(-)

diff --git a/src/bin/e_client.c b/src/bin/e_client.c
index f30dae1..57c4be7 100644
--- a/src/bin/e_client.c
+++ b/src/bin/e_client.c
@@ -1545,10 +1545,17 @@ _e_client_cb_evas_restack(void *data, Evas *e 
EINA_UNUSED, Evas_Object *obj EINA
 
 
 static void
+_e_client_maximize_done(void *data, E_Efx_Map_Data *emd EINA_UNUSED, 
Evas_Object *obj EINA_UNUSED)
+{
+   E_Client *ec = data;
+   ec->maximize_override = 0;
+}
+
+static void
 _e_client_maximize(E_Client *ec, E_Maximize max)
 {
int x1, yy1, x2, y2;
-   int w, h, pw, ph;
+   int x, y, w, h, pw, ph;
int zx, zy, zw, zh;
int ecx, ecy, ecw, ech;
Eina_Bool override = ec->maximize_override;
@@ -1577,25 +1584,30 @@ _e_client_maximize(E_Client *ec, E_Maximize max)
 switch (max & E_MAXIMIZE_DIRECTION)
   {
case E_MAXIMIZE_BOTH:
- evas_object_geometry_set(ec->frame, x1, yy1, w, h);
+ x = x1, y = yy1;
  break;
 
case E_MAXIMIZE_VERTICAL:
- evas_object_geometry_set(ec->frame, ec->x, yy1, ec->w, h);
+ x = ec->x, y = yy1, w = ec->w;
  break;
 
case E_MAXIMIZE_HORIZONTAL:
- evas_object_geometry_set(ec->frame, x1, ec->y, w, ec->h);
+ x = x1, y = ec->y, h = ec->h;
  break;
 
case E_MAXIMIZE_LEFT:
- evas_object_geometry_set(ec->frame, ec->zone->x, ec->zone->y, w / 
2, h);
+ x = ec->zone->x, y = ec->zone->y, w /= 2;
  break;
 
case E_MAXIMIZE_RIGHT:
- evas_object_geometry_set(ec->frame, x1, ec->zone->y, w / 2, h);
+ x = x1, y = ec->zone->y, w /= 2;
  break;
   }
+if (e_config->window_maximize_animate && (!starting) && 
(!ec->changes.need_maximize))
+  e_efx_resize(ec->frame, e_config->window_maximize_transition, 
E_EFX_POINT(x, y),
+w, h, e_config->window_maximize_time, _e_client_maximize_done, ec);
+else
+  evas_object_geometry_set(ec->frame, x, y, w, h);
 break;
 
   case E_MAXIMIZE_SMART:
@@ -1642,26 +1654,30 @@ _e_client_maximize(E_Client *ec, E_Maximize max)
 switch (max & E_MAXIMIZE_DIRECTION)
   {
case E_MAXIMIZE_BOTH:
- evas_object_geometry_set(ec->frame, zx, zy, zw, zh);
+ x = zx, y = zy, w = zw, h = zh;
  break;
 
case E_MAXIMIZE_VERTICAL:
- evas_object_geometry_set(ec->frame, ec->x, zy, ec->w, zh);
+ x = ec->x, y = zy, w = ec->w, h = zh;
  break;
 
case E_MAXIMIZE_HORIZONTAL:
- evas_object_geometry_set(ec->frame, zx, ec->y, zw, ec->h);
+ x = zx, y = ec->y, w = zw, h = ec->h;
  break;
 
case E_MAXIMIZE_LEFT:
- evas_object_geometry_set(ec->frame, zx, zy, zw / 2, zh);
+ x = zx, y = zy, w = zw / 2, h = zh;
  break;
 
case E_MAXIMIZE_RIGHT:
- evas_object_geometry_set(ec->frame, zx + zw / 2, zy, zw / 2, zh);
+ x = zx + zw / 2, y = zy, w = zw / 2, h = zh;
  break;
   }
-
+if (e_config->window_maximize_animate && (!starting) && 
(!ec->changes.need_maximize))
+  e_efx_resize(ec->frame, e_config->window_maximize_transition, 
E_EFX_POINT(x, y),
+w, h, e_config->window_maximize_time, _e_client_maximize_done, ec);
+else
+  evas_object_geometry_set(ec->frame, x, y, w, h);
 break;
 
   case E_MAXIMIZE_FILL:
@@ -1689,28 +1705,33 @@ _e_client_maximize(E_Client *ec, E_Maximize max)
 switch (max & E_MAXIMIZE_DIRECTION)
   {
case E_MAXIMIZE_BOTH:
- evas_object_geometry_set(ec->frame, x1, yy1, w, h);
+ x = x1, y = yy1;
  break;
 
case E_MAXIMIZE_VERTICAL:
- evas_object_geometry_set(ec->frame, ec->x, yy1, ec->w, h);
+ x = ec->x, y = yy1, w = ec->w;
  break;
 
case E_MAXIMIZE_HORIZONTAL:
- evas_object_geometry_set(ec->frame, x1, ec->y, w, ec->h);
+ x = 

[EGIT] [core/enlightenment] master 01/03: unify client e_hints window size setting in move/resize callbacks

2016-03-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=103da25b9402a4cb6ec3e17c96ea20c881819d34

commit 103da25b9402a4cb6ec3e17c96ea20c881819d34
Author: Mike Blumenkrantz 
Date:   Tue Mar 8 17:05:57 2016 -0500

unify client e_hints window size setting in move/resize callbacks
---
 src/bin/e_client.c | 7 ---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/bin/e_client.c b/src/bin/e_client.c
index dd3801d..f30dae1 100644
--- a/src/bin/e_client.c
+++ b/src/bin/e_client.c
@@ -1460,6 +1460,8 @@ _e_client_cb_evas_move(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_UN
if (ec->moving || (ecmove == ec))
  _e_client_hook_call(E_CLIENT_HOOK_MOVE_UPDATE, ec);
e_remember_update(ec);
+   if (ec->fullscreen || (ec->maximized & E_MAXIMIZE_DIRECTION))
+ e_hints_window_size_set(ec);
ec->pre_cb.x = x; ec->pre_cb.y = y;
 }
 
@@ -1500,6 +1502,8 @@ _e_client_cb_evas_resize(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_
if (e_client_util_resizing_get(ec) || (ecresize == ec))
  _e_client_hook_call(E_CLIENT_HOOK_RESIZE_UPDATE, ec);
e_remember_update(ec);
+   if (ec->fullscreen || (ec->maximized & E_MAXIMIZE_DIRECTION))
+ e_hints_window_size_set(ec);
ec->pre_cb.w = w; ec->pre_cb.h = h;
 }
 
@@ -3755,7 +3759,6 @@ e_client_maximize(E_Client *ec, E_Maximize max)
  }
 
ec->saved.zone = ec->zone->num;
-   e_hints_window_size_set(ec);
 
_e_client_maximize(ec, max);
 
@@ -3875,7 +3878,6 @@ e_client_unmaximize(E_Client *ec, E_Maximize max)
   evas_object_smart_callback_call(ec->frame, "unmaximize", 
NULL);
   e_client_resize_limit(ec, , );
   e_client_util_move_resize_without_frame(ec, x, y, w, h);
-  e_hints_window_size_set(ec);
}
  if (vert)
ec->saved.h = ec->saved.y = 0;
@@ -3936,7 +3938,6 @@ e_client_fullscreen(E_Client *ec, E_Fullscreen policy)
 ec->saved.w = w;
 ec->saved.h = h;
  }
-   e_hints_window_size_set(ec);
 
ec->saved.layer = ec->layer;
if (!e_config->allow_above_fullscreen)

-- 




[EGIT] [core/enlightenment] master 02/03: bump E_VERSION_MAJOR and modapi

2016-03-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit aa024e0a4f3bb22cc5f3c19b6183811d758a4b23
Author: Mike Blumenkrantz 
Date:   Tue Mar 8 18:03:28 2016 -0500

bump E_VERSION_MAJOR and modapi
---
 src/bin/e.h| 2 +-
 src/bin/e_module.h | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/bin/e.h b/src/bin/e.h
index 34887bc..8b3ce26 100644
--- a/src/bin/e.h
+++ b/src/bin/e.h
@@ -1,7 +1,7 @@
 #ifndef E_H
 # define E_H
 
-# define E_VERSION_MAJOR 20
+# define E_VERSION_MAJOR 21
 
 /**
  * @defgroup API Enlightenment API
diff --git a/src/bin/e_module.h b/src/bin/e_module.h
index 35675de..c436548 100644
--- a/src/bin/e_module.h
+++ b/src/bin/e_module.h
@@ -1,6 +1,6 @@
 #ifdef E_TYPEDEFS
 
-#define E_MODULE_API_VERSION 18
+#define E_MODULE_API_VERSION 19
 
 typedef struct _E_Module E_Module;
 typedef struct _E_Module_Api E_Module_Api;

-- 




[EGIT] [tools/edi] edi-0.3 01/01: Fix make dist

2016-03-08 Thread Andy Williams
ajwillia-ms pushed a commit to branch edi-0.3.

http://git.enlightenment.org/tools/edi.git/commit/?id=a59e60b2ba282c90e948239bc6c040a0312962d5

commit a59e60b2ba282c90e948239bc6c040a0312962d5
Author: Andy Williams 
Date:   Tue Mar 8 22:53:36 2016 +

Fix make dist
---
 elm_code/src/lib/Makefile.am | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/elm_code/src/lib/Makefile.am b/elm_code/src/lib/Makefile.am
index 319acae..08efd7a 100644
--- a/elm_code/src/lib/Makefile.am
+++ b/elm_code/src/lib/Makefile.am
@@ -66,7 +66,9 @@ BUILT_SOURCES = \
 
 elmcodeeolianfilesdir = $(datadir)/eolian/include/elm_code-@VMAJ@
 elmcodeeolianfiles_DATA = $(elm_code_eolian_files)
-EXTRA_DIST = ${elmcodeeolianfiles_DATA}
+EXTRA_DIST = ${elmcodeeolianfiles_DATA} \
+widget/elm_code_widget_text.c \
+widget/elm_code_widget_undo.c
 
 CLEANFILES += $(elm_code_eolian_h) $(elm_code_eolian_legacy_h)
 

-- 




[EGIT] [tools/edi] master 01/01: Fix make dist

2016-03-08 Thread Andy Williams
ajwillia-ms pushed a commit to branch master.

http://git.enlightenment.org/tools/edi.git/commit/?id=78210323807cf34eb7ca715b6cb4d9078e00783e

commit 78210323807cf34eb7ca715b6cb4d9078e00783e
Author: Andy Williams 
Date:   Tue Mar 8 22:53:36 2016 +

Fix make dist
---
 elm_code/src/lib/Makefile.am | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/elm_code/src/lib/Makefile.am b/elm_code/src/lib/Makefile.am
index 319acae..08efd7a 100644
--- a/elm_code/src/lib/Makefile.am
+++ b/elm_code/src/lib/Makefile.am
@@ -66,7 +66,9 @@ BUILT_SOURCES = \
 
 elmcodeeolianfilesdir = $(datadir)/eolian/include/elm_code-@VMAJ@
 elmcodeeolianfiles_DATA = $(elm_code_eolian_files)
-EXTRA_DIST = ${elmcodeeolianfiles_DATA}
+EXTRA_DIST = ${elmcodeeolianfiles_DATA} \
+widget/elm_code_widget_text.c \
+widget/elm_code_widget_undo.c
 
 CLEANFILES += $(elm_code_eolian_h) $(elm_code_eolian_legacy_h)
 

-- 




[EGIT] [core/enlightenment] master 01/01: don't have to hook the ecore_evas resize callback here as that should be handled by elm now

2016-03-08 Thread Chris Michael
devilhorns pushed a commit to branch master.

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

commit d49f60dd8a2ef169f3cb655dcdbaaac456c7a0d0
Author: Chris Michael 
Date:   Tue Mar 8 16:09:17 2016 -0500

don't have to hook the ecore_evas resize callback here as that should
be handled by elm now

Signed-off-by: Chris Michael 
---
 src/modules/wl_drm/e_mod_main.c | 8 
 1 file changed, 8 deletions(-)

diff --git a/src/modules/wl_drm/e_mod_main.c b/src/modules/wl_drm/e_mod_main.c
index 23f2715..9a54132 100644
--- a/src/modules/wl_drm/e_mod_main.c
+++ b/src/modules/wl_drm/e_mod_main.c
@@ -91,12 +91,6 @@ end:
return ECORE_CALLBACK_PASS_ON;
 }
 
-static void
-_e_mod_drm_cb_ee_resize(Ecore_Evas *ee EINA_UNUSED)
-{
-   e_comp_canvas_update();
-}
-
 static Ecore_Drm_Output_Mode *
 _e_mod_drm_mode_screen_find(E_Randr2_Screen *s, Ecore_Drm_Output *output)
 {
@@ -766,8 +760,6 @@ e_modapi_init(E_Module *m)
/* get the current screen geometry */
ecore_evas_screen_geometry_get(e_comp->ee, NULL, NULL, , );
 
-   ecore_evas_callback_resize_set(e_comp->ee, _e_mod_drm_cb_ee_resize);
-
e_comp->screen = 
 
if (!e_comp_wl_init()) return NULL;

-- 




[EGIT] [core/enlightenment] master 01/01: always run client res changes in e_comp_canvas_update()

2016-03-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit 8ca293423a2de2d7c288245311b1574ac96403f3
Author: Mike Blumenkrantz 
Date:   Tue Mar 8 15:59:57 2016 -0500

always run client res changes in e_comp_canvas_update()

this function is only called when screen geometry (or useful geometry) has
changed, and so all clients should have their geometries checked at this 
point
to ensure that they update for any new zone obstacle changes which have 
occurred
---
 src/bin/e_comp_canvas.c | 41 -
 1 file changed, 20 insertions(+), 21 deletions(-)

diff --git a/src/bin/e_comp_canvas.c b/src/bin/e_comp_canvas.c
index 2506cd5..265448c 100644
--- a/src/bin/e_comp_canvas.c
+++ b/src/bin/e_comp_canvas.c
@@ -583,6 +583,26 @@ e_comp_canvas_update(void)
   }
  }
 
+   for (i = 0; i < 11; i++)
+ {
+Eina_List *tmp = NULL;
+E_Client *ec;
+
+if (!e_comp->layers[i].clients) continue;
+/* Make temporary list as e_client_res_change_geometry_restore
+ * rearranges the order. */
+EINA_INLIST_FOREACH(e_comp->layers[i].clients, ec)
+  {
+ if (!e_client_util_ignored_get(ec))
+   tmp = eina_list_append(tmp, ec);
+  }
+
+EINA_LIST_FREE(tmp, ec)
+  {
+ e_client_res_change_geometry_save(ec);
+ e_client_res_change_geometry_restore(ec);
+  }
+ }
if (!changed) return;
if (!starting)
  {
@@ -605,27 +625,6 @@ e_comp_canvas_update(void)
   }
 e_comp_canvas_zone_update(zone);
  }
-
-   for (i = 0; i < 11; i++)
- {
-Eina_List *tmp = NULL;
-E_Client *ec;
-
-if (!e_comp->layers[i].clients) continue;
-/* Make temporary list as e_client_res_change_geometry_restore
- * rearranges the order. */
-EINA_INLIST_FOREACH(e_comp->layers[i].clients, ec)
-  {
- if (!e_client_util_ignored_get(ec))
-   tmp = eina_list_append(tmp, ec);
-  }
-
-EINA_LIST_FREE(tmp, ec)
-  {
- e_client_res_change_geometry_save(ec);
- e_client_res_change_geometry_restore(ec);
-  }
- }
 }
 
 E_API void

-- 




[EGIT] [core/enlightenment] master 01/01: block re-unsetting of native surface for comp objects

2016-03-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit b710f6f3b39227a61976e020d8aa473183a1c01a
Author: Mike Blumenkrantz 
Date:   Tue Mar 8 14:53:00 2016 -0500

block re-unsetting of native surface for comp objects

due to recent evas internals changes, this breaks software compositing
---
 src/bin/e_comp_object.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 68329ae..c538770 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -3576,6 +3576,7 @@ e_comp_object_native_surface_set(Evas_Object *obj, 
Eina_Bool set)
EINA_SAFETY_ON_NULL_RETURN(cw->ec);
if (cw->ec->input_only) return;
set = !!set;
+   if ((!set) && (!cw->native)) return;
 
if (set)
  {

-- 




[EGIT] [core/elementary] master 01/01: theme: Fix scroller colorclass typo.

2016-03-08 Thread Stephen okra Houston
okra pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=d5a26c084f5b6efa9d27e6bf08f0f55871b3ca19

commit d5a26c084f5b6efa9d27e6bf08f0f55871b3ca19
Author: Stephen okra Houston 
Date:   Tue Mar 8 13:36:58 2016 -0600

theme: Fix scroller colorclass typo.
---
 data/themes/edc/elm/scroller.edc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/data/themes/edc/elm/scroller.edc b/data/themes/edc/elm/scroller.edc
index 27b267c..8902c50 100644
--- a/data/themes/edc/elm/scroller.edc
+++ b/data/themes/edc/elm/scroller.edc
@@ -694,7 +694,7 @@ group { name: "elm/scroller/base/default";
 rel2.to: "elm.swallow.background";
 //color: 64 64 64 200;
 color: 0 0 0 0;
-color_class: "scroller_bg`";
+color_class: "scroller_bg";
  }
   }
   part { name: "clipper"; type: RECT;

-- 




[EGIT] [core/enlightenment] master 01/01: manually calc bryce center-screen coords

2016-03-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=69fe80959b1ae2d31342a8ad06f42fef808cc9be

commit 69fe80959b1ae2d31342a8ad06f42fef808cc9be
Author: Mike Blumenkrantz 
Date:   Tue Mar 8 13:00:43 2016 -0500

manually calc bryce center-screen coords

e_comp_object_util_center_pos_get() uses zone useful geometry
---
 src/bin/e_bryce.c | 9 +++--
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/src/bin/e_bryce.c b/src/bin/e_bryce.c
index 64b8961..296cdb7 100644
--- a/src/bin/e_bryce.c
+++ b/src/bin/e_bryce.c
@@ -127,14 +127,11 @@ _bryce_position(Bryce *b, int w, int h, int *nx, int *ny)
 
 zone = e_comp_zone_number_get(b->zone);
 ox = zone->x, oy = zone->y, ow = zone->w, oh = zone->h;
-e_comp_object_util_center_pos_get(b->bryce, , );
  }
else
- {
-evas_object_geometry_get(b->parent, , , , );
-x = ox + (ow - w) / 2;
-y = oy + (oh - h) / 2;
- }
+ evas_object_geometry_get(b->parent, , , , );
+   x = ox + (ow - w) / 2;
+   y = oy + (oh - h) / 2;
an = e_gadget_site_anchor_get(b->site);
if (an & E_GADGET_SITE_ANCHOR_LEFT)
  x = ox;

-- 




[EGIT] [core/enlightenment] master 09/12: Re-enable window close animations for wayland

2016-03-08 Thread Derek Foreman
discomfitor pushed a commit to branch master.

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

commit e4490c4bf661a24d72fea87a243e320c9a720dd6
Author: Derek Foreman 
Date:   Tue Feb 16 13:38:31 2016 -0600

Re-enable window close animations for wayland

These should work properly with the new buffer management code.
---
 src/bin/e_client.h  |  1 -
 src/bin/e_comp_object.c | 14 --
 src/bin/e_comp_wl.c | 12 ++--
 3 files changed, 2 insertions(+), 25 deletions(-)

diff --git a/src/bin/e_client.h b/src/bin/e_client.h
index a6b0cac..13d24fd 100644
--- a/src/bin/e_client.h
+++ b/src/bin/e_client.h
@@ -636,7 +636,6 @@ struct E_Client
unsigned int   internal : 1;
unsigned int   internal_no_remember : 1;
unsigned int   internal_no_reopen : 1;
-   Eina_Bool  dead : 1;
 
Evas_Object   *internal_elm_win;
 
diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 7a41fa3..bf51f98 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -2187,20 +2187,6 @@ _e_comp_smart_hide(Evas_Object *obj)
evas_object_hide(cw->clip);
if (cw->input_obj) evas_object_hide(cw->input_obj);
evas_object_hide(cw->effect_obj);
-   if (cw->ec->dead)
- {
-Evas_Object *o;
-
-evas_object_hide(cw->obj);
-EINA_LIST_FREE(cw->obj_mirror, o)
-  {
- evas_object_image_data_set(o, NULL);
- evas_object_freeze_events_set(o, 1);
- evas_object_event_callback_del_full(o, EVAS_CALLBACK_DEL, 
_e_comp_object_cb_mirror_del, cw);
- evas_object_del(o);
-  }
-if (!_e_comp_object_animating_end(cw)) return;
- }
if (stopping) return;
if (!cw->ec->input_only)
  {
diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c
index a9db71f..2ec2491 100644
--- a/src/bin/e_comp_wl.c
+++ b/src/bin/e_comp_wl.c
@@ -1440,14 +1440,6 @@ static const struct wl_surface_interface 
_e_surface_interface =
 #endif
 };
 
-static void
-_e_comp_wl_surface_render_stop(E_Client *ec)
-{
-   /* FIXME: this may be fine after e_pixmap can create textures for wl 
clients? */
-   //if ((!ec->internal) && (!e_comp_gl_get()))
- ec->dead = ec->hidden = 1;
-   evas_object_hide(ec->frame);
-}
 
 static void
 _e_comp_wl_surface_destroy(struct wl_resource *resource)
@@ -1456,7 +1448,7 @@ _e_comp_wl_surface_destroy(struct wl_resource *resource)
 
if (!(ec = wl_resource_get_user_data(resource))) return;
 
-   _e_comp_wl_surface_render_stop(ec);
+   evas_object_hide(ec->frame);
e_object_del(E_OBJECT(ec));
 }
 
@@ -2167,7 +2159,7 @@ _e_comp_wl_client_cb_del(void *data EINA_UNUSED, E_Client 
*ec)
  wl_resource_set_user_data(ec->comp_data->surface, NULL);
 
if (ec->internal_elm_win)
- _e_comp_wl_surface_render_stop(ec);
+ evas_object_hide(ec->frame);
_e_comp_wl_focus_check();
 }
 

-- 




[EGIT] [core/enlightenment] master 02/12: Render deleted objects as long as they still have a pixmap

2016-03-08 Thread Derek Foreman
discomfitor pushed a commit to branch master.

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

commit ac47fd61ca8b68f110e51cbd38e8145573b450f6
Author: Derek Foreman 
Date:   Fri Mar 4 15:08:07 2016 -0600

Render deleted objects as long as they still have a pixmap

In wayland we can be presented with a new frame before being deleted.  If
we've never displayed that frame we should (since we released all pointers
to the old frame when we got the new one)
---
 src/bin/e_comp_object.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index e09895b..817737b 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -863,7 +863,7 @@ _e_comp_object_pixels_get(void *data, Evas_Object *obj 
EINA_UNUSED)
int pw, ph;
int bx, by, bxx, byy;
 
-   if (e_object_is_del(E_OBJECT(ec))) return;
+   if (!ec->pixmap) return;
if (!e_pixmap_size_get(ec->pixmap, , )) return;
//INF("PIXEL GET %p: %dx%d || %dx%d", ec, ec->w, ec->h, pw, ph);
e_pixmap_image_opaque_get(cw->ec->pixmap, , , , );

-- 




[EGIT] [core/enlightenment] master 11/12: Don't use e_pixmap_image_data_argb_convert for wayland images

2016-03-08 Thread Derek Foreman
discomfitor pushed a commit to branch master.

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

commit b4bcb1dc238075d9a9249a274a43b4eecc1d352c
Author: Derek Foreman 
Date:   Thu Feb 18 11:05:58 2016 -0600

Don't use e_pixmap_image_data_argb_convert for wayland images

All we really need for wayland is to set alpha properly, so we can
save the conversion/copy when doing XRGB.
---
 src/bin/e_comp_object.c | 13 +
 1 file changed, 13 insertions(+)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index e1f6ea3..68329ae 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -3730,6 +3730,19 @@ e_comp_object_render(Evas_Object *obj)
evas_object_image_pixels_dirty_set(cw->obj, EINA_FALSE);
 
RENDER_DEBUG("RENDER SIZE: %dx%d", pw, ph);
+
+   if (e_comp->comp_type == E_PIXMAP_TYPE_WL)
+ {
+Eina_Bool alpha = e_pixmap_image_is_argb(cw->ec->pixmap);
+
+it = NULL;
+pix = e_pixmap_image_data_get(cw->ec->pixmap);
+evas_object_image_data_set(cw->obj, cw->blanked ? NULL : pix);
+evas_object_image_alpha_set(cw->obj, alpha);
+ret = EINA_TRUE;
+goto end;
+ }
+
it = eina_tiler_iterator_new(cw->pending_updates);
if (e_pixmap_image_is_argb(cw->ec->pixmap))
  {

-- 




[EGIT] [core/enlightenment] master 04/12: Take an extra reference on wayland clients

2016-03-08 Thread Derek Foreman
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=65166c5a36669a2f903b24d9d91166308c103a17

commit 65166c5a36669a2f903b24d9d91166308c103a17
Author: Derek Foreman 
Date:   Mon Feb 29 12:11:56 2016 -0600

Take an extra reference on wayland clients

We need to make sure wayland clients aren't deleted while the scene
graph has their data pointers, so we take an extra reference when creating
them.

We drop that reference by clearing the client's image data and putting it
in the render post_updates list.
---
 src/bin/e_comp_wl.c | 14 ++
 1 file changed, 14 insertions(+)

diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c
index d74f75b..5da860b 100644
--- a/src/bin/e_comp_wl.c
+++ b/src/bin/e_comp_wl.c
@@ -136,6 +136,18 @@ _e_comp_wl_evas_cb_hide(void *data, Evas *evas 
EINA_UNUSED, Evas_Object *obj EIN
 
EINA_LIST_FOREACH(ec->e.state.video_child, l, tmp)
  evas_object_hide(tmp->frame);
+
+   if (!e_object_is_del(E_OBJECT(ec))) return;
+
+   e_comp_object_dirty(ec->frame);
+   e_comp_object_damage(ec->frame, 0, 0, ec->w, ec->h);
+   if (!e_comp_object_render(ec->frame)) return;
+   if (!ec->on_post_updates)
+ {
+ec->on_post_updates = EINA_TRUE;
+e_comp->post_updates = eina_list_append(e_comp->post_updates, ec);
+ }
+   else e_object_unref(E_OBJECT(ec));
 }
 
 static void
@@ -1532,6 +1544,8 @@ _e_comp_wl_compositor_cb_surface_create(struct wl_client 
*client, struct wl_reso
 #endif
/* emit surface create signal */
wl_signal_emit(_comp_wl->signals.surface.create, res);
+
+   e_object_ref(E_OBJECT(ec));
 }
 
 static void

-- 




[EGIT] [core/enlightenment] master 03/12: Track whether objects are on the post_updates list or not

2016-03-08 Thread Derek Foreman
discomfitor pushed a commit to branch master.

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

commit a35c7637a25d6e7e0266bf8febf82d6f45c2a94d
Author: Derek Foreman 
Date:   Fri Feb 19 11:50:16 2016 -0600

Track whether objects are on the post_updates list or not

Will use this to prevent accidentally adding objects to the list twice
---
 src/bin/e_client.h  | 1 +
 src/bin/e_comp_canvas.c | 1 +
 src/bin/e_comp_object.c | 2 ++
 3 files changed, 4 insertions(+)

diff --git a/src/bin/e_client.h b/src/bin/e_client.h
index 14427b9..a6b0cac 100644
--- a/src/bin/e_client.h
+++ b/src/bin/e_client.h
@@ -698,6 +698,7 @@ struct E_Client
Eina_Bool maximize_override : 1; // client is doing crazy stuff and should 
"just do it" when moving/resizing
Eina_Bool keyboard_resizing : 1;
 
+   Eina_Bool on_post_updates : 1; // client is on the post update list
 #ifdef HAVE_WAYLAND
uuid_t uuid;
 #endif
diff --git a/src/bin/e_comp_canvas.c b/src/bin/e_comp_canvas.c
index 0ce97fd..c5cb76d 100644
--- a/src/bin/e_comp_canvas.c
+++ b/src/bin/e_comp_canvas.c
@@ -53,6 +53,7 @@ _e_comp_canvas_render_post(void *data EINA_UNUSED, Evas *e 
EINA_UNUSED, void *ev
EINA_LIST_FREE(e_comp->post_updates, ec)
  {
 //INF("POST %p", ec);
+ec->on_post_updates = EINA_FALSE;
 if (!e_object_is_del(E_OBJECT(ec)))
   e_pixmap_image_clear(ec->pixmap, 1);
 UNREFD(ec, 111);
diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 817737b..7a41fa3 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -900,6 +900,7 @@ _e_comp_object_pixels_get(void *data, Evas_Object *obj 
EINA_UNUSED)
if (cw->native)
  {
 E_FREE_FUNC(cw->pending_updates, eina_tiler_free);
+cw->ec->on_post_updates = EINA_TRUE;
 e_comp->post_updates = eina_list_append(e_comp->post_updates, cw->ec);
 REFD(cw->ec, 111);
 e_object_ref(E_OBJECT(cw->ec));
@@ -3820,6 +3821,7 @@ end:
E_FREE_FUNC(cw->pending_updates, eina_tiler_free);
if (ret)
  {
+cw->ec->on_post_updates = EINA_TRUE;
 e_comp->post_updates = eina_list_append(e_comp->post_updates, cw->ec);
 REFD(cw->ec, 111);
 e_object_ref(E_OBJECT(cw->ec));

-- 




[EGIT] [core/enlightenment] master 10/12: Stop copying all wayland buffers

2016-03-08 Thread Derek Foreman
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=2e0e74f087eeff728e22be82ff666dd7614fb21d

commit 2e0e74f087eeff728e22be82ff666dd7614fb21d
Author: Derek Foreman 
Date:   Tue Feb 16 15:48:24 2016 -0600

Stop copying all wayland buffers

The new buffer management shouldn't require this anymore.
---
 src/bin/e_comp_object.c | 11 +--
 1 file changed, 1 insertion(+), 10 deletions(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index bf51f98..e1f6ea3 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -3759,16 +3759,7 @@ e_comp_object_render(Evas_Object *obj)
   }
 else
   ret = EINA_TRUE;
-/* set pixel data */
-if (e_comp->comp_type == E_PIXMAP_TYPE_WL)
-  {
-#warning FIXME BROKEN WAYLAND SHM BUFFER PROTOCOL
- evas_object_image_data_copy_set(cw->obj, cw->blanked ? NULL : 
pix);
- pix = evas_object_image_data_get(cw->obj, 0);
- evas_object_image_data_set(cw->obj, pix);
-  }
-else
-  evas_object_image_data_set(cw->obj, cw->blanked ? NULL : pix);
+evas_object_image_data_set(cw->obj, cw->blanked ? NULL : pix);
 goto end;
  }
 

-- 




[EGIT] [core/enlightenment] master 07/12: Rework wayland buffer handling

2016-03-08 Thread Derek Foreman
discomfitor pushed a commit to branch master.

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

commit dfc7c26ce4c5f47a253e027c70e7614a5b37ac7a
Author: Derek Foreman 
Date:   Tue Feb 16 13:28:10 2016 -0600

Rework wayland buffer handling

We need to keep wayland buffers around even if they'll never be written
to again.  This is part of Buffer_Reference's task in weston, but we
already have our pixmap abstraction which can serve mostly the same
purpose.

Remove the "buffer reference" stuff from e_pixmap and replace it with a
kept buffer for the last commit.

Add shared memory pool references to keep pools from going away on us.
---
 src/bin/e_comp_wl.c |   6 +-
 src/bin/e_comp_wl.h |   3 +
 src/bin/e_pixmap.c  | 155 +---
 3 files changed, 130 insertions(+), 34 deletions(-)

diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c
index 5da860b..47ff0bd 100644
--- a/src/bin/e_comp_wl.c
+++ b/src/bin/e_comp_wl.c
@@ -1696,7 +1696,6 @@ _e_comp_wl_subsurface_destroy(struct wl_resource 
*resource)
  }
 
_e_comp_wl_surface_state_finish(>cached);
-   e_comp_wl_buffer_reference(>cached_buffer_ref, NULL);
 
/* the client is getting deleted, which means the pixmap will be getting
 * freed. We need to unset the surface user data */
@@ -1743,8 +1742,9 @@ _e_comp_wl_subsurface_commit_to_cache(E_Client *ec)
 sdata->cached.new_attach = EINA_TRUE;
 _e_comp_wl_surface_state_buffer_set(>cached,
 cdata->pending.buffer);
-e_comp_wl_buffer_reference(>cached_buffer_ref,
-   cdata->pending.buffer);
+e_pixmap_resource_set(ec->pixmap, cdata->pending.buffer);
+e_pixmap_dirty(ec->pixmap);
+e_pixmap_refresh(ec->pixmap);
  }
 
sdata->cached.sx = cdata->pending.sx;
diff --git a/src/bin/e_comp_wl.h b/src/bin/e_comp_wl.h
index 7857db1..d60bb63 100644
--- a/src/bin/e_comp_wl.h
+++ b/src/bin/e_comp_wl.h
@@ -56,7 +56,10 @@ struct _E_Comp_Wl_Buffer
struct wl_resource *resource;
struct wl_signal destroy_signal;
struct wl_listener destroy_listener;
+   struct wl_listener deferred_destroy_listener;
struct wl_shm_buffer *shm_buffer;
+   struct wl_shm_pool *pool;
+   E_Pixmap *discarding_pixmap;
int32_t w, h;
uint32_t busy;
 };
diff --git a/src/bin/e_pixmap.c b/src/bin/e_pixmap.c
index 80d4232..af7f852 100644
--- a/src/bin/e_pixmap.c
+++ b/src/bin/e_pixmap.c
@@ -42,11 +42,13 @@ struct _E_Pixmap
 
 #ifdef HAVE_WAYLAND
E_Comp_Wl_Buffer *buffer;
-   E_Comp_Wl_Buffer_Ref buffer_ref;
+   E_Comp_Wl_Buffer *held_buffer;
struct wl_listener buffer_destroy_listener;
+   struct wl_listener held_buffer_destroy_listener;
void *data;
Eina_Rectangle opaque;
uuid_t uuid;
+   Eina_List *free_buffers;
 #endif
 
Eina_Bool usable : 1;
@@ -55,15 +57,36 @@ struct _E_Pixmap
 };
 
 #ifdef HAVE_WAYLAND
+
+static void
+_e_pixmap_cb_deferred_buffer_destroy(struct wl_listener *listener, void *data 
EINA_UNUSED)
+{
+   E_Comp_Wl_Buffer *buffer;
+
+   buffer = container_of(listener, E_Comp_Wl_Buffer, 
deferred_destroy_listener);
+   buffer->discarding_pixmap->free_buffers = 
eina_list_remove(buffer->discarding_pixmap->free_buffers, buffer);
+   buffer->discarding_pixmap = NULL;
+}
+
 static void 
 _e_pixmap_cb_buffer_destroy(struct wl_listener *listener, void *data 
EINA_UNUSED)
 {
E_Pixmap *cp;
 
cp = container_of(listener, E_Pixmap, buffer_destroy_listener);
-   cp->data = NULL;
+   cp->buffer = NULL;
cp->buffer_destroy_listener.notify = NULL;
 }
+
+static void
+_e_pixmap_cb_held_buffer_destroy(struct wl_listener *listener, void *data 
EINA_UNUSED)
+{
+   E_Pixmap *cp;
+
+   cp = container_of(listener, E_Pixmap, held_buffer_destroy_listener);
+   cp->held_buffer = NULL;
+   cp->held_buffer_destroy_listener.notify = NULL;
+}
 #endif
 
 static void
@@ -102,6 +125,67 @@ _e_pixmap_image_clear_x(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_U
 }
 #endif
 
+#ifdef HAVE_WAYLAND
+static void
+_e_pixmap_wayland_buffer_release(E_Pixmap *cp, E_Comp_Wl_Buffer *buffer)
+{
+   if (!buffer) return;
+
+   if (e_comp->rendering)
+ {
+if (buffer->discarding_pixmap) return;
+
+buffer->discarding_pixmap = cp;
+buffer->deferred_destroy_listener.notify = 
_e_pixmap_cb_deferred_buffer_destroy;
+wl_signal_add(>destroy_signal, 
>deferred_destroy_listener);
+cp->free_buffers = eina_list_append(cp->free_buffers, buffer);
+return;
+ }
+
+   buffer->busy--;
+   if (buffer->busy) return;
+
+   wl_resource_queue_event(buffer->resource, WL_BUFFER_RELEASE);
+   wl_shm_pool_unref(buffer->pool);
+   buffer->pool = NULL;
+}
+
+static void
+_e_pixmap_wl_buffers_free(E_Pixmap *cp)
+{
+   E_Comp_Wl_Buffer *b;
+
+   if (e_comp->rendering) return;
+
+   

[EGIT] [core/enlightenment] master 01/12: Add a NULL check in native_surface_init under wayland

2016-03-08 Thread Derek Foreman
discomfitor pushed a commit to branch master.

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

commit e5e887c773ab4a324af467d384edb37a76dbd2ce
Author: Derek Foreman 
Date:   Fri Mar 4 16:24:18 2016 -0600

Add a NULL check in native_surface_init under wayland
---
 src/bin/e_pixmap.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/bin/e_pixmap.c b/src/bin/e_pixmap.c
index a7f66d5..80d4232 100644
--- a/src/bin/e_pixmap.c
+++ b/src/bin/e_pixmap.c
@@ -580,6 +580,7 @@ e_pixmap_native_surface_init(E_Pixmap *cp, 
Evas_Native_Surface *ns)
 break;
   case E_PIXMAP_TYPE_WL:
 #ifdef HAVE_WAYLAND
+if (!cp->buffer) return EINA_FALSE;
 ns->type = EVAS_NATIVE_SURFACE_WL;
 ns->version = EVAS_NATIVE_SURFACE_VERSION;
 ns->data.wl.legacy_buffer = cp->buffer->resource;

-- 




[EGIT] [core/enlightenment] master 05/12: Don't allow deleted wayland clients to set the cursor

2016-03-08 Thread Derek Foreman
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=33582859e2dd75d340a99f418bc5e68a0672dd96

commit 33582859e2dd75d340a99f418bc5e68a0672dd96
Author: Derek Foreman 
Date:   Mon Feb 29 12:12:35 2016 -0600

Don't allow deleted wayland clients to set the cursor
---
 src/bin/e_comp_wl_input.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/bin/e_comp_wl_input.c b/src/bin/e_comp_wl_input.c
index 07d1196..22147ba 100644
--- a/src/bin/e_comp_wl_input.c
+++ b/src/bin/e_comp_wl_input.c
@@ -41,6 +41,7 @@ _e_comp_wl_input_pointer_cb_cursor_set(struct wl_client 
*client, struct wl_resou
 
E_CLIENT_FOREACH(ec)
  {
+   if (e_object_is_del(E_OBJECT(ec))) continue;
if (e_pixmap_type_get(ec->pixmap) != E_PIXMAP_TYPE_WL) continue;
if (!ec->comp_data->surface) continue;
if (client != wl_resource_get_client(ec->comp_data->surface)) continue;

-- 




[EGIT] [core/enlightenment] master 12/12: Remove argb_convert for wayland buffers

2016-03-08 Thread Derek Foreman
discomfitor pushed a commit to branch master.

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

commit df7bc5963dc1a624c11276ca5fc22c212c26
Author: Derek Foreman 
Date:   Thu Feb 18 11:06:40 2016 -0600

Remove argb_convert for wayland buffers

Wayland buffers are currently either ARGB or XRGB - we don't need to
convert either of these, we just need to set alpha appropriately - which
we now do.
---
 src/bin/e_pixmap.c | 31 +--
 1 file changed, 1 insertion(+), 30 deletions(-)

diff --git a/src/bin/e_pixmap.c b/src/bin/e_pixmap.c
index af7f852..555d4e7 100644
--- a/src/bin/e_pixmap.c
+++ b/src/bin/e_pixmap.c
@@ -901,36 +901,7 @@ e_pixmap_image_data_argb_convert(E_Pixmap *cp, void *pix, 
void *ipix, Eina_Recta
 break;
   case E_PIXMAP_TYPE_WL:
 if (cp->image_argb) return EINA_TRUE;
-#ifdef HAVE_WAYLAND
-if (cp->buffer)
-  {
- struct wl_shm_buffer *shm_buffer;
- uint32_t format;
- int i, x, y;
- unsigned int *src, *dst;
-
- shm_buffer = cp->buffer->shm_buffer;
- if (!shm_buffer) return EINA_FALSE;
-
- format = wl_shm_buffer_get_format(shm_buffer);
- if (format == WL_SHM_FORMAT_XRGB)
-   {
-  dst = (unsigned int *)pix;
-  src = (unsigned int *)ipix;
-
-  for (y = 0; y < r->h; y++)
-{
-   i = (r->y + y) * stride / 4 + r->x;
-   for (x = 0; x < r->w; x++)
- dst[i+x] = 0xff00 | src[i+x];
-}
-  pix = (void *)dst;
-   }
-
- return EINA_TRUE;
-  }
-#endif
-break;
+return EINA_FALSE;
   default:
 break;
  }

-- 




[EGIT] [core/enlightenment] master 08/12: Remove wayland buffer reference

2016-03-08 Thread Derek Foreman
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=36586fbf9cd84bacf6568f5c2eb8ba131f1e1b11

commit 36586fbf9cd84bacf6568f5c2eb8ba131f1e1b11
Author: Derek Foreman 
Date:   Tue Feb 16 13:33:25 2016 -0600

Remove wayland buffer reference

This code is similar to code in weston, but doesn't really work properly
for us in E, since this can blow up buffers behind the async renderer's
back.

The rest of the reference code has been pushed into e_pixmap, so we can
kill this all now.
---
 src/bin/e_comp_wl.c | 35 ---
 src/bin/e_comp_wl.h | 10 --
 2 files changed, 45 deletions(-)

diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c
index 47ff0bd..a9db71f 100644
--- a/src/bin/e_comp_wl.c
+++ b/src/bin/e_comp_wl.c
@@ -729,16 +729,6 @@ _e_comp_wl_evas_cb_color_set(void *data, Evas_Object *obj, 
void *event EINA_UNUS
 }
 
 static void
-_e_comp_wl_buffer_reference_cb_destroy(struct wl_listener *listener, void 
*data)
-{
-   E_Comp_Wl_Buffer_Ref *ref;
-
-   ref = container_of(listener, E_Comp_Wl_Buffer_Ref, destroy_listener);
-   if ((E_Comp_Wl_Buffer *)data != ref->buffer) return;
-   ref->buffer = NULL;
-}
-
-static void
 _e_comp_wl_buffer_cb_destroy(struct wl_listener *listener, void *data 
EINA_UNUSED)
 {
E_Comp_Wl_Buffer *buffer;
@@ -1984,7 +1974,6 @@ _e_comp_wl_subsurface_create(E_Client *ec, E_Client *epc, 
uint32_t id, struct wl
_e_comp_wl_surface_state_init(>cached, ec->w, ec->h);
 
/* set subsurface data properties */
-   sdata->cached_buffer_ref.buffer = NULL;
sdata->resource = res;
sdata->synchronized = EINA_TRUE;
sdata->parent = epc;
@@ -2695,30 +2684,6 @@ e_comp_wl_subsurface_commit(E_Client *ec)
return EINA_TRUE;
 }
 
-EINTERN void
-e_comp_wl_buffer_reference(E_Comp_Wl_Buffer_Ref *ref, E_Comp_Wl_Buffer *buffer)
-{
-   if ((ref->buffer) && (buffer != ref->buffer))
- {
-ref->buffer->busy--;
-if (ref->buffer->busy == 0)
-  {
- if (!wl_resource_get_client(ref->buffer->resource)) return;
- wl_resource_queue_event(ref->buffer->resource, WL_BUFFER_RELEASE);
-  }
-wl_list_remove(>destroy_listener.link);
- }
-
-   if ((buffer) && (buffer != ref->buffer))
- {
-buffer->busy++;
-wl_signal_add(>destroy_signal, >destroy_listener);
- }
-
-   ref->buffer = buffer;
-   ref->destroy_listener.notify = _e_comp_wl_buffer_reference_cb_destroy;
-}
-
 /**
  * Get the buffer for a given resource.
  *
diff --git a/src/bin/e_comp_wl.h b/src/bin/e_comp_wl.h
index d60bb63..e7df72a 100644
--- a/src/bin/e_comp_wl.h
+++ b/src/bin/e_comp_wl.h
@@ -43,7 +43,6 @@
})
 
 typedef struct _E_Comp_Wl_Buffer E_Comp_Wl_Buffer;
-typedef struct _E_Comp_Wl_Buffer_Ref E_Comp_Wl_Buffer_Ref;
 typedef struct _E_Comp_Wl_Subsurf_Data E_Comp_Wl_Subsurf_Data;
 typedef struct _E_Comp_Wl_Surface_State E_Comp_Wl_Surface_State;
 typedef struct _E_Comp_Wl_Client_Data E_Comp_Wl_Client_Data;
@@ -64,12 +63,6 @@ struct _E_Comp_Wl_Buffer
uint32_t busy;
 };
 
-struct _E_Comp_Wl_Buffer_Ref
-{
-   E_Comp_Wl_Buffer *buffer;
-   struct wl_listener destroy_listener;
-};
-
 struct _E_Comp_Wl_Surface_State
 {
int sx, sy;
@@ -95,7 +88,6 @@ struct _E_Comp_Wl_Subsurf_Data
  } position;
 
E_Comp_Wl_Surface_State cached;
-   E_Comp_Wl_Buffer_Ref cached_buffer_ref;
 
Eina_Bool synchronized;
 };
@@ -287,7 +279,6 @@ struct _E_Comp_Wl_Client_Data
 E_Shell_Data *data;
  } shell;
 
-   E_Comp_Wl_Buffer_Ref buffer_ref;
E_Comp_Wl_Surface_State pending;
 
Eina_List *frames;
@@ -336,7 +327,6 @@ EINTERN struct wl_resource *e_comp_wl_surface_create(struct 
wl_client *client, i
 EINTERN void e_comp_wl_surface_destroy(struct wl_resource *resource);
 EINTERN Eina_Bool e_comp_wl_surface_commit(E_Client *ec);
 EINTERN Eina_Bool e_comp_wl_subsurface_commit(E_Client *ec);
-EINTERN void e_comp_wl_buffer_reference(E_Comp_Wl_Buffer_Ref *ref, 
E_Comp_Wl_Buffer *buffer);
 E_API E_Comp_Wl_Buffer *e_comp_wl_buffer_get(struct wl_resource *resource);
 
 E_API struct wl_signal e_comp_wl_surface_create_signal_get(void);

-- 




[EGIT] [core/enlightenment] master 06/12: Track whether a render is in progress or not

2016-03-08 Thread Derek Foreman
discomfitor pushed a commit to branch master.

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

commit b98e78d46476d8c5468c3034ee13e2dae8c83047
Author: Derek Foreman 
Date:   Fri Mar 4 15:46:14 2016 -0600

Track whether a render is in progress or not

We'll need this to protect certain wayland operations.
---
 src/bin/e_comp.h| 2 ++
 src/bin/e_comp_canvas.c | 5 +
 2 files changed, 7 insertions(+)

diff --git a/src/bin/e_comp.h b/src/bin/e_comp.h
index d343036..1f4f2d5 100644
--- a/src/bin/e_comp.h
+++ b/src/bin/e_comp.h
@@ -155,6 +155,8 @@ struct _E_Comp
Eina_Bool   nocomp_want : 1;
Eina_Bool   saver : 1;
Eina_Bool   shape_queue_blocked : 1;
+
+   Eina_Bool   rendering : 1; // we've received a pre-render callback but 
no post-render yet.
 };
 
 
diff --git a/src/bin/e_comp_canvas.c b/src/bin/e_comp_canvas.c
index c5cb76d..2506cd5 100644
--- a/src/bin/e_comp_canvas.c
+++ b/src/bin/e_comp_canvas.c
@@ -50,6 +50,9 @@ _e_comp_canvas_render_post(void *data EINA_UNUSED, Evas *e 
EINA_UNUSED, void *ev
 //EINA_LIST_FOREACH(ev->updated_area, l, r)
   //INF("POST RENDER: %d,%d %dx%d", r->x, r->y, r->w, r->h);
  //}
+
+   e_comp->rendering = EINA_FALSE;
+
EINA_LIST_FREE(e_comp->post_updates, ec)
  {
 //INF("POST %p", ec);
@@ -258,6 +261,8 @@ _e_comp_canvas_prerender(void *data EINA_UNUSED, Evas *e 
EINA_UNUSED, void *even
E_Comp_Cb cb;
Eina_List *l;
 
+   e_comp->rendering = EINA_TRUE;
+
EINA_LIST_FOREACH(e_comp->pre_render_cbs, l, cb)
  cb();
 }

-- 




[EGIT] [core/enlightenment] master 01/02: enforce accurate resizing/orienting when changing the location of a bryce

2016-03-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/core/enlightenment.git/commit/?id=82a4dbda8da921f7efde000b967f1ec62a2249ad

commit 82a4dbda8da921f7efde000b967f1ec62a2249ad
Author: Mike Blumenkrantz 
Date:   Tue Mar 8 12:31:10 2016 -0500

enforce accurate resizing/orienting when changing the location of a bryce
---
 src/bin/e_bryce.c| 28 +++-
 src/bin/e_bryce_editor.c |  5 -
 src/bin/e_gadget.c   | 10 +-
 3 files changed, 32 insertions(+), 11 deletions(-)

diff --git a/src/bin/e_bryce.c b/src/bin/e_bryce.c
index 8348063..d3aba88 100644
--- a/src/bin/e_bryce.c
+++ b/src/bin/e_bryce.c
@@ -731,6 +731,14 @@ _bryce_gadget_popup(void *data, Evas_Object *obj 
EINA_UNUSED, void *event_info)
 }
 
 static void
+_bryce_site_anchor(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
+{
+   Bryce *b = data;
+
+   e_bryce_orient(b->bryce, e_gadget_site_orient_get(obj), 
e_gadget_site_anchor_get(obj));
+}
+
+static void
 _bryce_orient(Bryce *b)
 {
char buf[1024];
@@ -748,6 +756,11 @@ _bryce_orient(Bryce *b)
  elm_layout_signal_emit(b->layout, "e,state,orient,horizontal", "e");
else
  elm_layout_signal_emit(b->layout, "e,state,orient,vertical", "e");
+   evas_object_event_callback_add(b->site, EVAS_CALLBACK_CHANGED_SIZE_HINTS, 
_bryce_site_hints, b);
+   evas_object_smart_callback_add(b->site, "gadget_site_anchor", 
_bryce_site_anchor, b);
+   evas_object_smart_callback_add(b->site, "gadget_site_style_menu", 
_bryce_style_menu, b);
+   evas_object_smart_callback_add(b->site, "gadget_site_owner_menu", 
_bryce_owner_menu, b);
+   evas_object_smart_callback_add(b->site, "gadget_site_popup", 
_bryce_gadget_popup, b);
 }
 
 static void
@@ -801,11 +814,6 @@ _bryce_create(Bryce *b, Evas_Object *parent)
evas_object_event_callback_add(bryce, EVAS_CALLBACK_MOUSE_DOWN, 
_bryce_mouse_down, b);
evas_object_event_callback_add(bryce, EVAS_CALLBACK_MOUSE_UP, 
_bryce_mouse_up, b);
evas_object_event_callback_add(bryce, EVAS_CALLBACK_MOUSE_WHEEL, 
_bryce_mouse_wheel, b);
-   evas_object_event_callback_add(b->site, EVAS_CALLBACK_CHANGED_SIZE_HINTS, 
_bryce_site_hints, b);
-
-   evas_object_smart_callback_add(b->site, "gadget_site_style_menu", 
_bryce_style_menu, b);
-   evas_object_smart_callback_add(b->site, "gadget_site_owner_menu", 
_bryce_owner_menu, b);
-   evas_object_smart_callback_add(b->site, "gadget_site_popup", 
_bryce_gadget_popup, b);
 
zone_clip = e_comp_zone_number_get(b->zone)->bg_clip_object;
evas_object_clip_set(bryce, zone_clip);
@@ -912,10 +920,20 @@ e_bryce_add(Evas_Object *parent, const char *name, 
E_Gadget_Site_Orient orient,
 E_API void
 e_bryce_orient(Evas_Object *bryce, E_Gadget_Site_Orient orient, 
E_Gadget_Site_Anchor an)
 {
+   int w, h;
+   E_Gadget_Site_Orient prev;
+
BRYCE_GET(bryce);
+   if ((b->orient == orient) && (b->anchor == an)) return;
+   prev = b->orient;
b->orient = orient;
b->anchor = an;
+   evas_object_geometry_get(bryce, NULL, NULL, , );
_bryce_orient(b);
+   if (prev == orient)
+ _bryce_autosize(b);
+   else
+ evas_object_resize(bryce, h, w);
 }
 
 E_API Evas_Object *
diff --git a/src/bin/e_bryce_editor.c b/src/bin/e_bryce_editor.c
index 4c13149..b07173a 100644
--- a/src/bin/e_bryce_editor.c
+++ b/src/bin/e_bryce_editor.c
@@ -77,7 +77,10 @@ _editor_bryce_add(Evas_Object *obj)
   gravity = E_GADGET_SITE_GRAVITY_BOTTOM;
  }
if (b)
- site = e_bryce_site_get(b);
+ {
+e_bryce_orient(b, bi->orient, bi->anchor);
+site = e_bryce_site_get(b);
+ }
else
  {
 b = e_bryce_add(e_comp->elm, buf, bi->orient, bi->anchor);
diff --git a/src/bin/e_gadget.c b/src/bin/e_gadget.c
index e41f542..bb70ca2 100644
--- a/src/bin/e_gadget.c
+++ b/src/bin/e_gadget.c
@@ -1175,8 +1175,12 @@ _site_util_add(E_Gadget_Site_Orient orient, const char 
*name, Eina_Bool autoadd)
zgs = E_NEW(E_Gadget_Site, 1);
 
zgs->name = eina_stringshare_add(name);
-   zgs->orient = orient;
zgs->autoadd = autoadd;
+
+   if (name)
+ sites->sites = eina_list_append(sites->sites, zgs);
+out:
+   zgs->orient = orient;
switch (orient)
  {
   case E_GADGET_SITE_ORIENT_HORIZONTAL:
@@ -1187,10 +1191,6 @@ _site_util_add(E_Gadget_Site_Orient orient, const char 
*name, Eina_Bool autoadd)
 break;
   default: break;
  }
-
-   if (name)
- sites->sites = eina_list_append(sites->sites, zgs);
-out:
if (autoadd)
  {
 parent = evas_object_name_find(e_comp->evas, name);

-- 




[EGIT] [core/enlightenment] master 02/02: add bryce autohide/size getters, pull related values into wizard

2016-03-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit b3cda14e1b89db004d26f6ac66b8ff88e7e948d9
Author: Mike Blumenkrantz 
Date:   Tue Mar 8 12:43:35 2016 -0500

add bryce autohide/size getters, pull related values into wizard
---
 src/bin/e_bryce.c| 14 ++
 src/bin/e_bryce.h|  4 ++--
 src/bin/e_bryce_editor.c | 21 -
 3 files changed, 36 insertions(+), 3 deletions(-)

diff --git a/src/bin/e_bryce.c b/src/bin/e_bryce.c
index d3aba88..64b8961 100644
--- a/src/bin/e_bryce.c
+++ b/src/bin/e_bryce.c
@@ -944,6 +944,13 @@ e_bryce_site_get(Evas_Object *bryce)
return b->site;
 }
 
+E_API Eina_Bool
+e_bryce_autosize_get(Evas_Object *bryce)
+{
+   BRYCE_GET(bryce);
+   return b->autosize;
+}
+
 E_API void
 e_bryce_autosize_set(Evas_Object *bryce, Eina_Bool set)
 {
@@ -957,6 +964,13 @@ e_bryce_autosize_set(Evas_Object *bryce, Eina_Bool set)
_bryce_autosize(b);
 }
 
+E_API Eina_Bool
+e_bryce_autohide_get(Evas_Object *bryce)
+{
+   BRYCE_GET(bryce);
+   return b->autohide;
+}
+
 E_API void
 e_bryce_autohide_set(Evas_Object *bryce, Eina_Bool set)
 {
diff --git a/src/bin/e_bryce.h b/src/bin/e_bryce.h
index 3fa69b5..3f575a2 100644
--- a/src/bin/e_bryce.h
+++ b/src/bin/e_bryce.h
@@ -8,13 +8,13 @@ EINTERN void e_bryce_shutdown(void);
 E_API Evas_Object *e_bryce_add(Evas_Object *parent, const char *name, 
E_Gadget_Site_Orient orient, E_Gadget_Site_Anchor an);
 E_API void e_bryce_orient(Evas_Object *bryce, E_Gadget_Site_Orient orient, 
E_Gadget_Site_Anchor an);
 E_API Evas_Object *e_bryce_site_get(Evas_Object *bryce);
+E_API Eina_Bool e_bryce_autosize_get(Evas_Object *bryce);
 E_API void e_bryce_autosize_set(Evas_Object *bryce, Eina_Bool set);
+E_API Eina_Bool e_bryce_autohide_get(Evas_Object *bryce);
 E_API void e_bryce_autohide_set(Evas_Object *bryce, Eina_Bool set);
 E_API Eina_Bool e_bryce_exists(Evas_Object *parent, Evas_Object *bryce, 
E_Gadget_Site_Orient orient, E_Gadget_Site_Anchor an);
 E_API Eina_List *e_bryce_list(Evas_Object *parent);
 E_API void e_bryce_style_set(Evas_Object *bryce, const char *style);
-E_API void e_bryce_autosize_set(Evas_Object *bryce, Eina_Bool set);
-E_API void e_bryce_autohide_set(Evas_Object *bryce, Eina_Bool set);
 
 E_API Evas_Object *e_bryce_editor_add(Evas_Object *parent, Evas_Object *bryce);
 E_API Evas_Object *e_bryce_edit(Evas_Object *bryce);
diff --git a/src/bin/e_bryce_editor.c b/src/bin/e_bryce_editor.c
index b07173a..6cd0f5a 100644
--- a/src/bin/e_bryce_editor.c
+++ b/src/bin/e_bryce_editor.c
@@ -134,13 +134,14 @@ _editor_style_click(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj, void *eve
const char *g;
char style[1024] = {0};
Bryce_Info *bi;
-   Evas_Object *ly, *box, *ck, *button;
+   Evas_Object *ly, *box, *ck, *button, *bryce;
 
ly = elm_object_part_content_get(obj, "e.swallow.content");
elm_layout_file_get(ly, NULL, );
g += (sizeof("e/bryce/") - 1);
memcpy(style, g, MIN(sizeof(style) - 1, strchr(g, '/') - g));
 
+   bryce = evas_object_data_get(data, "__bryce_editor_bryce");
bi = evas_object_data_get(data, "__bryce_info");
bi->style = eina_stringshare_add(style);
e_theme_edje_object_set(data, NULL, "e/bryce/editor/finish");
@@ -149,24 +150,42 @@ _editor_style_click(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj, void *eve
elm_box_padding_set(box, 0, 20 * e_scale);
 
ck = elm_check_add(box);
+   elm_object_focus_allow_set(ck, 0);
E_ALIGN(ck, 0, 0.5);
evas_object_show(ck);
elm_object_text_set(ck, _("Automatically size based on contents"));
evas_object_smart_callback_add(ck, "changed", _editor_autosize, bi);
+   if (bryce)
+ {
+bi->autosize = e_bryce_autosize_get(bryce);
+elm_check_state_set(ck, bi->autosize);
+ }
elm_box_pack_end(box, ck);
 
ck = elm_check_add(box);
+   elm_object_focus_allow_set(ck, 0);
E_ALIGN(ck, 0, 0.5);
evas_object_show(ck);
elm_object_text_set(ck, _("Automatically hide"));
evas_object_smart_callback_add(ck, "changed", _editor_autohide, bi);
+   if (bryce)
+ {
+bi->autohide = e_bryce_autohide_get(bryce);
+elm_check_state_set(ck, bi->autohide);
+ }
elm_box_pack_end(box, ck);
 
ck = elm_check_add(box);
+   elm_object_focus_allow_set(ck, 0);
E_ALIGN(ck, 0, 0.5);
evas_object_show(ck);
elm_object_text_set(ck, _("Do not stack above windows"));
evas_object_smart_callback_add(ck, "changed", _editor_stacking, bi);
+   if (bryce)
+ {
+bi->stack_under = evas_object_layer_get(bryce) == E_LAYER_DESKTOP;
+elm_check_state_set(ck, bi->stack_under);
+ }
elm_box_pack_end(box, ck);
 
//ck = elm_check_add(box);

-- 




[EGIT] [core/efl] master 01/01: Revert "ecore: Create Promises"

2016-03-08 Thread Tom Hacohen
tasn pushed a commit to branch master.

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

commit 7d8cd6c40f61537bff5ced41dce62d54cd311eb5
Author: Tom Hacohen 
Date:   Tue Mar 8 14:23:57 2016 +

Revert "ecore: Create Promises"

Reverting this at Felipe's request following my email. There are many
things I strongly object to in this commit. I've touched the surface of
those on the ML (which doesn't work at the moment), though we need to
better discuss it.

The gist:
1. dlsym is a really bad hack that is not even needed.
2. I don't see why eo should even be aware of promises. It's not aware
of list, hash and etc.
3. The eolian changes were done wrong.

This should have been discussed and consulted before done, even if only
because of the amount of hacks it includes and the cross-domain (ecore,
eo and eolian) nature of it.

This reverts commit f9ba80ab33e0b94dad7ec103e6d261a644f7835f.
---
 src/Makefile_Ecore.am|   5 +-
 src/bin/eolian/eo_generator.c|  30 +--
 src/lib/ecore/Ecore.h|   1 -
 src/lib/ecore/ecore_promise.c| 452 ---
 src/lib/ecore/ecore_promise.h| 136 ---
 src/lib/eo/Eo.h  |  63 ++---
 src/lib/eolian/eo_lexer.c|   3 +-
 src/lib/eolian/eo_lexer.h|   6 +-
 src/lib/eolian/eo_parser.c   |   2 +-
 src/tests/ecore/ecore_suite.c|   1 -
 src/tests/ecore/ecore_suite.h|   1 -
 src/tests/ecore/ecore_test_promise.c | 364 
 12 files changed, 22 insertions(+), 1042 deletions(-)

diff --git a/src/Makefile_Ecore.am b/src/Makefile_Ecore.am
index 79ac16c..49936af 100644
--- a/src/Makefile_Ecore.am
+++ b/src/Makefile_Ecore.am
@@ -47,8 +47,7 @@ lib/ecore/Ecore.h \
 lib/ecore/Ecore_Common.h \
 lib/ecore/Ecore_Legacy.h \
 lib/ecore/Ecore_Eo.h \
-lib/ecore/Ecore_Getopt.h \
-lib/ecore/ecore_promise.h
+lib/ecore/Ecore_Getopt.h
 
 nodist_installed_ecoremainheaders_DATA = \
  $(ecore_eolian_h)
@@ -73,7 +72,6 @@ lib/ecore/ecore_timer.c \
 lib/ecore/ecore_thread.c \
 lib/ecore/ecore_throttle.c \
 lib/ecore/ecore_exe.c \
-lib/ecore/ecore_promise.c \
 lib/ecore/ecore_exe_private.h \
 lib/ecore/ecore_private.h
 
@@ -201,7 +199,6 @@ tests/ecore/ecore_test_animator.c \
 tests/ecore/ecore_test_ecore_thread_eina_thread_queue.c \
 tests/ecore/ecore_test_ecore_input.c \
 tests/ecore/ecore_test_ecore_file.c \
-tests/ecore/ecore_test_promise.c \
 tests/ecore/ecore_suite.h
 
 tests_ecore_ecore_suite_CPPFLAGS = -I$(top_builddir)/src/lib/efl \
diff --git a/src/bin/eolian/eo_generator.c b/src/bin/eolian/eo_generator.c
index 4810658..a97f2f0 100644
--- a/src/bin/eolian/eo_generator.c
+++ b/src/bin/eolian/eo_generator.c
@@ -311,9 +311,6 @@ eo_bind_func_generate(const Eolian_Class *class, const 
Eolian_Function *funcid,
if (ftype != EOLIAN_PROP_GET && ftype != EOLIAN_PROP_SET) ftype = 
eolian_function_type_get(funcid);
Eina_Bool is_prop = (ftype == EOLIAN_PROP_GET || ftype == EOLIAN_PROP_SET);
 
-   Eina_Bool has_promise = EINA_FALSE;
-   const char* promise_param_name = NULL;
-   const char* promise_value_type = NULL;
Eina_Bool need_implementation = EINA_TRUE;
if (!impl_env && eolian_function_is_virtual_pure(funcid, ftype)) 
need_implementation = EINA_FALSE;
 
@@ -340,11 +337,9 @@ eo_bind_func_generate(const Eolian_Class *class, const 
Eolian_Function *funcid,
  if (eina_iterator_next(itr, ) && !eina_iterator_next(itr, 
))
{
   Eolian_Function_Parameter *param = data;
-  const char* rettype_str = NULL;
   rettypet = eolian_parameter_type_get(param);
   var_as_ret = EINA_TRUE;
   default_ret_val = eolian_parameter_default_value_get(param);
-  eina_stringshare_del(rettype_str);
}
  eina_iterator_free(itr);
   }
@@ -380,24 +375,9 @@ eo_bind_func_generate(const Eolian_Class *class, const 
Eolian_Function *funcid,
  const char *ptype = eolian_type_c_type_get(ptypet);
  Eolian_Parameter_Dir pdir = eolian_parameter_direction_get(param);
  Eina_Bool had_star = !!strchr(ptype, '*');
-
- if(!has_promise && !strcmp(ptype, "Ecore_Promise *"))
-   {
-  Eina_Iterator* promise_values;
-  has_promise = EINA_TRUE;
-  promise_param_name = eina_stringshare_add(pname);
-  promise_values = 
eolian_type_subtypes_get(eolian_type_base_type_get(ptypet));
-  Eolian_Type* subtype;
-  if(eina_iterator_next(promise_values, (void**)))
-  promise_value_type = eolian_type_c_type_get(subtype);
-   }
- 
  if (ftype == 

[EGIT] [core/efl] master 01/01: eo_cxx: Fix unused parameter warning when no constructor is required

2016-03-08 Thread Vitor Sousa
vitorsousa pushed a commit to branch master.

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

commit f1a6ff29567c3db71c7ddd58e90715463ac81af9
Author: Vitor Sousa 
Date:   Tue Mar 8 10:28:33 2016 -0300

eo_cxx: Fix unused parameter warning when no constructor is required

Test Plan: compile elm

Reviewers: stefan_schmidt

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D3778
---
 src/bindings/eo_cxx/eo_cxx_interop.hh | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/bindings/eo_cxx/eo_cxx_interop.hh 
b/src/bindings/eo_cxx/eo_cxx_interop.hh
index cbfa1a2..18af392 100644
--- a/src/bindings/eo_cxx/eo_cxx_interop.hh
+++ b/src/bindings/eo_cxx/eo_cxx_interop.hh
@@ -476,6 +476,7 @@ void call_ctors(Eo* _obj_eoid, Fs&&... fs)
 {
std::initializer_list const v {(fs(_obj_eoid), 0)...};
(void) v;
+   (void) _obj_eoid;
 }
 
 } } // namespace efl { namespace eolian {

-- 




[EGIT] [core/elementary] master 01/01: Revert "list: set internal box as homogeneous if no separator items are present"

2016-03-08 Thread Hermet Park
hermet pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=89a2a7c134c8b5a9ab128c44db693c207bed55f3

commit 89a2a7c134c8b5a9ab128c44db693c207bed55f3
Author: Hermet Park 
Date:   Tue Mar 8 20:58:17 2016 +0900

Revert "list: set internal box as homogeneous if no separator items are 
present"

This reverts commit 9f4c43c20dfa36e7a8be18278acf4336c13574d7.

I'm sorry but this causes a side effect(list sizing issue) at enventor.
And I couldn't find any mis-usage in enventor side.

We can't not accept this patch unless we figure the exact reason out.
---
 src/lib/elm_list.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/src/lib/elm_list.c b/src/lib/elm_list.c
index 78c6804..14164dc 100644
--- a/src/lib/elm_list.c
+++ b/src/lib/elm_list.c
@@ -815,7 +815,6 @@ _items_fix(Evas_Object *obj)
const char *it_plain;
const char *it_compress;
const char *it_compress_odd;
-   Eina_Bool separators = EINA_FALSE;
 
ELM_LIST_DATA_GET(obj, sd);
 
@@ -851,7 +850,6 @@ _items_fix(Evas_Object *obj)
  if (mw > minw[1]) minw[1] = mw;
  if (mh > minh[1]) minh[1] = mh;
   }
-separators |= it->is_separator;
  }
 
if ((minw[0] != sd->minw[0]) || (minw[1] != sd->minw[1]) ||
@@ -865,7 +863,6 @@ _items_fix(Evas_Object *obj)
  }
 
i = 0;
-   elm_box_homogeneous_set(sd->box, !separators);
EINA_LIST_FOREACH(sd->items, l, eo_it)
  {
 ELM_LIST_ITEM_DATA_GET(eo_it, it);

-- 




[EGIT] [tools/enventor] master 01/03: Revert "Revert "edc_editor: Support auto save to update preview.""

2016-03-08 Thread Hermet Park
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=a3185bc64be3fb30b22d175d180f717ca7f4c5ae

commit a3185bc64be3fb30b22d175d180f717ca7f4c5ae
Author: Hermet Park 
Date:   Tue Mar 8 16:52:25 2016 +0900

Revert "Revert "edc_editor: Support auto save to update preview.""

This reverts commit b663d049dbfc9d63842930b5fa14f699da153eb7.

0.8.0 was released. revert this again.
---
 src/lib/auto_comp.c|  4 
 src/lib/edc_editor.c   | 37 +
 src/lib/enventor_private.h |  2 ++
 3 files changed, 43 insertions(+)

diff --git a/src/lib/auto_comp.c b/src/lib/auto_comp.c
index 664db9e..9754e62 100644
--- a/src/lib/auto_comp.c
+++ b/src/lib/auto_comp.c
@@ -506,6 +506,8 @@ list_del_cb(void *data, Evas *e EINA_UNUSED, Evas_Object 
*obj EINA_UNUSED,
 {
autocomp_data *ad = data;
ad->list = NULL;
+
+   edit_auto_save_timer_apply(ad->ed);
 }
 
 
@@ -579,6 +581,8 @@ entry_tooltip_content_cb(void *data, Evas_Object *obj 
EINA_UNUSED,
elm_list_go(ad->list);
evas_object_show(ad->list);
 
+   edit_auto_save_timer_cancel(ad->ed);
+
return ad->list;
 }
 
diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c
index f5a4c14..087bcee 100644
--- a/src/lib/edc_editor.c
+++ b/src/lib/edc_editor.c
@@ -13,6 +13,7 @@ const int MAX_LINE_DIGIT_CNT = 10;
 const int SYNTAX_COLOR_SPARE_LINES = 42;
 const double SYNTAX_COLOR_DEFAULT_TIME = 0.25;
 const double SYNTAX_COLOR_SHORT_TIME = 0.025;
+const double AUTO_SAVE_TIME = 2.0;
 
 typedef struct syntax_color_thread_data_s
 {
@@ -48,6 +49,7 @@ struct editor_s
   int right;
} bracket;
 
+   Ecore_Timer *auto_save_timer;
Ecore_Timer *syntax_color_timer;
Ecore_Thread *syntax_color_thread;
 
@@ -470,6 +472,8 @@ edit_changed_cb(void *data, Evas_Object *obj EINA_UNUSED, 
void *event_info)
syntax_color_partial_update(ed, SYNTAX_COLOR_DEFAULT_TIME);
 
parser_bracket_cancel(ed->pd);
+
+   edit_auto_save_timer_apply(ed);
 }
 
 static void
@@ -564,6 +568,8 @@ ctxpopup_del_cb(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_UNUSED,
 {
edit_data *ed = data;
ed->ctxpopup = NULL;
+
+   edit_auto_save_timer_apply(ed);
 }
 
 //This function is called when user press up/down key or mouse wheel up/down
@@ -725,6 +731,8 @@ candidate_list_show(edit_data *ed, char *text, char *cur, 
char *selected)
evas_object_event_callback_add(ctxpopup, EVAS_CALLBACK_DEL, 
ctxpopup_del_cb, ed);
ed->ctxpopup = ctxpopup;
elm_object_tree_focus_allow_set(ed->layout, EINA_FALSE);
+
+   edit_auto_save_timer_cancel(ed);
 }
 
 static void
@@ -1127,6 +1135,16 @@ edit_focused_cb(void *data, Evas_Object *obj EINA_UNUSED,
evas_object_smart_callback_call(ed->enventor, SIG_FOCUSED, NULL);
 }
 
+static Eina_Bool
+auto_save_timer_cb(void *data)
+{
+   edit_data *ed = data;
+   edit_save(ed, build_edc_path_get());
+   build_edc();
+   ed->auto_save_timer = NULL;
+   return ECORE_CALLBACK_CANCEL;
+}
+
 /*/
 /* Externally accessible calls   */
 /*/
@@ -1884,5 +1902,24 @@ edit_redoundo(edit_data *ed, Eina_Bool undo)
edit_changed_set(ed, EINA_TRUE);
syntax_color_full_update(ed, EINA_TRUE);
 
+   edit_auto_save_timer_apply(ed);
+
return EINA_TRUE;
 }
+
+void
+edit_auto_save_timer_apply(edit_data *ed)
+{
+   if (ed->auto_save_timer)
+ ecore_timer_del(ed->auto_save_timer);
+   ed->auto_save_timer = ecore_timer_add(AUTO_SAVE_TIME, auto_save_timer_cb,
+ ed);
+}
+
+void
+edit_auto_save_timer_cancel(edit_data *ed)
+{
+   if (ed->auto_save_timer)
+ ecore_timer_del(ed->auto_save_timer);
+   ed->auto_save_timer = NULL;
+}
diff --git a/src/lib/enventor_private.h b/src/lib/enventor_private.h
index c16e5e9..e1df42f 100644
--- a/src/lib/enventor_private.h
+++ b/src/lib/enventor_private.h
@@ -296,5 +296,7 @@ void edit_disabled_set(edit_data *ed, Eina_Bool disabled);
 void edit_error_set(edit_data *ed, int line, const char *target);
 void edit_text_insert(edit_data *ed, const char *text);
 void edit_part_cursor_set(edit_data *ed, const char *group_name, const char 
*part_name);
+void edit_auto_save_timer_apply(edit_data *ed);
+void edit_auto_save_timer_cancel(edit_data *ed);
 
 #endif

-- 




[EGIT] [tools/enventor] master 02/03: Revert "Revert "editor: don't auto save always.""

2016-03-08 Thread Hermet Park
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=3869e9acc882051892e0745977cb0c9549f9e0f7

commit 3869e9acc882051892e0745977cb0c9549f9e0f7
Author: Hermet Park 
Date:   Tue Mar 8 16:53:13 2016 +0900

Revert "Revert "editor: don't auto save always.""

This reverts commit aa6607c616d5a907a172bcfd8078fdd85b86b6c6.

0.8.0 was released. revert this again.
---
 src/lib/edc_editor.c | 9 +++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/lib/edc_editor.c b/src/lib/edc_editor.c
index 087bcee..0fd966c 100644
--- a/src/lib/edc_editor.c
+++ b/src/lib/edc_editor.c
@@ -1139,8 +1139,13 @@ static Eina_Bool
 auto_save_timer_cb(void *data)
 {
edit_data *ed = data;
-   edit_save(ed, build_edc_path_get());
-   build_edc();
+
+   //Avoid auto save if save has been already accomplished.
+   if (ed->edit_changed)
+ {
+edit_save(ed, build_edc_path_get());
+build_edc();
+ }
ed->auto_save_timer = NULL;
return ECORE_CALLBACK_CANCEL;
 }

-- 




[EGIT] [tools/enventor] master 03/03: Revert "Revert "Fix to apply Eo4.""

2016-03-08 Thread Hermet Park
hermet pushed a commit to branch master.

http://git.enlightenment.org/tools/enventor.git/commit/?id=498c1259ebc7b3087af84bece94924c7b45e2673

commit 498c1259ebc7b3087af84bece94924c7b45e2673
Author: Hermet Park 
Date:   Tue Mar 8 16:53:27 2016 +0900

Revert "Revert "Fix to apply Eo4.""

This reverts commit e67a1d1607a846a0b7192cc735990ab35aa145d6.

0.8.0 was released. revert this again.
---
 src/lib/edj_viewer.c |  3 +--
 src/lib/enventor_smart.c | 12 +---
 2 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/src/lib/edj_viewer.c b/src/lib/edj_viewer.c
index 2b28701..0a24dea 100644
--- a/src/lib/edj_viewer.c
+++ b/src/lib/edj_viewer.c
@@ -163,8 +163,7 @@ view_obj_create_post_job(view_data *vd)
 
if (vd->part_name) view_part_highlight_set(vd, vd->part_name);
 
-   Eina_Bool ret;
-   if (eo_do_ret(vd->enventor, ret, enventor_obj_dummy_parts_get()))
+   if (enventor_obj_dummy_parts_get(vd->enventor))
  dummy_obj_new(vd->layout);
 
if (vd->changed_part.part)
diff --git a/src/lib/enventor_smart.c b/src/lib/enventor_smart.c
index 7b5c3a8..a5b118c 100644
--- a/src/lib/enventor_smart.c
+++ b/src/lib/enventor_smart.c
@@ -196,7 +196,7 @@ _enventor_object_evas_object_smart_add(Eo *obj, 
Enventor_Object_Data *pd)
pd->obj = obj;
 
elm_widget_sub_object_parent_add(obj);
-   eo_do_super(obj, MY_CLASS, evas_obj_smart_add());
+   evas_obj_smart_add(eo_super(obj, MY_CLASS));
 
build_init();
autocomp_init();
@@ -288,10 +288,9 @@ EOLIAN static Eo *
 _enventor_object_eo_base_constructor(Eo *obj,
  Enventor_Object_Data *pd EINA_UNUSED)
 {
-   obj = eo_do_super_ret(obj, MY_CLASS, obj, eo_constructor());
-   eo_do(obj,
- evas_obj_type_set(MY_CLASS_NAME_LEGACY),
- evas_obj_smart_callbacks_descriptions_set(_smart_callbacks));
+   obj = eo_constructor(eo_super(obj, MY_CLASS));
+   evas_obj_type_set(obj, MY_CLASS_NAME_LEGACY);
+   evas_obj_smart_callbacks_descriptions_set(obj, _smart_callbacks);
 
return obj;
 }
@@ -759,8 +758,7 @@ enventor_object_add(Evas_Object *parent)
 EAPI Eina_Bool
 enventor_object_file_set(Evas_Object *obj, const char *file)
 {
-   Eina_Bool ret;
-   return eo_do_ret(obj, ret, efl_file_set(file, NULL));
+   return efl_file_set(obj, file, NULL);
 }
 
 #include "enventor_object.eo.c"

-- 




[EGIT] [core/efl] master 03/03: tests eolian: add test cases for type stub generations

2016-03-08 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit 35c577578a22362f0628fe52332f14ad4b9ea3ff
Author: Stefan Schmidt 
Date:   Mon Mar 7 23:40:37 2016 +0100

tests eolian: add test cases for type stub generations

While we had the functionality to generate type stubs header we never had
these tested in our unit test setup. Adding to simple cases for struct
and typedef which we already use for normal header generation tests.
---
 src/Makefile_Eolian.am   |  2 ++
 src/tests/eolian/data/struct_ref_stub.c  | 13 +
 src/tests/eolian/data/typedef_ref_stub.c | 15 +++
 src/tests/eolian/eolian_generation.c |  5 +
 4 files changed, 35 insertions(+)

diff --git a/src/Makefile_Eolian.am b/src/Makefile_Eolian.am
index 50fcc4f..2f4554c 100644
--- a/src/Makefile_Eolian.am
+++ b/src/Makefile_Eolian.am
@@ -132,7 +132,9 @@ EXTRA_DIST += \
 tests/eolian/data/object_impl_ref.c \
 tests/eolian/data/object_impl_add_ref.c \
 tests/eolian/data/typedef_ref.c \
+tests/eolian/data/typedef_ref_stub.c \
 tests/eolian/data/struct_ref.c \
+tests/eolian/data/struct_ref_stub.c \
 tests/eolian/data/class_simple_ref.c \
 tests/eolian/data/override_ref.c \
 tests/eolian/data/class_simple_ref_eo.h \
diff --git a/src/tests/eolian/data/struct_ref_stub.c 
b/src/tests/eolian/data/struct_ref_stub.c
new file mode 100644
index 000..3ad9709
--- /dev/null
+++ b/src/tests/eolian/data/struct_ref_stub.c
@@ -0,0 +1,13 @@
+#ifndef _TYPES_OUTPUT_C_STUBS
+#define _TYPES_OUTPUT_C_STUBS
+
+typedef Eo Struct;
+
+typedef struct _Named Named;
+
+typedef struct _Another Another;
+
+typedef struct _Opaque Opaque;
+
+
+#endif
diff --git a/src/tests/eolian/data/typedef_ref_stub.c 
b/src/tests/eolian/data/typedef_ref_stub.c
new file mode 100644
index 000..fe9200a
--- /dev/null
+++ b/src/tests/eolian/data/typedef_ref_stub.c
@@ -0,0 +1,15 @@
+#ifndef _TYPES_OUTPUT_C_STUBS
+#define _TYPES_OUTPUT_C_STUBS
+
+typedef Eo Typedef;
+
+typedef int Evas_Coord;
+
+typedef Eina_List *List_Objects;
+
+typedef Evas_Coord Evas_Coord2;
+
+typedef Evas_Coord2 Evas_Coord3;
+
+
+#endif
diff --git a/src/tests/eolian/eolian_generation.c 
b/src/tests/eolian/eolian_generation.c
index 9512e33..c63c641 100644
--- a/src/tests/eolian/eolian_generation.c
+++ b/src/tests/eolian/eolian_generation.c
@@ -116,6 +116,11 @@ START_TEST(eolian_types_generation)
fail_if(!_files_compare(PACKAGE_DATA_DIR"/data/typedef_ref.c", 
output_filepath));
fail_if(0 != _eolian_gen_execute(PACKAGE_DATA_DIR"/data/struct.eo", "--gh", 
output_filepath));
fail_if(!_files_compare(PACKAGE_DATA_DIR"/data/struct_ref.c", 
output_filepath));
+
+   fail_if(0 != _eolian_gen_execute(PACKAGE_DATA_DIR"/data/typedef.eo", 
"--gs", output_filepath));
+   fail_if(!_files_compare(PACKAGE_DATA_DIR"/data/typedef_ref_stub.c", 
output_filepath));
+   fail_if(0 != _eolian_gen_execute(PACKAGE_DATA_DIR"/data/struct.eo", "--gs", 
output_filepath));
+   fail_if(!_files_compare(PACKAGE_DATA_DIR"/data/struct_ref_stub.c", 
output_filepath));
 }
 END_TEST
 

-- 




[EGIT] [core/efl] master 01/03: eolian_gen: remove unused functions _nextline and _startline

2016-03-08 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit ff215b2f8f34fa25e56214be35123b81c99d16fe
Author: Stefan Schmidt 
Date:   Mon Mar 7 16:34:09 2016 +0100

eolian_gen: remove unused functions _nextline and _startline

These two have no users and there is no point in keeping them around.
---
 src/bin/eolian/common_funcs.c | 26 --
 src/bin/eolian/common_funcs.h |  4 
 2 files changed, 30 deletions(-)

diff --git a/src/bin/eolian/common_funcs.c b/src/bin/eolian/common_funcs.c
index 515f249..0005e1d 100644
--- a/src/bin/eolian/common_funcs.c
+++ b/src/bin/eolian/common_funcs.c
@@ -129,29 +129,3 @@ _template_fill(Eina_Strbuf *buf, const char *templ, const 
Eolian_Class *class, c
 eina_strbuf_replace_all(buf, "@#CLASS", tmp_env.upper_classname);
  }
 }
-
-char*
-_nextline(char *str, unsigned int lines)
-{
-   if (!str) return NULL;
-
-   char *ret = str;
-   while (lines--)
- {
-ret= strchr(ret, '\n');
-if (ret) ret++;
-else return NULL;
- }
-   return ret;
-}
-
-char*
-_startline(char *str, char *pos)
-{
-   if (!str || !pos) return NULL;
-
-   char *ret =  pos;
-   while ((ret > str) && (*(ret-1)!='\n')) ret--;
-
-   return ret;
-}
diff --git a/src/bin/eolian/common_funcs.h b/src/bin/eolian/common_funcs.h
index 4f72a9b..e63c8f4 100644
--- a/src/bin/eolian/common_funcs.h
+++ b/src/bin/eolian/common_funcs.h
@@ -59,10 +59,6 @@ typedef struct
 
 void _template_fill(Eina_Strbuf *buf, const char *templ, const Eolian_Class 
*class, const char *classname, const char *funcname, Eina_Bool reset);
 
-char *_nextline(char *str, unsigned int lines);
-
-char *_startline(char *str, char *pos);
-
 void _class_env_create(const Eolian_Class *class, const char *over_classname, 
_eolian_class_vars *env);
 
 void _class_func_env_create(const Eolian_Class *class, const char *funcname, 
Eolian_Function_Type ftype EINA_UNUSED, _eolian_class_func_vars *env);

-- 




[EGIT] [core/efl] master 02/03: eolian_gen: mention the option for generating a stub header in the example use

2016-03-08 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit 29028a50ce845cbfeae351cbe288ca5a6de47207
Author: Stefan Schmidt 
Date:   Mon Mar 7 16:40:35 2016 +0100

eolian_gen: mention the option for generating a stub header in the example 
use

Listed in the available options already but better also list it in the 
example
usage where the other three generation types are listed as well.
---
 src/bin/eolian/main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/eolian/main.c b/src/bin/eolian/main.c
index 075ab1c..77ad87f 100644
--- a/src/bin/eolian/main.c
+++ b/src/bin/eolian/main.c
@@ -314,7 +314,7 @@ main(int argc, char **argv)
 
if (help)
  {
-printf("Usage: %s [-h/--help] [-I/--include input_dir] [--legacy] 
[--gh|--gc|--gi] [--output/-o outfile] file.eo ... \n", argv[0]);
+printf("Usage: %s [-h/--help] [-I/--include input_dir] [--legacy] 
[--gh|--gs|--gc|--gi] [--output/-o outfile] file.eo ... \n", argv[0]);
 printf("   --help/-h Print that help\n");
 printf("   --include/-I Include 'input_dir' as directory to search 
.eo files into\n");
 printf("   --output/-o Force output filename to 'outfile'\n");

-- 




[EGIT] [core/efl] master 01/01: evas-3d examples: remove unused variables

2016-03-08 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit 4f86edc1b616843766e3c2e9e768ab736e8b632b
Author: Stefan Schmidt 
Date:   Tue Mar 8 11:06:29 2016 +0100

evas-3d examples: remove unused variables
---
 src/examples/evas/evas-3d-hull.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/src/examples/evas/evas-3d-hull.c b/src/examples/evas/evas-3d-hull.c
index 4877884..57602b6 100644
--- a/src/examples/evas/evas-3d-hull.c
+++ b/src/examples/evas/evas-3d-hull.c
@@ -289,7 +289,6 @@ _mesh_setup(Scene_Data *data)
Eina_Inarray *vert, *ind;
float *vertex;
unsigned short int *index;
-   int i = 0;
Eo *primitive = NULL;
/* Setup material. */
 
@@ -413,7 +412,6 @@ main(void)
 
//Unless Evas 3D supports Software renderer, we set gl backened forcely.
setenv("ECORE_EVAS_ENGINE", "opengl_x11", 1);
-   int stride_pos;
 
if (!ecore_evas_init()) return 0;
 

-- 




[EGIT] [tools/eflete] master 01/01: Fix build errors

2016-03-08 Thread Jaehwan Kim
jaehwan pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=a6eda079f435841a90cfb3bd0c7781da4ab8521b

commit a6eda079f435841a90cfb3bd0c7781da4ab8521b
Author: Jaehwan Kim 
Date:   Tue Mar 8 17:52:21 2016 +0900

Fix build errors
---
 src/bin/ui/colorclass_manager.c|  2 +-
 src/bin/ui/editors/animator.c  |  3 +-
 src/bin/ui/project_navigator.c |  2 +-
 src/bin/ui/property_group.c|  2 +-
 src/bin/ui/property_macros.h   |  2 +-
 src/bin/ui/property_sound.c| 50 +-
 src/bin/ui/sound_manager.c |  4 +--
 src/bin/ui/style_manager.c |  4 +--
 src/bin/ui/tab_home_import_edc.c   |  2 +-
 src/bin/ui/tab_home_import_edj.c   |  2 +-
 src/bin/ui/tab_home_new.c  |  2 +-
 src/bin/ui/workspace/group_navigator.c | 14 +-
 src/lib/ewe_combobox.c | 17 ++--
 src/lib/ewe_ruler.c| 17 ++--
 14 files changed, 60 insertions(+), 63 deletions(-)

diff --git a/src/bin/ui/colorclass_manager.c b/src/bin/ui/colorclass_manager.c
index 6a80ee6..1579ed6 100644
--- a/src/bin/ui/colorclass_manager.c
+++ b/src/bin/ui/colorclass_manager.c
@@ -79,7 +79,7 @@ _on_button_add_clicked_cb(void *data __UNUSED__,
resource_name_validator_list_set(edit->name_validator, 
>colorclasses, true);
LAYOUT_PROP_ADD(ap.win, _("Color class name: "), "property", "1swallow")
ENTRY_ADD(item, edit->entry, true);
-   eo_do(edit->entry, eo_event_callback_add(ELM_ENTRY_EVENT_VALIDATE, 
resource_name_validator_helper, edit->name_validator));
+   eo_event_callback_add(edit->entry, ELM_ENTRY_EVENT_VALIDATE, 
resource_name_validator_helper, edit->name_validator);
evas_object_smart_callback_add(edit->entry, "changed", _validation, edit);
elm_object_part_text_set(edit->entry, "guide", _("Type new color class name 
here"));
elm_object_part_content_set(item, "elm.swallow.content", edit->entry);
diff --git a/src/bin/ui/editors/animator.c b/src/bin/ui/editors/animator.c
index 1dd935d..26fd9a5 100644
--- a/src/bin/ui/editors/animator.c
+++ b/src/bin/ui/editors/animator.c
@@ -364,8 +364,7 @@ _on_bt_prog_add(void *data,
animator->popup.name_validator = elm_validator_regexp_new(NAME_REGEX, NULL);
LAYOUT_PROP_ADD(animator->popup.popup, _("Frequency:"), "property", 
"1swallow")
ENTRY_ADD(item, animator->popup.entry, true)
-   eo_do(animator->popup.entry,
- eo_event_callback_add(ELM_ENTRY_EVENT_VALIDATE, 
elm_validator_regexp_helper, animator->popup.name_validator));
+   eo_event_callback_add(animator->popup.entry, ELM_ENTRY_EVENT_VALIDATE, 
elm_validator_regexp_helper, animator->popup.name_validator);
evas_object_smart_callback_add(animator->popup.entry, "changed", 
_validation, animator);
elm_object_part_content_set(item, "elm.swallow.content", 
animator->popup.entry);
 
diff --git a/src/bin/ui/project_navigator.c b/src/bin/ui/project_navigator.c
index 7ae285d..c0eb8cb 100644
--- a/src/bin/ui/project_navigator.c
+++ b/src/bin/ui/project_navigator.c
@@ -437,7 +437,7 @@ _btn_add_group_cb(void *data __UNUSED__,
LAYOUT_PROP_ADD(layout_p.box, _("name"), "property", "1swallow")
ENTRY_ADD(layout_p.box, layout_p.entry, true)
evas_object_smart_callback_add(layout_p.entry, "changed", _group_validate, 
NULL);
-   eo_do(layout_p.entry, eo_event_callback_add(ELM_ENTRY_EVENT_VALIDATE, 
resource_name_validator_helper, validator));
+   eo_event_callback_add(layout_p.entry, ELM_ENTRY_EVENT_VALIDATE, 
resource_name_validator_helper, validator);
elm_layout_content_set(item, NULL, layout_p.entry);
elm_box_pack_end(layout_p.box, item);
glit = elm_genlist_selected_item_get(project_navigator.genlist);
diff --git a/src/bin/ui/property_group.c b/src/bin/ui/property_group.c
index 1a6d93c..32f817a 100644
--- a/src/bin/ui/property_group.c
+++ b/src/bin/ui/property_group.c
@@ -1515,7 +1515,7 @@ prop_part_name_add(Evas_Object *parent, Group_Prop_Data 
*pd)
 
PROPERTY_ITEM_ADD(parent,  _("name"), "1swallow");
ENTRY_ADD(parent, pd->attributes.part.name, true);
-   eo_do(pd->attributes.part.name, 
eo_event_callback_add(ELM_ENTRY_EVENT_VALIDATE, resource_name_validator_helper, 
pd->attributes.part.validator));
+   eo_event_callback_add(pd->attributes.part.name, ELM_ENTRY_EVENT_VALIDATE, 
resource_name_validator_helper, pd->attributes.part.validator);
resource_name_validator_list_set(pd->attributes.part.validator, 
>part->group->parts, false);
resource_name_validator_resource_set(pd->attributes.part.validator, 
(Resource *)pd->part);
elm_entry_entry_set(pd->attributes.part.name, pd->part->name);
diff --git a/src/bin/ui/property_macros.h b/src/bin/ui/property_macros.h
index 374d79d..88aa8be 100644
--- a/src/bin/ui/property_macros.h
+++ b/src/bin/ui/property_macros.h
@@ -549,7 +549,7 @@ prop_##SUB##_##VALUE##_add(Evas_Object *parent, \

[EGIT] [core/efl] master 01/01: eo del interceptor: add the ability to intercept deletions of eo objects

2016-03-08 Thread Carsten Haitzler
raster pushed a commit to branch master.

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

commit 3df71ab0f668967cf37813cc2322d1993a4d5db1
Author: Carsten Haitzler (Rasterman) 
Date:   Tue Mar 8 16:57:22 2016 +0900

eo del interceptor: add the ability to intercept deletions of eo objects

Imagine this. You have an object. You pass this object handle as a
message to another thread. Let's say it's not a UI object, so
something you might expect to be able to be accessed from multiple
threads. In order to keep the object alive you eo_ref() it when
placing the message on a queue and eo_unref() it once the message is
"done" in the other thread. If the original sender unref()ed the
object before the message is done, then the object will be destroyed
in the reciever thread. This is bad for objects "expecting" not to be
destroyed outside their owning thread.

This allows thius situation to be fixed. A constructor in a class of
an object can set up a delete interceptor. For example if we have a
"loop ownership" class you multi-ple-inherit from/use as a mixin. This
class will set up the interceptor to ensure that on destruction if
pthread_self() != owning loop thread id, then add object to "delete
me" queue on the owning loop and wake it up. the owning loop thread
will wake up and then process this queue and delete the queued objects
nicely and safely within the "owning context".

This can also be used in this same manner to defer deletion within a
loop "until later" in the same delete_me queue.

You can even use this as a caching mechanism for objects to prevernt
their actual destruction and instead place them in a cached area to be
picked from at a later date.

The uses are many for this and this is a basic building block for
future EFL features like generic messages where a message payload
could be an eo object and thus the above loop onwership issue can
happen and needs fixing.

This adds APIs, implementation, documentation (doxy reference) and tests.

@feature
---
 src/lib/eo/Eo.h  | 58 
 src/lib/eo/eo.c  | 16 ++
 src/lib/eo/eo_private.h  |  9 ++
 src/tests/eo/suite/eo_test_general.c | 55 ++
 4 files changed, 138 insertions(+)

diff --git a/src/lib/eo/Eo.h b/src/lib/eo/Eo.h
index cf10bb3..4bfae97 100644
--- a/src/lib/eo/Eo.h
+++ b/src/lib/eo/Eo.h
@@ -166,6 +166,16 @@ typedef struct _Eo_Event Eo_Event;
  */
 typedef Eina_Bool (*Eo_Event_Cb)(void *data, const Eo_Event *event);
 
+/**
+ * @typedef Eo_Del_Intercept
+ *
+ * A function to be called on object deletion/destruction instead of normal
+ * destruction taking place.
+ *
+ * @param obj_id The object needing destruction
+ */
+typedef void (*Eo_Del_Intercept) (Eo *obj_id);
+
 #include "eo_base.eo.h"
 #define EO_CLASS EO_BASE_CLASS
 
@@ -787,6 +797,54 @@ EAPI void eo_unref(const Eo *obj);
 EAPI int eo_ref_get(const Eo *obj);
 
 /**
+ * @brief Set a deletion interceptor function
+ * @param obj The object to set the interceptor on
+ * @param del_intercept_func The interceptor function to call
+ *
+ * This sets the function @p del_intercept_func to be called when an object
+ * is about to go from a reference count of 1 to 0, thus triggering actual
+ * destruction of the object. Instead of going to a reference count of 0 and
+ * being destroyed, the object will stay alive with a reference count of 1
+ * and this intercept function will be called instead. It is the job of
+ * this interceptor function to handle any further deletion of of the object
+ * from here.
+ *
+ * Note that by default objects have no interceptor function set, and thus
+ * will be destroyed as normal. To return an object to this state, simply
+ * set the @p del_intercept_func to NULL which is the default.
+ *
+ * A good use for this feature is to ensure an object is destroyed by its
+ * owning main loop and not in a foreign loop. This makes it possible to
+ * safely unrefor delete objects from any loop as an interceptor can be set
+ * on an object that will abort destruction and instead queue the object
+ * on its owning loop to be destroyed at some time in the future and now
+ * set the intercept function to NULL so it is not called again on the next
+ * "real deletion".
+ * 
+ * @see eo_del_intercept_get()
+ * @see eo_unref()
+ * @see eo_del()
+ */
+EAPI void eo_del_intercept_set(Eo *obj, Eo_Del_Intercept del_intercept_func);
+
+/**
+ * @brief Get the deletion interceptor function
+ * @param obj The object to get the interceptor of
+ * @return The intercept function or NULL if none is set.
+ *
+ * This returns the interceptor function set by eo_del_intercept_set(). Note
+ * that objects by default have no interceptor (NULL) set, but certain
+ * classes 

[EGIT] [website/www-content] master 01/01: bump up enventor version

2016-03-08 Thread Hermet Park
hermet pushed a commit to branch master.

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

commit 3b9175e70ad567816777bf4261dccc03b58c7538
Author: Hermet Park 
Date:   Tue Mar 8 17:33:57 2016 +0900

bump up enventor version
---
 pages/download-latest.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pages/download-latest.txt b/pages/download-latest.txt
index 5e0bc50..1195e2c 100644
--- a/pages/download-latest.txt
+++ b/pages/download-latest.txt
@@ -11,7 +11,7 @@ rage_v= 0.1.4
 econnman_v= 1.1
 epour_v   = 0.6.0
 
-enventor_v= 0.7.0
+enventor_v= 0.8.1
 eflete_v  = 0.5.0
 
 extn  = .tar.gz

--