[EGIT] [core/efl] master 01/01: elementary/test_entry: resize window on test without it

2016-11-04 Thread Bruno Dilly
bdilly pushed a commit to branch master.

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

commit 613167333c8cc121b6eaa6e77cdec7bcd382912c
Author: Bruno Dilly 
Date:   Fri Nov 4 19:51:28 2016 -0200

elementary/test_entry: resize window on test without it

test_efl_ui_text was creating a very small window,
with cropped components, etc.
So let's create it with a mininum size to be able to
properly see this test.
---
 src/bin/elementary/test_entry.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/bin/elementary/test_entry.c b/src/bin/elementary/test_entry.c
index b8a7e62..e833cf8 100644
--- a/src/bin/elementary/test_entry.c
+++ b/src/bin/elementary/test_entry.c
@@ -3137,5 +3137,6 @@ test_efl_ui_text(void *data EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED, void *eve
 
efl_event_callback_add(en, EFL_UI_TEXT_EVENT_ANCHOR_HOVER_OPENED, 
my_efl_ui_text_anchor_hover_opened, en);
 
+   evas_object_resize(win, 480, 320);
evas_object_show(win);
 }

-- 




[EGIT] [core/enlightenment] master 03/04: Fix wayland opaque regions

2016-11-04 Thread Derek Foreman
derekf pushed a commit to branch master.

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

commit a9d710ab2726175b4fde0b7e52ddd7250cc5f9e5
Author: Derek Foreman 
Date:   Fri Nov 4 16:10:47 2016 -0500

Fix wayland opaque regions

Similar set of changes to the recent input region changes.  They may not
have been quite so broken to begin with, but it's probably less confusing
to treat both types of region the same way.
---
 src/bin/e_comp_wl.c | 52 +---
 1 file changed, 29 insertions(+), 23 deletions(-)

diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c
index d898923..39093b4 100644
--- a/src/bin/e_comp_wl.c
+++ b/src/bin/e_comp_wl.c
@@ -1244,8 +1244,7 @@ _e_comp_wl_surface_state_init(E_Comp_Wl_Surface_State 
*state, int w, int h)
 
state->input = NULL;
 
-   state->opaque = eina_tiler_new(w, h);
-   eina_tiler_tile_size_set(state->opaque, 1, 1);
+   state->opaque = NULL;
 }
 
 static void
@@ -1490,24 +1489,34 @@ _e_comp_wl_surface_state_commit(E_Client *ec, 
E_Comp_Wl_Surface_State *state)
  }
 
/* put state opaque into surface */
-   e_pixmap_image_opaque_set(ec->pixmap, 0, 0, 0, 0);
if (state->opaque)
  {
-Eina_Rectangle *rect;
-Eina_Iterator *itr;
-
-itr = eina_tiler_iterator_new(state->opaque);
-EINA_ITERATOR_FOREACH(itr, rect)
+if (!eina_tiler_empty(state->opaque))
   {
- Eina_Rectangle r;
+ Eina_Rectangle *rect;
+ Eina_Iterator *itr;
 
- EINA_RECTANGLE_SET(, rect->x, rect->y, rect->w, rect->h);
- E_RECTS_CLIP_TO_RECT(r.x, r.y, r.w, r.h, 0, 0, state->bw, 
state->bh);
- e_pixmap_image_opaque_set(ec->pixmap, r.x, r.y, r.w, r.h);
- break;
-  }
+ /* This is seriously wrong and results in only the first
+  * rectangle in the region being set, but in the usual
+  * case there's only one rectangle.
+  */
+ itr = eina_tiler_iterator_new(state->opaque);
+ EINA_ITERATOR_FOREACH(itr, rect)
+   {
+  Eina_Rectangle r;
+
+  EINA_RECTANGLE_SET(, rect->x, rect->y, rect->w, rect->h);
+  E_RECTS_CLIP_TO_RECT(r.x, r.y, r.w, r.h, 0, 0, state->bw, 
state->bh);
+  e_pixmap_image_opaque_set(ec->pixmap, r.x, r.y, r.w, r.h);
+  break;
+   }
 
-eina_iterator_free(itr);
+ eina_iterator_free(itr);
+ eina_tiler_free(state->opaque);
+ state->opaque = NULL;
+  }
+else
+  e_pixmap_image_opaque_set(ec->pixmap, 0, 0, 0, 0);
  }
 
/* put state input into surface */
@@ -1651,7 +1660,9 @@ _e_comp_wl_surface_cb_opaque_region_set(struct wl_client 
*client EINA_UNUSED, st
if (e_object_is_del(E_OBJECT(ec))) return;
 
if (ec->comp_data->pending.opaque)
- eina_tiler_clear(ec->comp_data->pending.opaque);
+ eina_tiler_free(ec->comp_data->pending.opaque);
+   ec->comp_data->pending.opaque = eina_tiler_new(65535, 65535);
+   eina_tiler_tile_size_set(ec->comp_data->pending.opaque, 1, 1);
if (region_resource)
  {
 Eina_Tiler *tmp;
@@ -2011,8 +2022,6 @@ _e_comp_wl_subsurface_commit_to_cache(E_Client *ec)
 {
E_Comp_Client_Data *cdata;
E_Comp_Wl_Subsurf_Data *sdata;
-   Eina_Iterator *itr;
-   Eina_Rectangle *rect;
 
if (!(cdata = ec->comp_data)) return;
if (!(sdata = cdata->sub.data)) return;
@@ -2044,11 +2053,8 @@ _e_comp_wl_subsurface_commit_to_cache(E_Client *ec)
/* cdata->pending.sy = 0; */
/* cdata->pending.new_attach = EINA_FALSE; */
 
-   /* copy cdata->pending.opaque into sdata->cached.opaque */
-   itr = eina_tiler_iterator_new(cdata->pending.opaque);
-   EINA_ITERATOR_FOREACH(itr, rect)
- eina_tiler_rect_add(sdata->cached.opaque, rect);
-   eina_iterator_free(itr);
+   sdata->cached.opaque = cdata->pending.opaque;
+   cdata->pending.opaque = NULL;
 
sdata->cached.input = cdata->pending.input;
cdata->pending.input = NULL;

-- 




[EGIT] [core/enlightenment] master 02/04: Fix massive wayland input region brokenness

2016-11-04 Thread Derek Foreman
derekf pushed a commit to branch master.

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

commit 404a23f7d3df35883090a8e8c708372859069a43
Author: Derek Foreman 
Date:   Fri Nov 4 15:18:24 2016 -0500

Fix massive wayland input region brokenness

It was impossible to set an empty input region.

Input regions were being clipped to the size of whatever buffer was
previously attached when they should really be clipped at commit
time to whatever buffer was attached in the commit.

The intersection operation created round off errors and
e_comp_object_input_area_set is clipping anyway, so we can simplify this
and retain precision.
---
 src/bin/e_comp_wl.c | 42 +-
 1 file changed, 17 insertions(+), 25 deletions(-)

diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c
index 06240ce..d898923 100644
--- a/src/bin/e_comp_wl.c
+++ b/src/bin/e_comp_wl.c
@@ -1242,8 +1242,7 @@ _e_comp_wl_surface_state_init(E_Comp_Wl_Surface_State 
*state, int w, int h)
  _e_comp_wl_surface_state_cb_buffer_destroy;
state->sx = state->sy = 0;
 
-   state->input = eina_tiler_new(w, h);
-   eina_tiler_tile_size_set(state->input, 1, 1);
+   state->input = NULL;
 
state->opaque = eina_tiler_new(w, h);
eina_tiler_tile_size_set(state->opaque, 1, 1);
@@ -1512,35 +1511,29 @@ _e_comp_wl_surface_state_commit(E_Client *ec, 
E_Comp_Wl_Surface_State *state)
  }
 
/* put state input into surface */
-   if ((state->input) &&
-   (!eina_tiler_empty(state->input)))
+   if (state->input)
  {
-Eina_Tiler *src, *tmp;
-
-tmp = eina_tiler_new(state->bw, state->bh);
-eina_tiler_tile_size_set(tmp, 1, 1);
-eina_tiler_rect_add(tmp,
-&(Eina_Rectangle){0, 0, state->bw, state->bh});
-if ((src = eina_tiler_intersection(state->input, tmp)))
+if (!eina_tiler_empty(state->input))
   {
  Eina_Rectangle *rect;
  Eina_Iterator *itr;
 
- itr = eina_tiler_iterator_new(src);
+ /* This is seriously wrong and results in only the last
+  * rectangle in the region being set, but in the usual
+  * case there's only one rectangle.
+  */
+ itr = eina_tiler_iterator_new(state->input);
  EINA_ITERATOR_FOREACH(itr, rect)
e_comp_object_input_area_set(ec->frame, rect->x, rect->y,
 rect->w, rect->h);
 
  eina_iterator_free(itr);
- eina_tiler_free(src);
   }
 else
-  e_comp_object_input_area_set(ec->frame, 0, 0, ec->w, ec->h);
+  e_comp_object_input_area_set(ec->frame, 1, 1, 0, 0);
 
-eina_tiler_free(tmp);
-
-/* clear input tiler */
-eina_tiler_clear(state->input);
+eina_tiler_free(state->input);
+state->input = NULL;
  }
ec->comp_data->in_commit = 0;
 
@@ -1679,7 +1672,9 @@ _e_comp_wl_surface_cb_input_region_set(struct wl_client 
*client EINA_UNUSED, str
if (e_object_is_del(E_OBJECT(ec))) return;
 
if (ec->comp_data->pending.input)
- eina_tiler_clear(ec->comp_data->pending.input);
+ eina_tiler_free(ec->comp_data->pending.input);
+   ec->comp_data->pending.input = eina_tiler_new(65535, 65535);
+   eina_tiler_tile_size_set(ec->comp_data->pending.input, 1, 1);
if (region_resource)
  {
 Eina_Tiler *tmp;
@@ -1692,7 +1687,7 @@ _e_comp_wl_surface_cb_input_region_set(struct wl_client 
*client EINA_UNUSED, str
else
  {
 eina_tiler_rect_add(ec->comp_data->pending.input,
-&(Eina_Rectangle){0, 0, ec->client.w, 
ec->client.h});
+&(Eina_Rectangle){0, 0, 65535, 65535});
  }
 }
 
@@ -2055,11 +2050,8 @@ _e_comp_wl_subsurface_commit_to_cache(E_Client *ec)
  eina_tiler_rect_add(sdata->cached.opaque, rect);
eina_iterator_free(itr);
 
-   /* repeat for input */
-   itr = eina_tiler_iterator_new(cdata->pending.input);
-   EINA_ITERATOR_FOREACH(itr, rect)
- eina_tiler_rect_add(sdata->cached.input, rect);
-   eina_iterator_free(itr);
+   sdata->cached.input = cdata->pending.input;
+   cdata->pending.input = NULL;
 
sdata->cached.frames = eina_list_merge(sdata->cached.frames,
   cdata->pending.frames);

-- 




[EGIT] [core/enlightenment] master 01/04: Increase area of tilers for regions

2016-11-04 Thread Derek Foreman
derekf pushed a commit to branch master.

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

commit e74f2a45af10eab9fbca8e1741beecf29a0ba24b
Author: Derek Foreman 
Date:   Fri Nov 4 15:04:59 2016 -0500

Increase area of tilers for regions

We don't have any idea at this point what the region will be used for,
and tilers clip to their area on ingress.  If we're going to use tilers
for wayland regions we need to make them huge and clip them later.
---
 src/bin/e_comp_wl.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c
index 744d153..06240ce 100644
--- a/src/bin/e_comp_wl.c
+++ b/src/bin/e_comp_wl.c
@@ -1901,7 +1901,7 @@ _e_comp_wl_compositor_cb_region_create(struct wl_client 
*client, struct wl_resou
DBG("Region Create: %d", wl_resource_get_id(resource));
 
/* try to create new tiler */
-   if (!(tiler = eina_tiler_new(e_comp->w, e_comp->h)))
+   if (!(tiler = eina_tiler_new(65535, 65535)))
  {
 ERR("Could not create Eina_Tiler");
 wl_resource_post_no_memory(resource);

-- 




[EGIT] [core/enlightenment] master 04/04: Stop passing dimensions to _e_comp_wl_surface_state_init

2016-11-04 Thread Derek Foreman
derekf pushed a commit to branch master.

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

commit b5205a0ca3ca63319f479a56b289ba5c3e4bb1eb
Author: Derek Foreman 
Date:   Fri Nov 4 16:11:55 2016 -0500

Stop passing dimensions to _e_comp_wl_surface_state_init

The dimensions we passed were frequently wrong anyway, so let's stop
doing that.
---
 src/bin/e_comp_wl.c | 7 +++
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c
index 39093b4..0c1b1f4 100644
--- a/src/bin/e_comp_wl.c
+++ b/src/bin/e_comp_wl.c
@@ -1234,7 +1234,7 @@ _e_comp_wl_surface_state_cb_buffer_destroy(struct 
wl_listener *listener, void *d
 }
 
 static void
-_e_comp_wl_surface_state_init(E_Comp_Wl_Surface_State *state, int w, int h)
+_e_comp_wl_surface_state_init(E_Comp_Wl_Surface_State *state)
 {
state->new_attach = EINA_FALSE;
state->buffer = NULL;
@@ -2271,7 +2271,7 @@ _e_comp_wl_subsurface_create(E_Client *ec, E_Client *epc, 
uint32_t id, struct wl
wl_resource_set_implementation(res, &_e_subsurface_interface, ec,
   _e_comp_wl_subsurface_destroy);
 
-   _e_comp_wl_surface_state_init(>cached, ec->w, ec->h);
+   _e_comp_wl_surface_state_init(>cached);
 
/* set subsurface data properties */
sdata->resource = res;
@@ -2397,8 +2397,7 @@ _e_comp_wl_client_cb_new(void *data EINA_UNUSED, E_Client 
*ec)
  }
 
wl_signal_init(>comp_data->destroy_signal);
-
-   _e_comp_wl_surface_state_init(>comp_data->pending, ec->w, ec->h);
+   _e_comp_wl_surface_state_init(>comp_data->pending);
 
/* set initial client properties */
ec->argb = EINA_TRUE;

-- 




[EGIT] [core/efl] master 03/04: VNC Example: Add support to Ecore_Evas FB engine.

2016-11-04 Thread Guilherme Iscaro
bdilly pushed a commit to branch master.

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

commit fc2a3052b439923373bb2ae894d336aae516b6bc
Author: Guilherme Iscaro 
Date:   Thu Oct 6 16:55:39 2016 -0300

VNC Example: Add support to Ecore_Evas FB engine.
---
 src/examples/ecore/ecore_evas_vnc_example.c | 57 ++---
 1 file changed, 51 insertions(+), 6 deletions(-)

diff --git a/src/examples/ecore/ecore_evas_vnc_example.c 
b/src/examples/ecore/ecore_evas_vnc_example.c
index 3d16733..b451af3 100644
--- a/src/examples/ecore/ecore_evas_vnc_example.c
+++ b/src/examples/ecore/ecore_evas_vnc_example.c
@@ -8,6 +8,9 @@
 #include 
 #include 
 #include 
+#include 
+
+static int width = 800;
 
 static Eina_Bool
 _anim(void *data)
@@ -30,10 +33,10 @@ _anim(void *data)
else
  {
 x += speed;
-if (x >= 800)
+if (x >= width)
   {
  direction = LEFT;
- x = 800;
+ x = width;
   }
  }
 
@@ -164,7 +167,7 @@ _dev_added_or_removed(void *data EINA_UNUSED, const 
Efl_Event *event)
 }
 
 int
-main(int argc EINA_UNUSED, char *argv[] EINA_UNUSED)
+main(int argc, char *argv[])
 {
Ecore_Evas *ee;
Evas *evas;
@@ -173,10 +176,52 @@ main(int argc EINA_UNUSED, char *argv[] EINA_UNUSED)
Eina_Bool r;
Ecore_Event_Handler *keydown_handler, *keyup_handler, *mouse_move,
  *mouse_down, *mouse_up, *mouse_wheel;
+   char *engine = "software_x11";
+   int args, height = 600;
+   Eina_Bool quit_option = EINA_FALSE;
+   static const Ecore_Getopt options = {
+ "ecore_evas_vnc_example",
+ NULL,
+ "0.1",
+ "(C) 2016 Enlightenment Project",
+ "BSD 2-Clause",
+ "Ecore_Evas VNC example.\n",
+ EINA_TRUE,
+ {
+   ECORE_GETOPT_STORE_DEF_STR('e', "engine", "The engine backend", 
"software_x11"),
+   ECORE_GETOPT_STORE_DEF_INT('w', "width", "The window width", 800),
+   ECORE_GETOPT_STORE_DEF_INT('h', "height", "The window height", 600),
+   ECORE_GETOPT_VERSION('v', "version"),
+   ECORE_GETOPT_COPYRIGHT('c', "copyright"),
+   ECORE_GETOPT_LICENSE('k', "license"),
+   ECORE_GETOPT_HELP('H', "help"),
+   ECORE_GETOPT_SENTINEL
+ }
+   };
+   Ecore_Getopt_Value values[] = {
+ ECORE_GETOPT_VALUE_STR(engine),
+ ECORE_GETOPT_VALUE_INT(width),
+ ECORE_GETOPT_VALUE_INT(height),
+ ECORE_GETOPT_VALUE_BOOL(quit_option),
+ ECORE_GETOPT_VALUE_BOOL(quit_option),
+ ECORE_GETOPT_VALUE_BOOL(quit_option),
+ ECORE_GETOPT_VALUE_BOOL(quit_option),
+ ECORE_GETOPT_VALUE_NONE
+   };
 
ecore_evas_init();
 
-   ee = ecore_evas_new(NULL, 0, 0, 800, 600, NULL);
+   args = ecore_getopt_parse(, values, argc, argv);
+   if (args < 0)
+ {
+fprintf(stderr, "Could not parse command line options.\n");
+return -1;
+ }
+
+   if (quit_option) return 0;
+
+   printf("Using engine '%s'. Width: %d - Height: %d\n", engine, width, 
height);
+   ee = ecore_evas_new(engine, 0, 0, width, height, NULL);
 
if (!ee)
  {
@@ -189,13 +234,13 @@ main(int argc EINA_UNUSED, char *argv[] EINA_UNUSED)
bg = evas_object_rectangle_add(evas);
evas_object_color_set(bg, 255, 255, 255, 255);
evas_object_move(bg, 0, 0);
-   evas_object_resize(bg, 800, 600);
+   evas_object_resize(bg, width, height);
evas_object_show(bg);
 
rect = evas_object_rectangle_add(evas);
evas_object_color_set(rect, 0, 255, 0, 255);
evas_object_resize(rect, 50, 50);
-   evas_object_move(rect, (800 - 50) /2, (600 - 50)/2);
+   evas_object_move(rect, (width - 50) /2, (height - 50)/2);
evas_object_show(rect);
 
animator = ecore_animator_add(_anim, rect);

-- 




[EGIT] [core/efl] master 02/04: Ecore_Evas VNC: Add frame buffer support.

2016-11-04 Thread Guilherme Iscaro
bdilly pushed a commit to branch master.

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

commit 70b83ad45579c8327ecb616b309ebcca890239da
Author: Guilherme Iscaro 
Date:   Mon Sep 26 15:43:49 2016 -0300

Ecore_Evas VNC: Add frame buffer support.
---
 configure.ac   |  13 +-
 src/Makefile_Ecore_Evas.am |  18 +-
 .../ecore_evas/vnc_server/ecore_evas_vnc_server.c  | 120 ++-
 .../vnc_server/ecore_evas_vnc_server_fb_keymap.c   | 363 +
 .../vnc_server/ecore_evas_vnc_server_fb_keymap.h   |  12 +
 5 files changed, 500 insertions(+), 26 deletions(-)

diff --git a/configure.ac b/configure.ac
index c709f7f..f4b7aa5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4476,17 +4476,22 @@ if test "x${have_ecore_evas_opengl_x11}" = "xyes" || 
test "x${have_ecore_evas_op
 fi
 
 build_ecore_evas_x11="no"
-build_ecore_evas_vnc="no"
 if test "x$have_ecore_evas_software_x11" = "xyes" || \
test "x$have_ecore_evas_opengl_x11" = "xyes"; then
AC_DEFINE([BUILD_ECORE_EVAS_X11], [1], [Support for X Window Engines in 
Ecore_Evas])
build_ecore_evas_x11="yes"
-   if test "$want_vnc_server" = "yes"; then
-  build_ecore_evas_vnc="yes"
-   fi
 fi
+
 AM_CONDITIONAL([BUILD_ECORE_EVAS_X11], [test "${build_ecore_evas_x11}" = 
"yes"])
 
+build_ecore_evas_vnc="no"
+if test "${want_vnc_server}" = "yes" && \
+   (test "${build_ecore_evas_x11}" = "yes" || \
+   test "${want_fb}" = "yes"); then
+   AC_DEFINE([BUILD_ECORE_EVAS_VNC_SERVER], [1], [Build Ecore_Evas VNC module])
+   build_ecore_evas_vnc="yes"
+fi
+
 AM_CONDITIONAL([BUILD_ECORE_EVAS_VNC_SERVER], [test "${build_ecore_evas_vnc}" 
= "yes"])
 AC_DEFINE_IF([BUILD_ECORE_EVAS_VNC_SERVER], [test "${build_ecore_evas_vnc}" = 
"yes"], [1], [Build Ecore_Evas VNC module])
 EFL_ADD_FEATURE([ECORE_EVAS], [vnc_server], [${build_ecore_evas_vnc}])
diff --git a/src/Makefile_Ecore_Evas.am b/src/Makefile_Ecore_Evas.am
index ea854c4..7907a67 100644
--- a/src/Makefile_Ecore_Evas.am
+++ b/src/Makefile_Ecore_Evas.am
@@ -297,17 +297,25 @@ $(install_ecoreevasenginevncserverpkgLTLIBRARIES): 
install-libLTLIBRARIES
 modules_ecore_evas_vnc_server_module_la_SOURCES = $(VNCSERVERSOURCES)
 modules_ecore_evas_vnc_server_module_la_CPPFLAGS = 
-I$(top_builddir)/src/lib/efl \
 @ECORE_EVAS_CFLAGS@ \
-@LIBVNCSERVER_CFLAGS@ \
-@ECORE_X_CFLAGS@ \
--I$(top_srcdir)/src/modules/evas/engines/software_x11
+@LIBVNCSERVER_CFLAGS@
 modules_ecore_evas_vnc_server_module_la_LIBADD = \
 @USE_ECORE_EVAS_LIBS@ \
-@LIBVNCSERVER_LIBS@ \
-@USE_ECORE_X_LIBS@
+@LIBVNCSERVER_LIBS@
 modules_ecore_evas_vnc_server_module_la_DEPENDENCIES = \
 @USE_ECORE_EVAS_INTERNAL_LIBS@
 modules_ecore_evas_vnc_server_module_la_LDFLAGS = -module @EFL_LTMODULE_FLAGS@
 modules_ecore_evas_vnc_server_module_la_LIBTOOLFLAGS = --tag=disable-static
+if BUILD_ECORE_EVAS_FB
+modules_ecore_evas_vnc_server_module_la_CPPFLAGS += @ECORE_FB_CFLAGS@ 
-I$(top_srcdir)/src/modules/evas/engines/fb
+modules_ecore_evas_vnc_server_module_la_LIBADD += @USE_ECORE_FB_LIBS@
+VNCSERVERSOURCES += \
+modules/ecore_evas/vnc_server/ecore_evas_vnc_server_fb_keymap.c \
+modules/ecore_evas/vnc_server/ecore_evas_vnc_server_fb_keymap.h
+endif
+if BUILD_ECORE_EVAS_X11
+modules_ecore_evas_vnc_server_module_la_LIBADD += @USE_ECORE_X_LIBS@
+modules_ecore_evas_vnc_server_module_la_CPPFLAGS += @ECORE_X_CFLAGS@ 
-I$(top_srcdir)/src/modules/evas/engines/software_x11
+endif
 endif
 
 ### Binary
diff --git a/src/modules/ecore_evas/vnc_server/ecore_evas_vnc_server.c 
b/src/modules/ecore_evas/vnc_server/ecore_evas_vnc_server.c
index 63df8d0..140a310 100644
--- a/src/modules/ecore_evas/vnc_server/ecore_evas_vnc_server.c
+++ b/src/modules/ecore_evas/vnc_server/ecore_evas_vnc_server.c
@@ -11,8 +11,16 @@
 #include 
 #include 
 #include 
-#include 
-#include 
+
+#ifdef BUILD_ENGINE_SOFTWARE_X11
+# include 
+# include 
+#endif
+
+#ifdef BUILD_ENGINE_FB
+# include 
+# include "ecore_evas_vnc_server_fb_keymap.h"
+#endif
 
 #include 
 #include 
@@ -57,6 +65,12 @@ static unsigned int _available_seat = 1;
 #endif
 #define DBG(...) EINA_LOG_DOM_DBG(_ecore_evas_vnc_server_log_dom, __VA_ARGS__)
 
+typedef Eina_Bool (*Ecore_Evas_Vnc_Key_Info_Get)(rfbKeySym key,
+ const char **key_name,
+ const char **key_str,
+ const char **compose,
+ int *keycode);
+
 typedef struct _Ecore_Evas_Vnc_Server {
char *frame_buffer;
rfbScreenInfoPtr vnc_screen;
@@ -65,6 +79,7 @@ typedef struct _Ecore_Evas_Vnc_Server {
Ecore_Evas_Vnc_Client_Accept_Cb accept_cb;
void *accept_cb_data;
Ecore_Evas *ee;
+   Ecore_Evas_Vnc_Key_Info_Get key_info_get_func;
double double_click_time;
int last_w;
int last_h;
@@ -263,6 +278,42 @@ 

[EGIT] [core/efl] master 04/04: Merge branch 'devs/iscaro/vnc-fb'

2016-11-04 Thread Bruno Dilly
bdilly pushed a commit to branch master.

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

commit f869cd580e47bd4783dfedbefc91ddf452ed135d
Merge: 9699503 fc2a305
Author: Bruno Dilly 
Date:   Fri Nov 4 18:52:18 2016 -0200

Merge branch 'devs/iscaro/vnc-fb'

This series adds support to Framebuffer on Ecore Evas VNC.

So both X11 and FB will be supported by Ecore Evas VNC and
may be used to map remote clients as multiple seats.

Patches by Guilherme Iscaro 
Differential Revision: https://phab.enlightenment.org/D4373

 configure.ac   |  13 +-
 src/Makefile_Ecore_Evas.am |  18 +-
 src/examples/ecore/ecore_evas_vnc_example.c|  57 +++-
 .../ecore_evas/vnc_server/ecore_evas_vnc_server.c  | 120 ++-
 .../vnc_server/ecore_evas_vnc_server_fb_keymap.c   | 363 +
 .../vnc_server/ecore_evas_vnc_server_fb_keymap.h   |  12 +
 src/modules/evas/engines/fb/Evas_Engine_FB.h   |   4 +
 src/modules/evas/engines/fb/evas_engine.c  |  76 -
 src/modules/evas/engines/fb/evas_engine.h  |   7 +
 src/modules/evas/engines/fb/evas_outbuf.c  |   1 +
 10 files changed, 635 insertions(+), 36 deletions(-)

-- 




[EGIT] [core/efl] master 01/04: Evas FB: Add support for region push hook.

2016-11-04 Thread Guilherme Iscaro
bdilly pushed a commit to branch master.

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

commit 0fa8dc48cd79eec2c4d140001a2c3da2afff682c
Author: Guilherme Iscaro 
Date:   Mon Sep 26 15:43:25 2016 -0300

Evas FB: Add support for region push hook.

This will be useful to support the Ecore_Evas VNC server
under FB backend.
---
 src/modules/evas/engines/fb/Evas_Engine_FB.h |  4 ++
 src/modules/evas/engines/fb/evas_engine.c| 76 ++--
 src/modules/evas/engines/fb/evas_engine.h|  7 +++
 src/modules/evas/engines/fb/evas_outbuf.c|  1 +
 4 files changed, 84 insertions(+), 4 deletions(-)

diff --git a/src/modules/evas/engines/fb/Evas_Engine_FB.h 
b/src/modules/evas/engines/fb/Evas_Engine_FB.h
index b548237..12c5067 100644
--- a/src/modules/evas/engines/fb/Evas_Engine_FB.h
+++ b/src/modules/evas/engines/fb/Evas_Engine_FB.h
@@ -19,6 +19,10 @@ struct _Evas_Engine_Info_FB
 
/* non-blocking or blocking mode */
Evas_Engine_Render_Mode render_mode;
+
+   struct {
+  void (*region_push_hook)(Evas *e, int x, int y, int w, int h, const void 
*pixels);
+   } func;
 };
 #endif
 
diff --git a/src/modules/evas/engines/fb/evas_engine.c 
b/src/modules/evas/engines/fb/evas_engine.c
index 9457485..3156b95 100644
--- a/src/modules/evas/engines/fb/evas_engine.c
+++ b/src/modules/evas/engines/fb/evas_engine.c
@@ -3,8 +3,13 @@
 #include "evas_engine.h"
 #include "Evas_Engine_FB.h"
 
+#include 
+#include 
+
 int _evas_engine_fb_log_dom = -1;
 
+static Eina_List *_outbufs = NULL;
+
 /* function tables - filled in later (func and parent func) */
 static Evas_Func func, pfunc;
 
@@ -16,17 +21,76 @@ struct _Render_Engine
Render_Engine_Software_Generic generic;
 };
 
+typedef struct _Region_Push_Hook_Ctx {
+   void *pixels;
+   Outbuf *buf;
+   int x;
+   int y;
+   int w;
+   int h;
+} Region_Push_Hook_Ctx;
+
 /* prototypes we will use here */
-static void *_output_setup(int w, int h, int rot, int vt, int dev, int 
refresh);
+static void *_output_setup(Evas *eo_e, int w, int h, int rot, int vt, int dev, 
int refresh,
+   void (*region_push_hook)(Evas *e, int x, int y, int 
w, int h,
+const void *pixels));
 
 static void *eng_info(Evas *eo_e);
 static void eng_info_free(Evas *eo_e, void *info);
 static int eng_setup(Evas *eo_e, void *info);
 static void eng_output_free(void *data);
 
+static void
+_evas_fb_region_push_hook_call(void *data)
+{
+   Region_Push_Hook_Ctx *ctx = data;
+
+
+   if (eina_list_data_find(_outbufs, ctx->buf))
+ {
+ctx->buf->region_push_hook.cb(ctx->buf->region_push_hook.evas,
+  ctx->x, ctx->y, ctx->w, ctx->h,
+  ctx->pixels);
+ }
+
+   free(ctx->pixels);
+   free(ctx);
+}
+
+void
+evas_fb_region_push_hook_call(Outbuf *buf, int x, int y, int w, int h,
+  const void *pixels)
+{
+   Region_Push_Hook_Ctx *ctx;
+   size_t s;
+
+   if (!buf->region_push_hook.cb)
+ return;
+
+   s = w * h * buf->priv.fb.fb->bpp;
+   ctx = malloc(sizeof(Region_Push_Hook_Ctx));
+   EINA_SAFETY_ON_NULL_RETURN(ctx);
+   ctx->pixels = malloc(s);
+   EINA_SAFETY_ON_NULL_GOTO(ctx->pixels, err_pixels);
+   ctx->x = x;
+   ctx->y = y;
+   ctx->w = w;
+   ctx->h = h;
+   ctx->buf = buf;
+   memcpy(ctx->pixels, pixels, s);
+
+   ecore_main_loop_thread_safe_call_async(_evas_fb_region_push_hook_call, ctx);
+   return;
+
+ err_pixels:
+   free(ctx);
+}
+
 /* internal engine routines */
 static void *
-_output_setup(int w, int h, int rot, int vt, int dev, int refresh)
+_output_setup(Evas *eo_e, int w, int h, int rot, int vt, int dev, int refresh,
+  void (*region_push_hook)(Evas *e, int x, int y, int w, int h,
+   const void *pixels))
 {
Render_Engine *re;
Outbuf *ob;
@@ -43,6 +107,8 @@ _output_setup(int w, int h, int rot, int vt, int dev, int 
refresh)
ob = evas_fb_outbuf_fb_setup_fb(w, h, rot, OUTBUF_DEPTH_INHERIT, vt, dev, 
refresh);
if (!ob) goto on_error;
 
+   ob->region_push_hook.cb = region_push_hook;
+   ob->region_push_hook.evas = eo_e;
if (!evas_render_engine_software_generic_init(>generic, ob, NULL,
  evas_fb_outbuf_fb_get_rot,
  evas_fb_outbuf_fb_reconfigure,
@@ -61,6 +127,7 @@ _output_setup(int w, int h, int rot, int vt, int dev, int 
refresh)
 
/* no backbuf! */
evas_fb_outbuf_fb_set_have_backbuf(ob, 0);
+   _outbufs = eina_list_append(_outbufs, ob);
return re;
 
  on_error:
@@ -98,12 +165,12 @@ eng_setup(Evas *eo_e, void *in)
Evas_Engine_Info_FB *info;
 
info = (Evas_Engine_Info_FB *)in;
-   re = _output_setup(e->output.w,
+   re = _output_setup(eo_e, e->output.w,
  e->output.h,
  

[EGIT] [core/efl] master 03/03: examples/edje: add example of entry - editable text

2016-11-04 Thread Bruno Dilly
bdilly pushed a commit to branch master.

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

commit 96995032ea8783bc7c2878eb3df1618a8bad5205
Author: Bruno Dilly 
Date:   Fri Nov 4 14:17:23 2016 -0200

examples/edje: add example of entry - editable text

Not trivial to be done imo, so it deserves an example.
---
 src/examples/edje/.gitignore   |   1 +
 src/examples/edje/Makefile.am  |   3 +
 src/examples/edje/edje-entry.c | 117 
 src/examples/edje/entry.edc| 149 +
 4 files changed, 270 insertions(+)

diff --git a/src/examples/edje/.gitignore b/src/examples/edje/.gitignore
index ab3c677..5b5f5f0 100644
--- a/src/examples/edje/.gitignore
+++ b/src/examples/edje/.gitignore
@@ -10,6 +10,7 @@
 /edje-color-class
 /edje-drag
 /edje-edit-part-box
+/edje-entry
 /edje-multisense
 /edje-perspective
 /edje-signals-messages
diff --git a/src/examples/edje/Makefile.am b/src/examples/edje/Makefile.am
index 59feb80..7dff1e3 100644
--- a/src/examples/edje/Makefile.am
+++ b/src/examples/edje/Makefile.am
@@ -35,6 +35,7 @@ embryo_set_state_anim.edc \
 embryo_set_text.edc \
 embryo_timer.edc \
 embryo_tween_anim.edc \
+entry.edc \
 external_elm_anchorblock.edc \
 external_elm_button.edc \
 external_elm_check.edc \
@@ -138,6 +139,7 @@ edje-codegen-example.c \
 edje-color-class.c \
 edje-drag.c \
 edje-edit-part-box.c \
+edje-entry.c \
 edje-multisense.c \
 edje-perspective.c \
 edje-signals-messages.c \
@@ -210,6 +212,7 @@ edje-codegen-example \
 edje-color-class \
 edje-drag\
 edje-edit-part-box \
+edje-entry \
 edje-perspective \
 edje-signals-messages \
 edje-swallow \
diff --git a/src/examples/edje/edje-entry.c b/src/examples/edje/edje-entry.c
new file mode 100644
index 000..274e331
--- /dev/null
+++ b/src/examples/edje/edje-entry.c
@@ -0,0 +1,117 @@
+/**
+ * Edje example for a entry (editable text)
+ *
+ * @verbatim
+ * edje_cc entry.edc && gcc -o edje-entry edje-entry.c `pkg-config --libs 
--cflags evas ecore ecore-evas edje`
+ * @endverbatim
+ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#else
+# define EINA_UNUSED
+#endif
+
+#ifndef PACKAGE_DATA_DIR
+#define PACKAGE_DATA_DIR "."
+#endif
+
+#include 
+#include 
+#include 
+
+#define WIDTH  (300)
+#define HEIGHT (300)
+
+#define KEY_BG_OBJ "bg_obj"
+#define KEY_EDJE_OBJ "edje_obj"
+
+#define GROUPNAME_MAIN "example/main"
+#define PARTNAME_TEXT "example/text"
+
+static void
+_on_delete(Ecore_Evas *ee EINA_UNUSED)
+{
+   ecore_main_loop_quit();
+}
+
+/* here just to keep our example's window size and background image's
+ * size in synchrony */
+static void
+_on_canvas_resize(Ecore_Evas *ee)
+{
+   Evas_Object *bg, *edj;
+   int w, h;
+
+   ecore_evas_geometry_get(ee, NULL, NULL, , );
+   bg = ecore_evas_data_get(ee, KEY_BG_OBJ);
+   evas_object_resize(bg, w, h);
+   edj = ecore_evas_data_get(ee, KEY_EDJE_OBJ);
+   evas_object_resize(edj, w, h);
+}
+
+static void
+_setup_evas_object(Ecore_Evas *ee, Evas_Object *obj, const char *key)
+{
+   evas_object_move(obj, 0, 0);
+   evas_object_resize(obj, WIDTH, HEIGHT);
+   evas_object_show(obj);
+   ecore_evas_data_set(ee, key, obj);
+}
+
+int
+main(int argc EINA_UNUSED, char *argv[] EINA_UNUSED)
+{
+   const char *edje_file = PACKAGE_DATA_DIR"/entry.edj";
+   Evas_Object *bg, *edje_obj;
+   Ecore_Evas *ee;
+   Evas *evas;
+
+   if (!ecore_evas_init())
+ return EXIT_FAILURE;
+
+   if (!edje_init())
+ goto shutdown_ecore_evas;
+
+   ee = ecore_evas_new(NULL, 0, 0, WIDTH, HEIGHT, NULL);
+   if (!ee) goto shutdown_edje;
+
+   ecore_evas_callback_delete_request_set(ee, _on_delete);
+   ecore_evas_callback_resize_set(ee, _on_canvas_resize);
+   ecore_evas_title_set(ee, "Edje Entry");
+
+   evas = ecore_evas_get(ee);
+
+   bg = evas_object_rectangle_add(evas);
+   evas_object_color_set(bg, 210, 210, 210, 255);
+   _setup_evas_object(ee, bg, KEY_BG_OBJ);
+
+   edje_obj = edje_object_add(evas);
+
+   edje_object_file_set(edje_obj, edje_file, GROUPNAME_MAIN);
+   _setup_evas_object(ee, edje_obj, KEY_EDJE_OBJ);
+
+   /* important to focus it or it won't receive key down strokes */
+   evas_object_focus_set(edje_obj, EINA_TRUE);
+
+   edje_object_part_text_set(edje_obj, PARTNAME_TEXT, "Type here : ");
+   edje_object_part_text_cursor_end_set(edje_obj, PARTNAME_TEXT,
+EDJE_CURSOR_MAIN);
+
+   ecore_evas_show(ee);
+
+   ecore_main_loop_begin();
+
+   ecore_evas_free(ee);
+   ecore_evas_shutdown();
+   edje_shutdown();
+
+   return EXIT_SUCCESS;
+
+ shutdown_edje:
+   edje_shutdown();
+ shutdown_ecore_evas:
+   ecore_evas_shutdown();
+
+   return EXIT_FAILURE;
+}
diff --git a/src/examples/edje/entry.edc b/src/examples/edje/entry.edc
new file mode 100644
index 000..f47e73e
--- /dev/null
+++ b/src/examples/edje/entry.edc
@@ -0,0 +1,149 @@
+collections {
+
+   styles {
+  style {
+ name: "entry_style";
+ // This style 

[EGIT] [core/efl] master 02/03: examples/edje: Fix build instructions and titles

2016-11-04 Thread Bruno Dilly
bdilly pushed a commit to branch master.

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

commit 24f4d1400491f51301a9055fea041108b3a3fb83
Author: Bruno Dilly 
Date:   Fri Nov 4 13:54:25 2016 -0200

examples/edje: Fix build instructions and titles

Fix a few c errors
---
 src/examples/edje/edje-codegen-example.c   | 2 +-
 src/examples/edje/edje-drag.c  | 4 ++--
 src/examples/edje/edje-perspective.c   | 2 +-
 src/examples/edje/edje-signals-messages.c  | 2 +-
 src/examples/edje/edje-text.c  | 2 +-
 src/examples/edje/edje-textblock-hyphenation.c | 2 +-
 src/examples/edje/sigtest.c| 2 +-
 7 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/src/examples/edje/edje-codegen-example.c 
b/src/examples/edje/edje-codegen-example.c
index 910fd54..9fd4d5d 100644
--- a/src/examples/edje/edje-codegen-example.c
+++ b/src/examples/edje/edje-codegen-example.c
@@ -121,7 +121,7 @@ main(int argc EINA_UNUSED, char *argv[] EINA_UNUSED)
if (!ee) goto shutdown_edje;
 
ecore_evas_callback_delete_request_set(ee, _on_delete);
-   ecore_evas_title_set(ee, "Edje codegen Example");
+   ecore_evas_title_set(ee, "Edje Codegen Example");
 
evas = ecore_evas_get(ee);
 
diff --git a/src/examples/edje/edje-drag.c b/src/examples/edje/edje-drag.c
index fcf1ab1..9c1094e 100644
--- a/src/examples/edje/edje-drag.c
+++ b/src/examples/edje/edje-drag.c
@@ -5,7 +5,7 @@
  * buffer one). See stdout/stderr for output.
  *
  * @verbatim
- * edje_cc drag.edc && gcc -o drag-box drag-box.c `pkg-config --libs --cflags 
evas ecore ecore-evas edje`
+ * edje_cc drag.edc && gcc -o edje-drag edje-drag.c `pkg-config --libs 
--cflags evas ecore ecore-evas edje`
  * @endverbatim
  */
 
@@ -138,7 +138,7 @@ main(int argc EINA_UNUSED, char *argv[] EINA_UNUSED)
 
ecore_evas_callback_destroy_set(ee, _on_destroy);
ecore_evas_callback_resize_set(ee, _on_canvas_resize);
-   ecore_evas_title_set(ee, "Edje Box Example");
+   ecore_evas_title_set(ee, "Edje Drag Example");
 
evas = ecore_evas_get(ee);
 
diff --git a/src/examples/edje/edje-perspective.c 
b/src/examples/edje/edje-perspective.c
index 7bdcbf4..cf0e654 100644
--- a/src/examples/edje/edje-perspective.c
+++ b/src/examples/edje/edje-perspective.c
@@ -190,7 +190,7 @@ main(int argc EINA_UNUSED, char *argv[] EINA_UNUSED)
 
ecore_evas_callback_destroy_set(ee, _on_destroy);
ecore_evas_callback_resize_set(ee, _on_canvas_resize);
-   ecore_evas_title_set(ee, "Edje Box Example");
+   ecore_evas_title_set(ee, "Edje Perspective Example");
 
ecore_evas_data_set(ee, "app", );
 
diff --git a/src/examples/edje/edje-signals-messages.c 
b/src/examples/edje/edje-signals-messages.c
index 22155fd..060e47e 100644
--- a/src/examples/edje/edje-signals-messages.c
+++ b/src/examples/edje/edje-signals-messages.c
@@ -164,7 +164,7 @@ main(int argc EINA_UNUSED, char *argv[] EINA_UNUSED)
if (!ee) goto shutdown_edje;
 
ecore_evas_callback_delete_request_set(ee, _on_delete);
-   ecore_evas_title_set(ee, "Edje Basics Example");
+   ecore_evas_title_set(ee, "Edje Signals and Messages Example");
 
evas = ecore_evas_get(ee);
 
diff --git a/src/examples/edje/edje-text.c b/src/examples/edje/edje-text.c
index 21efb05..7109bc3 100644
--- a/src/examples/edje/edje-text.c
+++ b/src/examples/edje/edje-text.c
@@ -91,7 +91,7 @@ main(int argc EINA_UNUSED, char *argv[] EINA_UNUSED)
if (!ee) goto shutdown_edje;
 
ecore_evas_callback_delete_request_set(ee, _on_delete);
-   ecore_evas_title_set(ee, "Edje text Example");
+   ecore_evas_title_set(ee, "Edje Text Example");
 
evas = ecore_evas_get(ee);
 
diff --git a/src/examples/edje/edje-textblock-hyphenation.c 
b/src/examples/edje/edje-textblock-hyphenation.c
index 3bc53ca..b16ee81 100644
--- a/src/examples/edje/edje-textblock-hyphenation.c
+++ b/src/examples/edje/edje-textblock-hyphenation.c
@@ -5,7 +5,7 @@
  * buffer one). See stdout/stderr for output.
  *
  * @verbatim
- * edje_cc swallow.edc && gcc -o edje-textblock-hyphenation 
edje-textblock-hyphenation.c `pkg-config --libs --cflags evas ecore ecore-evas 
edje`
+ * edje_cc textblock-hyphen.edc && gcc -o edje-textblock-hyphenation 
edje-textblock-hyphenation.c `pkg-config --libs --cflags evas ecore ecore-evas 
edje`
  * @endverbatim
  */
 
diff --git a/src/examples/edje/sigtest.c b/src/examples/edje/sigtest.c
index a949ca3..b02ae1a 100644
--- a/src/examples/edje/sigtest.c
+++ b/src/examples/edje/sigtest.c
@@ -254,7 +254,7 @@ main(int argc EINA_UNUSED, char *argv[] EINA_UNUSED)
if (!ee) goto shutdown_edje;
 
ecore_evas_callback_delete_request_set(ee, _on_delete);
-   ecore_evas_title_set(ee, "Signals and wessages tester");
+   ecore_evas_title_set(ee, "Signals and messages tester");
 
evas = ecore_evas_get(ee);
 

-- 




[EGIT] [core/efl] master 01/03: examples/edje: sort makefile lists

2016-11-04 Thread Bruno Dilly
bdilly pushed a commit to branch master.

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

commit f8a0515b71afdc00d5e565f5391f27a796529b0c
Author: Bruno Dilly 
Date:   Thu Nov 3 19:09:19 2016 -0200

examples/edje: sort makefile lists
---
 src/examples/edje/.gitignore  |  6 ++--
 src/examples/edje/Makefile.am | 66 +--
 2 files changed, 36 insertions(+), 36 deletions(-)

diff --git a/src/examples/edje/.gitignore b/src/examples/edje/.gitignore
index 41ee530..ab3c677 100644
--- a/src/examples/edje/.gitignore
+++ b/src/examples/edje/.gitignore
@@ -10,15 +10,15 @@
 /edje-color-class
 /edje-drag
 /edje-edit-part-box
+/edje-multisense
 /edje-perspective
 /edje-signals-messages
 /edje-swallow
 /edje-swallow2
 /edje-table
 /edje-text
+/edje-textblock-hyphenation
+/edje_example
 /signals2
 /sigtest
-/edje-multisense
-/edje_example
-/edje-textblock-hyphenation
 /svg-test
diff --git a/src/examples/edje/Makefile.am b/src/examples/edje/Makefile.am
index 70bbb17..59feb80 100644
--- a/src/examples/edje/Makefile.am
+++ b/src/examples/edje/Makefile.am
@@ -13,24 +13,28 @@ MO_DIR = -md $(top_builddir)/src/examples/edje/
 
 #put here all EDCs one needs to the examples
 EDCS = \
-edje-group.edc \
-edje-threshold.edc \
-animations2.edc \
 animations.edc \
-basic2.edc \
+animations2.edc \
 basic.edc \
+basic2.edc \
+bezier-transition-example.edc \
 box.edc \
+box_example.edc \
 codegen.edc \
 color-class.edc \
 drag.edc \
-edje_example.edc \
+edje-group.edc \
 edje-nested.edc \
+edje-threshold.edc \
+edje_example.edc \
 embryo_custom_state.edc \
 embryo_pong.edc \
 embryo_run_program.edc \
 embryo_set_state.edc \
+embryo_set_state_anim.edc \
 embryo_set_text.edc \
 embryo_timer.edc \
+embryo_tween_anim.edc \
 external_elm_anchorblock.edc \
 external_elm_button.edc \
 external_elm_check.edc \
@@ -39,19 +43,15 @@ external_emotion_elm.edc \
 lua_script.edc \
 messages_echo.edc \
 perspective.edc \
-signalsBubble.edc \
 signals-messages.edc \
+signalsBubble.edc \
 sigtest.edc \
+svg.edc \
 swallow.edc \
 table.edc \
 text.edc \
-toggle_using_filter.edc \
-box_example.edc \
-embryo_tween_anim.edc \
-embryo_set_state_anim.edc \
-bezier-transition-example.edc \
 textblock-hyphen.edc \
-svg.edc
+toggle_using_filter.edc
 
 DIST_EDCS = $(EDCS)
 
@@ -128,27 +128,27 @@ ta_IN/domain_name.mo \
 Makefile.examples
 
 SRCS = \
-edje-codegen-example.c \
-edje_example.c \
+animations2.c \
+edje-animations.c \
 edje-basic.c \
-edje-swallow.c \
-edje-text.c \
-edje-table.c \
+edje-basic2.c \
 edje-box.c \
 edje-box2.c \
-edje-drag.c \
-edje-signals-messages.c \
+edje-codegen-example.c \
 edje-color-class.c \
+edje-drag.c \
+edje-edit-part-box.c \
+edje-multisense.c \
 edje-perspective.c \
-edje-animations.c \
-sigtest.c \
-animations2.c \
-edje-basic2.c \
-signals2.c \
+edje-signals-messages.c \
+edje-swallow.c \
 edje-swallow2.c \
-edje-multisense.c \
-edje-edit-part-box.c \
+edje-table.c \
+edje-text.c \
 edje-textblock-hyphenation.c \
+edje_example.c \
+signals2.c \
+sigtest.c \
 svg-test.c
 
 EXTRA_DIST = $(DIST_EDCS) $(DATA_FILES)
@@ -200,26 +200,26 @@ codegen_example_generated.c \
 codegen_example_generated.h
 
 EXTRA_PROGRAMS = \
-edje_example \
+animations2 \
 edje-animations \
 edje-basic \
+edje-basic2 \
 edje-box \
 edje-box2 \
 edje-codegen-example \
 edje-color-class \
 edje-drag\
+edje-edit-part-box \
 edje-perspective \
 edje-signals-messages \
 edje-swallow \
+edje-swallow2 \
 edje-table \
 edje-text \
-sigtest \
-animations2 \
-edje-basic2 \
-signals2 \
-edje-swallow2 \
-edje-edit-part-box \
 edje-textblock-hyphenation \
+edje_example \
+signals2 \
+sigtest \
 svg-test
 
 if ENABLE_MULTISENSE

-- 




[EGIT] [core/efl] master 01/01: ecore_audio, eio eo: remove pointers

2016-11-04 Thread Daniel Kolesa
q66 pushed a commit to branch master.

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

commit a8f240e10de98122c2d5f3f0ce3d63c6386a70e9
Author: Daniel Kolesa 
Date:   Fri Nov 4 17:14:30 2016 +0100

ecore_audio, eio eo: remove pointers
---
 src/lib/ecore_audio/ecore_audio.eo | 2 +-
 src/lib/eio/efl_io_manager.eo  | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/lib/ecore_audio/ecore_audio.eo 
b/src/lib/ecore_audio/ecore_audio.eo
index 7436b58..a80a4c9 100644
--- a/src/lib/ecore_audio/ecore_audio.eo
+++ b/src/lib/ecore_audio/ecore_audio.eo
@@ -109,7 +109,7 @@ class Ecore.Audio (Efl.Object)
@since 1.8
  ]]
  params {
-  vio: Ecore.Audio.Vio *; [[the @Ecore.Audio.Vio struct with
+  vio: ptr(Ecore.Audio.Vio); [[the @Ecore.Audio.Vio struct with
 the function callbacks
   ]]
   data: void_ptr; [[user data to pass to the VIO functions]]
diff --git a/src/lib/eio/efl_io_manager.eo b/src/lib/eio/efl_io_manager.eo
index 0b0724c..d0ac5c5 100644
--- a/src/lib/eio/efl_io_manager.eo
+++ b/src/lib/eio/efl_io_manager.eo
@@ -60,7 +60,7 @@ class Efl.Io.Manager (Efl.Loop_User)
   [[Retrieves or sets information of a given extended attribute.]]
   set {
  values {
-   data: Eina.Binbuf *;
+data: ptr(Eina.Binbuf);
 flags: Eina.Xattr.Flags;
  }
  return: future;
@@ -88,7 +88,7 @@ class Efl.Io.Manager (Efl.Loop_User)
 close {
   [[Closes an open Eina.File.]]
   params {
-@in file: Eina.File*;
+@in file: ptr(Eina.File);
 // Here we're just interested whether the promise was fullfilled or 
not. No value needed.
   }
   return: future;

-- 




[EGIT] [core/efl] master 01/01: edje eo: remove pointers

2016-11-04 Thread Daniel Kolesa
q66 pushed a commit to branch master.

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

commit 0ad751cd83ce668338fd17f9cc2465f84139419f
Author: Daniel Kolesa 
Date:   Fri Nov 4 17:19:53 2016 +0100

edje eo: remove pointers
---
 src/lib/edje/edje_object.eo | 14 +++---
 src/lib/edje/edje_types.eot |  4 ++--
 2 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/src/lib/edje/edje_object.eo b/src/lib/edje/edje_object.eo
index c05cd0e..1d53b30 100644
--- a/src/lib/edje/edje_object.eo
+++ b/src/lib/edje/edje_object.eo
@@ -120,7 +120,7 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, 
Efl.Container, Efl.Part,
   See also @.perspective.get()
   \@ref edje_perspective_set()]]
 values {
-ps: Edje.Perspective*; [[The perspective object that will be 
used.]]
+ps: ptr(Edje.Perspective); [[The perspective object that will 
be used.]]
 }
  }
  get {
@@ -128,7 +128,7 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, 
Efl.Container, Efl.Part,
 
   See also @.perspective.set()]]
 values {
-ps: const(Edje.Perspective)*; [[The perspective object that 
will be used.]]
+ps: ptr(const(Edje.Perspective)); [[The perspective object 
that will be used.]]
 }
  }
   }
@@ -1160,7 +1160,7 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, 
Efl.Container, Efl.Part,
 
 return: bool; [[$true if everything went fine, $false on errors.]]
 values {
-   param: const(Edje.External.Param)*; [[the parameter details, 
including its name, type and
+   param: ptr(const(Edje.External.Param)); [[the parameter 
details, including its name, type and
  actual value. This 
pointer should be valid, and the
  parameter must exist in
  
#Edje_External_Type.parameters_info, with the exact type,
@@ -1267,7 +1267,7 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, 
Efl.Container, Efl.Part,
 
   See also @.part_text_unescaped.set().]]
 values {
-   text_to_escape: own(char *); [[The text string]]
+   text_to_escape: own(ptr(char)); [[The text string]]
 }
  }
  keys {
@@ -1351,7 +1351,7 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, 
Efl.Container, Efl.Part,
 
@since 1.18.0]]
  params {
-@in part: const(char)*; [[The part name]]
+@in part: string; [[The part name]]
  }
  return: bool; [[$true if the visible character is hidden. $false if 
there is no visible character or the object is not set for password mode.]]
   }
@@ -1497,7 +1497,7 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, 
Efl.Container, Efl.Part,
   \@ref evas_textblock_cursor_content_get
 
   You must free the return (if not $null) after you are done with 
it.]]
-return: own(char *); [[The character string pointed to (may be a 
multi-byte utf8 sequence) terminated by a nul byte.]]
+return: own(ptr(char)); [[The character string pointed to (may be 
a multi-byte utf8 sequence) terminated by a nul byte.]]
  }
  keys {
 part: string; [[The part name]]
@@ -1884,7 +1884,7 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, 
Efl.Container, Efl.Part,
 
   This function return a list of Evas_Textblock_Rectangle anchor
   rectangles.]]
-return: const(list); [[The list 
of anchor rects (const Evas_Textblock_Rectangle
+return: const(list); [[The 
list of anchor rects (const Evas_Textblock_Rectangle
  *), do 
not modify! Geometry is relative to entry part.]]
  }
  keys {
diff --git a/src/lib/edje/edje_types.eot b/src/lib/edje/edje_types.eot
index 83ade07..36dec6f 100644
--- a/src/lib/edje/edje_types.eot
+++ b/src/lib/edje/edje_types.eot
@@ -142,14 +142,14 @@ enum Edje.External.Param_Type {
 
 struct Edje.External.Param {
[[Struct that holds parameters for parts of type EXTERNAL.]]
-   name: const(char) *; [[The name of the parameter.]]
+   name: string; [[The name of the parameter.]]
type: Edje.External.Param_Type; [[The type of the parameter. This defines
  which of the next three variables holds
  the value for it.]]
// XXX these could be in a union, but eet doesn't support them (or does it?)
i: int; [[Used by both integer and boolean]]
d: double; [[Used by double]]
-   s: const(char) 

[EGIT] [core/efl] master 01/01: ecore con: remove pointers

2016-11-04 Thread Daniel Kolesa
q66 pushed a commit to branch master.

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

commit 6975b89e1473a42c41feab29ab8ccb922a26c034
Author: Daniel Kolesa 
Date:   Fri Nov 4 17:07:50 2016 +0100

ecore con: remove pointers
---
 src/lib/ecore_con/ecore_con_eet_base.eo   | 12 ++--
 src/lib/ecore_con/efl_net_dialer_websocket.eo |  2 +-
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/lib/ecore_con/ecore_con_eet_base.eo 
b/src/lib/ecore_con/ecore_con_eet_base.eo
index 1c781c5..82d41a2 100644
--- a/src/lib/ecore_con/ecore_con_eet_base.eo
+++ b/src/lib/ecore_con/ecore_con_eet_base.eo
@@ -64,15 +64,15 @@ class Ecore.Con.Eet.Base (Efl.Object) {
  legacy: ecore_con_eet;
  params {
 name: string; [[The name of the eet stream.]]
-edd: Eet.Data.Descriptor *; [[The Eet.Data.Descriptor that
-  is to be registered.]]
+edd: ptr(Eet.Data.Descriptor); [[The Eet.Data.Descriptor that
+ is to be registered.]]
  }
   }
   send {
  [[Function to send data.]]
  params {
-reply: Ecore.Con.Reply *; [[Contains the ecore_con_eet object
-to which the data has to be sent.]]
+reply: ptr(Ecore.Con.Reply); [[Contains the ecore_con_eet object
+   to which the data has to be sent.]]
 name: string; [[The name of the eet stream.]]
 value: void_ptr; [[Actual data]]
  }
@@ -80,8 +80,8 @@ class Ecore.Con.Eet.Base (Efl.Object) {
   raw_send {
  [[Function to send raw data.]]
  params {
-reply: Ecore.Con.Reply *; [[Contains the ecore_con_eet object
-to which the data has to be sent.]]
+reply: ptr(Ecore.Con.Reply); [[Contains the ecore_con_eet object
+   to which the data has to be sent.]]
 protocol_name: string; [[The name of the eet stream.]]
 section: string; [[Name of section in the eet descriptor.]]
 value: void_ptr; [[The value of the section.]]
diff --git a/src/lib/ecore_con/efl_net_dialer_websocket.eo 
b/src/lib/ecore_con/efl_net_dialer_websocket.eo
index 7dafbd9..8408eb2 100644
--- a/src/lib/ecore_con/efl_net_dialer_websocket.eo
+++ b/src/lib/ecore_con/efl_net_dialer_websocket.eo
@@ -307,7 +307,7 @@ class Efl.Net.Dialer.Websocket (Efl.Loop_User, 
Efl.Net.Dialer) {
 
 events {
 message,text: string; [[Received a text string message (opcode=0x1)]]
-message,binary: const(Eina.Slice)*; [[Received a binary message 
(opcode=0x2)]]
+message,binary: ptr(const(Eina.Slice)); [[Received a binary message 
(opcode=0x2)]]
 pong: string; [[Received a pong (opcode=0xA) with optional 
message/reason]]
 closed,reason: Efl.Net.Dialer.Websocket.Closed_Reason; [[Received a 
request to close the connection. It may be a reply/confirmation from a local 
request, see @.close_request, or some server-generated reason. After this 
point, no more messages are allowed to be sent and no more will be received. 
@Efl.Io.Closer.close will be called.]]
 }

-- 




[EGIT] [core/efl] master 01/01: eldbus eo: remove pointers

2016-11-04 Thread Daniel Kolesa
q66 pushed a commit to branch master.

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

commit 57792897a24cb39fbc0553c00ee360ba45da810e
Author: Daniel Kolesa 
Date:   Fri Nov 4 17:12:17 2016 +0100

eldbus eo: remove pointers
---
 src/lib/eldbus/eldbus_model_arguments.eo |  4 ++--
 src/lib/eldbus/eldbus_model_method.eo|  4 ++--
 src/lib/eldbus/eldbus_model_object.eo|  2 +-
 src/lib/eldbus/eldbus_model_proxy.eo |  4 ++--
 src/lib/eldbus/eldbus_model_signal.eo|  4 ++--
 src/lib/eldbus/eldbus_types.eot  | 22 +++---
 6 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/src/lib/eldbus/eldbus_model_arguments.eo 
b/src/lib/eldbus/eldbus_model_arguments.eo
index 834580a..0fe66ac 100644
--- a/src/lib/eldbus/eldbus_model_arguments.eo
+++ b/src/lib/eldbus/eldbus_model_arguments.eo
@@ -9,9 +9,9 @@ class Eldbus.Model.Arguments (Efl.Object, Efl.Model) {
 
 @since 1.16]]
 params {
-@in proxy: Eldbus.Proxy*; [[Eldbus proxy]]
+@in proxy: ptr(Eldbus.Proxy); [[Eldbus proxy]]
 @in name: string; [[Name]]
-@in arguments: const(list); 
[[The introspected arguments]]
+@in arguments: 
const(list); [[The introspected arguments]]
 }
 }
 @property name {
diff --git a/src/lib/eldbus/eldbus_model_method.eo 
b/src/lib/eldbus/eldbus_model_method.eo
index f26bdf9..db04d5b 100644
--- a/src/lib/eldbus/eldbus_model_method.eo
+++ b/src/lib/eldbus/eldbus_model_method.eo
@@ -8,8 +8,8 @@ class Eldbus.Model.Method (Eldbus.Model.Arguments) {
 
   @since 1.16]]
 params {
-@in proxy: Eldbus.Proxy*; [[Eldbus proxy]]
-@in method: const(Eldbus.Introspection.Method)*; [[The 
introspected method]]
+@in proxy: ptr(Eldbus.Proxy); [[Eldbus proxy]]
+@in method: ptr(const(Eldbus.Introspection.Method)); [[The 
introspected method]]
 }
 }
 call {
diff --git a/src/lib/eldbus/eldbus_model_object.eo 
b/src/lib/eldbus/eldbus_model_object.eo
index fde1120..5cbd921 100644
--- a/src/lib/eldbus/eldbus_model_object.eo
+++ b/src/lib/eldbus/eldbus_model_object.eo
@@ -22,7 +22,7 @@ class Eldbus.Model.Object (Efl.Object, Efl.Model) {
 
   @since 1.16]]
 params {
-@in connection: Eldbus.Connection*; [[Eldbus connection]]
+@in connection: ptr(Eldbus.Connection); [[Eldbus connection]]
 @in bus: string; [[DBus Name or unique-id]]
 @in path: string; [[DBus path]]
 }
diff --git a/src/lib/eldbus/eldbus_model_proxy.eo 
b/src/lib/eldbus/eldbus_model_proxy.eo
index 3ee8f0b..dc6aa4b 100644
--- a/src/lib/eldbus/eldbus_model_proxy.eo
+++ b/src/lib/eldbus/eldbus_model_proxy.eo
@@ -9,8 +9,8 @@ class Eldbus.Model.Proxy (Efl.Object, Efl.Model) {
 
   @since 1.16]]
 params {
-@in object: Eldbus.Object *; [[Eldbus object]]
-@in interface: const(Eldbus.Introspection.Interface)*; [[The 
introspected interface]]
+@in object: ptr(Eldbus.Object); [[Eldbus object]]
+@in interface: ptr(const(Eldbus.Introspection.Interface)); 
[[The introspected interface]]
 }
 }
 @property name {
diff --git a/src/lib/eldbus/eldbus_model_signal.eo 
b/src/lib/eldbus/eldbus_model_signal.eo
index fda4fd8..443968a 100644
--- a/src/lib/eldbus/eldbus_model_signal.eo
+++ b/src/lib/eldbus/eldbus_model_signal.eo
@@ -7,8 +7,8 @@ class Eldbus.Model.Signal (Eldbus.Model.Arguments) {
 
 @since 1.16]]
 params {
-@in proxy: Eldbus.Proxy*; [[Eldbus proxy]]
-@in signal: const(Eldbus.Introspection.Signal)*; [[The 
introspected method]]
+@in proxy: ptr(Eldbus.Proxy); [[Eldbus proxy]]
+@in signal: ptr(const(Eldbus.Introspection.Signal)); [[The 
introspected method]]
 }
 }
 }
diff --git a/src/lib/eldbus/eldbus_types.eot b/src/lib/eldbus/eldbus_types.eot
index a4db94e..b3b2045 100644
--- a/src/lib/eldbus/eldbus_types.eot
+++ b/src/lib/eldbus/eldbus_types.eot
@@ -37,26 +37,26 @@ struct Eldbus.Introspection.Node
 {
[[DBus Node]]
name: stringshare; [[Node name (optional)]]
-   nodes: list; [[List with nodes]]
-   interfaces: list; [[List with interfaces]]
+   nodes: list; [[List with nodes]]
+   interfaces: list; [[List with interfaces]]
 }
 
 struct Eldbus.Introspection.Interface
 {
[[DBus Interface]]
name: stringshare; [[Interface name]]
-   methods: list; [[List with interface methods]]
-   signals: list; [[List with interface signals]]
-   properties: list; [[List with interface properties]]
-   annotations: list; [[List with interface annotations]]
+   methods: list; [[List with interface methods]]

[EGIT] [core/efl] master 03/05: fix event name

2016-11-04 Thread Gustavo Sverzut Barbieri
barbieri pushed a commit to branch master.

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

commit dd628d4fad5e5eee56d7483a8ebec1c2a9bd5e69
Author: Gustavo Sverzut Barbieri 
Date:   Fri Nov 4 12:59:15 2016 -0200

fix event name
---
 src/lib/efl/interfaces/efl_model.eo | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/efl/interfaces/efl_model.eo 
b/src/lib/efl/interfaces/efl_model.eo
index b89aebe..c824fe1 100644
--- a/src/lib/efl/interfaces/efl_model.eo
+++ b/src/lib/efl/interfaces/efl_model.eo
@@ -121,7 +121,7 @@ interface Efl.Model ()
 
   Add a new child, possibly dummy, depending on the implementation,
   of a internal keeping. When the child is effectively
-  added the event \@ref EFL_MODEL_EVENT_CHILD_ADD is then raised
+  added the event \@ref EFL_MODEL_EVENT_CHILD_ADDED is then raised
   and the new child is kept along with other children.
 
   @since 1.14

-- 




[EGIT] [core/efl] master 01/05: fix event name

2016-11-04 Thread Gustavo Sverzut Barbieri
barbieri pushed a commit to branch master.

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

commit d8ad2507bcbba6215e75dd1e76d8ade379dfe48a
Author: Gustavo Sverzut Barbieri 
Date:   Fri Nov 4 11:19:41 2016 -0200

fix event name
---
 src/lib/efl/interfaces/efl_model.eo | 12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/lib/efl/interfaces/efl_model.eo 
b/src/lib/efl/interfaces/efl_model.eo
index e3d9359..b89aebe 100644
--- a/src/lib/efl/interfaces/efl_model.eo
+++ b/src/lib/efl/interfaces/efl_model.eo
@@ -15,10 +15,10 @@ interface Efl.Model ()
 
  properties_get is due to provide callers a way the fetch the
  current properties implemented/used by the model. The event
- EFL_MODEL_EVENT_PROPERTIES_CHANGE will be raised to notify
+ EFL_MODEL_EVENT_PROPERTIES_CHANGED will be raised to notify
  listeners of any modifications in the properties.
 
- See also \@ref EFL_MODEL_EVENT_PROPERTIES_CHANGE.
+ See also \@ref EFL_MODEL_EVENT_PROPERTIES_CHANGED.
 
  @since 1.14
]]
@@ -34,14 +34,14 @@ interface Efl.Model ()
  before being able to see/set properties. This function sets
  a new property value into given property name. Once the
  operation is completed the concrete implementation should
- raise EFL_MODEL_EVENT_PROPERTIES_CHANGE event in order to
+ raise EFL_MODEL_EVENT_PROPERTIES_CHANGED event in order to
  notify listeners of the new value of the property.
 
  If the model doesn't have the property then there are two
  possibilities, either raise an error or create the new
  property in model
 
- See @.property_get, \@ref EFL_MODEL_EVENT_PROPERTIES_CHANGE
+ See @.property_get, \@ref EFL_MODEL_EVENT_PROPERTIES_CHANGED
 
  @since 1.14
 ]]
@@ -55,10 +55,10 @@ interface Efl.Model ()
[[Retrieve the value of a given property name.
 
  At this point the caller is free to get values from properties.
- The event EFL_MODEL_EVENT_PROPERTIES_CHANGE may be raised to
+ The event EFL_MODEL_EVENT_PROPERTIES_CHANGED may be raised to
  notify listeners of the property/value.
 
- See @.properties.get, \@ref EFL_MODEL_EVENT_PROPERTIES_CHANGE
+ See @.properties.get, \@ref EFL_MODEL_EVENT_PROPERTIES_CHANGED
 
  @since 1.14
]]

-- 




[EGIT] [editors/vim-configs] master 01/01: syntax/edc: recognize select and cursor modes

2016-11-04 Thread Bruno Dilly
bdilly pushed a commit to branch master.

http://git.enlightenment.org/editors/vim-configs.git/commit/?id=0d3d9df2a6060d82dfdbd5a85ce13f42f9df13ea

commit 0d3d9df2a6060d82dfdbd5a85ce13f42f9df13ea
Author: Bruno Dilly 
Date:   Fri Nov 4 13:26:30 2016 -0200

syntax/edc: recognize select and cursor modes

Labels and constants
---
 syntax/edc.vim | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/syntax/edc.vim b/syntax/edc.vim
index 646ba05..ec99cc0 100644
--- a/syntax/edc.vim
+++ b/syntax/edc.vim
@@ -51,6 +51,7 @@ syn keyword   edcLabelint double string external 
script_only contained
 syn keywordedcLabelinsert_before insert_after contained
 syn keywordedcLabelscript_recursion contained
 syn keywordedcLabellimit broadcast_signal targets target_group 
groups size_range contained
+syn keywordedcLabelselect_mode cursor_mode repch
 " LazEDC synonyms
 syn keywordedcLabelbefore after ignore pointer alt_font clip  
contained
 
@@ -76,6 +77,7 @@ syn keyword   edcConstant EDITABLE PASSWORD "default"
 syn keywordedcConstant DEFAULT EXPLICIT PLAY_SAMPLE
 syn keywordedcConstant SOLID
 syn keywordedcConstant WIDTH HEIGHT
+syn keywordedcConstant BEFORE UNDER
 
 syn keywordedcTodo contained TODO FIXME XXX
 

-- 




[EGIT] [core/enlightenment] master 01/01: Luncher: Remove useless if statements and make sure to delete an order when instance is deleted.

2016-11-04 Thread Stephen okra Houston
okra pushed a commit to branch master.

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

commit 1d202c513d19a1efce9273b7c0691bb9c9de1f10
Author: Stephen okra Houston 
Date:   Fri Nov 4 10:22:34 2016 -0500

Luncher: Remove useless if statements and make sure to delete an order when 
instance is deleted.
---
 src/modules/luncher/bar.c | 38 ++
 1 file changed, 14 insertions(+), 24 deletions(-)

diff --git a/src/modules/luncher/bar.c b/src/modules/luncher/bar.c
index e558919..c7b5a0b 100644
--- a/src/modules/luncher/bar.c
+++ b/src/modules/luncher/bar.c
@@ -425,14 +425,11 @@ _bar_icon_mouse_down(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_UNUS
 
if (ev->button == 1)
  {
-if (ic->mouse_in_timer)
-  E_FREE_FUNC(ic->mouse_in_timer, ecore_timer_del);
-if (ic->mouse_out_timer)
-  E_FREE_FUNC(ic->mouse_out_timer, ecore_timer_del);
+E_FREE_FUNC(ic->mouse_in_timer, ecore_timer_del);
+E_FREE_FUNC(ic->mouse_out_timer, ecore_timer_del);
 ic->drag.x = ev->output.x;
 ic->drag.y = ev->output.y;
-if (ic->drag_timer)
-  E_FREE_FUNC(ic->drag_timer, ecore_timer_del);
+E_FREE_FUNC(ic->drag_timer, ecore_timer_del);
 ic->drag_timer = ecore_timer_add(.35, _bar_drag_timer, ic);
  }
if (ev->button == 3)
@@ -523,8 +520,7 @@ _bar_icon_mouse_up(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_UNUSED
 
if (ev->button == 1)
  {
-if (ic->drag_timer)
-  E_FREE_FUNC(ic->drag_timer, ecore_timer_del);
+E_FREE_FUNC(ic->drag_timer, ecore_timer_del);
 if (ic->drag.dnd)
   {
  ic->drag.start = 0;
@@ -616,8 +612,7 @@ _bar_icon_preview_mouse_out(void *data, Evas *e 
EINA_UNUSED, Evas_Object *obj EI
 
if (current_preview_menu)
  return;
-   if (ic->mouse_out_timer)
- E_FREE_FUNC(ic->mouse_out_timer, ecore_timer_del);
+   E_FREE_FUNC(ic->mouse_out_timer, ecore_timer_del);
ic->mouse_out_timer = ecore_timer_add(0.75, _bar_icon_preview_hide, ic);
 }
 
@@ -630,8 +625,7 @@ _bar_icon_preview_mouse_in(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EIN
if (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD) return;
if (_bar_check_modifiers(ev->modifiers)) return;
 
-   if (ic->mouse_out_timer)
- E_FREE_FUNC(ic->mouse_out_timer, ecore_timer_del);
+   E_FREE_FUNC(ic->mouse_out_timer, ecore_timer_del);
 }
 
 static void
@@ -835,10 +829,8 @@ _bar_icon_mouse_in(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj, void *even
elm_layout_signal_emit(ic->o_layout, "e,state,focused", "e");
ic->active = EINA_TRUE;
 
-   if (ic->mouse_out_timer)
- E_FREE_FUNC(ic->mouse_out_timer, ecore_timer_del);
-   if (ic->mouse_in_timer)
- E_FREE_FUNC(ic->mouse_in_timer, ecore_timer_del);
+   E_FREE_FUNC(ic->mouse_out_timer, ecore_timer_del);
+   E_FREE_FUNC(ic->mouse_in_timer, ecore_timer_del);
if (eina_list_count(ic->execs) || eina_list_count(ic->clients))
  clients = EINA_TRUE;
if (current_preview && clients && !current_preview_menu)
@@ -868,10 +860,8 @@ _bar_icon_mouse_out(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj, void *eve
elm_layout_signal_emit(ic->o_layout, "e,state,unfocused", "e");
if (!ic->preview)
  ic->active = EINA_FALSE;
-   if (ic->mouse_in_timer)
- E_FREE_FUNC(ic->mouse_in_timer, ecore_timer_del);
-   if (ic->mouse_out_timer)
- E_FREE_FUNC(ic->mouse_out_timer, ecore_timer_del);
+   E_FREE_FUNC(ic->mouse_in_timer, ecore_timer_del);
+   E_FREE_FUNC(ic->mouse_out_timer, ecore_timer_del);
ic->mouse_out_timer = ecore_timer_add(0.25, _bar_icon_preview_hide, ic);
 }
 
@@ -1528,8 +1518,8 @@ _bar_del(void *data, Evas *e EINA_UNUSED, Evas_Object 
*obj EINA_UNUSED, void *ev
 {
Instance *inst = data;
 
-   if (inst->drop_handler)
- E_FREE_FUNC(inst->drop_handler, evas_object_del);
+   e_object_del(E_OBJECT(inst->order));
+   E_FREE_FUNC(inst->drop_handler, evas_object_del);
luncher_instances = eina_list_remove(luncher_instances, inst);
free(inst);
 }
@@ -1797,7 +1787,7 @@ _bar_recalculate_job(void *data)
 EINTERN void
 bar_recalculate(Instance *inst)
 {
-   if (inst->recalc_job) E_FREE_FUNC(inst->recalc_job, ecore_job_del);
+   E_FREE_FUNC(inst->recalc_job, ecore_job_del);
inst->recalc_job = ecore_job_add(_bar_recalculate_job, inst);
 }
 
@@ -1808,7 +1798,7 @@ bar_reorder(Instance *inst)
 
if (inst)
  {
-if (inst->recalc_job) E_FREE_FUNC(inst->recalc_job, ecore_job_del);
+E_FREE_FUNC(inst->recalc_job, ecore_job_del);
 _bar_empty(inst);
 if (!inst->cfg->dir)
   inst->cfg->dir = eina_stringshare_add("default");

-- 




[EGIT] [core/efl] master 02/05: eldbus/eo: improve API

2016-11-04 Thread Gustavo Sverzut Barbieri
barbieri pushed a commit to branch master.

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

commit 7b590c126edde338b6a0ef99c6b9213062f7ecbd
Author: Gustavo Sverzut Barbieri 
Date:   Fri Nov 4 11:47:34 2016 -0200

eldbus/eo: improve API

remove setters that do not make sense, they are set in the constructor
functions and cannot be changed.

define the Eldbus_Connection_Type in .eo, properly type functions
using it.
---
 src/lib/eldbus/eldbus_model_connection.c  | 23 ++-
 src/lib/eldbus/eldbus_model_connection.eo |  9 ++--
 src/lib/eldbus/eldbus_model_object.c  | 37 ++-
 src/lib/eldbus/eldbus_model_object.eo |  9 ++--
 src/lib/eldbus/eldbus_types.eot   | 10 +
 5 files changed, 28 insertions(+), 60 deletions(-)

diff --git a/src/lib/eldbus/eldbus_model_connection.c 
b/src/lib/eldbus/eldbus_model_connection.c
index 27ace02..e311c98 100644
--- a/src/lib/eldbus/eldbus_model_connection.c
+++ b/src/lib/eldbus/eldbus_model_connection.c
@@ -39,7 +39,7 @@ _eldbus_model_connection_efl_object_constructor(Eo *obj, 
Eldbus_Model_Connection
 static void
 _eldbus_model_connection_constructor(Eo *obj EINA_UNUSED,
  Eldbus_Model_Connection_Data *pd,
- int type,
+ Eldbus_Connection_Type type,
  const char* address,
  Eina_Bool private)
 {
@@ -212,38 +212,19 @@ _eldbus_model_connection_address_get(Eo *obj EINA_UNUSED, 
Eldbus_Model_Connectio
return pd->address;
 }
 
-static void
-_eldbus_model_connection_address_set(Eo *obj EINA_UNUSED, 
Eldbus_Model_Connection_Data *pd, const char *value)
-{
-   eina_stringshare_del(pd->address);
-   pd->address = eina_stringshare_add(value);
-}
-
 static Eina_Bool
 _eldbus_model_connection_private_get(Eo *obj EINA_UNUSED, 
Eldbus_Model_Connection_Data *pd)
 {
return pd->private;
 }
 
-static void
-_eldbus_model_connection_private_set(Eo *obj EINA_UNUSED, 
Eldbus_Model_Connection_Data *pd, Eina_Bool value)
-{
-   pd->private = value;
-}
-
-static int
+static Eldbus_Connection_Type
 _eldbus_model_connection_type_get(Eo *obj EINA_UNUSED, 
Eldbus_Model_Connection_Data *pd)
 {
return pd->type;
 }
 
 static void
-_eldbus_model_connection_type_set(Eo *obj EINA_UNUSED, 
Eldbus_Model_Connection_Data *pd, int value)
-{
-   pd->type = value;
-}
-
-static void
 _eldbus_model_connection_connect(Eldbus_Model_Connection_Data *pd)
 {
EINA_SAFETY_ON_NULL_RETURN(pd);
diff --git a/src/lib/eldbus/eldbus_model_connection.eo 
b/src/lib/eldbus/eldbus_model_connection.eo
index 8a0a392..8d26077 100644
--- a/src/lib/eldbus/eldbus_model_connection.eo
+++ b/src/lib/eldbus/eldbus_model_connection.eo
@@ -1,3 +1,5 @@
+import eldbus_types;
+
 class Eldbus.Model.Connection (Efl.Object, Efl.Model) {
 [[Eldbus model connection class]]
 
@@ -7,25 +9,28 @@ class Eldbus.Model.Connection (Efl.Object, Efl.Model) {
 
   @since 1.16]]
 params {
-@in type: int; [[The connection type]]
+@in type: Eldbus.Connection.Type; [[The connection type]]
 @in address: string; [[Remote address of DBus]]
 @in private_: bool; [[Non shared dbus connection]]
 }
 }
 @property type {
 [[Connection type]]
+get { }
 values {
-type: int; [[Connection type]]
+type: Eldbus.Connection.Type; [[Connection type]]
 }
 }
 @property address {
 [[Remote DBus address]]
+get { }
 values {
 address: string; [[Address]]
 }
 }
 @property private {
 [[Indicate if the DBus connection is shared or private]]
+get { }
 values {
 private_: bool; [[Private DBus connection]]
 }
diff --git a/src/lib/eldbus/eldbus_model_object.c 
b/src/lib/eldbus/eldbus_model_object.c
index a03030b..b359eaf 100644
--- a/src/lib/eldbus/eldbus_model_object.c
+++ b/src/lib/eldbus/eldbus_model_object.c
@@ -48,7 +48,7 @@ _eldbus_model_object_efl_object_constructor(Eo *obj, 
Eldbus_Model_Object_Data *p
 static void
 _eldbus_model_object_constructor(Eo *obj EINA_UNUSED,
  Eldbus_Model_Object_Data *pd,
- int type,
+ Eldbus_Connection_Type type,
  const char* address,
  Eina_Bool private,
  const char* bus,
@@ -231,50 +231,24 @@ _eldbus_model_object_address_get(Eo *obj EINA_UNUSED, 
Eldbus_Model_Object_Data *
return pd->address;
 }
 
-static void
-_eldbus_model_object_address_set(Eo *obj EINA_UNUSED, 

[EGIT] [core/efl] master 05/05: examples/eldbus/dbusmodel.c improve situation, far from correct.

2016-11-04 Thread Gustavo Sverzut Barbieri
barbieri pushed a commit to branch master.

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

commit 218403dc19aa55c50c554375ad73b63dfaae7715
Author: Gustavo Sverzut Barbieri 
Date:   Fri Nov 4 13:09:27 2016 -0200

examples/eldbus/dbusmodel.c improve situation, far from correct.

it was using old API, updated, but still doesn't work as expected,
lots of warnings from children being left alive, all proxies are
reporting no properties...

when model dies, all children proxies should die as well, otherwise we
get on console:

```
CRI:eldbus lib/eldbus/eldbus_core.c:215 eldbus_shutdown() Alive TYPE_SYSTEM 
connection
ERR:eldbus lib/eldbus/eldbus_core.c:175 print_live_connection() 
conn=0x8219230 alive object=0x8276d50 net.connman of bus=net.connman
...
```

Also, all proxies are reporting no properties "(no properties yet)",
likely they are missing to fetch such... even if "--wait" to let it
run, no asynchronous properties are delivered, at least not triggering
EFL_MODEL_EVENT_PROPERTIES_CHANGED.
---
 src/examples/eldbus/dbusmodel.c | 217 +++-
 1 file changed, 167 insertions(+), 50 deletions(-)

diff --git a/src/examples/eldbus/dbusmodel.c b/src/examples/eldbus/dbusmodel.c
index 034fde6..47aecd3 100644
--- a/src/examples/eldbus/dbusmodel.c
+++ b/src/examples/eldbus/dbusmodel.c
@@ -9,22 +9,26 @@
 #include 
 #include 
 #include 
+#include 
 
-#define DEFAULT_BUS  "org.freedesktop.DBus"
+#define DEFAULT_BUS_NAME  "org.freedesktop.DBus"
 #define DEFAULT_PATH "/"
 
 static int prop_count = 0;
+static int retval = EXIT_SUCCESS;
+static Eina_Bool quit_on_done = EINA_TRUE;
 
 static void
-promise_then_prop_c(void* priv_obj, void* data)
+future_properties_then(void* data, const Efl_Event *event)
 {
-   Eo* obj = priv_obj;
+   Eo* obj = data;
+   Efl_Future_Event_Success *future = event->info;
Eina_Value * property_value;
const Eina_Array *properties_list;
Eina_Array_Iterator a_it;
char *property, *prop_str;
const char *name;
-   Eina_Iterator* it = data;
+   Eina_Iterator* it = future->value;
 
name = eldbus_model_proxy_name_get(obj);
properties_list = efl_model_properties_get(obj);
@@ -43,108 +47,221 @@ promise_then_prop_c(void* priv_obj, void* data)
 
prop_count--;
if (prop_count == 0)
- ecore_main_loop_quit();
+ {
+if (quit_on_done)
+  ecore_main_loop_quit();
+else
+  printf("monitoring events...\n");
+ }
 }
 
 static void
-error_cb(void* data EINA_UNUSED, Eina_Error error EINA_UNUSED)
+error_cb(void* data EINA_UNUSED, const Efl_Event *event)
 {
-   printf(" ERROR\n");
+   Efl_Future_Event_Failure *future = event->info;
+   printf(" ERROR: #%d '%s'\n", future->error, 
eina_error_msg_get(future->error));
ecore_main_loop_quit();
+   retval = EXIT_FAILURE;
 }
 
 static void
-promise_then_a(void* priv_obj EINA_UNUSED, void* data)
+loop_children(Eina_Accessor *children)
 {
-   const Eina_Array *properties_list;
-   Eina_Array_Iterator a_it;
-   Eina_Promise **promises;
-   const char *name;
-   char *property;
Eo* child;
int i = 0;
-   Eina_Accessor* accessor = data;
 
-   EINA_ACCESSOR_FOREACH(accessor, i, child)
+   EINA_ACCESSOR_FOREACH(children, i, child)
  {
-properties_list = efl_model_properties_get(child);
-name = eldbus_model_proxy_name_get(child);
-
+const Eina_Array *properties_list = efl_model_properties_get(child);
 unsigned p_count = eina_array_count(properties_list);
+const char *name = eldbus_model_proxy_name_get(child);
 
 if (p_count)
   {
- promises = (Eina_Promise **)calloc(p_count + 1, 
sizeof(Eina_Promise *));
- promises[p_count] = NULL;
-
+ Efl_Future **futures = calloc(p_count + 1, sizeof(Efl_Future *));
+ Eina_Array_Iterator a_it;
+ const char *property;
  unsigned j = 0;
+
  EINA_ARRAY_ITER_NEXT(properties_list, j, property, a_it)
{
-  promises[j] = efl_model_property_get(child, property);
+  futures[j] = efl_model_property_get(child, property);
}
- eina_promise_then(eina_promise_all(eina_carray_iterator_new((void 
**)promises)),
-   _then_prop_c, _cb, child);
+ 
efl_future_then(efl_future_iterator_all(eina_carray_iterator_new((void 
**)futures)),
+ _properties_then, _cb, NULL, child);
  prop_count++;
+ free(futures);
+ printf(" %2d: %s (loading %u properties asynchronously)\n", i, 
name, j);
   }
 else
   {
- printf(" -> %s\n", name);
+ printf(" %2d: %s (no properties yet)\n", i, name);
   }
  }
 
if (prop_count == 0)
- 

[EGIT] [core/efl] master 04/05: efl_model: child, {added, removed} have a payload object.

2016-11-04 Thread Gustavo Sverzut Barbieri
barbieri pushed a commit to branch master.

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

commit e466dd5c3b34f4a022b87e7f99e119d2ab93fbc7
Author: Gustavo Sverzut Barbieri 
Date:   Fri Nov 4 13:00:04 2016 -0200

efl_model: child,{added,removed} have a payload object.
---
 src/lib/efl/interfaces/efl_model.eo | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/lib/efl/interfaces/efl_model.eo 
b/src/lib/efl/interfaces/efl_model.eo
index c824fe1..a4ecbde 100644
--- a/src/lib/efl/interfaces/efl_model.eo
+++ b/src/lib/efl/interfaces/efl_model.eo
@@ -148,8 +148,8 @@ interface Efl.Model ()
   properties,changed: Efl.Model.Property_Event; [[Event dispatched when
   properties list is
   available.]]
-  child,added; [[Event dispatched when new child is added.]]
-  child,removed; [[Event dispatched when child is removed.]]
+  child,added: Efl.Object; [[Event dispatched when new child is added.]]
+  child,removed: Efl.Object; [[Event dispatched when child is removed.]]
   children,count,changed; [[Event dispatched when children count is 
finished.]]
}
 }

-- 




[EGIT] [core/enlightenment] master 01/01: Luncher: Use E_FREE_FUNC to del variables that are checked for null.

2016-11-04 Thread Stephen okra Houston
okra pushed a commit to branch master.

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

commit 6c28cf2e51b0190e6e4a3950089120ef660d5f74
Author: Stephen okra Houston 
Date:   Fri Nov 4 10:07:13 2016 -0500

Luncher: Use E_FREE_FUNC to del variables that are checked for null.
---
 src/modules/luncher/bar.c | 31 +--
 1 file changed, 13 insertions(+), 18 deletions(-)

diff --git a/src/modules/luncher/bar.c b/src/modules/luncher/bar.c
index 45cc717..e558919 100644
--- a/src/modules/luncher/bar.c
+++ b/src/modules/luncher/bar.c
@@ -426,15 +426,13 @@ _bar_icon_mouse_down(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_UNUS
if (ev->button == 1)
  {
 if (ic->mouse_in_timer)
-  ecore_timer_del(ic->mouse_in_timer);
+  E_FREE_FUNC(ic->mouse_in_timer, ecore_timer_del);
 if (ic->mouse_out_timer)
-  ecore_timer_del(ic->mouse_out_timer);
-ic->mouse_in_timer = NULL;
-ic->mouse_out_timer = NULL;
+  E_FREE_FUNC(ic->mouse_out_timer, ecore_timer_del);
 ic->drag.x = ev->output.x;
 ic->drag.y = ev->output.y;
 if (ic->drag_timer)
-  ecore_timer_del(ic->drag_timer);
+  E_FREE_FUNC(ic->drag_timer, ecore_timer_del);
 ic->drag_timer = ecore_timer_add(.35, _bar_drag_timer, ic);
  }
if (ev->button == 3)
@@ -526,7 +524,7 @@ _bar_icon_mouse_up(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_UNUSED
if (ev->button == 1)
  {
 if (ic->drag_timer)
-  ecore_timer_del(ic->drag_timer);
+  E_FREE_FUNC(ic->drag_timer, ecore_timer_del);
 if (ic->drag.dnd)
   {
  ic->drag.start = 0;
@@ -619,7 +617,7 @@ _bar_icon_preview_mouse_out(void *data, Evas *e 
EINA_UNUSED, Evas_Object *obj EI
if (current_preview_menu)
  return;
if (ic->mouse_out_timer)
- ecore_timer_del(ic->mouse_out_timer);
+ E_FREE_FUNC(ic->mouse_out_timer, ecore_timer_del);
ic->mouse_out_timer = ecore_timer_add(0.75, _bar_icon_preview_hide, ic);
 }
 
@@ -633,8 +631,7 @@ _bar_icon_preview_mouse_in(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EIN
if (_bar_check_modifiers(ev->modifiers)) return;
 
if (ic->mouse_out_timer)
- ecore_timer_del(ic->mouse_out_timer);
-   ic->mouse_out_timer = NULL;
+ E_FREE_FUNC(ic->mouse_out_timer, ecore_timer_del);
 }
 
 static void
@@ -839,10 +836,9 @@ _bar_icon_mouse_in(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj, void *even
ic->active = EINA_TRUE;
 
if (ic->mouse_out_timer)
- ecore_timer_del(ic->mouse_out_timer);
-   ic->mouse_out_timer = NULL;
+ E_FREE_FUNC(ic->mouse_out_timer, ecore_timer_del);
if (ic->mouse_in_timer)
- ecore_timer_del(ic->mouse_in_timer);
+ E_FREE_FUNC(ic->mouse_in_timer, ecore_timer_del);
if (eina_list_count(ic->execs) || eina_list_count(ic->clients))
  clients = EINA_TRUE;
if (current_preview && clients && !current_preview_menu)
@@ -873,10 +869,9 @@ _bar_icon_mouse_out(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj, void *eve
if (!ic->preview)
  ic->active = EINA_FALSE;
if (ic->mouse_in_timer)
- ecore_timer_del(ic->mouse_in_timer);
-   ic->mouse_in_timer = NULL;
+ E_FREE_FUNC(ic->mouse_in_timer, ecore_timer_del);
if (ic->mouse_out_timer)
- ecore_timer_del(ic->mouse_out_timer);
+ E_FREE_FUNC(ic->mouse_out_timer, ecore_timer_del);
ic->mouse_out_timer = ecore_timer_add(0.25, _bar_icon_preview_hide, ic);
 }
 
@@ -1534,7 +1529,7 @@ _bar_del(void *data, Evas *e EINA_UNUSED, Evas_Object 
*obj EINA_UNUSED, void *ev
Instance *inst = data;
 
if (inst->drop_handler)
- evas_object_del(inst->drop_handler);
+ E_FREE_FUNC(inst->drop_handler, evas_object_del);
luncher_instances = eina_list_remove(luncher_instances, inst);
free(inst);
 }
@@ -1802,7 +1797,7 @@ _bar_recalculate_job(void *data)
 EINTERN void
 bar_recalculate(Instance *inst)
 {
-   if (inst->recalc_job) ecore_job_del(inst->recalc_job);
+   if (inst->recalc_job) E_FREE_FUNC(inst->recalc_job, ecore_job_del);
inst->recalc_job = ecore_job_add(_bar_recalculate_job, inst);
 }
 
@@ -1813,7 +1808,7 @@ bar_reorder(Instance *inst)
 
if (inst)
  {
-if (inst->recalc_job) ecore_job_del(inst->recalc_job);
+if (inst->recalc_job) E_FREE_FUNC(inst->recalc_job, ecore_job_del);
 _bar_empty(inst);
 if (!inst->cfg->dir)
   inst->cfg->dir = eina_stringshare_add("default");

-- 




[EGIT] [tools/eflete] master 01/01: project_manager: remove internal group check on project open

2016-11-04 Thread Andrii Kroitor
rimmed pushed a commit to branch master.

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

commit ea1f8cd46d53cac437325b3f201e22c0267fa95c
Author: Andrii Kroitor 
Date:   Fri Nov 4 16:07:18 2016 +0200

project_manager: remove internal group check on project open

This isn't correct way to check integrity.
Also in locks .edj file on windows
---
 src/bin/project_manager/project_manager2.c | 10 ++
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/src/bin/project_manager/project_manager2.c 
b/src/bin/project_manager/project_manager2.c
index acac5d7..cb33881 100644
--- a/src/bin/project_manager/project_manager2.c
+++ b/src/bin/project_manager/project_manager2.c
@@ -698,16 +698,10 @@ _project_open_internal(Project_Process_Data *ppd)
   }
 ppd->project->version = 5;
  }
+
TODO("Add crash recovery prompt here");
+   TODO("Add project integrity check here");
 
-   TODO("replace this if statment to md5 check");
-   if (!edje_file_group_exists(ppd->project->saved_edj, 
EFLETE_INTERNAL_GROUP_NAME))
- {
-CRIT("Missing internal group '"EFLETE_INTERNAL_GROUP_NAME" in file 
%s\n",
- ppd->project->saved_edj);
-last_error = PM_PROJECT_ERROR;
-return last_error;
- }
_project_dev_file_create(ppd->project);
ppd->project->mmap_file = eina_file_open(ppd->project->dev, false);
 

-- 




[EGIT] [tools/edi] master 02/02: Fix gitignore

2016-11-04 Thread Andy Williams
ajwillia-ms pushed a commit to branch master.

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

commit d24468da694685d2c78319b22508a0e09def7e92
Author: Andy Williams 
Date:   Fri Nov 4 14:52:05 2016 +

Fix gitignore
---
 .gitignore | 14 +-
 pc/edi.pc  | 21 -
 2 files changed, 1 insertion(+), 34 deletions(-)

diff --git a/.gitignore b/.gitignore
index 19aea3d..03fb89e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -20,6 +20,7 @@ edi-*.tar.?z*
 po/*.gmo
 po/POTFILES
 .libs
+pc/edi.pc
 
 # autotools crap
 m4/*.m4
@@ -67,16 +68,3 @@ po/stamp-po
 /src/tests/test-suite.log
 /src/tests/check-results.xml
 
-/elm_code/src/lib/*.eo.h
-/elm_code/src/lib/*.eo.legacy.h
-/elm_code/src/lib/*.eo.c
-/elm_code/src/lib/widget/*.eo.h
-/elm_code/src/lib/widget/*.eo.legacy.h
-/elm_code/src/lib/widget/*.eo.c
-
-/elm_code/src/bin/elm_code_test
-
-/elm_code/src/tests/elm_code_suite
-/elm_code/src/tests/elm_code_suite.*
-/elm_code/src/tests/test-suite.log
-/elm_code/src/tests/check-results.xml
diff --git a/pc/edi.pc b/pc/edi.pc
deleted file mode 100644
index 4b4b812..000
--- a/pc/edi.pc
+++ /dev/null
@@ -1,21 +0,0 @@
-prefix=/opt/efler
-exec_prefix=${prefix}
-libdir=${exec_prefix}/lib
-includedir=${prefix}/include
-datarootdir=${prefix}/share
-datadir=${datarootdir}/edi
-pkgdatadir=${datarootdir}/edi
-vmaj=0
-vmin=4
-vmic=0
-themes=${pkgdatadir}/themes
-eoincludedir=${datarootdir}/eolian/include
-eolian_flags=-I${pc_sysrootdir}${eoincludedir}/edi-0
-
-Name: edi
-Description: Edi ide library
-Requires.private: @requirements_pc_edi@
-Version: 0.4.0
-Libs: -L${libdir} -ledi @requirements_public_libs_edi@
-Cflags: -I${includedir}/edi-0
-

-- 




[EGIT] [tools/edi] master 01/02: config: Move project config into global config area

2016-11-04 Thread Andy Williams
ajwillia-ms pushed a commit to branch master.

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

commit 1855b437afb706951deb6cc1b86f4b32811d8fc5
Author: Andy Williams 
Date:   Fri Nov 4 14:49:39 2016 +

config: Move project config into global config area

A little refactoring to get the project name to index this
---
 src/bin/edi_config.c | 13 -
 src/bin/edi_main.c   | 14 +++---
 src/lib/Edi.h|  9 +
 src/lib/edi.c|  6 ++
 4 files changed, 30 insertions(+), 12 deletions(-)

diff --git a/src/bin/edi_config.c b/src/bin/edi_config.c
index 6601e8b..b183f72 100644
--- a/src/bin/edi_config.c
+++ b/src/bin/edi_config.c
@@ -12,6 +12,9 @@
 
 #include "edi_private.h"
 
+#define EDI_CONFIG_NAME PACKAGE_NAME
+#define EDI_PROJECT_CONFIG_NAME "project"
+
 # define EDI_CONFIG_LIMIT(v, min, max) \
if (v > max) v = max; else if (v < min) v = min;
 
@@ -76,7 +79,7 @@ _edi_project_config_dir_get(void)
static char dir[PATH_MAX];
 
if (!dir[0] && edi_project_get())
- snprintf(dir, sizeof(dir), "%s/.edi", edi_project_get());
+ snprintf(dir, sizeof(dir), "%s/edi/%s", efreet_config_home_get(), 
edi_project_name_get());
 
return dir;
 }
@@ -284,7 +287,7 @@ _edi_config_load(void)
 {
Eina_Bool save = EINA_FALSE;
 
-   _edi_config = _edi_config_domain_load(_edi_config_dir_get(), PACKAGE_NAME, 
_edi_cfg_edd);
+   _edi_config = _edi_config_domain_load(_edi_config_dir_get(), 
EDI_CONFIG_NAME, _edi_cfg_edd);
if (_edi_config)
  {
 Eina_Bool reload = EINA_FALSE;
@@ -332,7 +335,7 @@ _edi_config_load(void)
 void
 _edi_config_save(void)
 {
-   if (_edi_config_domain_save(_edi_config_dir_get(), PACKAGE_NAME, 
_edi_cfg_edd, _edi_config))
+   if (_edi_config_domain_save(_edi_config_dir_get(), EDI_CONFIG_NAME, 
_edi_cfg_edd, _edi_config))
  ecore_event_add(EDI_EVENT_CONFIG_CHANGED, NULL, NULL, NULL);
 }
 
@@ -408,7 +411,7 @@ _edi_project_config_load()
 {
Eina_Bool save = EINA_FALSE;
 
-   _edi_project_config = 
_edi_config_domain_load(_edi_project_config_dir_get(), PACKAGE_NAME, 
_edi_proj_cfg_edd);
+   _edi_project_config = 
_edi_config_domain_load(_edi_project_config_dir_get(), EDI_PROJECT_CONFIG_NAME, 
_edi_proj_cfg_edd);
if (_edi_project_config)
  {
 Eina_Bool reload = EINA_FALSE;
@@ -482,7 +485,7 @@ _edi_project_config_load()
 static Eina_Bool
 _edi_project_config_save_no_notify()
 {
-   return _edi_config_domain_save(_edi_project_config_dir_get(), PACKAGE_NAME, 
_edi_proj_cfg_edd, _edi_project_config);
+   return _edi_config_domain_save(_edi_project_config_dir_get(), 
EDI_PROJECT_CONFIG_NAME, _edi_proj_cfg_edd, _edi_project_config);
 }
 
 void
diff --git a/src/bin/edi_main.c b/src/bin/edi_main.c
index ed5e152..c0475a8 100644
--- a/src/bin/edi_main.c
+++ b/src/bin/edi_main.c
@@ -943,10 +943,10 @@ edi_toolbar_setup(Evas_Object *win)
 }
 
 static char *
-_edi_win_title_get(const char *path)
+_edi_win_title_get()
 {
-   char *winname, *dirname;
-   const char *type;
+   char *winname;
+   const char *name, *type;
Edi_Build_Provider *provider;
int len;
 
@@ -956,10 +956,10 @@ _edi_win_title_get(const char *path)
else
  type = "unknown";
 
-   dirname = basename((char*)path);
-   len = 8 + 3 + strlen(dirname) + strlen(type);
+   name = edi_project_name_get();
+   len = 8 + 3 + strlen(name) + strlen(type);
winname = malloc(len * sizeof(char));
-   snprintf(winname, len, "Edi :: %s (%s)", dirname, type);
+   snprintf(winname, len, "Edi :: %s (%s)", name, type);
 
return winname;
 }
@@ -1045,7 +1045,7 @@ edi_open(const char *inputpath)
elm_need_ethumb();
elm_need_efreet();
 
-   winname = _edi_win_title_get(path);
+   winname = _edi_win_title_get();
win = elm_win_util_standard_add("main", winname);
free((char*)winname);
if (!win) return EINA_FALSE;
diff --git a/src/lib/Edi.h b/src/lib/Edi.h
index 9f3e19b..4318528 100644
--- a/src/lib/Edi.h
+++ b/src/lib/Edi.h
@@ -120,6 +120,15 @@ EAPI Eina_Bool edi_project_set(const char *path);
 EAPI const char *edi_project_get(void);
 
 /**
+ * Get the name of the current edi project that is loaded.
+ *
+ * @return the name of the project that Edi is current working with.
+ *
+ * @ingroup Main
+ */
+EAPI const char *edi_project_name_get(void);
+
+/**
  * Get the path to a file within the current project.
  *
  * @param file The file within a project to get the absolute path for.
diff --git a/src/lib/edi.c b/src/lib/edi.c
index 4aa4d6b..225ce04 100644
--- a/src/lib/edi.c
+++ b/src/lib/edi.c
@@ -106,6 +106,12 @@ edi_project_get()
 }
 
 EAPI const char *
+edi_project_name_get()
+{
+   return basename((char*)edi_project_get());
+}
+
+EAPI const char *
 edi_project_file_path_get(const char *file)
 {
return edi_path_append(edi_project_get(), file);

-- 




Re: [E-devel] eina freeq?

2016-11-04 Thread The Rasterman
On Fri, 4 Nov 2016 10:18:33 -0200 Gustavo Sverzut Barbieri 
said:

> On Thu, Nov 3, 2016 at 9:27 PM, Carsten Haitzler  wrote:
> > On Thu, 3 Nov 2016 11:24:14 -0200 Gustavo Sverzut Barbieri
> >  said:
> >
> >> I guessed mempool and eina_trash did that
> >
> > nah - mempool i don't think has a "purgatory" for pointers.
> > they are released back into the pool.
> 
> well, it could... OTOH it's just for "empty blocks", since if it's in
> a mempool that has memory blocks and they're still in use, it will
> just flag as unused.
> 
> also, it simplifies bookkeeping of the memory if they are all of the
> same size, like you said Eina_List, it knows the size of each entry,
> thus just need to mark each position that is usable, not try to
> allocate based on size or similar -- much more efficient.

yah. that's what mempool does... but it doesnt have 2 states for an allocation.
it doesnt have "in use" "freed but not able to be reused yet" and "free and
able to be re-used". it just has 1. in use or not.

> > trash is actually a cache for storing ptrs but it never
> > actually frees anything. it doesn't know how to. you have to manually clean
> > trash yourself and call some kind of free func when you do the clean. trash
> > doesn't store free funcs at all.
> 
> I don't see why it couldn't.

but it doesn't, and eina_trash is all static inlines with structs exposed so
we'd break struct definition, memory layout and api to do this. if an
eina_trash is exposed from a lib compiled against efl 1.18 against other code
compiled against 1.19 - it'd break. even worse eina_trash is a single linked
list so walking through it is scattered through memory thus basically likely a
cache miss each time.

> but I find this is trying to replace malloc's internal structures,
> which is not so nice. As you know, malloc implementation can
> postpone/defer actual flushes, it's not 1:1 with brk() and munmap()
> since like our mempools the page or stack may have used bits that
> prevents that to be given back to the kernel.

i know. but it's out of our control. we can't change what and how malloc does
this. we can't do smarter overwrite detection. malloc has options for filling
freed memory with a pattern - but it will do it to any sized allocation. 1 byte
or 1 gigabyte. with a custom implementation WE can decide eg only fill in up to
256 bytes as this is what might be sued for small objects/list nodes but leave
big allocations untouched or .. only fill in the FIRST N bytes of an
allocation with a pattern. if the pattern has been overwritten between
submission to a free queue AND when it is actually freed then we have a bug in
code somewhere scribbling over freed memory. at least we know it and know what
to be looking for. malloc is far more limited in this way.

also we can defer freeing until when WE want. e.g. after having gone idle and
we would otherwise sleep. malloc really doesnt have any way to do this nicely.
it's totally non-portable, libc specific (eg glibc) etc. and even then very
"uncontrollable". a free queue of our own is portable AND controllable.

> what usually adds overhead are mutexes and the algorithms trying to
> find an empty block... if we say freeq/trash are TLS/single-thread,
> then we could avoid the mutex (but see malloc(3) docs on how they try
> to minimize that contention), but adding a list of entries to look for
> a free spot is likely worse than malloc's own tuned algorithm.

no no. i'm not talking about making a CACHE of memory blocks. simply a fifo.
put a ptr on the queue with a free func. it sits there for some time and then
something walks this from beginning to end actually freeing. e.g. once we have
reached and idle sleep state. THEN the frees really happen. once on the free
queue there is no way off. you are freed. or to be freed. only a question of
when.

if there is buggy code that does something like:

x = malloc(10);
x[2] = 10;
free(x);
y = malloc(10);
y[2] = 10;
x[2] = 5;

... there is a very good chance y is a recycled pointer - same mem location as
x. when we do x[2] = 5 we overwrite y[2] with 5 even tho it now should be 10.
yes. valgrind can catch these... but you HAVE to catch them while running.
maybe it only happens in certain logic paths. yes. coverity sometimes can find
these too through static analysis. but not always. and then there are the cases
where this behaviour is split across 2 different projects. one is efl, the
other is some 3rd party app/binary that does something bad. the "y" malloc is
in efl. the c one is in an app. the app now scribbles over memory owned by efl.
this is bad. so efl now crashes with corrupt data structures and we can never
fix this at all as the app is a 3rd party project simply complaining that a
crash is happening in efl.

we can REDUCE these issues by ensuring the x pointer is not recycled so
aggressively by having a free queue. have a few hundred or a few thousand
pointers sit on that queue for a 

[EGIT] [core/efl] master 01/01: themes: add missing uiclock edc file to build for distcheck

2016-11-04 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit ba71b90ea78cdb912bc2fe6d1701436a7e465f69
Author: Stefan Schmidt 
Date:   Fri Nov 4 14:49:53 2016 +0100

themes: add missing uiclock edc file to build for distcheck

Another (hopefully the last) missing file from the ui clock commit which did
not make it to the tarball.
---
 data/elementary/themes/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

diff --git a/data/elementary/themes/Makefile.am 
b/data/elementary/themes/Makefile.am
index b8e16c7..3ae20fa 100644
--- a/data/elementary/themes/Makefile.am
+++ b/data/elementary/themes/Makefile.am
@@ -145,6 +145,7 @@ elementary/themes/edc/elm/spinner.edc \
 elementary/themes/edc/elm/thumb.edc \
 elementary/themes/edc/elm/toolbar.edc \
 elementary/themes/edc/elm/tooltip.edc \
+elementary/themes/edc/elm/uiclock.edc \
 elementary/themes/edc/elm/video.edc \
 elementary/themes/edc/elm/win.edc \
 \

-- 




Re: [E-devel] eina freeq?

2016-11-04 Thread Gustavo Sverzut Barbieri
On Thu, Nov 3, 2016 at 9:27 PM, Carsten Haitzler  wrote:
> On Thu, 3 Nov 2016 11:24:14 -0200 Gustavo Sverzut Barbieri 
> 
> said:
>
>> I guessed mempool and eina_trash did that
>
> nah - mempool i don't think has a "purgatory" for pointers.
> they are released back into the pool.

well, it could... OTOH it's just for "empty blocks", since if it's in
a mempool that has memory blocks and they're still in use, it will
just flag as unused.

also, it simplifies bookkeeping of the memory if they are all of the
same size, like you said Eina_List, it knows the size of each entry,
thus just need to mark each position that is usable, not try to
allocate based on size or similar -- much more efficient.


> trash is actually a cache for storing ptrs but it never
> actually frees anything. it doesn't know how to. you have to manually clean
> trash yourself and call some kind of free func when you do the clean. trash
> doesn't store free funcs at all.

I don't see why it couldn't.

but I find this is trying to replace malloc's internal structures,
which is not so nice. As you know, malloc implementation can
postpone/defer actual flushes, it's not 1:1 with brk() and munmap()
since like our mempools the page or stack may have used bits that
prevents that to be given back to the kernel.

what usually adds overhead are mutexes and the algorithms trying to
find an empty block... if we say freeq/trash are TLS/single-thread,
then we could avoid the mutex (but see malloc(3) docs on how they try
to minimize that contention), but adding a list of entries to look for
a free spot is likely worse than malloc's own tuned algorithm.


-- 
Gustavo Sverzut Barbieri
--
Mobile: +55 (16) 99354-9890

--
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today. http://sdm.link/xeonphi
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [EGIT] [core/efl] master 01/01: Evas events: fix for works with pipes on windows.

2016-11-04 Thread Felipe Magno de Almeida
On Fri, Nov 4, 2016 at 9:49 AM, Vincent Torri  wrote:
> On Fri, Nov 4, 2016 at 11:10 AM, Mykyta Biliavskyi
>  wrote:
>> Hello.
>>
>> I think that code, that uses pipe() should be moved to using
>> ecore_pipe.
>
> no because evas does not depend on ecore
>
> that's why it's better in eina

This is probably just temporary.

> Vincent

Regards,
-- 
Felipe Magno de Almeida

--
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today. http://sdm.link/xeonphi
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [EGIT] [core/efl] master 01/01: Evas events: fix for works with pipes on windows.

2016-11-04 Thread Vincent Torri
On Fri, Nov 4, 2016 at 11:10 AM, Mykyta Biliavskyi
 wrote:
> Hello.
>
> I think that code, that uses pipe() should be moved to using
> ecore_pipe.

no because evas does not depend on ecore

that's why it's better in eina

Vincent

> Because ecore_pipe is already support both of behaviours
> for windows and posix in the similar way.
> Similar code uses in ecore_anim module. All this should be unified, of
> course.
>
> About eina_socket - sound reasonable.
>
> On Fri, 2016-11-04 at 11:00 +0100, Vincent Torri wrote:
>> my opinion is that it should be in eina, actually. An abstraction of
>> sockets, that could be used in ecore_pipe and in ecore_con and
>> everywhere else
>>
>> Vincent
>>
>>
>> On Fri, Nov 4, 2016 at 10:22 AM, Stefan Schmidt > om> wrote:
>> > Hello.
>> >
>> > On 04/11/16 10:16, Mykyta Biliavskyi wrote:
>> > > nikawhite pushed a commit to branch master.
>> > >
>> > > http://git.enlightenment.org/core/efl.git/commit/?id=132bac98c8a7
>> > > 7adde5a8271c48ed0d3c7dfb6563
>> > >
>> > > commit 132bac98c8a77adde5a8271c48ed0d3c7dfb6563
>> > > Author: Mykyta Biliavskyi 
>> > > Date:   Fri Nov 4 11:06:11 2016 +0200
>> > >
>> > > Evas events: fix for works with pipes on windows.
>> > >
>> > > Evil implementation of pipe() function uses sockets. Windows
>> > > functions
>> > > "write", "read" and "close" doesn't works with sockets. In
>> > > this commit
>> > > added macros, that replace "read" with "recv", "write" with
>> > > "send" and
>> > > "close" with "closesocket".
>> > >
>> > > @fix
>> > > ---
>> > >  src/lib/evas/canvas/evas_async_events.c | 30
>> > > +-
>> > >  1 file changed, 25 insertions(+), 5 deletions(-)
>> >
>> >  From a platform abstraction view I would think something like this
>> > should be handled in evil and not in some random files all over the
>> > code
>> > base.
>> >
>> > There might be other parts of the code having the same problem (if
>> > not
>> > now they might get introduced later) and having the handling
>> > directly
>> > in the abstraction layer will avoid that you have to patch every
>> > file
>> > that comes with it.
>> >
>> > regards
>> > Stefan Schmidt
>> >
>> > -
>> > -
>> > Developer Access Program for Intel Xeon Phi Processors
>> > Access to Intel Xeon Phi processor-based developer platforms.
>> > With one year of Intel Parallel Studio XE.
>> > Training and support from Colfax.
>> > Order your platform today. http://sdm.link/xeonphi
>> > ___
>> > enlightenment-devel mailing list
>> > enlightenment-devel@lists.sourceforge.net
>> > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>>
>> ---
>> ---
>> Developer Access Program for Intel Xeon Phi Processors
>> Access to Intel Xeon Phi processor-based developer platforms.
>> With one year of Intel Parallel Studio XE.
>> Training and support from Colfax.
>> Order your platform today. http://sdm.link/xeonphi
>> ___
>> enlightenment-devel mailing list
>> enlightenment-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>>
>>
>
>
> --
> Developer Access Program for Intel Xeon Phi Processors
> Access to Intel Xeon Phi processor-based developer platforms.
> With one year of Intel Parallel Studio XE.
> Training and support from Colfax.
> Order your platform today. http://sdm.link/xeonphi
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

--
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today. http://sdm.link/xeonphi
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 02/07: docs: harmonize AT-SPI writing in all eo files.

2016-11-04 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit 403dcc785e75eec49491ec66345445bfbf18e42d
Author: Stefan Schmidt 
Date:   Fri Nov 4 10:31:24 2016 +0100

docs: harmonize AT-SPI writing in all eo files.

AT-SPI is how I find it written in most places. Align to this in our docs.
---
 src/lib/elementary/elm_atspi_app_object.eo |  2 +-
 src/lib/elementary/elm_atspi_bridge.eo |  2 +-
 .../elementary/elm_interface_atspi_accessible.eo   | 26 +++---
 src/lib/elementary/elm_interface_atspi_action.eo   |  2 +-
 .../elementary/elm_interface_atspi_component.eo|  2 +-
 src/lib/elementary/elm_interface_atspi_image.eo|  2 +-
 .../elm_interface_atspi_widget_action.eo   |  4 ++--
 7 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/src/lib/elementary/elm_atspi_app_object.eo 
b/src/lib/elementary/elm_atspi_app_object.eo
index 1600fd9..cb3e77b 100644
--- a/src/lib/elementary/elm_atspi_app_object.eo
+++ b/src/lib/elementary/elm_atspi_app_object.eo
@@ -1,6 +1,6 @@
 class Elm.Atspi.App.Object (Efl.Object, Elm.Interface.Atspi_Accessible)
 {
-   [[ATSPI application object class]]
+   [[AT-SPI application object class]]
legacy_prefix: elm_atspi_app_object;
data: Elm_Atspi_App_Object_Data;
implements {
diff --git a/src/lib/elementary/elm_atspi_bridge.eo 
b/src/lib/elementary/elm_atspi_bridge.eo
index b1e05f8..c1e7e5d 100644
--- a/src/lib/elementary/elm_atspi_bridge.eo
+++ b/src/lib/elementary/elm_atspi_bridge.eo
@@ -1,6 +1,6 @@
 class Elm.Atspi.Bridge (Efl.Object)
 {
-   [[ATSPI bridge class]]
+   [[AT-SPI bridge class]]
legacy_prefix: elm_atspi_bridge;
eo_prefix: elm_obj_atspi_bridge;
event_prefix: elm_atspi_bridge;
diff --git a/src/lib/elementary/elm_interface_atspi_accessible.eo 
b/src/lib/elementary/elm_interface_atspi_accessible.eo
index 8928ee0..d3b8f17 100644
--- a/src/lib/elementary/elm_interface_atspi_accessible.eo
+++ b/src/lib/elementary/elm_interface_atspi_accessible.eo
@@ -192,20 +192,20 @@ enum Elm.Atspi.Relation_Type
last_defined, [[Last enum entry sentinel]]
 }
 
-type Elm.Atspi.State_Set: uint64; [[ATSPI object state set.]]
+type Elm.Atspi.State_Set: uint64; [[AT-SPI object state set.]]
 
-struct Elm.Atspi.Event.Handler; [[ATSPI event listener]]
+struct Elm.Atspi.Event.Handler; [[AT-SPI event listener]]
 
 struct Elm.Atspi.Event.State_Changed.Data
 {
-   [[ATSPI state changed event data]]
+   [[AT-SPI state changed event data]]
type: Elm.Atspi.State_Type; [[Type of the state changed event]]
new_value: bool; [[New value]]
 }
 
 struct Elm.Atspi.Event.Geometry_Changed.Data
 {
-   [[ATSPI geometry changed event data]]
+   [[AT-SPI geometry changed event data]]
x: int; [[X coordinate]]
y: int; [[Y coordinate]]
width: int; [[Width]]
@@ -214,35 +214,35 @@ struct Elm.Atspi.Event.Geometry_Changed.Data
 
 struct Elm.Atspi.Event.Children_Changed.Data
 {
-   [[ATSPI children changed event data]]
+   [[AT-SPI children changed event data]]
is_added: bool; [[Child is added or not]]
child: Efl.Object; [[Child object]]
 }
 
 struct Elm.Atspi.Attribute
 {
-   [[ATSPI Attribute]]
+   [[AT-SPI Attribute]]
key: string; [[Attribute key]]
value: string; [[Attribute value]]
 }
 
 struct Elm.Atspi.Relation
 {
-   [[ATSPI Relation]]
+   [[AT-SPI Relation]]
type: Elm.Atspi.Relation_Type; [[Relation type]]
objects: list; [[List with relation objects]]
 }
 
-type Elm.Atspi.Relation_Set: list; [[Elementary ATSPI 
relation set type]]
+type Elm.Atspi.Relation_Set: list; [[Elementary AT-SPI 
relation set type]]
 
 mixin Elm.Interface.Atspi_Accessible ()
 {
-   [[ATSPI accessible mixin]]
+   [[AT-SPI accessible mixin]]
eo_prefix: elm_interface_atspi_accessible;
data: Elm_Interface_Atspi_Accessible_Data;
methods {
   @property localized_role_name @protected {
- [[Gets an localized string describing ATSPI widget role name.]]
+ [[Gets an localized string describing AT-SPI widget role name.]]
  get {
  }
  values {
@@ -250,7 +250,7 @@ mixin Elm.Interface.Atspi_Accessible ()
  }
   }
   @property name {
- [[String describing ATSPI widget role name. Should be free by a 
user.]]
+ [[String describing AT-SPI widget role name. Should be free by a 
user.]]
  get {
  }
  set {
@@ -260,7 +260,7 @@ mixin Elm.Interface.Atspi_Accessible ()
  }
   }
   @property relation_set @protected {
- [[Gets an string describing ATSPI widget role name. Lists and 
elements Should be free by a user.]]
+ [[Gets an string describing AT-SPI widget role name. Lists and 
elements Should be free by a user.]]
  get {
  }
  values {
@@ -268,7 +268,7 @@ mixin Elm.Interface.Atspi_Accessible ()
  }
   }
   @property role {
- [[The role 

[EGIT] [core/efl] master 04/07: docs: elm_photocam: add docs for interfaces and events

2016-11-04 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit ff53608bdb5cd153ac6fca0655f7a4b8aba08830
Author: Stefan Schmidt 
Date:   Fri Nov 4 10:44:00 2016 +0100

docs: elm_photocam: add docs for interfaces and events
---
 src/lib/elementary/elm_photocam.eo |  2 +-
 src/lib/elementary/elm_photocam_pan.eo | 17 +
 2 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/src/lib/elementary/elm_photocam.eo 
b/src/lib/elementary/elm_photocam.eo
index 15ef8af..b55f527 100644
--- a/src/lib/elementary/elm_photocam.eo
+++ b/src/lib/elementary/elm_photocam.eo
@@ -15,6 +15,7 @@ class Elm.Photocam (Elm.Widget, Elm.Interface_Scrollable,
 Efl.Ui.Clickable, Efl.Ui.Scrollable,
 Efl.Ui.Zoomable)
 {
+   [[Elementary photocam class]]
legacy_prefix: elm_photocam;
eo_prefix: elm_obj_photocam;
event_prefix: elm_photocam;
@@ -213,5 +214,4 @@ class Elm.Photocam (Elm.Widget, Elm.Interface_Scrollable,
   download,done;
   download,error;
}
-
 }
diff --git a/src/lib/elementary/elm_photocam_pan.eo 
b/src/lib/elementary/elm_photocam_pan.eo
index 57d1d45..f608447 100644
--- a/src/lib/elementary/elm_photocam_pan.eo
+++ b/src/lib/elementary/elm_photocam_pan.eo
@@ -1,5 +1,6 @@
 class Elm.Photocam.Pan (Elm.Pan)
 {
+   [[Elementary photocom pan]]
legacy_prefix: elm_photocam_pan;
eo_prefix: elm_obj_photocam_pan;
event_prefix: elm_photocam_pan;
@@ -15,14 +16,14 @@ class Elm.Photocam.Pan (Elm.Pan)
   Elm.Pan.pos_max.get;
}
events {
-  load;
-  loaded;
-  load,detail;
-  loaded,detail;
-  download,start;
-  download,progress;
-  download,done;
-  download,error;
+  load; [[Called when load started]]
+  loaded; [[Called when load finished]]
+  load,detail; [[Called when load details started]]
+  loaded,detail; [[Called when load details finished]]
+  download,start; [[Called when download started]]
+  download,progress; [[Called with download progress updates]]
+  download,done; [[Called when download finished]]
+  download,error; [[Called when download failed with an error]]
}
 
 }

-- 




[EGIT] [core/efl] master 06/07: tests: ecore_promise: removed unused variable

2016-11-04 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit a69506db44a5b157d28b7ad0190ef40a9770863e
Author: Stefan Schmidt 
Date:   Fri Nov 4 11:21:56 2016 +0100

tests: ecore_promise: removed unused variable

Looks like a copy and paste bug form the other tests.
---
 src/tests/ecore/ecore_test_promise.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/tests/ecore/ecore_test_promise.c 
b/src/tests/ecore/ecore_test_promise.c
index c744945..32a9018 100644
--- a/src/tests/ecore/ecore_test_promise.c
+++ b/src/tests/ecore/ecore_test_promise.c
@@ -470,7 +470,6 @@ START_TEST(efl_test_promise_future_success_before_get)
Efl_Future *f;
Future_Ok fo = { EINA_FALSE, EINA_FALSE, EINA_FALSE };
Eina_Bool deadf = EINA_FALSE, deadp = EINA_FALSE;
-   int progress = 7;
int value = 42;
 
ecore_init();

-- 




[EGIT] [core/efl] master 07/07: efl_ui_clock: make sure the headers are disted in to the final tarball

2016-11-04 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit 93fd5caa8aaf6dccbc049f54ae7b59528338bea3
Author: Stefan Schmidt 
Date:   Fri Nov 4 12:01:33 2016 +0100

efl_ui_clock: make sure the headers are disted in to the final tarball

Fixes make distcheck after the new efl_ui_clock was introduced.
---
 src/Makefile_Elementary.am | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am
index 03e17c3..3969221 100644
--- a/src/Makefile_Elementary.am
+++ b/src/Makefile_Elementary.am
@@ -268,6 +268,7 @@ includesunstable_HEADERS = \
lib/elementary/elm_widget_toolbar.h \
lib/elementary/efl_ui_video_private.h \
lib/elementary/elm_widget_web.h \
+   lib/elementary/efl_ui_clock.h \
lib/elementary/elm_code.h \
lib/elementary/elm_code_widget_legacy.h \
lib/elementary/elm_code_widget_selection.h \
@@ -664,6 +665,7 @@ lib_elementary_libelementary_la_SOURCES = \
lib/elementary/efl_ui_grid_private.h \
lib/elementary/efl_ui_text.c \
lib/elementary/efl_ui_clock.c \
+   lib/elementary/efl_ui_clock_private.h \
$(NULL)
 
 

-- 




[EGIT] [core/efl] master 05/07: docs: efl_ui*: add docs for interfaces and events

2016-11-04 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit f742c8488c5f45f1c7161c05052d6e31f5e1ca04
Author: Stefan Schmidt 
Date:   Fri Nov 4 10:47:46 2016 +0100

docs: efl_ui*: add docs for interfaces and events
---
 src/lib/evas/canvas/efl_ui_clickable.eo  | 17 +
 src/lib/evas/canvas/efl_ui_draggable.eo  |  3 ++-
 src/lib/evas/canvas/efl_ui_scrollable.eo |  1 +
 src/lib/evas/canvas/efl_ui_selectable.eo |  1 +
 src/lib/evas/canvas/efl_ui_zoomable.eo   |  7 ---
 5 files changed, 17 insertions(+), 12 deletions(-)

diff --git a/src/lib/evas/canvas/efl_ui_clickable.eo 
b/src/lib/evas/canvas/efl_ui_clickable.eo
index 1d97701..5cfaa89 100644
--- a/src/lib/evas/canvas/efl_ui_clickable.eo
+++ b/src/lib/evas/canvas/efl_ui_clickable.eo
@@ -1,14 +1,15 @@
 interface Efl.Ui.Clickable ()
 {
+   [[Efl UI clickable interface]]
event_prefix: efl_ui;
events {
-  clicked;
-  clicked,double;
-  clicked,triple;
-  clicked,right;
-  pressed;
-  unpressed;
-  longpressed;
-  repeated;
+  clicked; [[Called when object was clicked]]
+  clicked,double; [[Called when object received a double click]]
+  clicked,triple; [[Called when object received a triple click]]
+  clicked,right; [[Called when object received a right click]]
+  pressed; [[Called when the object was pressed]]
+  unpressed; [[Called when the object is now longer pressed]]
+  longpressed; [[Called when the object received a longpress]]
+  repeated; [[Called when the object received repeated presses/clicks]]
}
 }
diff --git a/src/lib/evas/canvas/efl_ui_draggable.eo 
b/src/lib/evas/canvas/efl_ui_draggable.eo
index d3f7c55..27a8ff3 100644
--- a/src/lib/evas/canvas/efl_ui_draggable.eo
+++ b/src/lib/evas/canvas/efl_ui_draggable.eo
@@ -1,9 +1,10 @@
 interface Efl.Ui.Draggable ()
 {
+   [[Efl UI draggable interface]]
event_prefix: efl_ui;
methods {
 @property drag_target {
- [[Contrtol whether the object's content is changed by drag and 
drop.
+ [[Control whether the object's content is changed by drag and 
drop.
 
If $drag_target is true, the object can be target of dragging
object and the content of this object can be changed into
diff --git a/src/lib/evas/canvas/efl_ui_scrollable.eo 
b/src/lib/evas/canvas/efl_ui_scrollable.eo
index c356492..7de6a85 100644
--- a/src/lib/evas/canvas/efl_ui_scrollable.eo
+++ b/src/lib/evas/canvas/efl_ui_scrollable.eo
@@ -1,5 +1,6 @@
 interface Efl.Ui.Scrollable ()
 {
+   [[Efl UI scrollable interface]]
event_prefix: efl_ui;
events {
   scroll;
diff --git a/src/lib/evas/canvas/efl_ui_selectable.eo 
b/src/lib/evas/canvas/efl_ui_selectable.eo
index b2421e3..16b6a88 100644
--- a/src/lib/evas/canvas/efl_ui_selectable.eo
+++ b/src/lib/evas/canvas/efl_ui_selectable.eo
@@ -1,5 +1,6 @@
 interface Efl.Ui.Selectable ()
 {
+   [[Efl UI selectable interface]]
event_prefix: efl_ui;
events {
   selected;
diff --git a/src/lib/evas/canvas/efl_ui_zoomable.eo 
b/src/lib/evas/canvas/efl_ui_zoomable.eo
index 325948d..ae315c6 100644
--- a/src/lib/evas/canvas/efl_ui_zoomable.eo
+++ b/src/lib/evas/canvas/efl_ui_zoomable.eo
@@ -1,9 +1,10 @@
 interface Efl.Ui.Zoomable ()
 {
+   [[Efl UI zoomable interface]]
event_prefix: efl_ui;
events {
-  zoom,start;
-  zoom,stop;
-  zoom,change;
+  zoom,start; [[Called when zooming started]]
+  zoom,stop; [[Called when zooming stopped]]
+  zoom,change; [[Called when zooming changed]]
}
 }

-- 




[EGIT] [core/efl] master 03/07: docs: elm_atspi: add docs for elm atspi interfaces

2016-11-04 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit e509e69db8ff1ec8eee96c4ef376f2931571ccb8
Author: Stefan Schmidt 
Date:   Fri Nov 4 10:42:15 2016 +0100

docs: elm_atspi: add docs for elm atspi interfaces
---
 src/lib/elementary/elm_interface_atspi_selection.eo | 1 +
 src/lib/elementary/elm_interface_atspi_text.eo  | 1 +
 src/lib/elementary/elm_interface_atspi_text_editable.eo | 1 +
 src/lib/elementary/elm_interface_atspi_value.eo | 1 +
 src/lib/elementary/elm_interface_atspi_window.eo| 1 +
 5 files changed, 5 insertions(+)

diff --git a/src/lib/elementary/elm_interface_atspi_selection.eo 
b/src/lib/elementary/elm_interface_atspi_selection.eo
index 13a7a9c..d0e60de 100644
--- a/src/lib/elementary/elm_interface_atspi_selection.eo
+++ b/src/lib/elementary/elm_interface_atspi_selection.eo
@@ -1,5 +1,6 @@
 interface Elm.Interface.Atspi.Selection ()
 {
+   [[Elementary AT-SPI selection interface]]
eo_prefix: elm_interface_atspi_selection;
methods {
   @property selected_children_count @protected {
diff --git a/src/lib/elementary/elm_interface_atspi_text.eo 
b/src/lib/elementary/elm_interface_atspi_text.eo
index 3cd8cbc..757f59e 100644
--- a/src/lib/elementary/elm_interface_atspi_text.eo
+++ b/src/lib/elementary/elm_interface_atspi_text.eo
@@ -46,6 +46,7 @@ struct Elm.Atspi_Text.Change_Info
 
 interface Elm.Interface.Atspi.Text ()
 {
+   [[Elementary AT-SPI text interface]]
eo_prefix: elm_interface_atspi_text;
methods {
   @property character @protected {
diff --git a/src/lib/elementary/elm_interface_atspi_text_editable.eo 
b/src/lib/elementary/elm_interface_atspi_text_editable.eo
index ec1391c..7bed45b 100644
--- a/src/lib/elementary/elm_interface_atspi_text_editable.eo
+++ b/src/lib/elementary/elm_interface_atspi_text_editable.eo
@@ -1,5 +1,6 @@
 interface Elm.Interface.Atspi.Text.Editable ()
 {
+   [[Elementary AT-SPI text editable interface]]
eo_prefix: elm_interface_atspi_text_editable;
methods {
   @property content @protected {
diff --git a/src/lib/elementary/elm_interface_atspi_value.eo 
b/src/lib/elementary/elm_interface_atspi_value.eo
index a3d30d0..657d5bf 100644
--- a/src/lib/elementary/elm_interface_atspi_value.eo
+++ b/src/lib/elementary/elm_interface_atspi_value.eo
@@ -1,5 +1,6 @@
 interface Elm.Interface.Atspi.Value ()
 {
+   [[Elementary AT-SPI value interface]]
eo_prefix: elm_interface_atspi_value;
methods {
   @property value_and_text @protected {
diff --git a/src/lib/elementary/elm_interface_atspi_window.eo 
b/src/lib/elementary/elm_interface_atspi_window.eo
index f43a77f..08f885b 100644
--- a/src/lib/elementary/elm_interface_atspi_window.eo
+++ b/src/lib/elementary/elm_interface_atspi_window.eo
@@ -1,5 +1,6 @@
 interface Elm.Interface.Atspi.Window ()
 {
+   [[Elementary AT-SPI window interface]]
events {
   window,created; [[Called when new window has been created.]]
   window,destroyed; [[Called when window has been destroyed.]]

-- 




[EGIT] [core/efl] master 01/07: docs: elm_code: add missing documentation for elm code widget

2016-11-04 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit 1edeb4a7c699d11cd6071362c4357f7d86764381
Author: Stefan Schmidt 
Date:   Fri Nov 4 09:47:27 2016 +0100

docs: elm_code: add missing documentation for elm code widget
---
 src/lib/elementary/elm_code_widget.eo | 76 ---
 1 file changed, 43 insertions(+), 33 deletions(-)

diff --git a/src/lib/elementary/elm_code_widget.eo 
b/src/lib/elementary/elm_code_widget.eo
index 08d09bb..9589dc3 100644
--- a/src/lib/elementary/elm_code_widget.eo
+++ b/src/lib/elementary/elm_code_widget.eo
@@ -8,6 +8,7 @@ struct @extern Elm_Code_Line; [[Elementary code line data 
structure]] /* Parts o
 
 class Elm.Code_Widget (Elm.Layout, Elm.Interface.Atspi.Text)
 {
+   [[Elementary code widget]]
eo_prefix: elm_obj_code_widget;
legacy_prefix: elm_code_widget;
methods {
@@ -156,7 +157,7 @@ class Elm.Code_Widget (Elm.Layout, Elm.Interface.Atspi.Text)
 [[Get whether or not space characters will be inserted instead of 
tabs.]]
  }
  values {
-tab_inserts_spaces: bool; [[EINA_TRUE if we should insert space 
characters instead of a tab when the Tab key is pressed]]
+tab_inserts_spaces: bool; [[$true if we should insert space 
characters instead of a tab when the Tab key is pressed]]
  }
   }
   @property cursor_position {
@@ -172,74 +173,84 @@ class Elm.Code_Widget (Elm.Layout, 
Elm.Interface.Atspi.Text)
  }
   }
   line_refresh {
+[[Refresh code line in widget]]
  params {
 line: Elm_Code_Line *; [[The line to refresh.]]
  }
   }
   line_visible_get {
+ [[Check if the code line is currently visible]]
  params {
 line: Elm_Code_Line *; [[The line to test for visibility.]]
  }
- return: bool; [[true if the line specified is currently visible 
within the scroll region.]]
+ return: bool; [[$true if the line specified is currently visible 
within the scroll region.]]
   }
   lines_visible_get {
+[[Get the number of code lines currently visible in the widget]]
  return: uint; [[the number of lines currently visible in the widget.]]
   }
   position_at_coordinates_get {
- [[get the row, col position for a given coordinate on the widget.]]
+ [[Get the row, col position for a given coordinate on the widget.]]
  params {
-x: Evas.Coord; [[the x coordinate in the widget]]
-y: Evas.Coord; [[the y coordinate in the widget]]
-row: uint *; [[the row for the coordinates]]
-col: int *; [[the column for the coordinates]]
+x: Evas.Coord; [[The x coordinate in the widget]]
+y: Evas.Coord; [[The y coordinate in the widget]]
+row: uint *; [[The row for the coordinates]]
+col: int *; [[The column for the coordinates]]
  }
- return: bool; [[true if a line exists at these coordinates]]
+ return: bool; [[$true if a line exists at these coordinates]]
   }
 
-  //text functions
   text_left_gutter_width_get {
- return: int; [[the current column width of the gutter for the 
widget.]]
+[[Get the column width of the gutter]]
+ return: int; [[The current column width of the gutter for the 
widget.]]
   }
   text_line_number_width_get {
- return: int; [[the column width required to represent the number of 
lines in the widget.]]
+[[Get the required column width]]
+ return: int; [[The column width required to represent the number of 
lines in the widget.]]
   }
   text_between_positions_get {
+[[Get text between given positions]]
  params {
-start_col: uint; [[the widget column of the first character to 
get]]
-start_line: uint; [[the line of the first character to get]]
-end_col: uint; [[the widget column of the last character to get]]
-end_line: uint; [[the line of the last character to get]]
+start_col: uint; [[The widget column of the first character to 
get]]
+start_line: uint; [[The line of the first character to get]]
+end_col: uint; [[The widget column of the last character to get]]
+end_line: uint; [[The line of the last character to get]]
  }
- return: char *; [[the text content between start and end positions]]
+ return: char *; [[The text content between start and end positions]]
   }
 
   line_text_column_width_to_position {
+[[Get text column width at given position]]
  params {
-line: Elm_Code_Line *;
-position: uint;
+line: Elm_Code_Line *; [[Code line]]
+position: uint; [[Code position]]
  }
- return: 

[EGIT] [core/efl] master 01/01: elementary transit: more optimal api call.

2016-11-04 Thread ChunEon Park
hermet pushed a commit to branch master.

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

commit 7cdc247b51091523b6808cef6a015aed708057e7
Author: Hermet Park 
Date:   Fri Nov 4 20:25:24 2016 +0900

elementary transit: more optimal api call.

come to think of it, we have a size get api...
---
 src/lib/elementary/elm_transit.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/elementary/elm_transit.c b/src/lib/elementary/elm_transit.c
index 8ae0d87..0ff99fa 100644
--- a/src/lib/elementary/elm_transit.c
+++ b/src/lib/elementary/elm_transit.c
@@ -508,7 +508,7 @@ _recover_image_uv(Evas_Object *obj, Evas_Map *map, 
Eina_Bool revert, Eina_Bool b
 else
   {
  efl_gfx_fill_get(obj, _x, _y, _w, _h);
- efl_gfx_geometry_get(obj, NULL, NULL, , );
+ efl_gfx_size_get(obj, , );
 
  double rate_x = (double) w / (double) fill_w;
  double rate_y = (double) h / (double) fill_h;

-- 




[EGIT] [core/efl] master 01/01: elementary transit: support image fill area in zoom effect.

2016-11-04 Thread ChunEon Park
hermet pushed a commit to branch master.

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

commit c446df487f15b54d0cd667ac89ddd9c8a9e86309
Author: Hermet Park 
Date:   Fri Nov 4 20:19:14 2016 +0900

elementary transit: support image fill area in zoom effect.

Transit zoom effect didn't care image fill area in case of manual filling.
This additional logic computes map uvs with regards to the current image 
fill area.

@fix
---
 src/lib/elementary/elm_transit.c | 35 +++
 1 file changed, 31 insertions(+), 4 deletions(-)

diff --git a/src/lib/elementary/elm_transit.c b/src/lib/elementary/elm_transit.c
index 13f6d78..8ae0d87 100644
--- a/src/lib/elementary/elm_transit.c
+++ b/src/lib/elementary/elm_transit.c
@@ -479,6 +479,9 @@ _recover_image_uv(Evas_Object *obj, Evas_Map *map, 
Eina_Bool revert, Eina_Bool b
//Since the map is not proper for all types of objects,
//Need to handle uvs only for image objects
int iw, ih;
+   int x, y, w, h;
+   int fill_x, fill_y, fill_w, fill_h;
+
const char *type = evas_object_type_get(obj);
if ((!type) || (strcmp(type, "image"))) return EINA_FALSE;
if (evas_object_image_source_get(obj)) return EINA_FALSE;
@@ -494,10 +497,34 @@ _recover_image_uv(Evas_Object *obj, Evas_Map *map, 
Eina_Bool revert, Eina_Bool b
  }
else
  {
-evas_map_point_image_uv_set(map, 0, 0, 0);
-evas_map_point_image_uv_set(map, 1, iw, 0);
-evas_map_point_image_uv_set(map, 2, iw, ih);
-evas_map_point_image_uv_set(map, 3, 0, ih);
+if (evas_object_image_filled_get(obj))
+  {
+ x = 0;
+ y = 0;
+ w = iw;
+ h = ih;
+  }
+//Zooming image fill area.
+else
+  {
+ efl_gfx_fill_get(obj, _x, _y, _w, _h);
+ efl_gfx_geometry_get(obj, NULL, NULL, , );
+
+ double rate_x = (double) w / (double) fill_w;
+ double rate_y = (double) h / (double) fill_h;
+ double rate_x2 = (double) iw / (double) fill_w;
+ double rate_y2 = (double) ih / (double) fill_h;
+
+ x = -(int)((double) fill_x * rate_x2);
+ y = -(int)((double) fill_y * rate_y2);
+ w = (int)(((double) iw) * rate_x) + x;
+ h = (int)(((double) ih) * rate_y) + y;
+  }
+
+evas_map_point_image_uv_set(map, 0, x, y);
+evas_map_point_image_uv_set(map, 1, w, y);
+evas_map_point_image_uv_set(map, 2, w, h);
+evas_map_point_image_uv_set(map, 3, x, h);
  }
return EINA_TRUE;
 }

-- 




[EGIT] [apps/rage] master 01/01: rage artfile debug - remove printf. noisy

2016-11-04 Thread Carsten Haitzler (Rasterman)
raster pushed a commit to branch master.

http://git.enlightenment.org/apps/rage.git/commit/?id=f7875643dd22297b29e45f678a3c05fd24578478

commit f7875643dd22297b29e45f678a3c05fd24578478
Author: Carsten Haitzler (Rasterman) 
Date:   Fri Nov 4 19:51:05 2016 +0900

rage artfile debug - remove printf. noisy
---
 src/bin/videothumb.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/bin/videothumb.c b/src/bin/videothumb.c
index 97152cb..be003ac 100644
--- a/src/bin/videothumb.c
+++ b/src/bin/videothumb.c
@@ -276,7 +276,6 @@ _videothumb_image_load(Evas_Object *obj)
if (sd->poster_mode)
  {
 artfile = albumart_file_get(sd->realpath);
-printf("artfile for %s = %s\n", sd->realpath, artfile);
 if (artfile)
   {
  if (ecore_file_exists(artfile))

-- 




Re: [E-devel] EDD 2017 location discussion - Vote opened

2016-11-04 Thread Stefan Schmidt
Hello.

After gettign more feedback and proposals here I put out a vote:

https://phab.enlightenment.org/V27

Let us know what makes sense to you!

regards
Stefan Schmidt

--
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today. http://sdm.link/xeonphi
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] EDD 2017 location discussion

2016-11-04 Thread Stefan Schmidt
Hello.

On 01/11/16 15:16, Stephen Houston wrote:
> I love this idea. If not US I will definitely go to Scotland. It's on my
> bucket list for ancestry reasons.
>
> As far as US goes, I could easily have event space in Mississippi. I love
> the South and it's my home. However, I don't think most of you big city
> folks would enjoy the small town atmosphere. Pluses would be food. The
> South has the best food in the world... of course none of it is good for
> you and that's why the South is so fat, but it is so good. For music
> lovers, we have one of the only two Grammy museums in the world. For
> gamblers we have big casinos that are considered second to Las Vegas.  For
> nightlife we have the best bars with live music. I know I could get event
> space near Jackson or near Memphis.
>
> I also think Chicago is a great location. Two big airports with affordable
> airfare. Huge city with a ton of stuff to do. Centrally located.  Also a
> lot of Tech business there so I'm sure finding event space would be fairly
> easy.

I would not take that to easy. Getting event space for a low price is 
often not as easy as people think without having good connections to 
companies which might be willing to sponsor a meeting room (like 
OpenWide did last year). For example in Dublin we finally had to book a 
hotel conference room something like 7 days before the event because 
nothing else panned out.

Anyway, I updated your proposal a bit and I will put it in the upcoming 
vote.

regards
Stefan Schmidt

--
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today. http://sdm.link/xeonphi
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] EDD 2017 location discussion

2016-11-04 Thread Stefan Schmidt
Hello.

On 01/11/16 11:59, Tom Hacohen wrote:
> On 01/11/16 10:51, Stefan Schmidt wrote:
>> Hello.
>>
>> On 01/11/16 11:19, Tom Hacohen wrote:
>>> And London, we can probably get hosting at the London hackspace, if not,
>>> there are more options. With the pound as low as it is, it's going to be
>>> like going to a 3rd world countries for you all. :P
>>
>> Pretty sure London will just raise the prices even more when the pound
>> keeps falling and falling.
>>
>> If you (or someone else) are standing up as local organiser and the
>> meeting location at the hackerspace can get confirmed I see this as an
>> valid option. If these two are sorted out it should get added to the
>> wiki page.
>
> As you know, I'm going travelling a bit starting from early in the
> morning tomorrow, so I won't have any time to check.
>
> I think this should probably be a two step process.
>
> 1. Choose where we want to go.
> 2. Verifying it can be done before we fully commit.
>
> By the time it's decided I'll already be back and will be able to
> confirm the hackspace and any other "organisation" that may be required.

Added it as possible option to the wiki.

regards
Stefan Schmidt

--
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today. http://sdm.link/xeonphi
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [EGIT] [core/efl] master 01/01: Evas events: fix for works with pipes on windows.

2016-11-04 Thread Mykyta Biliavskyi
Hello.

I think that code, that uses pipe() should be moved to using
ecore_pipe. Because ecore_pipe is already support both of behaviours
for windows and posix in the similar way.
Similar code uses in ecore_anim module. All this should be unified, of
course.

About eina_socket - sound reasonable.

On Fri, 2016-11-04 at 11:00 +0100, Vincent Torri wrote:
> my opinion is that it should be in eina, actually. An abstraction of
> sockets, that could be used in ecore_pipe and in ecore_con and
> everywhere else
> 
> Vincent
> 
> 
> On Fri, Nov 4, 2016 at 10:22 AM, Stefan Schmidt  om> wrote:
> > Hello.
> > 
> > On 04/11/16 10:16, Mykyta Biliavskyi wrote:
> > > nikawhite pushed a commit to branch master.
> > > 
> > > http://git.enlightenment.org/core/efl.git/commit/?id=132bac98c8a7
> > > 7adde5a8271c48ed0d3c7dfb6563
> > > 
> > > commit 132bac98c8a77adde5a8271c48ed0d3c7dfb6563
> > > Author: Mykyta Biliavskyi 
> > > Date:   Fri Nov 4 11:06:11 2016 +0200
> > > 
> > > Evas events: fix for works with pipes on windows.
> > > 
> > > Evil implementation of pipe() function uses sockets. Windows
> > > functions
> > > "write", "read" and "close" doesn't works with sockets. In
> > > this commit
> > > added macros, that replace "read" with "recv", "write" with
> > > "send" and
> > > "close" with "closesocket".
> > > 
> > > @fix
> > > ---
> > >  src/lib/evas/canvas/evas_async_events.c | 30
> > > +-
> > >  1 file changed, 25 insertions(+), 5 deletions(-)
> > 
> >  From a platform abstraction view I would think something like this
> > should be handled in evil and not in some random files all over the
> > code
> > base.
> > 
> > There might be other parts of the code having the same problem (if
> > not
> > now they might get introduced later) and having the handling
> > directly
> > in the abstraction layer will avoid that you have to patch every
> > file
> > that comes with it.
> > 
> > regards
> > Stefan Schmidt
> > 
> > -
> > -
> > Developer Access Program for Intel Xeon Phi Processors
> > Access to Intel Xeon Phi processor-based developer platforms.
> > With one year of Intel Parallel Studio XE.
> > Training and support from Colfax.
> > Order your platform today. http://sdm.link/xeonphi
> > ___
> > enlightenment-devel mailing list
> > enlightenment-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> 
> ---
> ---
> Developer Access Program for Intel Xeon Phi Processors
> Access to Intel Xeon Phi processor-based developer platforms.
> With one year of Intel Parallel Studio XE.
> Training and support from Colfax.
> Order your platform today. http://sdm.link/xeonphi
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> 
> 


--
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today. http://sdm.link/xeonphi
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [EGIT] [core/efl] master 01/01: Evas events: fix for works with pipes on windows.

2016-11-04 Thread Vincent Torri
my opinion is that it should be in eina, actually. An abstraction of
sockets, that could be used in ecore_pipe and in ecore_con and
everywhere else

Vincent


On Fri, Nov 4, 2016 at 10:22 AM, Stefan Schmidt  wrote:
> Hello.
>
> On 04/11/16 10:16, Mykyta Biliavskyi wrote:
>> nikawhite pushed a commit to branch master.
>>
>> http://git.enlightenment.org/core/efl.git/commit/?id=132bac98c8a77adde5a8271c48ed0d3c7dfb6563
>>
>> commit 132bac98c8a77adde5a8271c48ed0d3c7dfb6563
>> Author: Mykyta Biliavskyi 
>> Date:   Fri Nov 4 11:06:11 2016 +0200
>>
>> Evas events: fix for works with pipes on windows.
>>
>> Evil implementation of pipe() function uses sockets. Windows functions
>> "write", "read" and "close" doesn't works with sockets. In this commit
>> added macros, that replace "read" with "recv", "write" with "send" and
>> "close" with "closesocket".
>>
>> @fix
>> ---
>>  src/lib/evas/canvas/evas_async_events.c | 30 +-
>>  1 file changed, 25 insertions(+), 5 deletions(-)
>
>  From a platform abstraction view I would think something like this
> should be handled in evil and not in some random files all over the code
> base.
>
> There might be other parts of the code having the same problem (if not
> now they might get introduced later) and having the handling directly
> in the abstraction layer will avoid that you have to patch every file
> that comes with it.
>
> regards
> Stefan Schmidt
>
> --
> Developer Access Program for Intel Xeon Phi Processors
> Access to Intel Xeon Phi processor-based developer platforms.
> With one year of Intel Parallel Studio XE.
> Training and support from Colfax.
> Order your platform today. http://sdm.link/xeonphi
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

--
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today. http://sdm.link/xeonphi
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [EGIT] [core/efl] master 01/01: Evas events: fix for works with pipes on windows.

2016-11-04 Thread Stefan Schmidt
Hello.

On 04/11/16 10:16, Mykyta Biliavskyi wrote:
> nikawhite pushed a commit to branch master.
>
> http://git.enlightenment.org/core/efl.git/commit/?id=132bac98c8a77adde5a8271c48ed0d3c7dfb6563
>
> commit 132bac98c8a77adde5a8271c48ed0d3c7dfb6563
> Author: Mykyta Biliavskyi 
> Date:   Fri Nov 4 11:06:11 2016 +0200
>
> Evas events: fix for works with pipes on windows.
>
> Evil implementation of pipe() function uses sockets. Windows functions
> "write", "read" and "close" doesn't works with sockets. In this commit
> added macros, that replace "read" with "recv", "write" with "send" and
> "close" with "closesocket".
>
> @fix
> ---
>  src/lib/evas/canvas/evas_async_events.c | 30 +-
>  1 file changed, 25 insertions(+), 5 deletions(-)

 From a platform abstraction view I would think something like this 
should be handled in evil and not in some random files all over the code 
base.

There might be other parts of the code having the same problem (if not 
now they might get introduced later) and having the handling directly
in the abstraction layer will avoid that you have to patch every file 
that comes with it.

regards
Stefan Schmidt

--
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today. http://sdm.link/xeonphi
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 01/01: Evas events: fix for works with pipes on windows.

2016-11-04 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

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

commit 132bac98c8a77adde5a8271c48ed0d3c7dfb6563
Author: Mykyta Biliavskyi 
Date:   Fri Nov 4 11:06:11 2016 +0200

Evas events: fix for works with pipes on windows.

Evil implementation of pipe() function uses sockets. Windows functions
"write", "read" and "close" doesn't works with sockets. In this commit
added macros, that replace "read" with "recv", "write" with "send" and
"close" with "closesocket".

@fix
---
 src/lib/evas/canvas/evas_async_events.c | 30 +-
 1 file changed, 25 insertions(+), 5 deletions(-)

diff --git a/src/lib/evas/canvas/evas_async_events.c 
b/src/lib/evas/canvas/evas_async_events.c
index d607dab..b7ce6b5 100644
--- a/src/lib/evas/canvas/evas_async_events.c
+++ b/src/lib/evas/canvas/evas_async_events.c
@@ -5,12 +5,32 @@
 #ifndef _MSC_VER
 # include 
 #endif
-#include 
 #include 
 
 #include "evas_common_private.h"
 #include "evas_private.h"
 
+#ifdef _WIN32
+
+# include 
+
+# define pipe_write(fd, buffer, size) send((fd), (char *)(buffer), size, 0)
+# define pipe_read(fd, buffer, size)  recv((fd), (char *)(buffer), size, 0)
+# define pipe_close(fd)   closesocket(fd)
+# define PIPE_FD_ERROR   SOCKET_ERROR
+
+#else
+
+# include 
+
+# define pipe_write(fd, buffer, size) write((fd), buffer, size)
+# define pipe_read(fd, buffer, size)  read((fd), buffer, size)
+# define pipe_close(fd)   close(fd)
+# define PIPE_FD_ERROR   -1
+
+#endif /* ! _WIN32 */
+
+
 typedef struct _Evas_Event_Async   Evas_Event_Async;
 struct _Evas_Event_Async
 {
@@ -129,8 +149,8 @@ evas_async_events_shutdown(void)
eina_inarray_flush(_queue);
free(async_queue_cache);
 
-   close(_fd_read);
-   close(_fd_write);
+   pipe_close(_fd_read);
+   pipe_close(_fd_write);
_fd_read = -1;
_fd_write = -1;
 
@@ -159,7 +179,7 @@ _evas_async_events_process_single(void)
 {
int ret, wakeup;
 
-   ret = read(_fd_read, , sizeof(int));
+   ret = pipe_read(_fd_read, , sizeof(int));
if (ret < 0)
  {
 switch (errno)
@@ -293,7 +313,7 @@ evas_async_events_put(const void *target, 
Evas_Callback_Type type, void *event_i
 
 do
   {
- check = write(_fd_write, , sizeof (int));
+ check = pipe_write(_fd_write, , sizeof (int));
   }
 while ((check != sizeof (int)) &&
((errno == EINTR) || (errno == EAGAIN)));

-- 




[EGIT] [core/efl] master 02/02: evas: Fix masking with window rotation, take 2

2016-11-04 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit b8a76e20af5dc7c1542e82907fa9a28e039469e1
Author: Jean-Philippe Andre 
Date:   Fri Nov 4 15:08:45 2016 +0900

evas: Fix masking with window rotation, take 2

The first patch did not work for maps. This explains why the
original code was so weird. But it actually made sense.

After struggling a bit I realized that we really just need
to shuffle around the pixel position on the window to map that
of the position in the canvas (unrotate it).

Note that compatibility with GLSL-ES (for OpenGL ES) implies
we can not use an array initializer like:
  vec2 pos[4] = vec2[4](a,b,c,d);
So the code could probably be optimized. But at least this works.

This patch also avoids calling glGetUniformLocation again and
again.
---
 .../evas/engines/gl_common/evas_gl_common.h|  3 ++
 .../evas/engines/gl_common/evas_gl_context.c   | 41 +++---
 .../evas/engines/gl_common/evas_gl_shader.c|  4 +++
 .../engines/gl_common/shader/evas_gl_shaders.x | 13 +--
 .../evas/engines/gl_common/shader/fragment.glsl|  2 +-
 .../evas/engines/gl_common/shader/vertex.glsl  | 12 +--
 6 files changed, 48 insertions(+), 27 deletions(-)

diff --git a/src/modules/evas/engines/gl_common/evas_gl_common.h 
b/src/modules/evas/engines/gl_common/evas_gl_common.h
index 23eddef..d044c16 100644
--- a/src/modules/evas/engines/gl_common/evas_gl_common.h
+++ b/src/modules/evas/engines/gl_common/evas_gl_common.h
@@ -103,6 +103,9 @@ typedef Eina_Bool (*evas_gl_make_current_cb)(void 
*engine_data, void *doit);
 struct _Evas_GL_Program
 {
unsigned int flags, hitcount, tex_count;
+   struct {
+  GLuint mvp, rotation_id;
+   } uniform;
GLuint prog;
 
Eina_Bool reset : 1;
diff --git a/src/modules/evas/engines/gl_common/evas_gl_context.c 
b/src/modules/evas/engines/gl_common/evas_gl_context.c
index a13b8b5..df2cad2 100644
--- a/src/modules/evas/engines/gl_common/evas_gl_context.c
+++ b/src/modules/evas/engines/gl_common/evas_gl_context.c
@@ -726,17 +726,11 @@ _evas_gl_common_viewport_set(Evas_Engine_GL_Context *gc)
eina_iterator_free(it);
 
if (gc->state.current.prog != PRG_INVALID)
- /*
  {
-glUseProgram(gc->shared->shader[0].prog);
-glUniformMatrix4fv(glGetUniformLocation(gc->shared->shader[0].prog, 
"mvp"), 1, GL_FALSE, gc->shared->proj);
-gc->shared->shader[0].reset = EINA_FALSE;
- }
-   else
-   */
- {
-glUseProgram(gc->state.current.prog->prog);
-glUniformMatrix4fv(glGetUniformLocation(gc->state.current.prog->prog, 
"mvp"), 1, GL_FALSE, gc->shared->proj);
+prog = gc->state.current.prog;
+glUseProgram(prog->prog);
+glUniform1i(prog->uniform.rotation_id, gc->rot / 90);
+glUniformMatrix4fv(prog->uniform.mvp, 1, GL_FALSE, gc->shared->proj);
  }
 }
 
@@ -1442,9 +1436,20 @@ _push_mask(Evas_Engine_GL_Context *gc, const int pn, int 
nm, Evas_GL_Texture *mt
if (!gw || !gh || !mw || !mh || !mtex->pt->w || !mtex->pt->h)
  return EINA_FALSE;
 
-   /* vertex shader:
-* vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 
0.5, 0.5) + vec4(0.5, 0.5, 0, 0);
-* tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;
+   /* Vertex shader:
+*
+* INPUTS:
+*   vec4 mask_coord = vec4(glmx, glmy, glmw, glmh);
+*   int rotation_id = gc->rot / 90;
+*
+* CODE:
+*   vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 
0.5, 0.5, 0.5) + vec4(0.5, 0.5, 0, 0);
+*   vec2 pos[4]; // no ctor-style init because of GLSL-ES (version 100)
+*   pos[0] = vec2(mask_Position.xy);
+*   pos[1] = vec2(1.0 - mask_Position.y, mask_Position.x);
+*   pos[2] = vec2(1.0 - mask_Position.xy);
+*   pos[3] = vec2(mask_Position.y, 1.0 - mask_Position.x);
+*   tex_m = pos[rotation_id].xy * abs(mask_coord.zw) + mask_coord.xy;
 */
glmx = (double)((mtex->x * mw) - (mtex->w * mx)) / (double)(mw * 
mtex->pt->w);
glmy = (double)((mtex->y * mh) - (mtex->h * my)) / (double)(mh * 
mtex->pt->h);
@@ -1465,13 +1470,6 @@ _push_mask(Evas_Engine_GL_Context *gc, const int pn, int 
nm, Evas_GL_Texture *mt
 PUSH_MASKSAM(pn, samx, samy, cnt);
  }
 
-   /*
-   DBG("%d,%d %dx%d --> %f , %f - %f x %f [gc %dx%d, tex %d,%d %dx%d, pt 
%dx%d]",
-   mx, my, mw, mh,
-   glmx, glmy, glmw, glmh,
-   gc->w, gc->h, mtex->x, mtex->y, mtex->w, mtex->h, mtex->pt->w, 
mtex->pt->h);
-   */
-
return EINA_TRUE;
 }
 
@@ -3032,7 +3030,8 @@ shader_array_flush(Evas_Engine_GL_Context *gc)
  glUseProgram(prog->prog);
  if (prog->reset)
{
-  glUniformMatrix4fv(glGetUniformLocation(prog->prog, "mvp"), 
1, GL_FALSE, gc->shared->proj);
+  

[EGIT] [core/efl] master 01/02: Revert "evas: Simplify GL masking and fix window rotation"

2016-11-04 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit 4071af438a447479f15fc3d979058a889b2aa911
Author: Jean-Philippe Andre 
Date:   Fri Nov 4 11:59:59 2016 +0900

Revert "evas: Simplify GL masking and fix window rotation"

This reverts commit 562528d28c376d5ff941f9db3ea5c4924c07e75f.

This patch did not work with mapped images.
---
 .../evas/engines/gl_common/evas_gl_context.c   | 66 +-
 .../engines/gl_common/shader/evas_gl_shaders.x |  5 +-
 .../evas/engines/gl_common/shader/vertex.glsl  |  5 +-
 3 files changed, 46 insertions(+), 30 deletions(-)

diff --git a/src/modules/evas/engines/gl_common/evas_gl_context.c 
b/src/modules/evas/engines/gl_common/evas_gl_context.c
index 8e14150..a13b8b5 100644
--- a/src/modules/evas/engines/gl_common/evas_gl_context.c
+++ b/src/modules/evas/engines/gl_common/evas_gl_context.c
@@ -1357,7 +1357,7 @@ 
evas_gl_common_context_target_surface_set(Evas_Engine_GL_Context *gc,
 #define COLOR_CNT  4
 #define TEX_CNT2
 #define SAM_CNT2
-#define MASK_CNT   2
+#define MASK_CNT   4
 
 #define PUSH_VERTEX(n, x, y, z) do { \
gc->pipe[n].array.vertex[nv++] = x; \
@@ -1380,9 +1380,11 @@ 
evas_gl_common_context_target_surface_set(Evas_Engine_GL_Context *gc,
 #define PUSH_TEXA(n, u, v) do { \
gc->pipe[n].array.texa[na++] = u; \
gc->pipe[n].array.texa[na++] = v; } while(0)
-#define PUSH_TEXM(n, u, v) do { \
+#define PUSH_TEXM(n, u, v, w, z) do { \
gc->pipe[n].array.mask[nm++] = u; \
-   gc->pipe[n].array.mask[nm++] = v; } while(0)
+   gc->pipe[n].array.mask[nm++] = v; \
+   gc->pipe[n].array.mask[nm++] = w; \
+   gc->pipe[n].array.mask[nm++] = z; } while(0)
 #define PUSH_TEXSAM(n, x, y) do { \
gc->pipe[n].array.texsam[ns++] = x; \
gc->pipe[n].array.texsam[ns++] = y; } while(0)
@@ -1396,12 +1398,6 @@ 
evas_gl_common_context_target_surface_set(Evas_Engine_GL_Context *gc,
   PUSH_TEXUV(pn, x1, y1); PUSH_TEXUV(pn, x2, y2); PUSH_TEXUV(pn, x4, y4);\
   PUSH_TEXUV(pn, x2, y2); PUSH_TEXUV(pn, x3, y3); PUSH_TEXUV(pn, x4, y4);
 
-#define PUSH_6_TEXM(pn, x, y, w, h) do { \
-   PUSH_TEXM(pn, x, y); PUSH_TEXM(pn, x + w, y); \
-   PUSH_TEXM(pn, x, y + h); PUSH_TEXM(pn, x + w, y); \
-   PUSH_TEXM(pn, x + w, y + h); PUSH_TEXM(pn, x, y + h); \
-   } while (0)
-
 #define PUSH_6_TEXUV(pn, x1, y1, x2, y2)\
   PUSH_6_QUAD(pn, x1, y1, x2, y1, x2, y2, x1, y2);
 
@@ -1429,31 +1425,38 @@ 
evas_gl_common_context_target_surface_set(Evas_Engine_GL_Context *gc,
 
 static inline Eina_Bool
 _push_mask(Evas_Engine_GL_Context *gc, const int pn, int nm, Evas_GL_Texture 
*mtex,
-   int mx, int my, int mw, int mh, int x, int y, int w, int h,
-   Shader_Sampling msam, int nms)
+   int mx, int my, int mw, int mh, Shader_Sampling msam, int nms)
 {
-   double glmx, glmy, glmw, glmh;
+   double glmx, glmy, glmw, glmh, yinv = -1.f;
double gw = gc->w, gh = gc->h;
-   int cnt = 6;
+   int i, cnt = 6;
+
+   if (!((gc->pipe[0].shader.surface == gc->def_surface) ||
+ (!gc->pipe[0].shader.surface)))
+ {
+gw = gc->pipe[0].shader.surface->w;
+gh = gc->pipe[0].shader.surface->h;
+yinv = 1.f;
+ }
 
if (!gw || !gh || !mw || !mh || !mtex->pt->w || !mtex->pt->h)
  return EINA_FALSE;
 
-   glmx = ((double) (x - mx) / mw) * mtex->w / mtex->pt->w + (double) mtex->x 
/ mtex->pt->w;
-   glmy = ((double) (y - my) / mh) * mtex->h / mtex->pt->h + (double) mtex->y 
/ mtex->pt->h;
-   glmw = (double) (w * mtex->w) / (mw * mtex->pt->w);
-   glmh = (double) (h * mtex->h) / (mh * mtex->pt->h);
+   /* vertex shader:
+* vec4 mask_Position = mvp * vertex * vec4(0.5, sign(mask_coord.w) * 0.5, 
0.5, 0.5) + vec4(0.5, 0.5, 0, 0);
+* tex_m = mask_Position.xy * abs(mask_coord.zw) + mask_coord.xy;
+*/
+   glmx = (double)((mtex->x * mw) - (mtex->w * mx)) / (double)(mw * 
mtex->pt->w);
+   glmy = (double)((mtex->y * mh) - (mtex->h * my)) / (double)(mh * 
mtex->pt->h);
+   glmw = (double)(gw * mtex->w) / (double)(mw * mtex->pt->w);
+   glmh = (double)(gh * mtex->h) / (double)(mh * mtex->pt->h);
+   glmh *= yinv;
 
-   if (EINA_UNLIKELY(gc->pipe[pn].array.line))
- {
-PUSH_TEXM(pn, glmx, glmy);
-PUSH_TEXM(pn, glmx + glmy, glmy + glmh);
-cnt = 2;
- }
-   else
- {
-PUSH_6_TEXM(pn, glmx, glmy, glmw, glmh);
- }
+   if (gc->pipe[pn].array.line)
+ cnt = 2;
+
+   for (i = 0; i < cnt; i++)
+ PUSH_TEXM(pn, glmx, glmy, glmw, glmh);
 
if (msam)
  {
@@ -1462,11 +1465,18 @@ _push_mask(Evas_Engine_GL_Context *gc, const int pn, 
int nm, Evas_GL_Texture *mt
 PUSH_MASKSAM(pn, samx, samy, cnt);
  }
 
+   /*
+   DBG("%d,%d %dx%d --> %f , %f - %f x %f [gc %dx%d, tex %d,%d %dx%d, pt 
%dx%d]",
+   mx, my, mw, mh,
+   glmx, glmy, glmw, glmh,
+   gc->w, gc->h, mtex->x, mtex->y, mtex->w,