[EGIT] [core/efl] master 01/01: evas/vg: Use always blending op while drawing the vector.

2018-01-08 Thread subhransu mohanty
jpeg pushed a commit to branch master.

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

commit d838220d5671875eaef1dcea9dd024cc126360e0
Author: subhransu mohanty 
Date:   Mon Jan 8 19:16:59 2018 +0900

evas/vg: Use always blending op while drawing the vector.

Summary:
The default backend overrides this operation depending on the fill color
but the cairo backend dosen't hence cairo will always use bled mode while 
drwaing the vector.

Reviewers: jpeg

Subscribers: vtorri, cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D5724
---
 src/modules/evas/engines/gl_generic/evas_engine.c | 16 +---
 .../evas/engines/software_generic/evas_engine.c   | 19 ++-
 2 files changed, 3 insertions(+), 32 deletions(-)

diff --git a/src/modules/evas/engines/gl_generic/evas_engine.c 
b/src/modules/evas/engines/gl_generic/evas_engine.c
index 0829e7a0b4..d5c8544fda 100644
--- a/src/modules/evas/engines/gl_generic/evas_engine.c
+++ b/src/modules/evas/engines/gl_generic/evas_engine.c
@@ -2546,20 +2546,6 @@ eng_ector_buffer_new(void *engine, Evas *evas, int w, 
int h,
   evas_ector_gl_buffer_prepare(efl_added, engine, w, h, 
cspace, flags));
 }
 
-static Efl_Gfx_Render_Op
-_evas_render_op_to_ector_rop(Evas_Render_Op op)
-{
-   switch (op)
- {
-  case EVAS_RENDER_BLEND:
- return EFL_GFX_RENDER_OP_BLEND;
-  case EVAS_RENDER_COPY:
- return EFL_GFX_RENDER_OP_COPY;
-  default:
- return EFL_GFX_RENDER_OP_BLEND;
- }
-}
-
 static void
 eng_ector_renderer_draw(void *engine EINA_UNUSED, void *output,
 void *context EINA_UNUSED, void *surface EINA_UNUSED,
@@ -2575,7 +2561,7 @@ eng_ector_renderer_draw(void *engine EINA_UNUSED, void 
*output,
 eng_image_size_get(engine, glimg, &w, &h);
 eina_array_push(c, eina_rectangle_new(0, 0, w, h));
 
-ector_renderer_draw(renderer, 
_evas_render_op_to_ector_rop(EVAS_RENDER_COPY), c, 0x);
+ector_renderer_draw(renderer, EFL_GFX_RENDER_OP_BLEND, c, 0x);
 
 while ((r = eina_array_pop(c)))
   eina_rectangle_free(r);
diff --git a/src/modules/evas/engines/software_generic/evas_engine.c 
b/src/modules/evas/engines/software_generic/evas_engine.c
index 016179da2f..139ccc1a1c 100644
--- a/src/modules/evas/engines/software_generic/evas_engine.c
+++ b/src/modules/evas/engines/software_generic/evas_engine.c
@@ -4420,20 +4420,6 @@ eng_ector_buffer_new(void *data EINA_UNUSED, Evas *evas, 
int width, int height,
return buf;
 }
 
-static Efl_Gfx_Render_Op
-_evas_render_op_to_ector_rop(Evas_Render_Op op)
-{
-   switch (op)
- {
-  case EVAS_RENDER_BLEND:
- return EFL_GFX_RENDER_OP_BLEND;
-  case EVAS_RENDER_COPY:
- return EFL_GFX_RENDER_OP_COPY;
-  default:
- return EFL_GFX_RENDER_OP_BLEND;
- }
-}
-
 static void
 _draw_thread_ector_cleanup(Evas_Thread_Command_Ector *ector)
 {
@@ -4518,9 +4504,8 @@ eng_ector_renderer_draw(void *engine EINA_UNUSED, void 
*surface,
 
ector.r = renderer; // This has already been refcounted by Evas_Object_VG
ector.clips = c;
-   ector.render_op = _evas_render_op_to_ector_rop(dc->render_op);
-   ector.mul_col = ector_color_multiply(dc->mul.use ? dc->mul.col : 0x,
-dc->col.col);;
+   ector.render_op = EFL_GFX_RENDER_OP_BLEND;
+   ector.mul_col = 0x;
ector.free_it = EINA_FALSE;
 
if (do_async)

-- 




[EGIT] [core/efl] master 01/02: elm example : on some OS (windows...) struct tm has 9 fields and not 11. Fix warning.

2018-01-08 Thread Vincent Torri
jpeg pushed a commit to branch master.

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

commit 4c44890872034d85dc1d4cf1d3506d5bafbd806c
Author: Vincent Torri 
Date:   Mon Jan 8 21:10:22 2018 +0900

elm example : on some OS (windows...) struct tm has 9 fields and not 11. 
Fix warning.

Test Plan: compilation

Reviewers: raster, jpeg

Reviewed By: raster, jpeg

Subscribers: jpeg, cedric, raster

Differential Revision: https://phab.enlightenment.org/D5723
---
 src/examples/elementary/calendar_example_06.c | 17 +
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/src/examples/elementary/calendar_example_06.c 
b/src/examples/elementary/calendar_example_06.c
index 61e46a259c..6e25bb87a8 100644
--- a/src/examples/elementary/calendar_example_06.c
+++ b/src/examples/elementary/calendar_example_06.c
@@ -27,12 +27,21 @@ elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
Elm_Calendar_Mark *mark;
struct tm selected_time;
time_t current_time;
-   struct tm sunday = { 0, 0, 12, 7, 0, 0, 0, 0, -1, 0, NULL };
-   /* tm {sec, min, hour, mday, mon, year, wday, yday, isdst } */
-   /* weekdays since Sunday, range 0 to 6 */
+   struct tm sunday;
struct tm christmas;
+
+   /*
+* At least on Windows, tm has 9 fields.
+* As a workaround, set sunday to 0 and set
+* th needed fields to correct value
+*/
+   memset(&sunday, 0, sizeof(struct tm));
+   sunday.tm_hour = 12;
+   sunday.tm_mday = 7;
+   sunday.tm_isdst = -1;
+
+   memset(&christmas, 0, sizeof(struct tm));
christmas.tm_mday = 25;
-   /* months since Jan, in the range 0 to 11 */
christmas.tm_mon = 11;
 
win = elm_win_util_standard_add("calendar", "Calendar Marks Example");

-- 




[EGIT] [core/efl] master 02/02: csharp: Fix an example

2018-01-08 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit ade2c9ed520e20b7855b08df61077874e8d1d6c1
Author: Jean-Philippe Andre 
Date:   Mon Jan 8 21:24:25 2018 +0900

csharp: Fix an example

Event name changed.
The definition of the type BUTTON_CLICKED_Args seems odd as it's in
efl.ui namespace directly.
---
 src/examples/elementary/efl_ui_unit_converter.cs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/examples/elementary/efl_ui_unit_converter.cs 
b/src/examples/elementary/efl_ui_unit_converter.cs
index f167e68ca2..9e14c4b6c0 100644
--- a/src/examples/elementary/efl_ui_unit_converter.cs
+++ b/src/examples/elementary/efl_ui_unit_converter.cs
@@ -23,7 +23,7 @@ public class Example
 popup.SetVisible(true);
 popup.SetButton(efl.ui.popup_alert.Button.Positive, "Ok");
 popup.SetSize(150, 30);
-popup.CLICKED += (object sender, efl.ui.CLICKED_Args e) => {
+popup.BUTTON_CLICKED += (object sender, efl.ui.BUTTON_CLICKED_Args e) 
=> {
 popup.SetParent(null);
 popup.Del();
 };

-- 




[EGIT] [core/enlightenment] master 01/05: simplify icon suffix detection in vkbd module

2018-01-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit d86b2447996802810f1f8442b43e98ef5cbf0d85
Author: Mike Blumenkrantz 
Date:   Mon Jan 8 10:23:54 2018 -0500

simplify icon suffix detection in vkbd module

CID 1132746, 1132747
---
 src/modules/vkbd/e_kbd_int.c | 10 ++
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/src/modules/vkbd/e_kbd_int.c b/src/modules/vkbd/e_kbd_int.c
index 5fbe6856e..277470494 100644
--- a/src/modules/vkbd/e_kbd_int.c
+++ b/src/modules/vkbd/e_kbd_int.c
@@ -175,12 +175,10 @@ _e_kbd_int_layout_state_update(E_Kbd_Int *ki)
  if (st->icon)
{
   char buf[PATH_MAX];
-  char *p;
 
   snprintf(buf, sizeof(buf), "%s/%s",
ki->layout.directory, st->icon);
-  p = strrchr(st->icon, '.');
-  if (!strcmp(p, ".edj"))
+  if (eina_str_has_extension(st->icon, ".edj"))
 e_icon_file_edje_set(ky->icon_obj, buf, "icon");
   else
 e_icon_file_set(ky->icon_obj, buf);
@@ -975,7 +973,6 @@ _e_kbd_int_layout_parse(E_Kbd_Int *ki, const char *layout)
 if ((!strcmp(str, "normal")) || (!strcmp(str, "shift")) ||
 (!strcmp(str, "capslock")) || (!strcmp(str, "altgr")))
   {
- char *p;
  char label[4096];
 
  if (sscanf(buf, "%*s %4000s", label) != 1) continue;
@@ -986,10 +983,7 @@ _e_kbd_int_layout_parse(E_Kbd_Int *ki, const char *layout)
  if (!strcmp(str, "shift")) st->state = SHIFT;
  if (!strcmp(str, "capslock")) st->state = CAPSLOCK;
  if (!strcmp(str, "altgr")) st->state = ALTGR;
- p = strrchr(label, '.');
- if ((p) && (!strcmp(p, ".png")))
-   st->icon = eina_stringshare_add(label);
- else if ((p) && (!strcmp(p, ".edj")))
+ if (eina_str_has_extension(label, ".png") || 
eina_str_has_extension(label, ".edj"))
st->icon = eina_stringshare_add(label);
  else
st->label = eina_stringshare_add(label);

-- 




[EGIT] [core/enlightenment] master 03/05: protect against null deref when emitting efm/eeze error messages

2018-01-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit 6ad75a5e854b332c635abab9d0f9402adc1b3573
Author: Mike Blumenkrantz 
Date:   Mon Jan 8 10:41:45 2018 -0500

protect against null deref when emitting efm/eeze error messages

CID 1382954
---
 src/bin/e_fm/e_fm_main_eeze.c | 7 +--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/bin/e_fm/e_fm_main_eeze.c b/src/bin/e_fm/e_fm_main_eeze.c
index 0383e8860..baac5dfa5 100644
--- a/src/bin/e_fm/e_fm_main_eeze.c
+++ b/src/bin/e_fm/e_fm_main_eeze.c
@@ -108,14 +108,17 @@ _e_fm_main_eeze_format_error_msg(char **buf,
char *tmp;
 
vu = strlen(v->udi) + 1;
-   vm = strlen(v->mount_point) + 1;
+   vm = (v->mount_point ? strlen(v->mount_point) : 0) + 1;
en = strlen(name) + 1;
size = vu + vm + en + strlen(msg) + 1;
tmp = *buf = malloc(size);
 
strcpy(tmp, v->udi);
tmp += vu;
-   strcpy(tmp, v->mount_point);
+   if (v->mount_point)
+ strcpy(tmp, v->mount_point);
+   else
+ tmp[0] = 0;
tmp += vm;
strcpy(tmp, name);
tmp += en;

-- 




[EGIT] [core/enlightenment] master 05/05: protect against null deref when setting proxy vars in connman module

2018-01-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit 7dcc295e6be68de4816f85e8bdd606d10ee83fd8
Author: Mike Blumenkrantz 
Date:   Mon Jan 8 10:45:46 2018 -0500

protect against null deref when setting proxy vars in connman module

CID 1382957, 1382958
---
 src/modules/connman/e_connman.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/modules/connman/e_connman.c b/src/modules/connman/e_connman.c
index 220c705b9..9c37c157a 100644
--- a/src/modules/connman/e_connman.c
+++ b/src/modules/connman/e_connman.c
@@ -236,7 +236,7 @@ static void _service_parse_prop_changed(struct 
Connman_Service *cs,
 
  if (strcmp(method, "manual") == 0)
 {
-   if (eina_array_count(proxy_servers) > 0)
+   if (proxy_servers && (eina_array_count(proxy_servers) > 0))
   {
  DBG("New {all,http{,s}}_proxy: %s",
  (const char*)eina_array_data_get(proxy_servers, 0));
@@ -244,7 +244,7 @@ static void _service_parse_prop_changed(struct 
Connman_Service *cs,
  e_env_set("http_proxy", 
eina_array_data_get(proxy_servers, 0));
  e_env_set("HTTPS_PROXY", 
eina_array_data_get(proxy_servers, 0));
   }
-   if (eina_array_count(proxy_excludes) > 0)
+   if (proxy_excludes && (eina_array_count(proxy_excludes) > 0))
   {
  Eina_Strbuf *buf;
  Eina_Array_Iterator it;

-- 




[EGIT] [core/enlightenment] master 04/05: print error when failing to unlink efm/eeze mount point after unmount

2018-01-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit f34c780db3789f9f7bbf3b02580dd43c3b69f0e8
Author: Mike Blumenkrantz 
Date:   Mon Jan 8 10:43:46 2018 -0500

print error when failing to unlink efm/eeze mount point after unmount

CID 1382955
---
 src/bin/e_fm/e_fm_main_eeze.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_fm/e_fm_main_eeze.c b/src/bin/e_fm/e_fm_main_eeze.c
index baac5dfa5..b7d9e3eba 100644
--- a/src/bin/e_fm/e_fm_main_eeze.c
+++ b/src/bin/e_fm/e_fm_main_eeze.c
@@ -244,7 +244,8 @@ _e_fm_main_eeze_cb_vol_unmounted(void *user_data 
EINA_UNUSED,
v->mounted = EINA_FALSE;
INF("UNMOUNT: %s from %s", v->udi, v->mount_point);
if (!strncmp(v->mount_point, e_user_dir_get(), strlen(e_user_dir_get(
- unlink(v->mount_point);
+ if (unlink(v->mount_point))
+   printf("Error unlinking mount point!\n");
size = strlen(v->udi) + 1 + strlen(v->mount_point) + 1;
buf = alloca(size);
strcpy(buf, v->udi);

-- 




[EGIT] [core/enlightenment] master 02/05: refactor E_Storage finding for efm/eeze volumes in backend

2018-01-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit b9a9bd1da9f6949b1c1562dd46760db793a57506
Author: Mike Blumenkrantz 
Date:   Mon Jan 8 10:32:56 2018 -0500

refactor E_Storage finding for efm/eeze volumes in backend

CID 1382951
---
 src/bin/e_fm/e_fm_main_eeze.c | 23 ---
 1 file changed, 12 insertions(+), 11 deletions(-)

diff --git a/src/bin/e_fm/e_fm_main_eeze.c b/src/bin/e_fm/e_fm_main_eeze.c
index 4e3edf740..0383e8860 100644
--- a/src/bin/e_fm/e_fm_main_eeze.c
+++ b/src/bin/e_fm/e_fm_main_eeze.c
@@ -404,18 +404,19 @@ _e_fm_main_eeze_volume_add(const char *syspath,
 v->partition_label = eeze_disk_udev_get_property(v->disk, 
"ID_FS_LABEL");
  }
 
-   /* if we have dev/sda ANd dev/sda1 - ia a parent vol - del the parent vol
-* since we actually have real child partition volumes to mount */
-   if ((v->partition != 0) && (v->parent))
+   if (v->parent)
  {
-E_Volume *v2 = _e_fm_main_eeze_volume_find_fast(v->parent);
-
-if ((v2) && (v2->partition == 0))
-  _e_fm_main_eeze_volume_del(v2->udi);
- }
+E_Storage *s;
+
+if (v->partition)
+  {
+ /* prevent having storage and volume from same device */
+ E_Volume *v2 = _e_fm_main_eeze_volume_find_fast(v->parent);
+
+ if ((v2) && (v2->partition == 0))
+   _e_fm_main_eeze_volume_del(v2->udi);
+  }

-   {
-  E_Storage *s;
   s = e_storage_find(v->parent);
   INF("++VOL:\n  syspath: %s\n  uuid: %s\n  fstype: %s\n  size: %llu\n 
label: %s\n"
   "  partition: %d\n  partition_number: %d\n partition_label: %s\n  
mounted: %d\n  mount_point: %s",
@@ -423,7 +424,7 @@ _e_fm_main_eeze_volume_add(const char *syspath,
   v->partition ? v->partition_label : "(not a partition)", v->mounted, 
v->mount_point);
   if (s)
 v->storage = s;
-  else if (v->parent)
+  else
 s = v->storage = _e_fm_main_eeze_storage_add(v->parent);
 
   if (s)

-- 




[EGIT] [core/enlightenment] master 02/03: always throw error in wl_surface.commit for unparented popup surfaces

2018-01-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit beb6922a17db471d5d0f1fe94c13b8d5981660c9
Author: Mike Blumenkrantz 
Date:   Mon Jan 8 11:52:58 2018 -0500

always throw error in wl_surface.commit for unparented popup surfaces
---
 src/bin/e_comp_wl.c | 8 
 1 file changed, 8 insertions(+)

diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c
index fa83d2d07..224ed4aa1 100644
--- a/src/bin/e_comp_wl.c
+++ b/src/bin/e_comp_wl.c
@@ -1341,6 +1341,14 @@ _e_comp_wl_surface_state_commit(E_Client *ec, 
E_Comp_Wl_Surface_State *state)
  first = !e_pixmap_usable_get(e_comp_x_client_pixmap_get(ec));
 #endif
 
+   if (e_client_util_is_popup(ec) && (!ec->parent))
+ {
+wl_resource_post_error(ec->comp_data->surface,
+   WL_DISPLAY_ERROR_INVALID_OBJECT,
+   "Popup requires a parent shell surface before 
commit");
+return;
+ }
+
ec->comp_data->in_commit = 1;
if (ec->ignored && ec->comp_data->shell.surface)
  {

-- 




[EGIT] [core/enlightenment] master 01/03: handle passed output resource for xdg-shell fullscreen request

2018-01-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit 5cc08794ee5893685914dd6a3db9a878bac474df
Author: Mike Blumenkrantz 
Date:   Mon Jan 8 11:13:36 2018 -0500

handle passed output resource for xdg-shell fullscreen request
---
 src/bin/e_comp_wl.c |  4 
 src/bin/e_comp_wl.h |  1 +
 src/modules/wl_desktop_shell/xdg6.c | 13 -
 3 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c
index 320830451..fa83d2d07 100644
--- a/src/bin/e_comp_wl.c
+++ b/src/bin/e_comp_wl.c
@@ -1392,6 +1392,10 @@ _e_comp_wl_surface_state_commit(E_Client *ec, 
E_Comp_Wl_Surface_State *state)
"min surface height cannot be larger than max 
surface height");
 if (ec->comp_data->shell.set.fullscreen && (!ec->fullscreen))
   {
+ E_Zone *zone = 
e_comp_zone_id_get(ec->comp_data->shell.set.fs_zone);
+
+ if (zone && (zone != ec->zone))
+   e_client_zone_set(ec, zone);
  e_client_fullscreen(ec, E_FULLSCREEN_RESIZE);
   }
 if (ec->comp_data->shell.set.unfullscreen)
diff --git a/src/bin/e_comp_wl.h b/src/bin/e_comp_wl.h
index 1569bf1b8..5235508c2 100644
--- a/src/bin/e_comp_wl.h
+++ b/src/bin/e_comp_wl.h
@@ -325,6 +325,7 @@ struct _E_Comp_Wl_Client_Data
Eina_Bool maximize E_BITFIELD;
Eina_Bool unmaximize E_BITFIELD;
Eina_Bool minimize E_BITFIELD;
+   int fs_zone;
 } set;
  } shell;
struct
diff --git a/src/modules/wl_desktop_shell/xdg6.c 
b/src/modules/wl_desktop_shell/xdg6.c
index da1807e19..4b5ea7cac 100644
--- a/src/modules/wl_desktop_shell/xdg6.c
+++ b/src/modules/wl_desktop_shell/xdg6.c
@@ -582,7 +582,7 @@ _e_xdg_toplevel_cb_maximized_unset(struct wl_client *client 
EINA_UNUSED, struct
 }
 
 static void
-_e_xdg_toplevel_cb_fullscreen_set(struct wl_client *client EINA_UNUSED, struct 
wl_resource *resource, struct wl_resource *output_resource EINA_UNUSED)
+_e_xdg_toplevel_cb_fullscreen_set(struct wl_client *client EINA_UNUSED, struct 
wl_resource *resource, struct wl_resource *output_resource)
 {
E_Client *ec;
 
@@ -596,6 +596,17 @@ _e_xdg_toplevel_cb_fullscreen_set(struct wl_client *client 
EINA_UNUSED, struct w
  }
 
if (ec->lock_user_fullscreen) return;
+   if (output_resource)
+ {
+Eina_List *l;
+E_Zone *zone;
+E_Comp_Wl_Output *wlo = wl_resource_get_user_data(output_resource);
+EINA_LIST_FOREACH(e_comp->zones, l, zone)
+  if (zone->output == wlo)
+ec->comp_data->shell.set.fs_zone = zone->id;
+ }
+   else
+ ec->comp_data->shell.set.fs_zone = ec->zone->id;
_xdg_shell_surface_send_configure(resource, 1, !!ec->maximized || 
ec->comp_data->max, 0, ec->zone->w, ec->zone->h);
 }
 

-- 




[EGIT] [core/enlightenment] master 03/03: throw unconfigured buffer error as necessary in wl_surface.commit

2018-01-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit 6985df9058895e2b1ac027e8b0d8b7cb450e493e
Author: Mike Blumenkrantz 
Date:   Mon Jan 8 11:53:52 2018 -0500

throw unconfigured buffer error as necessary in wl_surface.commit
---
 src/bin/e_comp_wl.c |  7 ++-
 src/bin/e_comp_wl.h |  3 ++-
 src/modules/wl_desktop_shell/xdg6.c | 17 +
 3 files changed, 21 insertions(+), 6 deletions(-)

diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c
index 224ed4aa1..b0ebe6b64 100644
--- a/src/bin/e_comp_wl.c
+++ b/src/bin/e_comp_wl.c
@@ -1559,7 +1559,7 @@ _e_comp_wl_surface_state_commit(E_Client *ec, 
E_Comp_Wl_Surface_State *state)
  ec->want_focus |= ec->icccm.accepts_focus && (!ec->override);
   }
  }
-   else if (ec->comp_data->need_xdg6_configure && ec->comp_data->shell.surface)
+   else if (ec->comp_data->need_xdg_configure && ec->comp_data->shell.surface)
  _e_comp_wl_configure_send(ec, 0);
 
state->sx = 0;
@@ -1663,6 +1663,11 @@ _e_comp_wl_surface_cb_attach(struct wl_client *client 
EINA_UNUSED, struct wl_res
 
if (!(ec = wl_resource_get_user_data(resource))) return;
if (e_object_is_del(E_OBJECT(ec))) return;
+   if (ec->comp_data->need_xdg_configure)
+ {
+ec->comp_data->shell.buffer_attach_error(ec);
+return;
+ }
 
if (buffer_resource)
  {
diff --git a/src/bin/e_comp_wl.h b/src/bin/e_comp_wl.h
index 5235508c2..406a85d97 100644
--- a/src/bin/e_comp_wl.h
+++ b/src/bin/e_comp_wl.h
@@ -314,6 +314,7 @@ struct _E_Comp_Wl_Client_Data
 void (*ping)(struct wl_resource *resource);
 void (*map)(struct wl_resource *resource);
 void (*unmap)(struct wl_resource *resource);
+void (*buffer_attach_error)(E_Client *ec);
 Eina_Rectangle window;
 E_Shell_Data *data;
 struct
@@ -372,7 +373,7 @@ struct _E_Comp_Wl_Client_Data
Eina_Bool is_xdg_surface E_BITFIELD;
Eina_Bool grab E_BITFIELD;
Eina_Bool buffer_commit E_BITFIELD;
-   Eina_Bool need_xdg6_configure E_BITFIELD;
+   Eina_Bool need_xdg_configure E_BITFIELD;
Eina_Bool maximize_anims_disabled E_BITFIELD;
Eina_Bool ssd_mouse_in E_BITFIELD;
Eina_Bool need_center E_BITFIELD;
diff --git a/src/modules/wl_desktop_shell/xdg6.c 
b/src/modules/wl_desktop_shell/xdg6.c
index 4b5ea7cac..976ed13d7 100644
--- a/src/modules/wl_desktop_shell/xdg6.c
+++ b/src/modules/wl_desktop_shell/xdg6.c
@@ -374,7 +374,7 @@ _xdg_shell_surface_send_configure(struct wl_resource 
*resource, Eina_Bool fullsc
zxdg_surface_v6_send_configure(shd->surface, serial);
 
wl_array_release(&states);
-   ec->comp_data->need_xdg6_configure = 0;
+   ec->comp_data->need_xdg_configure = 0;
 }
 
 static void
@@ -400,7 +400,7 @@ _e_xdg_shell_surface_configure_send(struct wl_resource 
*resource, uint32_t edges
 serial = wl_display_next_serial(e_comp_wl->wl.disp);
 zxdg_popup_v6_send_configure(resource, ec->x - ec->parent->x, ec->y - 
ec->parent->y, width ?: ec->w, height ?: ec->h);
 zxdg_surface_v6_send_configure(shd->surface, serial);
-ec->comp_data->need_xdg6_configure = 0;
+ec->comp_data->need_xdg_configure = 0;
 return;
  }
 
@@ -942,7 +942,7 @@ _e_xdg_surface_cb_popup_get(struct wl_client *client, 
struct wl_resource *resour
cdata->shell.configure = _e_xdg_shell_surface_configure;
cdata->shell.map = _e_xdg_shell_surface_map;
cdata->shell.unmap = _e_xdg_shell_surface_unmap;
-   cdata->need_xdg6_configure = 1;
+   cdata->need_xdg_configure = 1;
 
if (!ec->internal)
  ec->borderless = !ec->internal_elm_win;
@@ -1245,7 +1245,7 @@ _e_xdg_surface_cb_toplevel_get(struct wl_client *client 
EINA_UNUSED, struct wl_r
cdata->shell.configure = _e_xdg_shell_surface_configure;
cdata->shell.map = _e_xdg_shell_surface_map;
cdata->shell.unmap = _e_xdg_shell_surface_unmap;
-   cdata->need_xdg6_configure = 1;
+   cdata->need_xdg_configure = 1;
 
/* set toplevel client properties */
ec->icccm.accepts_focus = 1;
@@ -1292,6 +1292,14 @@ _e_xdg_shell_surface_cb_destroy(struct wl_resource 
*resource)
 }
 
 static void
+_e_xdg_shell_surface_buffer_attach_error(E_Client *ec)
+{
+   wl_resource_post_error(ec->comp_data->surface,
+   ZXDG_SURFACE_V6_ERROR_UNCONFIGURED_BUFFER,
+   "buffer attached/committed before configure");
+}
+
+static void
 _e_xdg_shell_cb_surface_get(struct wl_client *client, struct wl_resource 
*resource, uint32_t id, struct wl_resource *surface_resource)
 {
E_Client *ec;
@@ -1351,6 +1359,7 @@ _e_xdg_shell_cb_surface_get(struct wl_client *client, 
struct wl_resource *resour
e_object_ref(E_OBJECT(ec));
 
cdata->shell.ping = _e_xdg_shell_surface_ping;
+   cdata->shell.buffer_attach_error = _e_xdg_shell_surface_buffer_attach_error;
cdata->is_xdg_surface = EIN

[EGIT] [core/enlightenment] feature/xdg_shell_final 02/03: remove xdg-shell v5 support

2018-01-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch feature/xdg_shell_final.

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

commit 675534ef9c7d18d4a3016e9563527325186a41fa
Author: Mike Blumenkrantz 
Date:   Mon Jan 8 12:10:22 2018 -0500

remove xdg-shell v5 support

this cannot coexist with xdg-shell final due to symbol collisions
---
 src/modules/wl_desktop_shell/e_mod_main.c | 2 +-
 src/modules/wl_desktop_shell/e_mod_main.h | 1 -
 src/modules/wl_desktop_shell/meson.build  | 2 --
 3 files changed, 1 insertion(+), 4 deletions(-)

diff --git a/src/modules/wl_desktop_shell/e_mod_main.c 
b/src/modules/wl_desktop_shell/e_mod_main.c
index 5a53317db..9e760ab5d 100644
--- a/src/modules/wl_desktop_shell/e_mod_main.c
+++ b/src/modules/wl_desktop_shell/e_mod_main.c
@@ -167,7 +167,7 @@ e_modapi_init(E_Module *m)
 return NULL;
  }
 
-   have_shell = e_xdg_shell_v5_init() | e_xdg_shell_v6_init() | 
e_xdg_shell_init();
+   have_shell = e_xdg_shell_v6_init() | e_xdg_shell_init();
if (!have_shell) return NULL;
 
 #ifdef HAVE_WL_TEXT_INPUT
diff --git a/src/modules/wl_desktop_shell/e_mod_main.h 
b/src/modules/wl_desktop_shell/e_mod_main.h
index 95c467116..210af0122 100644
--- a/src/modules/wl_desktop_shell/e_mod_main.h
+++ b/src/modules/wl_desktop_shell/e_mod_main.h
@@ -15,7 +15,6 @@ EINTERN void e_shell_surface_parent_set(E_Client *ec, struct 
wl_resource *parent
 EINTERN void e_shell_surface_mouse_down_helper(E_Client *ec, 
E_Binding_Event_Mouse_Button *ev, Eina_Bool move);
 EINTERN E_Shell_Data *e_shell_data_new(unsigned int version);
 
-EINTERN Eina_Bool e_xdg_shell_v5_init(void);
 EINTERN Eina_Bool e_xdg_shell_v6_init(void);
 EINTERN Eina_Bool e_xdg_shell_init(void);
 EINTERN void wl_shell_cb_bind(struct wl_client *client, void *data 
EINA_UNUSED, uint32_t version, uint32_t id);
diff --git a/src/modules/wl_desktop_shell/meson.build 
b/src/modules/wl_desktop_shell/meson.build
index 33b26ab8c..049258e53 100644
--- a/src/modules/wl_desktop_shell/meson.build
+++ b/src/modules/wl_desktop_shell/meson.build
@@ -5,14 +5,12 @@ else
 'e_mod_main.c',
 'e_mod_input_panel.c',
 'wl_shell.c',
-'xdg5.c',
 'xdg6.c',
 'xdg.c',
 'e_mod_main.h'
)
 
   foreach p: [
-
'@0@/unstable/xdg-shell/xdg-shell-unstable-v5.xml'.format(dir_wayland_protocols),
 
'@0@/unstable/xdg-shell/xdg-shell-unstable-v6.xml'.format(dir_wayland_protocols),
 '@0@/stable/xdg-shell/xdg-shell.xml'.format(dir_wayland_protocols),
 
'@0@/unstable/input-method/input-method-unstable-v1.xml'.format(dir_wayland_protocols),

-- 




[EGIT] [core/enlightenment] feature/xdg_shell_final 01/03: xdg-shell support

2018-01-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch feature/xdg_shell_final.

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

commit 4d4316bdefe6cac3fbb1369c19f61e07183cc0c9
Author: Mike Blumenkrantz 
Date:   Mon Jan 8 12:03:03 2018 -0500

xdg-shell support
---
 src/modules/wl_desktop_shell/e_mod_main.c |3 +-
 src/modules/wl_desktop_shell/e_mod_main.h |1 +
 src/modules/wl_desktop_shell/meson.build  |2 +
 src/modules/wl_desktop_shell/xdg.c| 1496 +
 4 files changed, 1500 insertions(+), 2 deletions(-)

diff --git a/src/modules/wl_desktop_shell/e_mod_main.c 
b/src/modules/wl_desktop_shell/e_mod_main.c
index 8bbe6472b..5a53317db 100644
--- a/src/modules/wl_desktop_shell/e_mod_main.c
+++ b/src/modules/wl_desktop_shell/e_mod_main.c
@@ -167,8 +167,7 @@ e_modapi_init(E_Module *m)
 return NULL;
  }
 
-   have_shell = e_xdg_shell_v5_init();
-   have_shell &= e_xdg_shell_v6_init();
+   have_shell = e_xdg_shell_v5_init() | e_xdg_shell_v6_init() | 
e_xdg_shell_init();
if (!have_shell) return NULL;
 
 #ifdef HAVE_WL_TEXT_INPUT
diff --git a/src/modules/wl_desktop_shell/e_mod_main.h 
b/src/modules/wl_desktop_shell/e_mod_main.h
index 4fa0795dc..95c467116 100644
--- a/src/modules/wl_desktop_shell/e_mod_main.h
+++ b/src/modules/wl_desktop_shell/e_mod_main.h
@@ -17,6 +17,7 @@ EINTERN E_Shell_Data *e_shell_data_new(unsigned int version);
 
 EINTERN Eina_Bool e_xdg_shell_v5_init(void);
 EINTERN Eina_Bool e_xdg_shell_v6_init(void);
+EINTERN Eina_Bool e_xdg_shell_init(void);
 EINTERN void wl_shell_cb_bind(struct wl_client *client, void *data 
EINA_UNUSED, uint32_t version, uint32_t id);
 
 struct E_Shell_Data
diff --git a/src/modules/wl_desktop_shell/meson.build 
b/src/modules/wl_desktop_shell/meson.build
index 3ab4915ac..33b26ab8c 100644
--- a/src/modules/wl_desktop_shell/meson.build
+++ b/src/modules/wl_desktop_shell/meson.build
@@ -7,12 +7,14 @@ else
 'wl_shell.c',
 'xdg5.c',
 'xdg6.c',
+'xdg.c',
 'e_mod_main.h'
)
 
   foreach p: [
 
'@0@/unstable/xdg-shell/xdg-shell-unstable-v5.xml'.format(dir_wayland_protocols),
 
'@0@/unstable/xdg-shell/xdg-shell-unstable-v6.xml'.format(dir_wayland_protocols),
+'@0@/stable/xdg-shell/xdg-shell.xml'.format(dir_wayland_protocols),
 
'@0@/unstable/input-method/input-method-unstable-v1.xml'.format(dir_wayland_protocols),
   ]
 src += gen_scanner_server.process(p)
diff --git a/src/modules/wl_desktop_shell/xdg.c 
b/src/modules/wl_desktop_shell/xdg.c
new file mode 100644
index 0..e5e47c197
--- /dev/null
+++ b/src/modules/wl_desktop_shell/xdg.c
@@ -0,0 +1,1496 @@
+#define E_COMP_WL
+#include "e.h"
+#include "e_mod_main.h"
+
+#include "xdg-shell-server-protocol.h"
+
+typedef enum
+{
+   STATE_MAXIMIZED = (1 << 0),
+   STATE_UNMAXIMIZED = (1 << 1),
+   STATE_FULLSCREEN = (1 << 2),
+   STATE_UNFULLSCREEN = (1 << 3),
+} State;
+
+typedef struct Pending_State
+{
+   State state;
+   uint32_t serial;
+} Pending_State;
+
+typedef struct vF_Shell_Data
+{
+   Eina_List *surfaces;
+   Eina_List *positioners;
+} vF_Shell_Data;
+
+typedef struct Positioner
+{
+   vF_Shell_Data *v;
+   struct wl_resource *res;
+   Evas_Coord_Size size;
+   Eina_Rectangle anchor_rect;
+   enum xdg_positioner_anchor anchor;
+   enum xdg_positioner_gravity gravity;
+   enum xdg_positioner_constraint_adjustment constrain;
+   Evas_Coord_Point offset;
+} Positioner;
+
+
+static void
+_e_xdg_shell_cb_destroy(struct wl_client *client EINA_UNUSED, struct 
wl_resource *resource)
+{
+   vF_Shell_Data *v = wl_resource_get_user_data(resource);
+   if (v->surfaces)
+ wl_resource_post_error(resource, XDG_WM_BASE_ERROR_DEFUNCT_SURFACES, 
"shell destroyed before surfaces");
+   wl_resource_destroy(resource);
+}
+
+static void
+_validate_size(struct wl_resource *resource, int32_t value)
+{
+   if (value <= 0)
+ wl_resource_post_error(resource, XDG_POSITIONER_ERROR_INVALID_INPUT, 
"Invalid size passed");
+}
+
+static void
+_validate_size_negative(struct wl_resource *resource, int32_t value)
+{
+   if (value <= 0)
+ wl_resource_post_error(resource, XDG_POSITIONER_ERROR_INVALID_INPUT, 
"Invalid size passed");
+}
+
+static void
+_e_xdg_positioner_set_size(struct wl_client *wl_client EINA_UNUSED, struct 
wl_resource *resource, int32_t w, int32_t h)
+{
+   Positioner *p = wl_resource_get_user_data(resource);
+
+   _validate_size(resource, w);
+   _validate_size(resource, h);
+
+   p->size.w = w;
+   p->size.h = h;
+}
+
+static void
+_e_xdg_positioner_set_anchor_rect(struct wl_client *wl_client EINA_UNUSED, 
struct wl_resource *resource, int32_t x, int32_t y, int32_t w, int32_t h)
+{
+   Positioner *p = wl_resource_get_user_data(resource);
+
+   _validate_size_negative(resource, w);
+   _validate_size_negative(resource, h);
+
+   EINA_RECTANGLE_SET(&p->anchor_rect, x, y, w, h);
+}
+
+static void
+_e_xdg_positioner_set_anchor(struct wl_client *wl_client EINA_UNUSED, struct 
wl_resou

[EGIT] [core/enlightenment] feature/xdg_shell_final 03/03: bump wayland-protocols version requirement

2018-01-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch feature/xdg_shell_final.

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

commit 55c86ffa4bf9177cefd38fdc1586d5e986cf75d3
Author: Mike Blumenkrantz 
Date:   Mon Jan 8 12:24:57 2018 -0500

bump wayland-protocols version requirement
---
 meson.build | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/meson.build b/meson.build
index 87c1abbee..7343174d4 100644
--- a/meson.build
+++ b/meson.build
@@ -267,7 +267,7 @@ dep_elementary   = dependency('elementary'  , 
required: true)
 
 dep_wayland = []
 if get_option('wayland') == true
-  wayland_protocols = dependency('wayland-protocols', version: '>= 1.9')
+  wayland_protocols = dependency('wayland-protocols', version: '>= 1.12')
   dir_wayland_protocols = 
wayland_protocols.get_pkgconfig_variable('pkgdatadir')
   wayland_version = '>= 1.11.0'
   dep_wayland = [ dependency('ecore-wl2'),
@@ -285,7 +285,7 @@ if get_option('wayland') == true
 requires_drm = 'ecore-drm2'
 dep_wayland += dep_ecore_drm2
   endif
-  requires_wayland = ' '.join([ 'wayland-protocols >= 1.9',
+  requires_wayland = ' '.join([ 'wayland-protocols >= 1.12',
 'ecore-wl2',
 'efl-wl',
 requires_drm,

-- 




[EGIT] [core/efl] master 01/01: ecore: remove use of efl_main_loop_get from example.

2018-01-08 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit 8428289c9489c5146d7e6d1eebde380a0d0ce19d
Author: Cedric BAIL 
Date:   Thu Jan 4 16:54:45 2018 -0800

ecore: remove use of efl_main_loop_get from example.
---
 .../ecore/efl_io_buffered_stream_example.c | 40 +-
 1 file changed, 16 insertions(+), 24 deletions(-)

diff --git a/src/examples/ecore/efl_io_buffered_stream_example.c 
b/src/examples/ecore/efl_io_buffered_stream_example.c
index aaf1a997bf..3338bae396 100644
--- a/src/examples/ecore/efl_io_buffered_stream_example.c
+++ b/src/examples/ecore/efl_io_buffered_stream_example.c
@@ -1,8 +1,5 @@
-#define EFL_BETA_API_SUPPORT 1
-#define EFL_EO_API_SUPPORT 1
-#include 
+#include 
 #include 
-#include 
 
 static int retval = EXIT_SUCCESS;
 static Eina_List *commands = NULL;
@@ -92,14 +89,14 @@ _stream_error(void *data EINA_UNUSED, const Efl_Event 
*event)
fprintf(stderr, "INFO: %s error: #%d '%s'\n",
efl_name_get(event->object), *perr, eina_error_msg_get(*perr));
retval = EXIT_FAILURE;
-   ecore_main_loop_quit();
+   efl_loop_quit(efl_loop_get(event->object), EINA_VALUE_EMPTY);
 }
 
 static void
 _stream_eos(void *data EINA_UNUSED, const Efl_Event *event)
 {
fprintf(stderr, "INFO: %s eos, quit\n", efl_name_get(event->object));
-   ecore_main_loop_quit();
+   efl_loop_quit(efl_loop_get(event->object), EINA_VALUE_EMPTY);
 }
 
 EFL_CALLBACKS_ARRAY_DEFINE(stream_cbs,
@@ -174,8 +171,9 @@ static const Ecore_Getopt options = {
   }
 };
 
-int
-main(int argc, char **argv)
+EAPI_MAIN void
+efl_main(void *data EINA_UNUSED,
+ const Efl_Event *ev)
 {
char *address = NULL;
char *line_delimiter_str = NULL;
@@ -200,12 +198,9 @@ main(int argc, char **argv)
};
Eina_Error err;
int args;
-   Eo *dialer, *loop;
+   Eo *dialer;
 
-   ecore_init();
-   ecore_con_init();
-
-   args = ecore_getopt_parse(&options, values, argc, argv);
+   args = ecore_getopt_parse(&options, values, 0, NULL);
if (args < 0)
  {
 fputs("ERROR: Could not parse command line options.\n", stderr);
@@ -215,7 +210,7 @@ main(int argc, char **argv)
 
if (quit_option) goto end;
 
-   args = ecore_getopt_parse_positional(&options, values, argc, argv, args);
+   args = ecore_getopt_parse_positional(&options, values, 0, NULL, args);
if (args < 0)
  {
 fputs("ERROR: Could not parse positional arguments.\n", stderr);
@@ -235,12 +230,10 @@ main(int argc, char **argv)
/*
 * some objects such as the Efl.Io.Buffered_Stream and
 * Efl.Net.Dialer.Tcp depend on main loop, thus their parent must
-* be a loop provider. We use the loop itself.
+* be a loop provider. We use the loop itself that come from event.
 */
-   loop = efl_main_loop_get();
-
/* The TCP client to use to send/receive network data */
-   dialer = efl_add(EFL_NET_DIALER_TCP_CLASS, loop,
+   dialer = efl_add(EFL_NET_DIALER_TCP_CLASS, ev->object,
 efl_name_set(efl_added, "dialer"),
 efl_event_callback_add(efl_added, 
EFL_NET_DIALER_EVENT_CONNECTED, _dialer_connected, NULL));
if (!dialer)
@@ -263,7 +256,7 @@ main(int argc, char **argv)
 *
 * On incoming data we peek at it with slice_get() and then clear().
 */
-   stream = efl_add(EFL_IO_BUFFERED_STREAM_CLASS, loop,
+   stream = efl_add(EFL_IO_BUFFERED_STREAM_CLASS, ev->object,
 efl_name_set(efl_added, "stream"),
 efl_io_buffered_stream_inner_io_set(efl_added, dialer), /* 
mandatory! */
 efl_io_buffered_stream_line_delimiter_set(efl_added, 
line_delimiter),
@@ -289,7 +282,7 @@ main(int argc, char **argv)
 goto error_dialing;
  }
 
-   ecore_main_loop_begin();
+   return ;
 
  error_dialing:
efl_io_closer_close(stream);
@@ -303,8 +296,7 @@ main(int argc, char **argv)
 free(cmd);
  }
 
-   ecore_con_shutdown();
-   ecore_shutdown();
-
-   return retval;
+   efl_loop_quit(ev->object, eina_value_int_init(retval));
 }
+
+EFL_MAIN();

-- 




[EGIT] [core/efl] feature/xdg_shell_final 01/02: efl-wl: move to xdg-shell vfinal

2018-01-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch feature/xdg_shell_final.

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

commit 1af4a625795a06bcfb5a52986f95bc7f0f1d6e6e
Author: Mike Blumenkrantz 
Date:   Mon Jan 8 12:53:57 2018 -0500

efl-wl: move to xdg-shell vfinal

@feature
---
 src/Makefile_efl_wl.am  |   4 +-
 src/lib/efl_wl/Efl_Wl.h |   2 +-
 src/lib/efl_wl/efl_wl.c | 217 +++-
 3 files changed, 125 insertions(+), 98 deletions(-)

diff --git a/src/Makefile_efl_wl.am b/src/Makefile_efl_wl.am
index ac3c00db69..d90002e17b 100644
--- a/src/Makefile_efl_wl.am
+++ b/src/Makefile_efl_wl.am
@@ -14,8 +14,8 @@ lib/efl_wl/dmabuf.h
 nodist_lib_efl_wl_libefl_wl_la_SOURCES = \
 lib/efl_wl/linux-dmabuf-unstable-v1-protocol.c \
 lib/efl_wl/linux-dmabuf-unstable-v1-server-protocol.h \
-lib/efl_wl/xdg-shell-unstable-v6-protocol.c \
-lib/efl_wl/xdg-shell-unstable-v6-server-protocol.h \
+lib/efl_wl/xdg-shell-protocol.c \
+lib/efl_wl/xdg-shell-server-protocol.h \
 lib/efl_wl/efl-hints-protocol.c \
 lib/efl_wl/efl-hints-server-protocol.h
 
diff --git a/src/lib/efl_wl/Efl_Wl.h b/src/lib/efl_wl/Efl_Wl.h
index c6af024105..1d86093e33 100644
--- a/src/lib/efl_wl/Efl_Wl.h
+++ b/src/lib/efl_wl/Efl_Wl.h
@@ -34,7 +34,7 @@
 /**
  * @defgroup Efl_Wl_Group EFL Wayland
  *
- * A multiseat Wayland compositor in an Evas object.
+ * A multiseat xdg-shell compliant Wayland compositor in an Evas object.
  * All toplevel windows will be sized to the size of the compositor object.
  * @since 1.20
  * @{
diff --git a/src/lib/efl_wl/efl_wl.c b/src/lib/efl_wl/efl_wl.c
index 0943dbe3f8..5880f62e30 100644
--- a/src/lib/efl_wl/efl_wl.c
+++ b/src/lib/efl_wl/efl_wl.c
@@ -26,7 +26,7 @@
  * the opaque struct client side.
  */
 #include 
-#include "xdg-shell-unstable-v6-server-protocol.h"
+#include "xdg-shell-server-protocol.h"
 #include "efl-hints-server-protocol.h"
 #include "dmabuf.h"
 
@@ -281,9 +281,9 @@ typedef struct Shell_Positioner
struct wl_resource *res;
Evas_Coord_Size size;
Eina_Rectangle anchor_rect;
-   enum zxdg_positioner_v6_anchor anchor;
-   enum zxdg_positioner_v6_gravity gravity;
-   enum zxdg_positioner_v6_constraint_adjustment constrain;
+   enum xdg_positioner_anchor anchor;
+   enum xdg_positioner_gravity gravity;
+   enum xdg_positioner_constraint_adjustment constrain;
Evas_Coord_Point offset;
 } Shell_Positioner;
 
@@ -734,19 +734,19 @@ resource_destroy(struct wl_client *client EINA_UNUSED, 
struct wl_resource *resou
 static int
 _apply_positioner_x(int x, Shell_Positioner *sp, Eina_Bool invert)
 {
-   enum zxdg_positioner_v6_anchor an = ZXDG_POSITIONER_V6_ANCHOR_NONE;
-   enum zxdg_positioner_v6_gravity grav = ZXDG_POSITIONER_V6_GRAVITY_NONE;
+   enum xdg_positioner_anchor an = XDG_POSITIONER_ANCHOR_NONE;
+   enum xdg_positioner_gravity grav = XDG_POSITIONER_GRAVITY_NONE;
 
if (invert)
  {
-if (sp->anchor & ZXDG_POSITIONER_V6_ANCHOR_LEFT)
-  an |= ZXDG_POSITIONER_V6_ANCHOR_RIGHT;
-else if (sp->anchor & ZXDG_POSITIONER_V6_ANCHOR_RIGHT)
-  an |= ZXDG_POSITIONER_V6_ANCHOR_LEFT;
-if (sp->gravity & ZXDG_POSITIONER_V6_GRAVITY_LEFT)
-  grav |= ZXDG_POSITIONER_V6_GRAVITY_RIGHT;
-else if (sp->gravity & ZXDG_POSITIONER_V6_GRAVITY_RIGHT)
-  grav |= ZXDG_POSITIONER_V6_GRAVITY_LEFT;
+if (sp->anchor == XDG_POSITIONER_ANCHOR_LEFT)
+  an = XDG_POSITIONER_ANCHOR_RIGHT;
+else if (sp->anchor == XDG_POSITIONER_ANCHOR_RIGHT)
+  an = XDG_POSITIONER_ANCHOR_LEFT;
+if (sp->gravity & XDG_POSITIONER_GRAVITY_LEFT)
+  grav |= XDG_POSITIONER_GRAVITY_RIGHT;
+else if (sp->gravity & XDG_POSITIONER_GRAVITY_RIGHT)
+  grav |= XDG_POSITIONER_GRAVITY_LEFT;
  }
else
  {
@@ -755,20 +755,20 @@ _apply_positioner_x(int x, Shell_Positioner *sp, 
Eina_Bool invert)
  }
 
/* left edge */
-   if (an & ZXDG_POSITIONER_V6_ANCHOR_LEFT)
+   if (an == XDG_POSITIONER_ANCHOR_LEFT)
  x += sp->anchor_rect.x;
/* right edge */
-   else if (an & ZXDG_POSITIONER_V6_ANCHOR_RIGHT)
+   else if (an == XDG_POSITIONER_ANCHOR_RIGHT)
  x += sp->anchor_rect.x + sp->anchor_rect.w;
/* center */
else
  x += sp->anchor_rect.x + (sp->anchor_rect.w / 2);
 
/* flip left over anchor */
-   if (grav & ZXDG_POSITIONER_V6_GRAVITY_LEFT)
+   if (grav & XDG_POSITIONER_GRAVITY_LEFT)
  x -= sp->size.w;
/* center on anchor */
-   else if (!(grav & ZXDG_POSITIONER_V6_GRAVITY_RIGHT))
+   else if (!(grav & XDG_POSITIONER_GRAVITY_RIGHT))
  x -= sp->size.w / 2;
return x;
 }
@@ -776,19 +776,19 @@ _apply_positioner_x(int x, Shell_Positioner *sp, 
Eina_Bool invert)
 static int
 _apply_positioner_y(int y, Shell_Positioner *sp, Eina_Bool invert)
 {
-   enum zxdg_positioner_v6_anchor an = ZXDG_POSITIONER_V6_ANCHOR_NONE;
-   enum zxdg_positioner_v6_gravity grav = ZXDG_POSITIONER_V6_GRAVITY_NONE;
+   enum xdg_positioner

[EGIT] [core/efl] feature/xdg_shell_final 02/02: wayland: add xdg-shell vfinal support for client-side

2018-01-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch feature/xdg_shell_final.

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

commit d055cf8b2b04efe1f317aaab41c9e455c6357b4a
Author: Mike Blumenkrantz 
Date:   Mon Jan 8 13:42:11 2018 -0500

wayland: add xdg-shell vfinal support for client-side

@feature
---
 configure.ac   |   2 +-
 src/Makefile_Ecore_Wl2.am  |   6 +
 src/lib/ecore_wl2/ecore_wl2_display.c  |  33 +-
 src/lib/ecore_wl2/ecore_wl2_private.h  |  10 +
 src/lib/ecore_wl2/ecore_wl2_window.c   | 387 +
 src/lib/ecore_wl2/window_v6.x  | 188 ++
 src/lib/elementary/efl_ui_win.c|   5 +-
 .../engines/wayland/ecore_evas_wayland_common.c|  34 ++
 src/wayland_protocol/efl-hints.xml |   4 +-
 9 files changed, 511 insertions(+), 158 deletions(-)

diff --git a/configure.ac b/configure.ac
index c399877c59..8043adfecf 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2141,7 +2141,7 @@ AC_ARG_ENABLE([wayland],
[want_wayland="no"])
 
 if test "${want_wayland}" = "yes"; then
-   EFL_PKG_CHECK_STRICT([wayland-client >= 1.11.0 wayland-scanner >= 1.11.0 
wayland-protocols >= 1.9])
+   EFL_PKG_CHECK_STRICT([wayland-client >= 1.11.0 wayland-scanner >= 1.11.0 
wayland-protocols >= 1.12])
PKG_CHECK_MODULES([WAYLAND], [wayland-scanner >= 1.11.0],
 [
   AC_ARG_VAR([wayland_scanner], [The wayland-scanner executable])
diff --git a/src/Makefile_Ecore_Wl2.am b/src/Makefile_Ecore_Wl2.am
index a794d0b3ba..311cd27eec 100644
--- a/src/Makefile_Ecore_Wl2.am
+++ b/src/Makefile_Ecore_Wl2.am
@@ -40,6 +40,8 @@ lib/ecore_wl2/www-client-protocol.h \
 lib/ecore_wl2/www-protocol.c \
 lib/ecore_wl2/linux-dmabuf-unstable-v1-protocol.c \
 lib/ecore_wl2/linux-dmabuf-unstable-v1-client-protocol.h \
+lib/ecore_wl2/xdg-shell-client-protocol.h \
+lib/ecore_wl2/xdg-shell-protocol.c \
 lib/ecore_wl2/xdg-shell-unstable-v6-client-protocol.h \
 lib/ecore_wl2/xdg-shell-unstable-v6-protocol.c \
 lib/ecore_wl2/text-input-unstable-v1-client-protocol.h \
@@ -59,6 +61,8 @@ lib/ecore_wl2/efl-aux-hints-client-protocol.h \
  lib/ecore_wl2/www-protocol.c \
  lib/ecore_wl2/teamwork-protocol.c \
  lib/ecore_wl2/teamwork-client-protocol.h \
+ lib/ecore_wl2/xdg-shell-client-protocol.h \
+ lib/ecore_wl2/xdg-shell-protocol.c \
  lib/ecore_wl2/xdg-shell-unstable-v6-client-protocol.h \
  lib/ecore_wl2/xdg-shell-unstable-v6-protocol.c \
  lib/ecore_wl2/linux-dmabuf-unstable-v1-protocol.c \
@@ -70,4 +74,6 @@ lib/ecore_wl2/efl-aux-hints-client-protocol.h \
 lib/ecore_wl2/efl-hints-client-protocol.h \
 lib/ecore_wl2/efl-hints-protocol.c
 
+EXTRA_DIST2 += lib/ecore_wl2/window_v6.x
+
 endif
diff --git a/src/lib/ecore_wl2/ecore_wl2_display.c 
b/src/lib/ecore_wl2/ecore_wl2_display.c
index 9785406d97..740090c23a 100644
--- a/src/lib/ecore_wl2/ecore_wl2_display.c
+++ b/src/lib/ecore_wl2/ecore_wl2_display.c
@@ -59,6 +59,17 @@ static const struct zwp_linux_dmabuf_v1_listener 
_dmabuf_listener =
 };
 
 static void
+_xdg_shell_cb_ping(void *data EINA_UNUSED, struct xdg_wm_base *shell, uint32_t 
serial)
+{
+   xdg_wm_base_pong(shell, serial);
+}
+
+static const struct xdg_wm_base_listener _xdg_shell_listener =
+{
+   _xdg_shell_cb_ping,
+};
+
+static void
 _zxdg_shell_cb_ping(void *data EINA_UNUSED, struct zxdg_shell_v6 *shell, 
uint32_t serial)
 {
zxdg_shell_v6_pong(shell, serial);
@@ -337,13 +348,13 @@ _cb_global_add(void *data, struct wl_registry *registry, 
unsigned int id, const
 ewd->wl.efl_hints = wl_registry_bind(registry, id, 
&efl_hints_interface, MIN(version, 2));
 EINA_INLIST_FOREACH(ewd->windows, window)
   {
- if (!window->zxdg_surface) continue;
+ if (!window->xdg_surface) continue;
  if (window->aspect.set)
-   efl_hints_set_aspect(window->display->wl.efl_hints, 
window->zxdg_surface,
+   efl_hints_set_aspect(window->display->wl.efl_hints, 
window->xdg_surface,
  window->aspect.w, window->aspect.h, window->aspect.aspect);
  if (window->weight.set)
efl_hints_set_weight(window->display->wl.efl_hints,
- window->zxdg_surface, window->weight.w, window->weight.h);
+ window->xdg_surface, window->weight.w, window->weight.h);
   }
  }
 
@@ -438,6 +449,7 @@ _ecore_wl2_display_globals_cleanup(Ecore_Wl2_Display *ewd)
if (ewd->wl.session_recovery)
  zwp_e_session_recovery_destroy(ewd->wl.session_recovery);
if (ewd->wl.www) www_destroy(ewd->wl.www);
+   if (ewd->wl.xdg_wm_base) xdg_wm_base_destroy(ewd->wl.xdg_wm_base);
if (ewd->wl.zxdg_shell) zxdg_shell_v6_destroy(ewd->wl.zxdg_shell);
if (ewd->wl.shm) wl_shm_destroy(ewd->wl.shm);
if (ewd->wl.data_device_manager)
@@ -488,6 +500,9 @@ _recovery_timer_add(Ecore_Wl2_Display *ewd)
 _ecore_wl2_wind

[EGIT] [core/efl] feature/xdg_shell_final 01/02: efl-wl: move to xdg-shell vfinal

2018-01-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch feature/xdg_shell_final.

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

commit 1af4a625795a06bcfb5a52986f95bc7f0f1d6e6e
Author: Mike Blumenkrantz 
Date:   Mon Jan 8 12:53:57 2018 -0500

efl-wl: move to xdg-shell vfinal

@feature
---
 src/Makefile_efl_wl.am  |   4 +-
 src/lib/efl_wl/Efl_Wl.h |   2 +-
 src/lib/efl_wl/efl_wl.c | 217 +++-
 3 files changed, 125 insertions(+), 98 deletions(-)

diff --git a/src/Makefile_efl_wl.am b/src/Makefile_efl_wl.am
index ac3c00db69..d90002e17b 100644
--- a/src/Makefile_efl_wl.am
+++ b/src/Makefile_efl_wl.am
@@ -14,8 +14,8 @@ lib/efl_wl/dmabuf.h
 nodist_lib_efl_wl_libefl_wl_la_SOURCES = \
 lib/efl_wl/linux-dmabuf-unstable-v1-protocol.c \
 lib/efl_wl/linux-dmabuf-unstable-v1-server-protocol.h \
-lib/efl_wl/xdg-shell-unstable-v6-protocol.c \
-lib/efl_wl/xdg-shell-unstable-v6-server-protocol.h \
+lib/efl_wl/xdg-shell-protocol.c \
+lib/efl_wl/xdg-shell-server-protocol.h \
 lib/efl_wl/efl-hints-protocol.c \
 lib/efl_wl/efl-hints-server-protocol.h
 
diff --git a/src/lib/efl_wl/Efl_Wl.h b/src/lib/efl_wl/Efl_Wl.h
index c6af024105..1d86093e33 100644
--- a/src/lib/efl_wl/Efl_Wl.h
+++ b/src/lib/efl_wl/Efl_Wl.h
@@ -34,7 +34,7 @@
 /**
  * @defgroup Efl_Wl_Group EFL Wayland
  *
- * A multiseat Wayland compositor in an Evas object.
+ * A multiseat xdg-shell compliant Wayland compositor in an Evas object.
  * All toplevel windows will be sized to the size of the compositor object.
  * @since 1.20
  * @{
diff --git a/src/lib/efl_wl/efl_wl.c b/src/lib/efl_wl/efl_wl.c
index 0943dbe3f8..5880f62e30 100644
--- a/src/lib/efl_wl/efl_wl.c
+++ b/src/lib/efl_wl/efl_wl.c
@@ -26,7 +26,7 @@
  * the opaque struct client side.
  */
 #include 
-#include "xdg-shell-unstable-v6-server-protocol.h"
+#include "xdg-shell-server-protocol.h"
 #include "efl-hints-server-protocol.h"
 #include "dmabuf.h"
 
@@ -281,9 +281,9 @@ typedef struct Shell_Positioner
struct wl_resource *res;
Evas_Coord_Size size;
Eina_Rectangle anchor_rect;
-   enum zxdg_positioner_v6_anchor anchor;
-   enum zxdg_positioner_v6_gravity gravity;
-   enum zxdg_positioner_v6_constraint_adjustment constrain;
+   enum xdg_positioner_anchor anchor;
+   enum xdg_positioner_gravity gravity;
+   enum xdg_positioner_constraint_adjustment constrain;
Evas_Coord_Point offset;
 } Shell_Positioner;
 
@@ -734,19 +734,19 @@ resource_destroy(struct wl_client *client EINA_UNUSED, 
struct wl_resource *resou
 static int
 _apply_positioner_x(int x, Shell_Positioner *sp, Eina_Bool invert)
 {
-   enum zxdg_positioner_v6_anchor an = ZXDG_POSITIONER_V6_ANCHOR_NONE;
-   enum zxdg_positioner_v6_gravity grav = ZXDG_POSITIONER_V6_GRAVITY_NONE;
+   enum xdg_positioner_anchor an = XDG_POSITIONER_ANCHOR_NONE;
+   enum xdg_positioner_gravity grav = XDG_POSITIONER_GRAVITY_NONE;
 
if (invert)
  {
-if (sp->anchor & ZXDG_POSITIONER_V6_ANCHOR_LEFT)
-  an |= ZXDG_POSITIONER_V6_ANCHOR_RIGHT;
-else if (sp->anchor & ZXDG_POSITIONER_V6_ANCHOR_RIGHT)
-  an |= ZXDG_POSITIONER_V6_ANCHOR_LEFT;
-if (sp->gravity & ZXDG_POSITIONER_V6_GRAVITY_LEFT)
-  grav |= ZXDG_POSITIONER_V6_GRAVITY_RIGHT;
-else if (sp->gravity & ZXDG_POSITIONER_V6_GRAVITY_RIGHT)
-  grav |= ZXDG_POSITIONER_V6_GRAVITY_LEFT;
+if (sp->anchor == XDG_POSITIONER_ANCHOR_LEFT)
+  an = XDG_POSITIONER_ANCHOR_RIGHT;
+else if (sp->anchor == XDG_POSITIONER_ANCHOR_RIGHT)
+  an = XDG_POSITIONER_ANCHOR_LEFT;
+if (sp->gravity & XDG_POSITIONER_GRAVITY_LEFT)
+  grav |= XDG_POSITIONER_GRAVITY_RIGHT;
+else if (sp->gravity & XDG_POSITIONER_GRAVITY_RIGHT)
+  grav |= XDG_POSITIONER_GRAVITY_LEFT;
  }
else
  {
@@ -755,20 +755,20 @@ _apply_positioner_x(int x, Shell_Positioner *sp, 
Eina_Bool invert)
  }
 
/* left edge */
-   if (an & ZXDG_POSITIONER_V6_ANCHOR_LEFT)
+   if (an == XDG_POSITIONER_ANCHOR_LEFT)
  x += sp->anchor_rect.x;
/* right edge */
-   else if (an & ZXDG_POSITIONER_V6_ANCHOR_RIGHT)
+   else if (an == XDG_POSITIONER_ANCHOR_RIGHT)
  x += sp->anchor_rect.x + sp->anchor_rect.w;
/* center */
else
  x += sp->anchor_rect.x + (sp->anchor_rect.w / 2);
 
/* flip left over anchor */
-   if (grav & ZXDG_POSITIONER_V6_GRAVITY_LEFT)
+   if (grav & XDG_POSITIONER_GRAVITY_LEFT)
  x -= sp->size.w;
/* center on anchor */
-   else if (!(grav & ZXDG_POSITIONER_V6_GRAVITY_RIGHT))
+   else if (!(grav & XDG_POSITIONER_GRAVITY_RIGHT))
  x -= sp->size.w / 2;
return x;
 }
@@ -776,19 +776,19 @@ _apply_positioner_x(int x, Shell_Positioner *sp, 
Eina_Bool invert)
 static int
 _apply_positioner_y(int y, Shell_Positioner *sp, Eina_Bool invert)
 {
-   enum zxdg_positioner_v6_anchor an = ZXDG_POSITIONER_V6_ANCHOR_NONE;
-   enum zxdg_positioner_v6_gravity grav = ZXDG_POSITIONER_V6_GRAVITY_NONE;
+   enum xdg_positioner

[EGIT] [core/efl] feature/xdg_shell_final 02/02: wayland: add xdg-shell vfinal support for client-side

2018-01-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch feature/xdg_shell_final.

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

commit 25b2f2525b2394805eb16fec6606016836e821e0
Author: Mike Blumenkrantz 
Date:   Mon Jan 8 13:42:11 2018 -0500

wayland: add xdg-shell vfinal support for client-side

@feature
---
 configure.ac   |   2 +-
 src/Makefile_Ecore_Wl2.am  |   6 +
 src/lib/ecore_wl2/ecore_wl2_display.c  |  33 +-
 src/lib/ecore_wl2/ecore_wl2_private.h  |  10 +
 src/lib/ecore_wl2/ecore_wl2_window.c   | 388 +
 src/lib/ecore_wl2/window_v6.x  | 188 ++
 src/lib/elementary/efl_ui_win.c|   5 +-
 .../engines/wayland/ecore_evas_wayland_common.c|  34 ++
 src/wayland_protocol/efl-hints.xml |   4 +-
 9 files changed, 511 insertions(+), 159 deletions(-)

diff --git a/configure.ac b/configure.ac
index c399877c59..8043adfecf 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2141,7 +2141,7 @@ AC_ARG_ENABLE([wayland],
[want_wayland="no"])
 
 if test "${want_wayland}" = "yes"; then
-   EFL_PKG_CHECK_STRICT([wayland-client >= 1.11.0 wayland-scanner >= 1.11.0 
wayland-protocols >= 1.9])
+   EFL_PKG_CHECK_STRICT([wayland-client >= 1.11.0 wayland-scanner >= 1.11.0 
wayland-protocols >= 1.12])
PKG_CHECK_MODULES([WAYLAND], [wayland-scanner >= 1.11.0],
 [
   AC_ARG_VAR([wayland_scanner], [The wayland-scanner executable])
diff --git a/src/Makefile_Ecore_Wl2.am b/src/Makefile_Ecore_Wl2.am
index a794d0b3ba..311cd27eec 100644
--- a/src/Makefile_Ecore_Wl2.am
+++ b/src/Makefile_Ecore_Wl2.am
@@ -40,6 +40,8 @@ lib/ecore_wl2/www-client-protocol.h \
 lib/ecore_wl2/www-protocol.c \
 lib/ecore_wl2/linux-dmabuf-unstable-v1-protocol.c \
 lib/ecore_wl2/linux-dmabuf-unstable-v1-client-protocol.h \
+lib/ecore_wl2/xdg-shell-client-protocol.h \
+lib/ecore_wl2/xdg-shell-protocol.c \
 lib/ecore_wl2/xdg-shell-unstable-v6-client-protocol.h \
 lib/ecore_wl2/xdg-shell-unstable-v6-protocol.c \
 lib/ecore_wl2/text-input-unstable-v1-client-protocol.h \
@@ -59,6 +61,8 @@ lib/ecore_wl2/efl-aux-hints-client-protocol.h \
  lib/ecore_wl2/www-protocol.c \
  lib/ecore_wl2/teamwork-protocol.c \
  lib/ecore_wl2/teamwork-client-protocol.h \
+ lib/ecore_wl2/xdg-shell-client-protocol.h \
+ lib/ecore_wl2/xdg-shell-protocol.c \
  lib/ecore_wl2/xdg-shell-unstable-v6-client-protocol.h \
  lib/ecore_wl2/xdg-shell-unstable-v6-protocol.c \
  lib/ecore_wl2/linux-dmabuf-unstable-v1-protocol.c \
@@ -70,4 +74,6 @@ lib/ecore_wl2/efl-aux-hints-client-protocol.h \
 lib/ecore_wl2/efl-hints-client-protocol.h \
 lib/ecore_wl2/efl-hints-protocol.c
 
+EXTRA_DIST2 += lib/ecore_wl2/window_v6.x
+
 endif
diff --git a/src/lib/ecore_wl2/ecore_wl2_display.c 
b/src/lib/ecore_wl2/ecore_wl2_display.c
index 9785406d97..740090c23a 100644
--- a/src/lib/ecore_wl2/ecore_wl2_display.c
+++ b/src/lib/ecore_wl2/ecore_wl2_display.c
@@ -59,6 +59,17 @@ static const struct zwp_linux_dmabuf_v1_listener 
_dmabuf_listener =
 };
 
 static void
+_xdg_shell_cb_ping(void *data EINA_UNUSED, struct xdg_wm_base *shell, uint32_t 
serial)
+{
+   xdg_wm_base_pong(shell, serial);
+}
+
+static const struct xdg_wm_base_listener _xdg_shell_listener =
+{
+   _xdg_shell_cb_ping,
+};
+
+static void
 _zxdg_shell_cb_ping(void *data EINA_UNUSED, struct zxdg_shell_v6 *shell, 
uint32_t serial)
 {
zxdg_shell_v6_pong(shell, serial);
@@ -337,13 +348,13 @@ _cb_global_add(void *data, struct wl_registry *registry, 
unsigned int id, const
 ewd->wl.efl_hints = wl_registry_bind(registry, id, 
&efl_hints_interface, MIN(version, 2));
 EINA_INLIST_FOREACH(ewd->windows, window)
   {
- if (!window->zxdg_surface) continue;
+ if (!window->xdg_surface) continue;
  if (window->aspect.set)
-   efl_hints_set_aspect(window->display->wl.efl_hints, 
window->zxdg_surface,
+   efl_hints_set_aspect(window->display->wl.efl_hints, 
window->xdg_surface,
  window->aspect.w, window->aspect.h, window->aspect.aspect);
  if (window->weight.set)
efl_hints_set_weight(window->display->wl.efl_hints,
- window->zxdg_surface, window->weight.w, window->weight.h);
+ window->xdg_surface, window->weight.w, window->weight.h);
   }
  }
 
@@ -438,6 +449,7 @@ _ecore_wl2_display_globals_cleanup(Ecore_Wl2_Display *ewd)
if (ewd->wl.session_recovery)
  zwp_e_session_recovery_destroy(ewd->wl.session_recovery);
if (ewd->wl.www) www_destroy(ewd->wl.www);
+   if (ewd->wl.xdg_wm_base) xdg_wm_base_destroy(ewd->wl.xdg_wm_base);
if (ewd->wl.zxdg_shell) zxdg_shell_v6_destroy(ewd->wl.zxdg_shell);
if (ewd->wl.shm) wl_shm_destroy(ewd->wl.shm);
if (ewd->wl.data_device_manager)
@@ -488,6 +500,9 @@ _recovery_timer_add(Ecore_Wl2_Display *ewd)
 _ecore_wl2_wind

[EGIT] [core/efl] master 01/02: ecore: remove more use of main loop reference from unified API example.

2018-01-08 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit dbba64a5f9564c3631975bdf2cbc07f6ad87c001
Author: Cedric BAIL 
Date:   Mon Jan 8 13:19:48 2018 -0800

ecore: remove more use of main loop reference from unified API example.
---
 src/examples/ecore/efl_io_copier_example.c | 95 ++
 1 file changed, 57 insertions(+), 38 deletions(-)

diff --git a/src/examples/ecore/efl_io_copier_example.c 
b/src/examples/ecore/efl_io_copier_example.c
index 603da4dda0..016b4486f5 100644
--- a/src/examples/ecore/efl_io_copier_example.c
+++ b/src/examples/ecore/efl_io_copier_example.c
@@ -1,7 +1,4 @@
-#define EFL_BETA_API_SUPPORT 1
-#define EFL_EO_API_SUPPORT 1
-#include 
-#include 
+#include 
 #include 
 #include 
 
@@ -200,7 +197,7 @@ _copier_done(void *data EINA_UNUSED, const Efl_Event *event)
  }
 
fprintf(stderr, "INFO: done\n");
-   ecore_main_loop_quit();
+   efl_loop_quit(efl_loop_get(event->object), EINA_VALUE_EMPTY);
 }
 
 static void
@@ -209,7 +206,7 @@ _copier_error(void *data EINA_UNUSED, const Efl_Event 
*event)
const Eina_Error *perr = event->info;
fprintf(stderr, "INFO: error: %d '%s'\n", *perr, eina_error_msg_get(*perr));
retval = EXIT_FAILURE;
-   ecore_main_loop_quit();
+   efl_loop_quit(efl_loop_get(event->object), EINA_VALUE_EMPTY);
 }
 
 static void
@@ -362,8 +359,38 @@ static const Ecore_Getopt options = {
   }
 };
 
-int
-main(int argc, char **argv)
+static Eo *copier = NULL;
+
+EAPI_MAIN void
+efl_pause(void *data EINA_UNUSED,
+  const Efl_Event *ev EINA_UNUSED)
+{
+}
+
+EAPI_MAIN void
+efl_resume(void *data EINA_UNUSED,
+   const Efl_Event *ev EINA_UNUSED)
+{
+}
+
+EAPI_MAIN void
+efl_terminate(void *data EINA_UNUSED,
+  const Efl_Event *ev EINA_UNUSED)
+{
+   /* FIXME: For the moment the main loop doesn't get
+  properly destroyed on shutdown which disallow
+  relying on parent destroying their children */
+   if (copier)
+ {
+efl_io_closer_close(copier);
+efl_del(copier);
+ }
+   copier = NULL;
+}
+
+EAPI_MAIN void
+efl_main(void *data EINA_UNUSED,
+ const Efl_Event *ev)
 {
char *input_fname = NULL;
char *output_fname = NULL;
@@ -394,14 +421,10 @@ main(int argc, char **argv)
  ECORE_GETOPT_VALUE_NONE /* sentinel */
};
int args;
-   Eo *input, *output, *copier;
+   Eo *input, *output;
Eina_Slice line_delm_slice = EINA_SLICE_STR_LITERAL("");
 
-   ecore_init();
-   ecore_con_init();
-   ecore_con_url_init();
-
-   args = ecore_getopt_parse(&options, values, argc, argv);
+   args = ecore_getopt_parse(&options, values, 0, NULL);
if (args < 0)
  {
 fputs("ERROR: Could not parse command line options.\n", stderr);
@@ -411,7 +434,7 @@ main(int argc, char **argv)
 
if (quit_option) goto end;
 
-   args = ecore_getopt_parse_positional(&options, values, argc, argv, args);
+   args = ecore_getopt_parse_positional(&options, values, 0, NULL, args);
if (args < 0)
  {
 fputs("ERROR: Could not parse positional arguments.\n", stderr);
@@ -446,7 +469,7 @@ main(int argc, char **argv)
  */
 const char *address = input_fname + strlen("tcp://");
 Eina_Error err;
-input = efl_add(EFL_NET_DIALER_TCP_CLASS, efl_main_loop_get(),
+input = efl_add(EFL_NET_DIALER_TCP_CLASS, ev->object,
 efl_event_callback_array_add(efl_added, input_cbs(), 
NULL), /* optional */
 efl_event_callback_array_add(efl_added, dialer_cbs(), 
NULL) /* optional */
 );
@@ -470,7 +493,7 @@ main(int argc, char **argv)
  {
 Eina_Error err;
 
-input = efl_add(EFL_NET_DIALER_HTTP_CLASS, efl_main_loop_get(),
+input = efl_add(EFL_NET_DIALER_HTTP_CLASS, ev->object,
 efl_net_dialer_http_method_set(efl_added, "GET"),
 efl_event_callback_array_add(efl_added, input_cbs(), 
NULL), /* optional */
 efl_event_callback_array_add(efl_added, dialer_cbs(), 
NULL), /* optional */
@@ -496,7 +519,7 @@ main(int argc, char **argv)
  {
 Eina_Error err;
 
-input = efl_add(EFL_NET_DIALER_WEBSOCKET_CLASS, efl_main_loop_get(),
+input = efl_add(EFL_NET_DIALER_WEBSOCKET_CLASS, ev->object,
  
efl_net_dialer_websocket_streaming_mode_set(efl_added, 
EFL_NET_DIALER_WEBSOCKET_STREAMING_MODE_TEXT),
 efl_event_callback_array_add(efl_added, input_cbs(), 
NULL), /* optional */
 efl_event_callback_array_add(efl_added, dialer_cbs(), 
NULL) /* optional */
@@ -525,7 +548,7 @@ main(int argc, char **argv)
 const char *bind_address = input_fname + strlen("udp://");
 const char *address;
 Eina_Error err;
-input = efl_add(EFL_NET_DIALER_UDP_CLASS, efl_main_loop_get(),
+input = efl_add(EFL_NET_DIA

[EGIT] [core/efl] master 02/02: ecore: make loop quit exit code work with EINA_VALUE_EMPTY.

2018-01-08 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit 1f28dce02819892c46cc9b191ac18720c5b2cf7a
Author: Cedric BAIL 
Date:   Mon Jan 8 13:40:02 2018 -0800

ecore: make loop quit exit code work with EINA_VALUE_EMPTY.
---
 src/lib/ecore/efl_loop.c | 12 +++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/src/lib/ecore/efl_loop.c b/src/lib/ecore/efl_loop.c
index 9a09a16c1d..333fe1de7d 100644
--- a/src/lib/ecore/efl_loop.c
+++ b/src/lib/ecore/efl_loop.c
@@ -143,9 +143,19 @@ _efl_loop_efl_object_provider_find(const Eo *obj, 
Efl_Loop_Data *pd, const Efl_O
 EAPI int
 efl_loop_exit_code_process(Eina_Value *value)
 {
-   const Eina_Value_Type *t = eina_value_type_get(value);
+   Eina_Value def = EINA_VALUE_EMPTY;
+   const Eina_Value_Type *t;
int r = 0;
 
+   if (value == NULL ||
+   !value->type)
+ {
+def = eina_value_int_init(0);
+value = &def;
+ }
+
+   t = eina_value_type_get(value);
+
if (t == EINA_VALUE_TYPE_UCHAR ||
t == EINA_VALUE_TYPE_USHORT ||
t == EINA_VALUE_TYPE_UINT ||

-- 




[EGIT] [core/efl] master 01/04: ecore: remove use of efl_main_loop_get from efl_io_copier_simple_example.

2018-01-08 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit e38a5b1234708a23cdf4f58118027e78a7374501
Author: Cedric BAIL 
Date:   Mon Jan 8 15:47:18 2018 -0800

ecore: remove use of efl_main_loop_get from efl_io_copier_simple_example.
---
 src/examples/ecore/efl_io_copier_simple_example.c | 63 ++-
 1 file changed, 40 insertions(+), 23 deletions(-)

diff --git a/src/examples/ecore/efl_io_copier_simple_example.c 
b/src/examples/ecore/efl_io_copier_simple_example.c
index 0b0410401e..ee945cce7b 100644
--- a/src/examples/ecore/efl_io_copier_simple_example.c
+++ b/src/examples/ecore/efl_io_copier_simple_example.c
@@ -1,14 +1,11 @@
-#define EFL_BETA_API_SUPPORT 1
-#define EFL_EO_API_SUPPORT 1
-#include 
-
-static int retval = EXIT_SUCCESS;
+#include 
 
 static void
 _copier_done(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED)
 {
fprintf(stderr, "INFO: done\n");
-   ecore_main_loop_quit();
+
+   efl_loop_quit(efl_loop_get(event->object), EINA_VALUE_EMPTY);
 }
 
 static void
@@ -16,22 +13,50 @@ _copier_error(void *data EINA_UNUSED, const Efl_Event 
*event)
 {
const Eina_Error *perr = event->info;
fprintf(stderr, "INFO: error: #%d '%s'\n", *perr, 
eina_error_msg_get(*perr));
-   ecore_main_loop_quit();
-   retval = EXIT_FAILURE;
+
+   efl_loop_quit(efl_loop_get(event->object), 
eina_value_int_init(EXIT_FAILURE));
 }
 
 EFL_CALLBACKS_ARRAY_DEFINE(copier_cbs,
{ EFL_IO_COPIER_EVENT_DONE, _copier_done },
{ EFL_IO_COPIER_EVENT_ERROR, _copier_error });
 
-int
-main(int argc EINA_UNUSED, char *argv[] EINA_UNUSED)
+static Eo *copier = NULL;
+
+EAPI_MAIN void
+efl_pause(void *data EINA_UNUSED,
+  const Efl_Event *ev EINA_UNUSED)
+{
+}
+
+EAPI_MAIN void
+efl_resume(void *data EINA_UNUSED,
+   const Efl_Event *ev EINA_UNUSED)
+{
+}
+
+EAPI_MAIN void
+efl_terminate(void *data EINA_UNUSED,
+  const Efl_Event *ev EINA_UNUSED)
 {
-   Eo *input, *output, *copier, *loop;
+   /* FIXME: For the moment the main loop doesn't get
+  properly destroyed on shutdown which disallow
+  relying on parent destroying their children */
+   if (copier)
+ {
+efl_io_closer_close(copier);
+efl_del(copier);
+ }
+   copier = NULL;
+}
 
-   ecore_init();
+EAPI_MAIN void
+efl_main(void *data EINA_UNUSED,
+ const Efl_Event *ev)
+{
+   Eo *input, *output, *loop;
 
-   loop = efl_main_loop_get();
+   loop = ev->object;
input = efl_add(EFL_IO_STDIN_CLASS, loop);
output = efl_add(EFL_IO_STDOUT_CLASS, loop);
copier = efl_add(EFL_IO_COPIER_CLASS, loop,
@@ -39,14 +64,6 @@ main(int argc EINA_UNUSED, char *argv[] EINA_UNUSED)
 efl_io_copier_destination_set(efl_added, output), /* 
optional */
 efl_event_callback_array_add(efl_added, copier_cbs(), 
NULL) /* recommended, at least EFL_IO_COPIER_EVENT_DONE. */
 );
-
-   ecore_main_loop_begin();
-
-   efl_io_closer_close(copier);
-   efl_del(copier);
-   efl_del(output);
-   efl_del(input);
-
-   ecore_shutdown();
-   return retval;
 }
+
+EFL_MAIN_EX();

-- 




[EGIT] [core/efl] master 03/04: ecore: remove use of efl_main_loop_get from efl_net_control_example.

2018-01-08 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit 419145a298d1297a1d5008c3c76bc3d7ea143d0f
Author: Cedric BAIL 
Date:   Mon Jan 8 16:04:22 2018 -0800

ecore: remove use of efl_main_loop_get from efl_net_control_example.
---
 src/examples/ecore/efl_net_control_example.c | 62 
 1 file changed, 36 insertions(+), 26 deletions(-)

diff --git a/src/examples/ecore/efl_net_control_example.c 
b/src/examples/ecore/efl_net_control_example.c
index ac9a4d6f5b..1adffc68c9 100644
--- a/src/examples/ecore/efl_net_control_example.c
+++ b/src/examples/ecore/efl_net_control_example.c
@@ -1,14 +1,10 @@
-#define EFL_BETA_API_SUPPORT 1
-#define EFL_EO_API_SUPPORT 1
 #ifdef HAVE_SYS_SOCKET_H
  #include 
 #endif
-#include 
-#include 
+#include 
 #include 
 #include 
 
-static int retval = EXIT_SUCCESS;
 static Eina_Bool monitoring = EINA_TRUE;
 
 static const char *
@@ -1184,10 +1180,10 @@ _cmd_access_point_configure_proxy(Eo *ctl, size_t argc, 
char **argv)
 }
 
 static void
-_cmd_quit(Eo *ctl EINA_UNUSED, size_t argc EINA_UNUSED, char **argv 
EINA_UNUSED)
+_cmd_quit(Eo *ctl, size_t argc EINA_UNUSED, char **argv EINA_UNUSED)
 {
printf("INFO: bye!\n");
-   ecore_main_loop_quit();
+   efl_loop_quit(efl_loop_get(ctl), EINA_VALUE_EMPTY);
 }
 
 static void
@@ -1412,28 +1408,47 @@ EFL_CALLBACKS_ARRAY_DEFINE(ctl_events_cbs,
{ EFL_NET_CONTROL_EVENT_AGENT_BROWSER_URL, 
_ctl_agent_browser_url },
{ EFL_NET_CONTROL_EVENT_AGENT_REQUEST_INPUT, 
_ctl_agent_request_input });
 
-int
-main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
+static Eo *copier = NULL;
+
+
+EAPI_MAIN void
+efl_pause(void *data EINA_UNUSED,
+  const Efl_Event *ev EINA_UNUSED)
+{
+}
+
+EAPI_MAIN void
+efl_resume(void *data EINA_UNUSED,
+   const Efl_Event *ev EINA_UNUSED)
+{
+}
+
+EAPI_MAIN void
+efl_terminate(void *data EINA_UNUSED,
+  const Efl_Event *ev EINA_UNUSED)
+{
+   efl_del(copier);
+   copier = NULL;
+}
+
+EAPI_MAIN void
+efl_main(void *data EINA_UNUSED,
+ const Efl_Event *ev)
 {
Eo *ctl;
Eo *input;
-   Eo *copier;
Eina_Slice line_delimiter = EINA_SLICE_STR("\n");
 
-   ecore_init();
-   ecore_con_init();
-
-   ctl = efl_add(EFL_NET_CONTROL_CLASS, efl_main_loop_get(),
+   ctl = efl_add(EFL_NET_CONTROL_CLASS, ev->object,
  efl_event_callback_array_add(efl_added, ctl_events_cbs(), 
NULL));
if (!ctl)
  {
 fputs("ERROR: Could not create Efl.Net.Control object.\n", stderr);
-retval = EXIT_FAILURE;
 goto end;
  }
 
-   input = efl_add(EFL_IO_STDIN_CLASS, efl_main_loop_get());
-   copier = efl_add(EFL_IO_COPIER_CLASS, efl_main_loop_get(),
+   input = efl_add(EFL_IO_STDIN_CLASS, ev->object);
+   copier = efl_add(EFL_IO_COPIER_CLASS, ev->object,
 efl_io_copier_source_set(efl_added, input),
 efl_io_copier_line_delimiter_set(efl_added, 
line_delimiter),
 efl_io_copier_buffer_limit_set(efl_added, 8192),
@@ -1443,15 +1458,10 @@ main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
printf("INFO: monitoring is on, disable with 'monitor off'. See 'help'.\n");
printf("INFO: type commands, if unsure try: 'help'\n");
 
-   ecore_main_loop_begin();
-
-   efl_del(copier);
-   efl_del(input);
-   efl_del(ctl);
+   return ;
 
  end:
-   ecore_con_shutdown();
-   ecore_shutdown();
-
-   return retval;
+   efl_loop_quit(efl_loop_get(ev->object), eina_value_int_init(EXIT_FAILURE));
 }
+
+EFL_MAIN_EX();

-- 




[EGIT] [core/efl] master 02/04: ecore: remove use of efl_main_loop_get from efl_io_queue_example.

2018-01-08 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit a0e81d1276e0c47f8ff0ed450d823ea3fadba87f
Author: Cedric BAIL 
Date:   Mon Jan 8 15:55:17 2018 -0800

ecore: remove use of efl_main_loop_get from efl_io_queue_example.
---
 src/examples/ecore/efl_io_queue_example.c | 76 ---
 1 file changed, 39 insertions(+), 37 deletions(-)

diff --git a/src/examples/ecore/efl_io_queue_example.c 
b/src/examples/ecore/efl_io_queue_example.c
index 4f75c47ce7..9a9738859b 100644
--- a/src/examples/ecore/efl_io_queue_example.c
+++ b/src/examples/ecore/efl_io_queue_example.c
@@ -1,10 +1,6 @@
-#define EFL_BETA_API_SUPPORT 1
-#define EFL_EO_API_SUPPORT 1
-#include 
+#include 
 #include 
-#include 
 
-static int retval = EXIT_SUCCESS;
 static Eina_List *waiting = NULL;
 static Eina_List *commands = NULL;
 static Eina_Slice line_delimiter;
@@ -87,7 +83,7 @@ _copier_done(void *data EINA_UNUSED, const Efl_Event *event)
 
waiting = eina_list_remove(waiting, event->object);
if (!waiting)
- ecore_main_loop_quit();
+ efl_loop_quit(efl_loop_get(event->object), EINA_VALUE_EMPTY);
 }
 
 static void
@@ -96,8 +92,8 @@ _copier_error(void *data EINA_UNUSED, const Efl_Event *event)
const Eina_Error *perr = event->info;
fprintf(stderr, "INFO: %s error: #%d '%s'\n",
efl_name_get(event->object), *perr, eina_error_msg_get(*perr));
-   retval = EXIT_FAILURE;
-   ecore_main_loop_quit();
+
+   efl_loop_quit(efl_loop_get(event->object), 
eina_value_int_init(EXIT_FAILURE));
 }
 
 EFL_CALLBACKS_ARRAY_DEFINE(copier_cbs,
@@ -171,8 +167,34 @@ static const Ecore_Getopt options = {
   }
 };
 
-int
-main(int argc, char **argv)
+EAPI_MAIN void
+efl_pause(void *data EINA_UNUSED,
+  const Efl_Event *ev EINA_UNUSED)
+{
+}
+
+EAPI_MAIN void
+efl_resume(void *data EINA_UNUSED,
+   const Efl_Event *ev EINA_UNUSED)
+{
+}
+
+EAPI_MAIN void
+efl_terminate(void *data EINA_UNUSED,
+  const Efl_Event *ev EINA_UNUSED)
+{
+  if (waiting)
+{
+   fprintf(stderr, "ERROR: %d operations were waiting!\n",
+   eina_list_count(waiting));
+   eina_list_free(waiting);
+   waiting = NULL;
+}
+}
+
+EAPI_MAIN void
+efl_main(void *data EINA_UNUSED,
+ const Efl_Event *ev)
 {
char *address = NULL;
char *line_delimiter_str = NULL;
@@ -199,24 +221,19 @@ main(int argc, char **argv)
int args;
Eo *dialer, *sender, *receiver, *loop;
 
-   ecore_init();
-   ecore_con_init();
-
-   args = ecore_getopt_parse(&options, values, argc, argv);
+   args = ecore_getopt_parse(&options, values, 0, NULL);
if (args < 0)
  {
 fputs("ERROR: Could not parse command line options.\n", stderr);
-retval = EXIT_FAILURE;
 goto end;
  }
 
if (quit_option) goto end;
 
-   args = ecore_getopt_parse_positional(&options, values, argc, argv, args);
+   args = ecore_getopt_parse_positional(&options, values, 0, NULL, args);
if (args < 0)
  {
 fputs("ERROR: Could not parse positional arguments.\n", stderr);
-retval = EXIT_FAILURE;
 goto end;
  }
 
@@ -225,7 +242,6 @@ main(int argc, char **argv)
if (!commands)
  {
 fputs("ERROR: missing commands to send.\n", stderr);
-retval = EXIT_FAILURE;
 goto end;
  }
 
@@ -248,7 +264,6 @@ main(int argc, char **argv)
if (!send_queue)
  {
 fprintf(stderr, "ERROR: could not create Efl_Io_Queue (send)\n");
-retval = EXIT_FAILURE;
 goto end;
  }
 
@@ -271,7 +286,6 @@ main(int argc, char **argv)
if (!receive_queue)
  {
 fprintf(stderr, "ERROR: could not create Efl_Io_Queue (receive)\n");
-retval = EXIT_FAILURE;
 goto error_receive_queue;
  }
 
@@ -285,7 +299,7 @@ main(int argc, char **argv)
 * depend on main loop, thus their parent must be a loop
 * provider. We use the loop itself.
 */
-   loop = efl_main_loop_get();
+   loop = ev->object;
 
/* The TCP client to use to send/receive network data */
dialer = efl_add(EFL_NET_DIALER_TCP_CLASS, loop,
@@ -294,7 +308,6 @@ main(int argc, char **argv)
if (!dialer)
  {
 fprintf(stderr, "ERROR: could not create Efl_Net_Dialer_Tcp\n");
-retval = EXIT_FAILURE;
 goto error_dialer;
  }
 
@@ -308,7 +321,6 @@ main(int argc, char **argv)
if (!sender)
  {
 fprintf(stderr, "ERROR: could not create Efl_Io_Copier (sender)\n");
-retval = EXIT_FAILURE;
 goto error_sender;
  }
 
@@ -322,7 +334,6 @@ main(int argc, char **argv)
if (!receiver)
  {
 fprintf(stderr, "ERROR: could not create Efl_Io_Copier (receiver)\n");
-retval = EXIT_FAILURE;
 goto error_receiver;
  }
 
@@ -337,15 +348,7 @@ main(int argc, char **argv)
waiting = eina_list_append(waiting, sender);
waiting = eina_list_append(waiting, receiver);
 
-   ecore_ma

[EGIT] [core/efl] master 04/04: ecore: remove use of efl_main_loop_get from efl_net_dialer_http_example.

2018-01-08 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit bb5f9d156ca9fad76a695f78d767a0c27273360d
Author: Cedric BAIL 
Date:   Mon Jan 8 16:18:52 2018 -0800

ecore: remove use of efl_main_loop_get from efl_net_dialer_http_example.
---
 src/examples/ecore/efl_net_dialer_http_example.c | 89 ++--
 1 file changed, 54 insertions(+), 35 deletions(-)

diff --git a/src/examples/ecore/efl_net_dialer_http_example.c 
b/src/examples/ecore/efl_net_dialer_http_example.c
index 2eae870a7e..5c83fda53c 100644
--- a/src/examples/ecore/efl_net_dialer_http_example.c
+++ b/src/examples/ecore/efl_net_dialer_http_example.c
@@ -6,7 +6,6 @@
 #include 
 #include 
 
-static int retval = EXIT_SUCCESS;
 static int waiting;
 
 static void
@@ -43,7 +42,7 @@ _error(void *data EINA_UNUSED, const Efl_Event *event)
 {
const Eina_Error *perr = event->info;
fprintf(stderr, "INFO: error: %d '%s'\n", *perr, eina_error_msg_get(*perr));
-   retval = EXIT_FAILURE;
+   efl_loop_quit(efl_loop_get(event->object), 
eina_value_int_init(EXIT_FAILURE));
 }
 
 static void
@@ -87,7 +86,7 @@ _done(void *data EINA_UNUSED, const Efl_Event *event)
fprintf(stderr, "INFO: done %s, waiting=%d\n",
efl_name_get(event->object), waiting);
if (waiting == 0)
- ecore_main_loop_quit();
+ efl_loop_quit(efl_loop_get(event->object), EINA_VALUE_EMPTY);
 }
 
 EFL_CALLBACKS_ARRAY_DEFINE(copier_cbs,
@@ -199,8 +198,49 @@ static const Ecore_Getopt options = {
   }
 };
 
-int
-main(int argc, char **argv)
+static Eo *dialer = NULL;
+static Eo *sender = NULL;
+static Eo *receiver = NULL;
+
+EAPI_MAIN void
+efl_pause(void *data EINA_UNUSED,
+  const Efl_Event *ev EINA_UNUSED)
+{
+}
+
+EAPI_MAIN void
+efl_resume(void *data EINA_UNUSED,
+   const Efl_Event *ev EINA_UNUSED)
+{
+}
+
+EAPI_MAIN void
+efl_terminate(void *data EINA_UNUSED,
+  const Efl_Event *ev EINA_UNUSED)
+{
+   /* FIXME: For the moment the main loop doesn't get
+  properly destroyed on shutdown which disallow
+  relying on parent destroying their children */
+   if (sender ||
+   receiver ||
+   dialer)
+ {
+efl_io_closer_close(sender);
+efl_del(sender);
+sender = NULL;
+
+efl_io_closer_close(receiver);
+efl_del(receiver);
+receiver = NULL;
+
+efl_del(dialer);
+dialer = NULL;
+ }
+}
+
+EAPI_MAIN void
+efl_main(void *data EINA_UNUSED,
+ const Efl_Event *ev)
 {
char *method = "GET";
char *primary_mode_str = "auto";
@@ -246,7 +286,7 @@ main(int argc, char **argv)
  ECORE_GETOPT_VALUE_NONE /* sentinel */
};
int args;
-   Eo *input, *dialer, *output, *sender, *receiver, *loop;
+   Eo *input, *output, *loop;
Efl_Net_Dialer_Http_Primary_Mode primary_mode;
Efl_Net_Http_Version http_version;
Efl_Net_Http_Authentication_Method authentication_method;
@@ -255,27 +295,21 @@ main(int argc, char **argv)
Eina_Error err;
char *str;
 
-   ecore_init();
-   ecore_con_init();
-   ecore_con_url_init();
-
-   args = ecore_getopt_parse(&options, values, argc, argv);
+   args = ecore_getopt_parse(&options, values, 0, NULL);
if (args < 0)
  {
 fputs("ERROR: Could not parse command line options.\n", stderr);
-retval = EXIT_FAILURE;
 goto end;
  }
 
if (quit_option) goto end;
 
-   loop = efl_main_loop_get();
+   loop = ev->object;
 
-   args = ecore_getopt_parse_positional(&options, values, argc, argv, args);
+   args = ecore_getopt_parse_positional(&options, values, 0, NULL, args);
if (args < 0)
  {
 fputs("ERROR: Could not parse positional arguments.\n", stderr);
-retval = EXIT_FAILURE;
 goto end;
  }
 
@@ -371,7 +405,7 @@ main(int argc, char **argv)
  {
 fprintf(stderr, "ERROR: could not dial '%s': %s",
 address, eina_error_msg_get(err));
-goto no_mainloop;
+goto end;
  }
 
fprintf(stderr,
@@ -398,25 +432,10 @@ main(int argc, char **argv)
  fprintf(stderr, "INFO:   %s: %s\n", header->key, header->value);
eina_iterator_free(itr);
 
-   ecore_main_loop_begin();
-
-   fprintf(stderr, "INFO: main loop finished.\n");
-
- no_mainloop:
-   efl_io_closer_close(sender);
-   efl_del(sender);
-
-   efl_io_closer_close(receiver);
-   efl_del(receiver);
-
-   efl_del(dialer);
-   efl_del(output);
-   efl_del(input);
+   return ;
 
  end:
-   ecore_con_url_shutdown();
-   ecore_con_shutdown();
-   ecore_shutdown();
-
-   return retval;
+   efl_loop_quit(ev->object, eina_value_int_init(EXIT_FAILURE));
 }
+
+EFL_MAIN_EX();

-- 




[EGIT] [core/efl] master 01/01: ecore_imf: Add transaction start and end event callback

2018-01-08 Thread Jihoon Kim
jihoon pushed a commit to branch master.

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

commit d1823c6152ce4cfb4d143aa7b0620379ec333dc9
Author: Jihoon Kim 
Date:   Tue Jan 9 08:13:47 2018 +0900

ecore_imf: Add transaction start and end event callback

@feature

Change-Id: I091b4e291b821ee5b6cc180d98024e251d4bcd03
Signed-off-by: Jihoon Kim 
---
 src/lib/ecore_imf/Ecore_IMF.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/lib/ecore_imf/Ecore_IMF.h b/src/lib/ecore_imf/Ecore_IMF.h
index 0fc821da2f..c4ff9ec955 100644
--- a/src/lib/ecore_imf/Ecore_IMF.h
+++ b/src/lib/ecore_imf/Ecore_IMF.h
@@ -195,7 +195,9 @@ typedef enum
ECORE_IMF_CALLBACK_DELETE_SURROUNDING, /**< "DELETE_SURROUNDING" is called 
when the input method needs to delete all or part of the context surrounding 
the cursor @since 1.2 */
ECORE_IMF_CALLBACK_SELECTION_SET,  /**< "SELECTION_SET" is called when 
the input method needs to set the selection @since 1.9 */
ECORE_IMF_CALLBACK_PRIVATE_COMMAND_SEND, /**< "PRIVATE_COMMAND_SEND" is 
called when the input method sends a private command @since 1.12 */
-   ECORE_IMF_CALLBACK_COMMIT_CONTENT  /**< "COMMIT_CONTENT" is called when 
the input method commits content such as an image @since 1.20 */
+   ECORE_IMF_CALLBACK_COMMIT_CONTENT, /**< "COMMIT_CONTENT" is called when 
the input method commits content such as an image @since 1.20 */
+   ECORE_IMF_CALLBACK_TRANSACTION_START,  /**< "TRANSACTION_START" is called 
when a new transaction sequence starts. @since 1.21 */
+   ECORE_IMF_CALLBACK_TRANSACTION_END /**< "TRANSACTION_END" is called 
when a new transaction sequence starts. @since 1.21 */
 } Ecore_IMF_Callback_Type;
 
 /**

-- 




[EGIT] [core/efl] master 01/01: ci: actually install systemd in the Ubuntu 17.10 Dockerfile

2018-01-08 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit fdf0812883b4b9da1ea6e04e26c5fa469bd8920a
Author: Stefan Schmidt 
Date:   Fri Jan 5 14:10:46 2018 +0100

ci: actually install systemd in the Ubuntu 17.10 Dockerfile

This allows us to build efl with systemd support on it and enables the
newer Ubunutu version by default.
---
 .ci/Dockerfile-Ubuntu1710 | 2 +-
 .travis.yml   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/.ci/Dockerfile-Ubuntu1710 b/.ci/Dockerfile-Ubuntu1710
index 23a134b598..2cdf1093ff 100644
--- a/.ci/Dockerfile-Ubuntu1710
+++ b/.ci/Dockerfile-Ubuntu1710
@@ -2,7 +2,7 @@ FROM ubuntu:17.10
 
 # Install
 RUN apt-get update -y
-RUN apt-get install -y build-essential autoconf automake autopoint doxygen 
check luajit libharfbuzz-dev libpng-dev libudev-dev libwebp-dev libssl-dev 
libluajit-5.1-dev libfribidi-dev libcogl-gles2-dev libgif-dev libtiff5-dev 
libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libdbus-1-dev libmount-dev 
libblkid-dev libpulse-dev libxrandr-dev libxtst-dev libxcursor-dev 
libxcomposite-dev libxinerama-dev libxkbfile-dev libbullet-dev libvlc-dev 
libsndfile1-dev libraw-dev libspectre-dev libp [...]
+RUN apt-get install -y build-essential autoconf automake autopoint doxygen 
check luajit libharfbuzz-dev libpng-dev libudev-dev libwebp-dev libssl-dev 
libluajit-5.1-dev libfribidi-dev libcogl-gles2-dev libgif-dev libtiff5-dev 
libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libdbus-1-dev libmount-dev 
libblkid-dev libpulse-dev libxrandr-dev libxtst-dev libxcursor-dev 
libxcomposite-dev libxinerama-dev libxkbfile-dev libbullet-dev libvlc-dev 
libsndfile1-dev libraw-dev libspectre-dev libp [...]
 
 # Build
 RUN mkdir -p /src/
diff --git a/.travis.yml b/.travis.yml
index 2f60f7ee8f..98f937f4cc 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -13,7 +13,7 @@ before_install:
 
 matrix:
   include:
-- env: DISTRO=Ubuntu1704
+- env: DISTRO=Ubuntu1710
 - env: DISTRO=Fedora27
 - env: DISTRO=Debian91
 - env: DISTRO=Archlinux

--