[EGIT] [core/efl] master 01/01: eldbus: fix to dbus_name_to_c method

2021-07-14 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 34e4e110a23cb7edf01bf696cd0f3fa88704a621
Author: Marcel Hollerbach 
Date:   Wed Jul 14 15:20:42 2021 +0200

eldbus: fix to dbus_name_to_c method

"-" in names should be converted to _
---
 src/bin/eldbus/utils.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/bin/eldbus/utils.c b/src/bin/eldbus/utils.c
index edfd06e598..53a7bd0f31 100644
--- a/src/bin/eldbus/utils.c
+++ b/src/bin/eldbus/utils.c
@@ -89,6 +89,7 @@ dbus_name_to_c(const char *dbus)
   eina_strbuf_append_char(buffer, tolower(ret[i]));
  }
free(ret);
+   eina_strbuf_replace_all(buffer, "-", "_");
ret = eina_strbuf_string_steal(buffer);
 end:
free(str_cpy);

-- 




[EGIT] [core/efl] master 01/01: Revert "eldbus: do not generate method names with - in name"

2021-07-14 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit bad5440b2b8fe0cab7939b946dbdfe9171fcd520
Author: Marcel Hollerbach 
Date:   Wed Jul 14 15:12:11 2021 +0200

Revert "eldbus: do not generate method names with - in name"

This reverts commit 364cc9dcba7e1a03403bb52ebc2609fa5fb7f7e8.

Not for master yet
---
 src/bin/eldbus/source_client.c | 16 +---
 1 file changed, 1 insertion(+), 15 deletions(-)

diff --git a/src/bin/eldbus/source_client.c b/src/bin/eldbus/source_client.c
index c7ba1b3795..8860f0665b 100644
--- a/src/bin/eldbus/source_client.c
+++ b/src/bin/eldbus/source_client.c
@@ -428,23 +428,11 @@ prop_cb_get(const DBus_Property *prop)
  }
 }
 
-static char*
-_escape(const char *name) {
-  Eina_Strbuf *buf = eina_strbuf_new();
-
-  eina_strbuf_append(buf, name);
-  eina_strbuf_replace_all(buf, "-", "_");
-
-  return eina_strbuf_release(buf);
-}
-
-
 static void
 source_client_property_generate_get(const DBus_Property *prop, Eina_Strbuf 
*c_code, Eina_Strbuf *h)
 {
-   char *cb_name_escaped = _escape(prop->cb_name);
//callback
-   eina_strbuf_append_printf(c_code, "\nstatic void\n%s(void *data, const 
Eldbus_Message *msg, Eldbus_Pending *pending)\n{\n", cb_name_escaped);
+   eina_strbuf_append_printf(c_code, "\nstatic void\n%s(void *data, const 
Eldbus_Message *msg, Eldbus_Pending *pending)\n{\n", prop->cb_name);
eina_strbuf_append_printf(c_code, "   void *user_data = 
eldbus_pending_data_del(pending, \"__user_data\");\n");
eina_strbuf_append_printf(c_code, "   const char *error, *error_msg;\n");
eina_strbuf_append_printf(c_code, "   %s cb = data;\n", prop_cb_get(prop));
@@ -500,8 +488,6 @@ source_client_property_generate_get(const DBus_Property 
*prop, Eina_Strbuf *c_co
eina_strbuf_append_printf(c_code, "   eldbus_pending_data_set(p, 
\"__user_proxy\", proxy);\n");
eina_strbuf_append_printf(c_code, "   return p;\n");
eina_strbuf_append_printf(c_code, "}\n");
-
-   free(cb_name_escaped);
 }
 
 static void

-- 




[EGIT] [core/efl] master 01/01: eldbus: do not generate method names with - in name

2021-07-14 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 364cc9dcba7e1a03403bb52ebc2609fa5fb7f7e8
Author: Marcel Hollerbach 
Date:   Wed Jul 14 15:02:51 2021 +0200

eldbus: do not generate method names with - in name
---
 src/bin/eldbus/source_client.c | 16 +++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/src/bin/eldbus/source_client.c b/src/bin/eldbus/source_client.c
index 8860f0665b..c7ba1b3795 100644
--- a/src/bin/eldbus/source_client.c
+++ b/src/bin/eldbus/source_client.c
@@ -428,11 +428,23 @@ prop_cb_get(const DBus_Property *prop)
  }
 }
 
+static char*
+_escape(const char *name) {
+  Eina_Strbuf *buf = eina_strbuf_new();
+
+  eina_strbuf_append(buf, name);
+  eina_strbuf_replace_all(buf, "-", "_");
+
+  return eina_strbuf_release(buf);
+}
+
+
 static void
 source_client_property_generate_get(const DBus_Property *prop, Eina_Strbuf 
*c_code, Eina_Strbuf *h)
 {
+   char *cb_name_escaped = _escape(prop->cb_name);
//callback
-   eina_strbuf_append_printf(c_code, "\nstatic void\n%s(void *data, const 
Eldbus_Message *msg, Eldbus_Pending *pending)\n{\n", prop->cb_name);
+   eina_strbuf_append_printf(c_code, "\nstatic void\n%s(void *data, const 
Eldbus_Message *msg, Eldbus_Pending *pending)\n{\n", cb_name_escaped);
eina_strbuf_append_printf(c_code, "   void *user_data = 
eldbus_pending_data_del(pending, \"__user_data\");\n");
eina_strbuf_append_printf(c_code, "   const char *error, *error_msg;\n");
eina_strbuf_append_printf(c_code, "   %s cb = data;\n", prop_cb_get(prop));
@@ -488,6 +500,8 @@ source_client_property_generate_get(const DBus_Property 
*prop, Eina_Strbuf *c_co
eina_strbuf_append_printf(c_code, "   eldbus_pending_data_set(p, 
\"__user_proxy\", proxy);\n");
eina_strbuf_append_printf(c_code, "   return p;\n");
eina_strbuf_append_printf(c_code, "}\n");
+
+   free(cb_name_escaped);
 }
 
 static void

-- 




[EGIT] [core/enlightenment] master 01/01: e_comp_x: do not display this error a million times

2021-06-15 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit e7781b4b8945e759d42e4bb0875cda284c0a1b1f
Author: Marcel Hollerbach 
Date:   Fri Jun 11 17:03:51 2021 +0200

e_comp_x: do not display this error a million times

once is enough.
---
 src/bin/e_comp_x_randr.c | 40 
 1 file changed, 32 insertions(+), 8 deletions(-)

diff --git a/src/bin/e_comp_x_randr.c b/src/bin/e_comp_x_randr.c
index f0070fabe..5cbf91245 100644
--- a/src/bin/e_comp_x_randr.c
+++ b/src/bin/e_comp_x_randr.c
@@ -433,17 +433,41 @@ _mode_screen_find(Ecore_X_Window root, E_Randr2_Screen 
*s, Ecore_X_Randr_Output
return mode;
 }
 
+static E_Dialog *screen_error_dialog = NULL;
+
+static void
+_screen_error_remove_cb(void *data EINA_UNUSED, E_Dialog *dia EINA_UNUSED)
+{
+   screen_error_dialog = NULL;
+   e_object_del(E_OBJECT(dia));
+}
+
 static Eina_Bool
 _cb_no_outputs_timer(void *data EINA_UNUSED)
 {
-   e_util_dialog_show(_("Screen setup Error"),
-  _("You seem to have no screens configured to"
-"be on given the outputs you have. This should"
-"be fixed by going to:"
-""
-"Settings -> Screen -> Screen Setup"
-""
-"And configure at least one screen to be on."));
+   if (!screen_error_dialog)
+ {
+screen_error_dialog = e_dialog_new(NULL, "E", "_error_dialog");
+
+e_dialog_title_set(screen_error_dialog, _("Screen setup Error"));
+e_dialog_text_set(screen_error_dialog, _("You seem to have no screens 
configured to"
+ "be on given the outputs you have. This 
should"
+ "be fixed by going to:"
+ ""
+ "Settings -> Screen -> Screen Setup"
+ ""
+ "And configure at least one screen to be 
on."));
+   e_dialog_icon_set(screen_error_dialog, "dialog-error", 64);
+   e_dialog_button_add(screen_error_dialog, _("OK"), NULL, 
_screen_error_remove_cb, NULL);
+   e_dialog_button_focus_num(screen_error_dialog, 0);
+   elm_win_center(screen_error_dialog->win, 1, 1);
+   e_dialog_show(screen_error_dialog);
+ }
+   else
+ {
+   elm_win_raise(screen_error_dialog->win);
+ }
+
return EINA_FALSE;
 }
 

-- 




[EGIT] [core/efl] master 03/04: efl_io_model: initialize memory

2021-04-10 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 65dd51b1a4a7259ba908738d2ada33e65895de3a
Author: Marcel Hollerbach 
Date:   Sat Apr 10 11:24:42 2021 +0200

efl_io_model: initialize memory

or this is causing trouble
---
 src/lib/eio/efl_io_model.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/eio/efl_io_model.c b/src/lib/eio/efl_io_model.c
index 0d5e372eef..099d7c88df 100644
--- a/src/lib/eio/efl_io_model.c
+++ b/src/lib/eio/efl_io_model.c
@@ -82,7 +82,7 @@ _efl_model_evt_added_ecore_cb(void *data, int type, void 
*event)
Eio_Monitor_Event *ev = event;
Efl_Io_Model *obj = data;
Efl_Io_Model_Data *pd;
-   Efl_Model_Children_Event cevt;
+   Efl_Model_Children_Event cevt = {0};
Efl_Io_Model_Info *mi;
Eina_List *l;
Eina_Stringshare *spath = NULL;

-- 




[EGIT] [core/efl] master 02/04: efl_io_model: do not self reference, this is dangerous

2021-04-10 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 1ef48e2f4458d3a52d5f153b9ef11c2dffe96a15
Author: Marcel Hollerbach 
Date:   Sat Apr 10 11:23:05 2021 +0200

efl_io_model: do not self reference, this is dangerous

what happened here is that people passed private data with a reference
to the object. Which is kind of a bad idea, as in some unthought of
conditions, events are forgot, which results in freeed memory beeing
accessed. This way its at least a error.
---
 src/lib/eio/efl_io_model.c | 44 ++
 src/lib/eio/efl_io_model_private.h |  2 --
 2 files changed, 25 insertions(+), 21 deletions(-)

diff --git a/src/lib/eio/efl_io_model.c b/src/lib/eio/efl_io_model.c
index 88c32b19b8..0d5e372eef 100644
--- a/src/lib/eio/efl_io_model.c
+++ b/src/lib/eio/efl_io_model.c
@@ -21,7 +21,7 @@
 #define MY_CLASS_NAME "Efl_Io_Model"
 
 static void _efl_io_model_info_free(Efl_Io_Model_Info *info, Eina_Bool model);
-static void _efl_io_model_efl_model_monitor_add(Efl_Io_Model_Data *priv);
+static void _efl_io_model_efl_model_monitor_add(const Eo *obj, 
Efl_Io_Model_Data *priv);
 
 EINA_VALUE_STRUCT_DESC_DEFINE(_eina_file_direct_info_desc,
   NULL,
@@ -80,14 +80,17 @@ static Eina_Bool
 _efl_model_evt_added_ecore_cb(void *data, int type, void *event)
 {
Eio_Monitor_Event *ev = event;
-   Efl_Io_Model *obj;
-   Efl_Io_Model_Data *pd = data;
+   Efl_Io_Model *obj = data;
+   Efl_Io_Model_Data *pd;
Efl_Model_Children_Event cevt;
Efl_Io_Model_Info *mi;
Eina_List *l;
Eina_Stringshare *spath = NULL;
char *path = NULL;
 
+   pd = efl_data_scope_get(obj, EFL_IO_MODEL_CLASS);
+   EINA_SAFETY_ON_NULL_RETURN_VAL(pd, EINA_TRUE);
+
if (type != EIO_MONITOR_DIRECTORY_CREATED && type != 
EIO_MONITOR_FILE_CREATED)
  return EINA_TRUE;
 
@@ -96,8 +99,6 @@ _efl_model_evt_added_ecore_cb(void *data, int type, void 
*event)
if (_already_added(pd, ev->filename))
  return EINA_TRUE;
 
-   obj = pd->self;
-
path = ecore_file_dir_get(ev->filename);
if (!eina_streq(pd->path, path))
  goto end;
@@ -155,11 +156,10 @@ _efl_model_evt_added_ecore_cb(void *data, int type, void 
*event)
 }
 
 static void
-_model_child_remove(Efl_Io_Model_Data *pd, Eina_Stringshare *path)
+_model_child_remove(Efl_Io_Model *obj, Efl_Io_Model_Data *pd, Eina_Stringshare 
*path)
 {
Efl_Io_Model_Info *mi;
Eina_List *l;
-   Efl_Io_Model *obj = pd->self;
Efl_Model_Children_Event cevt = { 0 };
unsigned int i = 0;
 
@@ -191,16 +191,20 @@ static Eina_Bool
 _efl_model_evt_deleted_ecore_cb(void *data, int type, void *event)
 {
Eio_Monitor_Event *ev = event;
-   Efl_Io_Model_Data *pd = data;
+   Efl_Io_Model *obj = data;
+   Efl_Io_Model_Data *pd;
Eina_Stringshare *spath = NULL;
 
+   pd = efl_data_scope_get(obj, EFL_IO_MODEL_CLASS);
+   EINA_SAFETY_ON_FALSE_RETURN_VAL(pd, EINA_TRUE);
+
if (type != EIO_MONITOR_DIRECTORY_DELETED && type != 
EIO_MONITOR_FILE_DELETED)
  return EINA_TRUE;
 
if (ev->monitor != pd->monitor) return EINA_TRUE;
 
spath = eina_stringshare_add(ev->filename);
-   _model_child_remove(pd, spath);
+   _model_child_remove(obj, pd, spath);
eina_stringshare_del(spath);
 
return EINA_TRUE;
@@ -222,13 +226,17 @@ _eio_del_cleanup(Efl_Io_Model *obj)
 static void
 _eio_done_unlink_cb(void *data, Eio_File *handler EINA_UNUSED)
 {
-   Efl_Io_Model *child = data;
+   Efl_Io_Model *child = data, *parent;
Efl_Io_Model_Data *child_pd, *pd;
 
+   parent = efl_parent_get(child);
+   EINA_SAFETY_ON_NULL_RETURN(parent);
child_pd = efl_data_scope_get(child, MY_CLASS);
-   pd = efl_data_scope_get(efl_parent_get(child), MY_CLASS);
+   EINA_SAFETY_ON_NULL_RETURN(child_pd);
+   pd = efl_data_scope_get(parent, MY_CLASS);
+   EINA_SAFETY_ON_NULL_RETURN(parent);
 
-   _model_child_remove(pd, child_pd->path);
+   _model_child_remove(parent, pd, child_pd->path);
_eio_del_cleanup(child);
 }
 
@@ -342,7 +350,7 @@ _eio_build_st_done(void *data, Eio_File *handler 
EINA_UNUSED, const Eina_Stat *s
if (eio_file_is_dir(pd->st))
  {
 // Now that we know we are a directory, we should whatch it
-_efl_io_model_efl_model_monitor_add(pd);
+_efl_io_model_efl_model_monitor_add(model, pd);
 
 // And start listing its child
 efl_model_children_count_get(model);
@@ -861,7 +869,7 @@ _efl_io_model_efl_model_children_count_get(const Eo *obj, 
Efl_Io_Model_Data *pd)
 
 //start monitoring before listing is done
 //we will filter later on if we already published a file or not
-_efl_io_model_efl_model_monitor_add(pd);
+_efl_io_model_efl_model_monitor_add(obj, pd);
 pd->request.listing = efl_future_then(obj, f,
 

[EGIT] [core/efl] master 01/04: elm_genlist: ensure item is not deleted while beeing processed

2021-04-10 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 0dc949709f23ac9835c3fac67239f8c265e0d041
Author: Marcel Hollerbach 
Date:   Sat Apr 10 10:44:54 2021 +0200

elm_genlist: ensure item is not deleted while beeing processed

the downside of doing things like genlist is doing, is that a object can
be deleted, due to the fact that the processing call does not have a eo
call in its stack trace, the object is not reffed at all. Hence it
simply gets deleted in the middle of beeing proceded.
With this, this is at least here not happening.
---
 src/lib/elementary/elm_genlist.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/lib/elementary/elm_genlist.c b/src/lib/elementary/elm_genlist.c
index 342d26e0d3..78b3134138 100644
--- a/src/lib/elementary/elm_genlist.c
+++ b/src/lib/elementary/elm_genlist.c
@@ -4435,6 +4435,7 @@ _item_mouse_down_cb(void *data,
// NOTE: keep this code at the bottom, as the user can change the
//   list at this point (clear, delete, etc...)
_item_highlight(it);
+   efl_ref(EO_OBJ(it));
if (ev->flags & EVAS_BUTTON_DOUBLE_CLICK)
  {
 evas_object_smart_callback_call
@@ -4443,7 +,8 @@ _item_mouse_down_cb(void *data,
   (WIDGET(it), ELM_GENLIST_EVENT_ACTIVATED, eo_it);
  }
evas_object_smart_callback_call
- (WIDGET(it), "pressed", eo_it);
+(WIDGET(it), "pressed", eo_it);
+   efl_unref(EO_OBJ(it));
 }
 
 static Item_Block *

-- 




[EGIT] [core/efl] master 04/04: eina_promise: do not self feedback when canceling

2021-04-10 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit be9e83e0db354dad2b4810e1ebf20bad37538d56
Author: Marcel Hollerbach 
Date:   Sat Apr 10 12:15:47 2021 +0200

eina_promise: do not self feedback when canceling

when canceling a all_promise it will cancel all futures. When that
happens, and one future is containing a promise, the value is unrolled,
and delivered as "Operation canceled" if this is happening to the last
future in all or any in race, the promise will then free its base ctx
which is already happening due to canceling.

With this this is not happening anymore.
---
 src/lib/eina/eina_promise.c | 17 ++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/src/lib/eina/eina_promise.c b/src/lib/eina/eina_promise.c
index 4fe51206e4..873d3cb13d 100644
--- a/src/lib/eina/eina_promise.c
+++ b/src/lib/eina/eina_promise.c
@@ -1148,6 +1148,7 @@ typedef struct _Base_Ctx {
Eina_Promise *promise;
Eina_Future **futures;
unsigned int futures_len;
+   Eina_Bool cancelled : 1;
 } Base_Ctx;
 
 typedef struct _All_Promise_Ctx {
@@ -1173,6 +1174,7 @@ _base_ctx_clean(Base_Ctx *ctx)
 static void
 _all_promise_ctx_free(All_Promise_Ctx *ctx)
 {
+   DBG("Cleaning base_ctx for %p", ctx);
_base_ctx_clean(&ctx->base);
eina_value_flush(&ctx->values);
free(ctx);
@@ -1181,12 +1183,16 @@ _all_promise_ctx_free(All_Promise_Ctx *ctx)
 static void
 _all_promise_cancel(void *data, const Eina_Promise *dead EINA_UNUSED)
 {
-   _all_promise_ctx_free(data);
+   All_Promise_Ctx *ctx = data;
+
+   ctx->base.cancelled = 1;
+   _all_promise_ctx_free(ctx);
 }
 
 static void
 _race_promise_ctx_free(Race_Promise_Ctx *ctx)
 {
+   DBG("Cleaning base_ctx for %p", ctx);
_base_ctx_clean(&ctx->base);
free(ctx);
 }
@@ -1194,6 +1200,9 @@ _race_promise_ctx_free(Race_Promise_Ctx *ctx)
 static void
 _race_promise_cancel(void *data, const Eina_Promise *dead EINA_UNUSED)
 {
+   Race_Promise_Ctx *ctx = data;
+
+   ctx->base.cancelled = 1;
_race_promise_ctx_free(data);
 }
 
@@ -1233,7 +1242,8 @@ _race_then_cb(void *data, const Eina_Value v,
ctx->dispatching = EINA_TRUE;
 
//By freeing the race_ctx all the other futures will be cancelled.
-   _race_promise_ctx_free(ctx);
+   if (!ctx->base.cancelled)
+ _race_promise_ctx_free(ctx);
 
r = eina_value_struct_setup(&result, &RACE_STRUCT_DESC);
EINA_SAFETY_ON_FALSE_GOTO(r, err_setup);
@@ -1275,7 +1285,8 @@ _all_then_cb(void *data, const Eina_Value v,
 //We're in a safe context (from mainloop), so we can avoid scheduling 
a new dispatch
 _eina_promise_clean_dispatch(ctx->base.promise, ctx->values);
 ctx->values = EINA_VALUE_EMPTY; /* flushed in 
_eina_promise_clean_dispatch() */
-_all_promise_ctx_free(ctx);
+if (!ctx->base.cancelled)
+  _all_promise_ctx_free(ctx);
  }
return v;
 }

-- 




[EGIT] [core/enlightenment] master 02/02: swipe: add a help screen that tells where to find debug output

2021-04-05 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 2bab67bdef041e8729c93e129b4e6fa23d3bf79a
Author: Marcel Hollerbach 
Date:   Mon Apr 5 21:14:15 2021 +0200

swipe: add a help screen that tells where to find debug output
---
 .../conf_bindings/e_int_config_swipebindings.c | 22 +-
 1 file changed, 21 insertions(+), 1 deletion(-)

diff --git a/src/modules/conf_bindings/e_int_config_swipebindings.c 
b/src/modules/conf_bindings/e_int_config_swipebindings.c
index bc56fc99c..085d5dec9 100644
--- a/src/modules/conf_bindings/e_int_config_swipebindings.c
+++ b/src/modules/conf_bindings/e_int_config_swipebindings.c
@@ -891,6 +891,24 @@ _restore_swipe_binding_defaults_cb(void *data, void *data2 
EINA_UNUSED)
e_widget_disabled_set(cfdata->gui.o_params, 1);
 }
 
+static void
+_close_help_dialog(void *data EINA_UNUSED, E_Dialog *dia)
+{
+   e_object_del(E_OBJECT(dia));
+}
+
+static void
+_help_swipe_bindings_cb(void *data EINA_UNUSED, void *data2 EINA_UNUSED)
+{
+   E_Config_Dialog_Data *cfdata = data;
+
+   E_Dialog *help = e_dialog_new(cfdata->cfd->dia->win, "E", 
"_swipe_recognition");
+   e_dialog_title_set(help, _("Swipe Bindings Help"));
+   e_dialog_text_set(help, _("Enlightenment is using libinput to detect swipe 
gesture. In case there are problems: 1. Test gestures while executing 
\"libinput debug-events\" in terminal. The console output will tell the 
precision of your hardware.2. Watch for error in console, some libinput 
devices are returning wrong results. 3. If your session is running inside 
Xorg, ensure that your user is part of the libinput group."));
+   e_dialog_button_add(help, _("Close"), NULL, _close_help_dialog, help);
+   e_dialog_show(help);
+}
+
 static Evas_Object *
 _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data 
*cfdata)
 {
@@ -922,7 +940,9 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, 
E_Config_Dialog_Data *cf
e_widget_disabled_set(ob, 1);
e_widget_frametable_object_append(of, ob, 1, 2, 1, 1, 1, 0, 1, 0);
ob = e_widget_button_add(evas, _("Restore Default Bindings"), 
"enlightenment", _restore_swipe_binding_defaults_cb, cfdata, NULL);
-   e_widget_frametable_object_append(of, ob, 0, 3, 2, 1, 1, 0, 1, 0);
+   e_widget_frametable_object_append(of, ob, 0, 3, 1, 1, 1, 0, 1, 0);
+   ob = e_widget_button_add(evas, _("Help"), "help", _help_swipe_bindings_cb, 
cfdata, NULL);
+   e_widget_frametable_object_append(of, ob, 1, 3, 1, 1, 1, 0, 1, 0);
e_widget_list_object_append(ol, of, 1, 1, 0.5);
 
ot = e_widget_table_add(e_win_evas_win_get(evas), 0);

-- 




[EGIT] [core/enlightenment] master 01/02: move gesture recognition to e itself

2021-04-05 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 424a6a1930192ba6e41195cc1f99b2ff060a1b43
Author: Marcel Hollerbach 
Date:   Mon Apr 5 20:32:22 2021 +0200

move gesture recognition to e itself
---
 meson.build|   1 +
 src/bin/e_bindings.c   |  36 
 src/bin/e_bindings.h   |   7 ---
 .../e_mod_main.c => bin/e_gesture.c}   |  47 -
 src/bin/e_gesture.h|  13 ++
 src/bin/e_includes.h   |   1 +
 src/bin/e_main.c   |   5 +++
 src/bin/meson.build|   5 ++-
 .../e-module-gesture_recognition.edj   | Bin 30531 -> 0 bytes
 src/modules/gesture_recognition/meson.build|   4 --
 src/modules/gesture_recognition/module.desktop |  10 -
 src/modules/meson.build|   1 -
 12 files changed, 51 insertions(+), 79 deletions(-)

diff --git a/meson.build b/meson.build
index 8fc094014..f081e5b1a 100644
--- a/meson.build
+++ b/meson.build
@@ -298,6 +298,7 @@ dep_eo   = dependency('eo'  , 
required: true)
 dep_eldbus   = dependency('eldbus'  , required: true)
 dep_emotion  = dependency('emotion' , required: true)
 dep_elementary   = dependency('elementary'  , required: true)
+dep_elput= dependency('elput'   , required: true)
 
 dep_wayland = []
 if get_option('wl') == true
diff --git a/src/bin/e_bindings.c b/src/bin/e_bindings.c
index 9c53e1121..f6a494069 100644
--- a/src/bin/e_bindings.c
+++ b/src/bin/e_bindings.c
@@ -21,10 +21,6 @@ static Eina_List *acpi_bindings = NULL;
 static Eina_List *swipe_bindings = NULL;
 
 static unsigned int bindings_disabled = 0;
-static int gesture_capable_devices = 0;
-
-static E_Bindings_Swipe_Live_Update live_update;
-static E_Bindings_Swipe_Live_Update live_update_data;
 
 EINTERN E_Action *(*e_binding_key_list_cb)(E_Binding_Context, 
Ecore_Event_Key*, E_Binding_Modifier, E_Binding_Key **);
 
@@ -1614,19 +1610,6 @@ _e_bindings_edge_cb_timer(void *data)
return ECORE_CALLBACK_CANCEL;
 }
 
-
-E_API void
-e_bindings_gesture_capable_devices_set(int number)
-{
-   gesture_capable_devices = number;
-}
-
-E_API int
-e_bindings_gesture_capable_devices_get(void)
-{
-   return gesture_capable_devices;
-}
-
 E_API void
 e_bindings_swipe_add(E_Binding_Context ctxt, double direction, double length, 
unsigned int fingers, double error, const char *action, const char *params)
 {
@@ -1727,22 +1710,3 @@ e_bindings_swipe_find_candidates(E_Binding_Context ctxt, 
double direction, doubl
 
return ret;
 }
-
-E_API void
-e_bindings_swipe_live_update_hook_set(E_Bindings_Swipe_Live_Update update, 
void *data)
-{
-   live_update = update;
-   live_update_data = data;
-}
-
-E_API E_Bindings_Swipe_Live_Update
-e_bindings_swipe_live_update_hook_get(void)
-{
-   return live_update;
-}
-
-E_API void*
-e_bindings_swipe_live_update_hook_data_get(void)
-{
-   return live_update_data;
-}
diff --git a/src/bin/e_bindings.h b/src/bin/e_bindings.h
index 40a048050..f00970722 100644
--- a/src/bin/e_bindings.h
+++ b/src/bin/e_bindings.h
@@ -212,8 +212,6 @@ typedef struct {
double acceptance; //0 to 1
 } E_Binding_Swipe_Candidate;
 
-typedef void (*E_Bindings_Swipe_Live_Update)(void *data, Eina_Bool end, double 
direction, double length, double error, unsigned int fingers);
-
 /**
  * Direction is in radiens, 0 is pointing to the right. Going clockwise. (Only 
positive range)
  */
@@ -222,11 +220,6 @@ E_API void  e_bindings_swipe_add(E_Binding_Context 
ctxt, double directio
 E_API void  e_bindings_swipe_del(E_Binding_Context ctxt, double 
direction, double length, unsigned int fingers, double error, const char 
*action, const char *params);
 E_API E_Action* e_bindings_swipe_handle(E_Binding_Context ctxt, E_Object 
*obj, double direction, double length, unsigned int fingers);
 E_API Eina_Inarray/**/* 
e_bindings_swipe_find_candidates(E_Binding_Context ctxt, double direction, 
double lenght, unsigned int fingers);
-E_API void   
e_bindings_swipe_live_update_hook_set(E_Bindings_Swipe_Live_Update update, void 
*data);
-E_API E_Bindings_Swipe_Live_Update e_bindings_swipe_live_update_hook_get(void);
-E_API void   e_bindings_gesture_capable_devices_set(int number);
-E_API inte_bindings_gesture_capable_devices_get(void);
-E_API void*  e_bindings_swipe_live_update_hook_data_get(void);
 
 E_API int e_bindings_evas_modifiers_convert(Evas_Modifier *modifiers);
 E_API int e_bindings_modifiers_to_ecore_convert(E_Binding_Modifier modifiers);
diff --git a/src/modules/gesture_recognition/e_mod_main.c b/src/bin/e_gesture.

[EGIT] [core/enlightenment] master 01/01: swipe_config: only warn on x not on wl

2021-04-05 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 59ae22f8ec894fdf6a2ecf3dc202c4dd1c49ab7b
Author: Marcel Hollerbach 
Date:   Mon Apr 5 18:29:34 2021 +0200

swipe_config: only warn on x not on wl
---
 src/modules/conf_bindings/e_int_config_swipebindings.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/modules/conf_bindings/e_int_config_swipebindings.c 
b/src/modules/conf_bindings/e_int_config_swipebindings.c
index a982e58d3..bc56fc99c 100644
--- a/src/modules/conf_bindings/e_int_config_swipebindings.c
+++ b/src/modules/conf_bindings/e_int_config_swipebindings.c
@@ -998,7 +998,7 @@ e_int_config_swipebindings(Evas_Object *parent EINA_UNUSED, 
const char *params)
v->basic.create_widgets = _basic_create_widgets;
v->override_auto_apply = 1;
 
-   if (!_user_part_of_input())
+   if (e_comp->comp_type == E_PIXMAP_TYPE_X && !_user_part_of_input())
  {
 e_module_dialog_show(NULL, "Gesture Recognition", "Your user is not 
part of the input group, libinput cannot be used.");
  }

-- 




[EGIT] [core/efl] master 01/01: build: enable elput per default

2021-04-03 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 0c2cf7e1bf7ca547655d25aaea30d081101b42be
Author: Marcel Hollerbach 
Date:   Sat Apr 3 17:43:25 2021 +0200

build: enable elput per default

this is now needed by enlightenment in order to support gesture
recognition, even in xorg, hence enabling it per default.
---
 meson.build   | 2 +-
 meson_options.txt | 6 ++
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/meson.build b/meson.build
index a803a197a2..25677fcc3f 100644
--- a/meson.build
+++ b/meson.build
@@ -330,7 +330,7 @@ subprojects = [
   ['ecore_ipc',[], false,  true, false,  false,  
false, false,  true, ['eina'], []],
   ['ecore_buffer' ,['buffer'],  true,  true,  true,  false,  
false, false,  true, ['eina'], []],
   ['ector',[], false,  true, false,  false,   
true, false,  true, ['eina', 'efl'], ['draw', 'triangulator', 'freetype']],
-  ['elput',['drm']   , false,  true, false,  false,   
true, false,  true, ['eina', 'eldbus'], []],
+  ['elput',['input'] , false,  true, false,  false,   
true, false,  true, ['eina', 'eldbus'], []],
   ['ecore_drm2'   ,['drm']   , false,  true, false,  false,  
false, false,  true, ['ecore'], ['libdrm']],
   ['ecore_cocoa'  ,['cocoa'] , false,  true, false,  false,  
false, false,  true, ['eina'], []],
   ['evas' ,[],  true,  true, false,  false,   
true,  true,  true, ['eina', 'efl', 'eo'], ['vg_common', 'libunibreak']],
diff --git a/meson_options.txt b/meson_options.txt
index b224179366..8c21e69436 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -46,6 +46,12 @@ option('drm',
   description : 'DRM/KMS advanced framebuffer/console support in efl'
 )
 
+option('input',
+  type : 'boolean',
+  value : true,
+  description : 'libinput abstraction in efl'
+)
+
 option('cocoa',
   type : 'boolean',
   value : false,

-- 




[EGIT] [core/efl] master 01/01: theme: only emit press once

2021-04-01 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 8900c8048cfdf0afa1851c39ed9492b6401c30de
Author: Marcel Hollerbach 
Date:   Thu Apr 1 16:59:15 2021 +0200

theme: only emit press once

otherwise things go haywire.
---
 data/elementary/themes/edc/efl/check.edc | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/data/elementary/themes/edc/efl/check.edc 
b/data/elementary/themes/edc/efl/check.edc
index be87511e07..e2a82d698d 100644
--- a/data/elementary/themes/edc/efl/check.edc
+++ b/data/elementary/themes/edc/efl/check.edc
@@ -224,7 +224,7 @@ group { name: "efl/check";
   }
}
programs {
-  EFL_UI_CLICKABLE_PART_BIND("event")
+  EFL_UI_CLICKABLE_PART_BIND(event)
   program { signal: "mouse,down,1"; source: "event";
  script {
 new buf[32]; new Float:val;
@@ -248,7 +248,6 @@ group { name: "efl/check";
  action: PLAY_SAMPLE "wood-tap2" 1.0 INPUT;
   }
   program { signal: "mouse,down,1"; source: "event";
- action: SIGNAL_EMIT "efl,action,press" "efl";
  after: "button_click_anim";
   }
   program { signal: "mouse,down,1"; source: "event";

-- 




[EGIT] [core/efl] master 01/01: tests: fix efl_ui_suite

2021-04-01 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 665d62485ba2d7f1cb1ca78c18d25e19a515f674
Author: Marcel Hollerbach 
Date:   Thu Apr 1 15:22:57 2021 +0200

tests: fix efl_ui_suite
---
 src/tests/elementary/efl_ui_test_list_collection.c | 84 +++---
 1 file changed, 42 insertions(+), 42 deletions(-)

diff --git a/src/tests/elementary/efl_ui_test_list_collection.c 
b/src/tests/elementary/efl_ui_test_list_collection.c
index 94bafbd010..cdaca085f4 100644
--- a/src/tests/elementary/efl_ui_test_list_collection.c
+++ b/src/tests/elementary/efl_ui_test_list_collection.c
@@ -64,9 +64,9 @@ EFL_START_TEST(placement_test_only_items)
  {
 Eina_Rect r = efl_gfx_entity_geometry_get(item[i]);
 
-ck_assert_int_eq(r.x, 1);
-ck_assert_int_eq(r.y, 1+(i+2)*40);
-ck_assert_int_eq(r.w, 183); // 200 - 2px border - X for the width of 
the scrollbar.
+ck_assert_int_eq(r.x, 0);
+ck_assert_int_eq(r.y, (i+2)*40);
+ck_assert_int_eq(r.w, 200); // 200 - 2px border - X for the width of 
the scrollbar.
 ck_assert_int_eq(r.h, 40);
  }
 
@@ -76,9 +76,9 @@ EFL_START_TEST(placement_test_only_items)
  {
 Eina_Rect r = efl_gfx_entity_geometry_get(item[i]);
 
-ck_assert_int_eq(r.x, 1);
-ck_assert_int_eq(r.y, 1+i*40);
-ck_assert_int_eq(r.w, 183); // 200 - 2px border - X for the width of 
the scrollbar.
+ck_assert_int_eq(r.x, 0);
+ck_assert_int_eq(r.y, i*40);
+ck_assert_int_eq(r.w, 200); // 200 - 2px border - X for the width of 
the scrollbar.
 ck_assert_int_eq(r.h, 40);
  }
 
@@ -127,9 +127,9 @@ EFL_START_TEST(placement_test_group)
  {
 r = efl_gfx_entity_geometry_get(core_item[i]);
 
-ck_assert_int_eq(r.x, 1);
-ck_assert_int_eq(r.y, 1+(i+1)*40);
-ck_assert_int_eq(r.w, 183); // 200 - 2px border - X for the width of 
the scrollbar.
+ck_assert_int_eq(r.x, 0);
+ck_assert_int_eq(r.y, 0+(i+1)*40);
+ck_assert_int_eq(r.w, 200); // 200 - 2px border - X for the width of 
the scrollbar.
 ck_assert_int_eq(r.h, 40);
  }
 
@@ -140,9 +140,9 @@ EFL_START_TEST(placement_test_group)
  {
 r = efl_gfx_entity_geometry_get(core_item[i]);
 
-ck_assert_int_eq(r.x, 1);
-ck_assert_int_eq(r.y, 1+i*40);
-ck_assert_int_eq(r.w, 183); // 200 - 2px border - X for the width of 
the scrollbar.
+ck_assert_int_eq(r.x, 0);
+ck_assert_int_eq(r.y, i*40);
+ck_assert_int_eq(r.w, 200); // 200 - 2px border - X for the width of 
the scrollbar.
 ck_assert_int_eq(r.h, 40);
  }
 
@@ -151,18 +151,18 @@ EFL_START_TEST(placement_test_group)
 
r = efl_gfx_entity_geometry_get(core_item[0]);
 
-   ck_assert_int_eq(r.x, 1);
-   ck_assert_int_eq(r.y, 1);
-   ck_assert_int_eq(r.w, 183); // 200 - 2px border - X for the width of the 
scrollbar.
+   ck_assert_int_eq(r.x, 0);
+   ck_assert_int_eq(r.y, 0);
+   ck_assert_int_eq(r.w, 200); // 200 - 2px border - X for the width of the 
scrollbar.
ck_assert_int_eq(r.h, 40);
 
for (int i = 1; i < 4; ++i)
  {
 r = efl_gfx_entity_geometry_get(core_item[i]);
 
-ck_assert_int_eq(r.x, 1);
-ck_assert_int_eq(r.y, 22+(i - 1)*40);
-ck_assert_int_eq(r.w, 183); // 200 - 2px border - X for the width of 
the scrollbar.
+ck_assert_int_eq(r.x, 0);
+ck_assert_int_eq(r.y, 20+(i - 1)*40);
+ck_assert_int_eq(r.w, 200); // 200 - 2px border - X for the width of 
the scrollbar.
 ck_assert_int_eq(r.h, 40);
  }
 
@@ -171,18 +171,18 @@ EFL_START_TEST(placement_test_group)
 
r = efl_gfx_entity_geometry_get(core_item[0]);
 
-   ck_assert_int_eq(r.x, 1);
-   ck_assert_int_eq(r.y, 1);
-   ck_assert_int_eq(r.w, 183); // 200 - 2px border - X for the width of the 
scrollbar.
+   ck_assert_int_eq(r.x, 0);
+   ck_assert_int_eq(r.y, 0);
+   ck_assert_int_eq(r.w, 200); // 200 - 2px border - X for the width of the 
scrollbar.
ck_assert_int_eq(r.h, 40);
 
for (int i = 2; i < 4; ++i)
  {
 r = efl_gfx_entity_geometry_get(core_item[i]);
 
-ck_assert_int_eq(r.x, 1);
-ck_assert_int_eq(r.y, 2+(i-2)*40);
-ck_assert_int_eq(r.w, 183); // 200 - 2px border - X for the width of 
the scrollbar.
+ck_assert_int_eq(r.x, 0);
+ck_assert_int_eq(r.y, (i-2)*40);
+ck_assert_int_eq(r.w, 200); // 200 - 2px border - X for the width of 
the scrollbar.
 ck_assert_int_eq(r.h, 40);
  }
 
@@ -237,9 +237,9 @@ EFL_START_TEST(placement_test_group_crazy)
  {
 r = efl_gfx_entity_geometry_get(core_item[i]);
 
-ck_assert_int_eq(r.x, 1);
-ck_assert_int_eq(r.y, 1+(i+1)*40);
-ck_assert_int_eq(r.w, 183); // 200 - 2px border - X for the width of 
the scrollbar.
+ck_assert_int_eq(r.x, 0);
+ck_assert_int_eq(r.y, (i

[EGIT] [core/efl] master 01/01: elput: introduce gesture passing

2021-04-01 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 8493a38876e02e5448b7eafe23725f8843d69185
Author: Marcel Hollerbach 
Date:   Wed Mar 24 16:07:27 2021 +0100

elput: introduce gesture passing

In order to have that working on Xorg, this requires the libinput group
hack if you are not session leader.
For now this only has swipe bindings, other gestures can follow.
---
 src/lib/elput/Elput.h  | 104 +
 src/lib/elput/elput.c  |   6 ++
 src/lib/elput/elput_gestures.c |  78 ++
 src/lib/elput/elput_input.c|  29 
 src/lib/elput/elput_manager.c  |   1 +
 src/lib/elput/elput_private.h  |  10 +++
 src/lib/elput/elput_root.c | 146 +
 src/lib/elput/meson.build  |   2 +
 8 files changed, 364 insertions(+), 12 deletions(-)

diff --git a/src/lib/elput/Elput.h b/src/lib/elput/Elput.h
index 7a05f8e795..03f186a8c8 100644
--- a/src/lib/elput/Elput.h
+++ b/src/lib/elput/Elput.h
@@ -47,6 +47,9 @@ typedef struct _Elput_Pointer Elput_Pointer;
 /* opaque structure to represent a touch device */
 typedef struct _Elput_Touch Elput_Touch;
 
+/* opaque structure to represent swipe data */
+typedef struct _Elput_Swipe_Gesture Elput_Swipe_Gesture;
+
 /* structure to represent event for seat capability changes */
 typedef struct _Elput_Event_Seat_Caps
 {
@@ -131,6 +134,7 @@ EAPI extern int ELPUT_EVENT_MODIFIERS_SEND;
 EAPI extern int ELPUT_EVENT_DEVICE_CHANGE;
 EAPI extern int ELPUT_EVENT_SESSION_ACTIVE;
 
+
 /** @since 1.19 */
 EAPI extern int ELPUT_EVENT_POINTER_MOTION;
 
@@ -201,6 +205,19 @@ EAPI int elput_shutdown(void);
  */
 EAPI Elput_Manager *elput_manager_connect(const char *seat, unsigned int tty);
 
+/**
+ * Create an input manager on the specified seat. Only gesture events are 
emitted. Nothing else.
+ *
+ * @param seat
+ * @param tty
+ *
+ * @return A Elput_Manager on success, NULL on failure
+ *
+ * @ingroup Elput_Manager_Group
+ */
+EAPI Elput_Manager *elput_manager_connect_gestures(const char *seat, unsigned 
int tty);
+
+
 /**
  * Disconnect an input manager
  *
@@ -726,6 +743,93 @@ EAPI Eina_Stringshare *elput_seat_name_get(const 
Elput_Seat *seat);
  * @since 1.20
  */
 EAPI Elput_Manager *elput_seat_manager_get(const Elput_Seat *seat);
+
+
+/**
+ * @defgroup Elput_Gestures Elput gesture accessors
+ *
+ * Functions for accessing details of gesture events.
+ * The structure pointers can only be accessed within the events that emit 
them.
+ */
+
+/**
+ * A swipe gesture has began.
+ * ELPUT_EVENT_SWIPE_UPDATE and finally a single ELPUT_EVENT_SWIPE_END event 
will be emitted.
+ *
+ * @ingroup Elput_Gestures
+ * @since 1.26
+ */
+EAPI extern int ELPUT_EVENT_SWIPE_BEGIN;
+
+/**
+ * There is a change to a ongoing swipe gesture.
+ *
+ * @ingroup Elput_Gestures
+ * @since 1.26
+ */
+EAPI extern int ELPUT_EVENT_SWIPE_UPDATE;
+
+/**
+ * A ongoing swipe gesture has ended.
+ * This ends the lifetime of this gesture.
+ *
+ * @ingroup Elput_Gestures
+ * @since 1.26
+ */
+EAPI extern int ELPUT_EVENT_SWIPE_END;
+
+/**
+ * Get the difference of x position from the last event to this event.
+ *
+ * @param gesture The event, if NULL 0 is returned
+ *
+ * @ingroup Elput_Gestures
+ * @since 1.26
+ */
+EAPI double elput_swipe_dx_get(Elput_Swipe_Gesture *gesture);
+
+/**
+ * Get the difference of y position from the last event to this event.
+ *
+ * @param gesture The event, if NULL 0 is returned
+ *
+ * @ingroup Elput_Gestures
+ * @since 1.26
+ */
+EAPI double elput_swipe_dy_get(Elput_Swipe_Gesture *gesture);
+
+/**
+ * Get the finger_count for this gesture
+ *
+ * @param gesture The event, if NULL 0 is returned
+ *
+ * @ingroup Elput_Gestures
+ * @since 1.26
+ */
+EAPI int elput_swipe_finger_count_get(Elput_Swipe_Gesture *gesture);
+
+/**
+ * Get the window in which this event is emitted.
+ *
+ * @param gesture The event, if NULL 0 is returned
+ *
+ * @ingroup Elput_Gestures
+ * @since 1.26
+ */
+EAPI int elput_swipe_window_get(Elput_Swipe_Gesture *gesture);
+
+/**
+ * Get the device from which the gesture event is coming.
+ *
+ * This value is the same for the lifetime of a gesture
+ *
+ * @param gesture The event, if NULL, NULL is returned
+ *
+ * @ingroup Elput_Gestures
+ * @since 1.26
+ */
+EAPI Elput_Device *elput_swipe_device_get(Elput_Swipe_Gesture *gesture);
+
 # endif
 
 # undef EAPI
diff --git a/src/lib/elput/elput.c b/src/lib/elput/elput.c
index 3c51bca1ff..6426e803e4 100644
--- a/src/lib/elput/elput.c
+++ b/src/lib/elput/elput.c
@@ -14,6 +14,9 @@ EAPI int ELPUT_EVENT_DEVICE_CHANGE = 0;
 EAPI int ELPUT_EVENT_SESSION_ACTIVE = 0;
 EAPI int ELPUT_EVENT_POINTER_MOTION = 0;
 EAPI int ELPUT_EVENT_SWITCH = 0;
+EAPI int ELPUT_EVENT_SWIPE_BEGIN = 0;
+EAPI int ELPUT_EVENT_SWIPE_UPDATE = 0;
+EAPI int ELPUT_EVENT_SWIPE_END = 0;
 
 EAPI int
 elput_init(void)
@@ -40,6 +43,9 @@ elput_init(void

[EGIT] [core/enlightenment] master 01/01: gesture_recognition: Rework to use elput

2021-04-01 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit ed5dcfbd60c6c37b06c64395df3d4c9b11293f24
Author: Marcel Hollerbach 
Date:   Wed Mar 24 16:04:48 2021 +0100

gesture_recognition: Rework to use elput

With this:
- Support for gestures in X *and* wayland. Wayland does not require the
  libinput group hack
- Hotplugging support thanks to udev support

This requires a new rebuild of efl.
---
 src/bin/e_bindings.c   |  14 ++
 src/bin/e_bindings.h   |   2 +
 .../conf_bindings/e_int_config_swipebindings.c |  47 +++-
 src/modules/gesture_recognition/e_mod_main.c   | 265 +
 src/modules/gesture_recognition/meson.build|   2 +-
 5 files changed, 170 insertions(+), 160 deletions(-)

diff --git a/src/bin/e_bindings.c b/src/bin/e_bindings.c
index 08a19c336..9c53e1121 100644
--- a/src/bin/e_bindings.c
+++ b/src/bin/e_bindings.c
@@ -21,6 +21,7 @@ static Eina_List *acpi_bindings = NULL;
 static Eina_List *swipe_bindings = NULL;
 
 static unsigned int bindings_disabled = 0;
+static int gesture_capable_devices = 0;
 
 static E_Bindings_Swipe_Live_Update live_update;
 static E_Bindings_Swipe_Live_Update live_update_data;
@@ -1613,6 +1614,19 @@ _e_bindings_edge_cb_timer(void *data)
return ECORE_CALLBACK_CANCEL;
 }
 
+
+E_API void
+e_bindings_gesture_capable_devices_set(int number)
+{
+   gesture_capable_devices = number;
+}
+
+E_API int
+e_bindings_gesture_capable_devices_get(void)
+{
+   return gesture_capable_devices;
+}
+
 E_API void
 e_bindings_swipe_add(E_Binding_Context ctxt, double direction, double length, 
unsigned int fingers, double error, const char *action, const char *params)
 {
diff --git a/src/bin/e_bindings.h b/src/bin/e_bindings.h
index b65fabe38..40a048050 100644
--- a/src/bin/e_bindings.h
+++ b/src/bin/e_bindings.h
@@ -224,6 +224,8 @@ E_API E_Action* 
e_bindings_swipe_handle(E_Binding_Context ctxt, E_Object *ob
 E_API Eina_Inarray/**/* 
e_bindings_swipe_find_candidates(E_Binding_Context ctxt, double direction, 
double lenght, unsigned int fingers);
 E_API void   
e_bindings_swipe_live_update_hook_set(E_Bindings_Swipe_Live_Update update, void 
*data);
 E_API E_Bindings_Swipe_Live_Update e_bindings_swipe_live_update_hook_get(void);
+E_API void   e_bindings_gesture_capable_devices_set(int number);
+E_API inte_bindings_gesture_capable_devices_get(void);
 E_API void*  e_bindings_swipe_live_update_hook_data_get(void);
 
 E_API int e_bindings_evas_modifiers_convert(Evas_Modifier *modifiers);
diff --git a/src/modules/conf_bindings/e_int_config_swipebindings.c 
b/src/modules/conf_bindings/e_int_config_swipebindings.c
index 90c5ced93..a982e58d3 100644
--- a/src/modules/conf_bindings/e_int_config_swipebindings.c
+++ b/src/modules/conf_bindings/e_int_config_swipebindings.c
@@ -276,12 +276,12 @@ _action_change_cb(void *data)
 static int
 _swipe_binding_sort_cb(E_Config_Binding_Swipe *a, E_Config_Binding_Swipe *b)
 {
-   int finger_diff = (a->fingers == b->fingers)*-1;
+   int finger_diff = a->fingers - b->fingers;
if (!finger_diff)
  {
 return a->direction - b->direction;
  }
-   return finger_diff;
+   return finger_diff*-1;
 }
 
 static void
@@ -950,6 +950,38 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, 
E_Config_Dialog_Data *cf
return o;
 }
 
+static Eina_Bool
+_user_part_of_input(void)
+{
+   uid_t user = getuid();
+   struct passwd *user_pw = getpwuid(user);
+   gid_t *gids = NULL;
+   int number_of_groups = 0;
+   struct group *input_group = getgrnam("input");
+
+   EINA_SAFETY_ON_NULL_RETURN_VAL(user_pw, EINA_FALSE);
+   EINA_SAFETY_ON_NULL_RETURN_VAL(input_group, EINA_FALSE);
+
+   if (getgrouplist(user_pw->pw_name, getgid(), NULL, &number_of_groups) != -1)
+ {
+ERR("Failed to enumerate groups of user");
+return EINA_FALSE;
+ }
+   number_of_groups ++;
+   gids = alloca((number_of_groups) * sizeof(gid_t));
+   if (getgrouplist(user_pw->pw_name, getgid(), gids, &number_of_groups) == -1)
+ {
+ERR("Failed to get groups of user");
+return EINA_FALSE;
+ }
+
+   for (int i = 0; i < number_of_groups; ++i)
+ {
+if (gids[i] == input_group->gr_gid)
+  return EINA_TRUE;
+ }
+   return EINA_FALSE;
+}
 
 E_Config_Dialog *
 e_int_config_swipebindings(Evas_Object *parent EINA_UNUSED, const char *params)
@@ -966,13 +998,22 @@ e_int_config_swipebindings(Evas_Object *parent 
EINA_UNUSED, const char *params)
v->basic.create_widgets = _basic_create_widgets;
v->override_auto_apply = 1;
 
+   if (!_user_part_of_input())
+ {
+e_module_dialog_show(NULL, "Gesture Recognition", "Your user is not 
part of the input group, li

[EGIT] [core/efl] master 01/01: eeze_scanner: do not crash

2021-03-15 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 046c5cd58e1feb8760a1fbf4a1bb4253ed40f947
Author: Marcel Hollerbach 
Date:   Mon Mar 15 14:01:32 2021 +0100

eeze_scanner: do not crash

the free logic here was wrong. The udev_device_get_parent results get
automatically unrefed when the original device is deleted.

This caused random segfaults when starting e.
---
 src/lib/eeze/eeze_udev_walk.c | 18 ++
 1 file changed, 6 insertions(+), 12 deletions(-)

diff --git a/src/lib/eeze/eeze_udev_walk.c b/src/lib/eeze/eeze_udev_walk.c
index 4cd661b184..5df34178a8 100644
--- a/src/lib/eeze/eeze_udev_walk.c
+++ b/src/lib/eeze/eeze_udev_walk.c
@@ -40,7 +40,7 @@ EAPI const char *
 eeze_udev_walk_get_sysattr(const char *syspath,
const char *sysattr)
 {
-   _udev_device *device, *child, *parent;
+   _udev_device *device, *parent;
const char *test = NULL;
 
if (!syspath)
@@ -49,18 +49,12 @@ eeze_udev_walk_get_sysattr(const char *syspath,
if (!(device = _new_device(syspath)))
  return NULL;
 
-   for (parent = device; parent;)
+   for (parent = device; parent && !test;)
  {
-if ((test = udev_device_get_sysattr_value(parent, sysattr)))
-  {
- test = eina_stringshare_add(test);
- udev_device_unref(parent);
- return test;
-  }
-child = parent;
-parent = udev_device_get_parent(child);
-udev_device_unref(child);
+test = udev_device_get_sysattr_value(parent, sysattr);
+parent = udev_device_get_parent(parent);
  }
 
-   return NULL;
+   udev_device_unref(device);
+   return eina_stringshare_add(test);
 }

-- 




[EGIT] [core/efl] master 01/01: ci: there is no heif

2021-03-14 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 3cd6191409207813a3801c584996fa1942e0f9d1
Author: Marcel Hollerbach 
Date:   Sun Mar 14 14:56:08 2021 +0100

ci: there is no heif
---
 .ci/ci-configure.sh | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/.ci/ci-configure.sh b/.ci/ci-configure.sh
index 85aeb75202..77c196848b 100755
--- a/.ci/ci-configure.sh
+++ b/.ci/ci-configure.sh
@@ -17,7 +17,7 @@ if [ "$DISTRO" != "" ] ; then
   # - Ibus
   ENABLED_LINUX_COPTS=" -Dfb=true -Dsdl=true -Dbuffer=true 
-Dbuild-id=travis-build \
   -Ddebug-threads=true -Dglib=true -Dg-mainloop=true -Dxpresent=true 
-Dxinput22=true \
-  -Devas-loaders-disabler=json,avif -Decore-imf-loaders-disabler= \
+  -Decore-imf-loaders-disabler= \
   -Dharfbuzz=true -Dpixman=true -Dhyphen=true -Defl-one=true \
   -Dvnc-server=true -Delua=true -Dbindings=lua,cxx,mono -Delogind=false 
-Dinstall-eo-files=true -Dphysics=true"
 
@@ -26,7 +26,7 @@ if [ "$DISTRO" != "" ] ; then
   -Dopengl=none -Deina-magic-debug=false -Dbuild-examples=false 
-Dbuild-tests=false \
   -Dcrypto=gnutls -Dglib=false -Dgstreamer=false -Dsystemd=false 
-Dpulseaudio=false \
   -Dnetwork-backend=connman -Dxinput2=false -Dtslib=false \
-  
-Devas-loaders-disabler=gst,pdf,ps,raw,svg,xcf,bmp,dds,eet,generic,gif,ico,jp2k,json,pmaps,psd,tga,tgv,tiff,wbmp,webp,xpm,avif
 \
+  
-Devas-loaders-disabler=gst,pdf,ps,raw,svg,xcf,bmp,dds,eet,generic,gif,ico,jp2k,json,pmaps,psd,tga,tgv,tiff,wbmp,webp,xpm,avif,heif
 \
   -Decore-imf-loaders-disabler=xim,ibus,scim \
   -Dfribidi=false -Dfontconfig=false \
   -Dedje-sound-and-video=false -Dembedded-lz4=false -Dlibmount=false 
-Dv4l2=false \
@@ -37,7 +37,7 @@ if [ "$DISTRO" != "" ] ; then
 
   MINGW_COPTS="--cross-file .ci/cross_toolchain.txt -Davahi=false -Deeze=false 
-Dsystemd=false \
   -Dpulseaudio=false -Dx11=false -Dopengl=none -Dlibmount=false \
-  -Devas-loaders-disabler=json,pdf,ps,raw,svg,rsvg,avif \
+  -Devas-loaders-disabler=json,pdf,ps,raw,svg,rsvg,avif,heif \
   -Dharfbuzz=true -Dpixman=true -Dembedded-lz4=false "
 
   if [ "$1" = "default" ]; then

-- 




[EGIT] [core/efl] master 01/01: efl_ui_collection: disable desktop_entry behaviour when in api call

2021-03-14 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 5215421570119b721d7b38f4adf4e6049b5dfeaa
Author: Marcel Hollerbach 
Date:   Sun Mar 14 14:34:14 2021 +0100

efl_ui_collection: disable desktop_entry behaviour when in api call

otherwise only the last item would have been selected.
---
 src/lib/elementary/efl_ui_collection.c | 7 ++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/lib/elementary/efl_ui_collection.c 
b/src/lib/elementary/efl_ui_collection.c
index bd3123a70f..2161181687 100644
--- a/src/lib/elementary/efl_ui_collection.c
+++ b/src/lib/elementary/efl_ui_collection.c
@@ -147,6 +147,7 @@ typedef struct {
Efl_Gfx_Entity *sizer;
unsigned int start_id, end_id;
Eina_Bool allow_manual_deselection : 1;
+   Eina_Bool api_selection_change : 1;
 } Efl_Ui_Collection_Data;
 
 static Eina_Bool register_item(Eo *obj, Efl_Ui_Collection_Data *pd, 
Efl_Ui_Item *item);
@@ -579,7 +580,7 @@ _selection_changed(void *data, const Efl_Event *ev)
   {
  _single_selection_behaviour(obj, pd, ev->object);
   }
-else if (pd->mode == EFL_UI_SELECT_MODE_MULTI && 
_elm_config->desktop_entry)
+else if (pd->mode == EFL_UI_SELECT_MODE_MULTI && 
_elm_config->desktop_entry && !pd->api_selection_change)
   {
  const Evas_Modifier *mod = 
evas_key_modifier_get(evas_object_evas_get(ev->object));
  if (!(efl_input_clickable_interaction_get(ev->object)
@@ -,13 +1112,17 @@ _selectable_range_apply(Eina_List *start, Eina_Bool 
flag)
 EOLIAN static void
 _efl_ui_collection_efl_ui_multi_selectable_all_select(Eo *obj EINA_UNUSED, 
Efl_Ui_Collection_Data *pd)
 {
+   pd->api_selection_change = EINA_TRUE;
_selectable_range_apply(pd->items, EINA_TRUE);
+   pd->api_selection_change = EINA_FALSE;
 }
 
 EOLIAN static void
 _efl_ui_collection_efl_ui_multi_selectable_all_unselect(Eo *obj EINA_UNUSED, 
Efl_Ui_Collection_Data *pd)
 {
+   pd->api_selection_change = EINA_TRUE;
_selectable_range_apply(pd->items, EINA_FALSE);
+   pd->api_selection_change = EINA_FALSE;
 }
 
 static void

-- 




[EGIT] [apps/terminology] master 01/03: controls: always focus new button

2020-12-09 Thread Marcel Hollerbach
billiob pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=45308392499df4ec5c5f0a74b6f5413bfa30b584

commit 45308392499df4ec5c5f0a74b6f5413bfa30b584
Author: Marcel Hollerbach 
Date:   Wed Dec 9 10:40:59 2020 +0100

controls: always focus new button

if the terminal is unfocused, the layout is not allowed to get focus 
anymore.
This way we ensure that cases where we have multiple ui elements 
overlapping cause problems.
---
 src/bin/controls.c | 224 +++--
 src/bin/win.c  |   6 ++
 2 files changed, 119 insertions(+), 111 deletions(-)

diff --git a/src/bin/controls.c b/src/bin/controls.c
index 6214118..85d5dd2 100644
--- a/src/bin/controls.c
+++ b/src/bin/controls.c
@@ -19,6 +19,7 @@ typedef struct _Controls_Ctx {
  Evas_Object *base;
  Evas_Object *bg;
  Evas_Object *term;
+ Evas_Object *new_btn;
  void (*donecb) (void *data);
  void *donedata;
 } Controls_Ctx;
@@ -351,141 +352,142 @@ controls_show(Evas_Object *win, Evas_Object *base, 
Evas_Object *bg,
Evas_Object *ct_boxh, *ct_boxv, *ct_box, *ct_box2;
Controls_Ctx *ctx;
 
-   if (eina_hash_find(controls, &win) ||
-   elm_layout_content_get(base, "terminology.controls"))
+   ctx = eina_hash_find(controls, &win);
+   if (ctx)
  {
 donecb(donedata);
-return;
  }
+   else
+ {
+ctx = malloc(sizeof(*ctx));
+assert(ctx);
+ctx->win = win;
+ctx->wn = win_evas_object_to_win(win);
+ctx->base = base;
+ctx->bg = bg;
+ctx->term = term;
+ctx->donecb = donecb;
+ctx->donedata = donedata;
+
+eina_hash_add(controls, &win, ctx);
+
+ctx->frame = o = elm_frame_add(win);
+evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, 
EVAS_HINT_EXPAND);
+evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
+elm_object_text_set(o, _("Controls"));
+
+ct_boxv = o = elm_box_add(win);
+elm_box_horizontal_set(o, EINA_FALSE);
+elm_object_content_set(ctx->frame, o);
+evas_object_show(o);
 
-   ctx = malloc(sizeof(*ctx));
-   assert(ctx);
-   ctx->win = win;
-   ctx->wn = win_evas_object_to_win(win);
-   ctx->base = base;
-   ctx->bg = bg;
-   ctx->term = term;
-   ctx->donecb = donecb;
-   ctx->donedata = donedata;
-
-   eina_hash_add(controls, &win, ctx);
-
-   ctx->frame = o = elm_frame_add(win);
-   evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-   evas_object_size_hint_align_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
-   elm_object_text_set(o, _("Controls"));
-
-   ct_boxv = o = elm_box_add(win);
-   elm_box_horizontal_set(o, EINA_FALSE);
-   elm_object_content_set(ctx->frame, o);
-   evas_object_show(o);
-
-   ct_boxh = o = elm_box_add(win);
-   elm_box_pack_end(ct_boxv, o);
-   elm_box_horizontal_set(o, EINA_TRUE);
-   evas_object_show(o);
+ct_boxh = o = elm_box_add(win);
+elm_box_pack_end(ct_boxv, o);
+elm_box_horizontal_set(o, EINA_TRUE);
+evas_object_show(o);
 
-   ct_box = o = elm_box_add(win);
-   elm_box_pack_end(ct_boxh, o);
-   evas_object_show(o);
+ct_box = o = elm_box_add(win);
+elm_box_pack_end(ct_boxh, o);
+evas_object_show(o);
 
-   o = _button_add(win, _("New"), "window-new",
-   _cb_ct_new, ctx);
-   elm_box_pack_end(ct_box, o);
-   elm_object_focus_set(o, EINA_TRUE);
+o = _button_add(win, _("New"), "window-new",
+_cb_ct_new, ctx);
+elm_box_pack_end(ct_box, o);
+ctx->new_btn=o;
 
-   o = _sep_add_h(win);
-   elm_box_pack_end(ct_box, o);
+o = _sep_add_h(win);
+elm_box_pack_end(ct_box, o);
 
-   o = _button_add(win, _("Split V"), "split-v",
-   _cb_ct_split_v, ctx);
-   elm_box_pack_end(ct_box, o);
+o = _button_add(win, _("Split V"), "split-v",
+_cb_ct_split_v, ctx);
+elm_box_pack_end(ct_box, o);
 
-   o = _button_add(win, _("Split H"), "split-h",
-   _cb_ct_split_h, ctx);
-   elm_box_pack_end(ct_box, o);
+o = _button_add(win, _("Split H"), "split-h",
+_cb_ct_split_h, ctx);
+elm_box_pack_end(ct_box, o);
 
-   o = _sep_add_h(win);
-   elm_box_pack_end(ct_box, o);
+o = _sep_add_h(win);
+elm_box_pack_end(ct_box, o);
 
-   o = _button_add(win, _("Miniview"), "view-restore",
-   _cb_ct_miniview, ctx);
-   elm_box_pack_end(ct_box, o);
+o = _button_add(win, _("Miniview"), "view-restore",
+_cb_ct_miniview, ctx);
+elm_box_pack_end(ct_box, o);
 
-   o

[EGIT] [core/enlightenment] master 01/01: e_shelf: support state changes within the animation

2020-10-10 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 88263553734e2b3ae06f7db8792178b03d587980
Author: Marcel Hollerbach 
Date:   Sat Oct 10 14:41:01 2020 +0200

e_shelf: support state changes within the animation

the animation will get inverted now when you move your cursor within the
hide animation into the object again.

This should remove some stuttering that might be visible on your screen.
---
 src/bin/e_shelf.c | 8 
 1 file changed, 8 insertions(+)

diff --git a/src/bin/e_shelf.c b/src/bin/e_shelf.c
index 79b652567..4808c66f6 100644
--- a/src/bin/e_shelf.c
+++ b/src/bin/e_shelf.c
@@ -530,13 +530,21 @@ e_shelf_toggle(E_Shelf *es, int show)
{
   ecore_timer_del(es->hide_timer);
   es->hide_timer = NULL;
+  return; //we should not add a animator here, the shelf 
cannot have moved yet.
}
+
  if (!es->hide_animator)
{
   es->hide_begin = ecore_loop_time_get();
   es->hide_animator =
 ecore_animator_add(_e_shelf_cb_hide_animator, es);
}
+ else
+   {
+  double time_elapsed = ecore_loop_time_get() - es->hide_begin;
+  es->hide_begin = ecore_loop_time_get() - 
(es->cfg->hide_duration - time_elapsed);
+   }
+
   }
  }
else if ((!show) && (!es->hidden) && ((!es->gadcon) || 
(!es->gadcon->editing)) &&

-- 




[EGIT] [core/efl] efl-1.25 05/05: build: addition to abf0e9dffe35da8fa6e20055f53786b2adbec271

2020-09-26 Thread Marcel Hollerbach
stefan pushed a commit to branch efl-1.25.

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

commit 4774e7d6827afef9e5c14b0c6cc07431b424ffc1
Author: Marcel Hollerbach 
Date:   Fri Sep 25 14:05:16 2020 +0200

build: addition to abf0e9dffe35da8fa6e20055f53786b2adbec271

the fix is also needed in ecore_imf modules.

Thank you Ross!
---
 src/modules/ecore_imf/scim/meson.build | 2 +-
 src/modules/ecore_imf/xim/meson.build  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/modules/ecore_imf/scim/meson.build 
b/src/modules/ecore_imf/scim/meson.build
index 6f67ebc69d..68d94793e5 100644
--- a/src/modules/ecore_imf/scim/meson.build
+++ b/src/modules/ecore_imf/scim/meson.build
@@ -9,7 +9,7 @@ if not scim_dep.found()
   scim_dep = dependency('scim-1.0')
 endif
 
-mod_deps = [ecore, ecore_imf, ecore_x, ecore_x_deps, ecore_evas, scim_dep, 
dependency('glib-2.0')]
+mod_deps = [ecore, ecore_imf, ecore_x, ecore_x_ext_deps, ecore_evas, scim_dep, 
dependency('glib-2.0')]
 
 shared_module(mod_name,
 mod_src,
diff --git a/src/modules/ecore_imf/xim/meson.build 
b/src/modules/ecore_imf/xim/meson.build
index d5411c77d9..928f396a10 100644
--- a/src/modules/ecore_imf/xim/meson.build
+++ b/src/modules/ecore_imf/xim/meson.build
@@ -2,7 +2,7 @@ mod_src = files([
   'ecore_imf_xim.c',
 ])
 
-mod_deps = [ecore, ecore_imf, ecore_input, ecore_x, ecore_x_deps, ecore_evas]
+mod_deps = [ecore, ecore_imf, ecore_input, ecore_x, ecore_x_ext_deps, 
ecore_evas]
 
 shared_module(mod_name,
 mod_src,

-- 




[EGIT] [core/efl] efl-1.25 02/05: build: fix dependencies of software engine

2020-09-26 Thread Marcel Hollerbach
stefan pushed a commit to branch efl-1.25.

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

commit 586357a090bc2de32b77c788afb03bf914fd0e37
Author: Marcel Hollerbach 
Date:   Thu Sep 24 10:28:27 2020 +0200

build: fix dependencies of software engine

before the efl-one refactoring ecore_x_deps contained all the
dependencies for x11. After that not anymore, however, we should link
software_x11 to x11 libs directly, which is again happening after this
here.
---
 src/modules/evas/engines/software_x11/meson.build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/modules/evas/engines/software_x11/meson.build 
b/src/modules/evas/engines/software_x11/meson.build
index 6ddaeee37b..ed0a3e4b46 100644
--- a/src/modules/evas/engines/software_x11/meson.build
+++ b/src/modules/evas/engines/software_x11/meson.build
@@ -26,7 +26,7 @@ config_h.set('BUILD_ENGINE_SOFTWARE_XLIB', '1')
 
 #ecore_x_deps carries all the extensions etc. so we dont have to search them 
twice
 #it looks weird but is right, gl_deps is needed for evas_x_egl.c
-engine_deps += [x11, ecore_x, ecore_x_deps, gl_deps]
+engine_deps += [x11, ecore_x, ecore_x_ext_deps, gl_deps]
 
 shared_module(mod_full_name, engine_src,
   include_directories : config_dir + [engine_include_dir],

-- 




[EGIT] [core/efl] master 01/01: build: addition to abf0e9dffe35da8fa6e20055f53786b2adbec271

2020-09-25 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 4700af9c7ddb50270e1bd12303d31d6da176aa87
Author: Marcel Hollerbach 
Date:   Fri Sep 25 14:05:16 2020 +0200

build: addition to abf0e9dffe35da8fa6e20055f53786b2adbec271

the fix is also needed in ecore_imf modules.

Thank you Ross!
---
 src/modules/ecore_imf/scim/meson.build | 2 +-
 src/modules/ecore_imf/xim/meson.build  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/modules/ecore_imf/scim/meson.build 
b/src/modules/ecore_imf/scim/meson.build
index 6f67ebc69d..68d94793e5 100644
--- a/src/modules/ecore_imf/scim/meson.build
+++ b/src/modules/ecore_imf/scim/meson.build
@@ -9,7 +9,7 @@ if not scim_dep.found()
   scim_dep = dependency('scim-1.0')
 endif
 
-mod_deps = [ecore, ecore_imf, ecore_x, ecore_x_deps, ecore_evas, scim_dep, 
dependency('glib-2.0')]
+mod_deps = [ecore, ecore_imf, ecore_x, ecore_x_ext_deps, ecore_evas, scim_dep, 
dependency('glib-2.0')]
 
 shared_module(mod_name,
 mod_src,
diff --git a/src/modules/ecore_imf/xim/meson.build 
b/src/modules/ecore_imf/xim/meson.build
index d5411c77d9..928f396a10 100644
--- a/src/modules/ecore_imf/xim/meson.build
+++ b/src/modules/ecore_imf/xim/meson.build
@@ -2,7 +2,7 @@ mod_src = files([
   'ecore_imf_xim.c',
 ])
 
-mod_deps = [ecore, ecore_imf, ecore_input, ecore_x, ecore_x_deps, ecore_evas]
+mod_deps = [ecore, ecore_imf, ecore_input, ecore_x, ecore_x_ext_deps, 
ecore_evas]
 
 shared_module(mod_name,
 mod_src,

-- 




[EGIT] [core/efl] master 01/01: build: fix dependencies of software engine

2020-09-24 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit abf0e9dffe35da8fa6e20055f53786b2adbec271
Author: Marcel Hollerbach 
Date:   Thu Sep 24 10:28:27 2020 +0200

build: fix dependencies of software engine

before the efl-one refactoring ecore_x_deps contained all the
dependencies for x11. After that not anymore, however, we should link
software_x11 to x11 libs directly, which is again happening after this
here.
---
 src/modules/evas/engines/software_x11/meson.build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/modules/evas/engines/software_x11/meson.build 
b/src/modules/evas/engines/software_x11/meson.build
index 6ddaeee37b..ed0a3e4b46 100644
--- a/src/modules/evas/engines/software_x11/meson.build
+++ b/src/modules/evas/engines/software_x11/meson.build
@@ -26,7 +26,7 @@ config_h.set('BUILD_ENGINE_SOFTWARE_XLIB', '1')
 
 #ecore_x_deps carries all the extensions etc. so we dont have to search them 
twice
 #it looks weird but is right, gl_deps is needed for evas_x_egl.c
-engine_deps += [x11, ecore_x, ecore_x_deps, gl_deps]
+engine_deps += [x11, ecore_x, ecore_x_ext_deps, gl_deps]
 
 shared_module(mod_full_name, engine_src,
   include_directories : config_dir + [engine_include_dir],

-- 




[EGIT] [apps/terminology] master 04/09: Translated using Weblate (German)

2020-09-15 Thread Marcel Hollerbach
billiob pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=9e15ea50fb9a2c60ff5d10840b9fd5e1cca4bbbf

commit 9e15ea50fb9a2c60ff5d10840b9fd5e1cca4bbbf
Author: Marcel Hollerbach 
Date:   Tue Sep 15 07:23:13 2020 +

Translated using Weblate (German)

Currently translated at 100.0% (245 of 245 strings)

Translation: Terminology/Terminology
Translate-URL: 
https://hosted.weblate.org/projects/terminology/terminology/de/
---
 po/de.po | 15 ---
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/po/de.po b/po/de.po
index b6868ff..bbe0517 100644
--- a/po/de.po
+++ b/po/de.po
@@ -10,16 +10,17 @@ msgstr ""
 "Project-Id-Version: terminology\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2020-04-12 00:15+0200\n"
-"PO-Revision-Date: 2020-05-08 22:25+0200\n"
-"Last-Translator: Milo Ivir \n"
-"Language-Team: German \n"
+"PO-Revision-Date: 2020-09-15 19:51+\n"
+"Last-Translator: Marcel Hollerbach \n"
+"Language-Team: German <https://hosted.weblate.org/projects/terminology/";
+"terminology/de/>\n"
 "Language: de\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.3-dev\n"
 "X-Launchpad-Export-Date: 2014-10-05 12:16+\n"
-"X-Generator: Poedit 2.3\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: src/bin/options_helpers.c:193 src/bin/options.c:227
 msgid "Helpers"
@@ -637,7 +638,7 @@ msgstr "Unsichtbar"
 
 #: src/bin/options_colors.c:22
 msgid "Inverse"
-msgstr "Inverse"
+msgstr "Invers"
 
 #: src/bin/options_colors.c:23
 msgid "Inverse Background"
@@ -901,7 +902,7 @@ msgstr "Das Anzeigen von Medien wird nicht unterstützt"
 #: src/bin/termpty.c:99 src/bin/termpty.c:141 src/bin/termpty.c:188
 #, c-format
 msgid "memerr: %s"
-msgstr "memerr: %s"
+msgstr "Speicherfehler: %s"
 
 #: src/bin/termpty.c:224
 #, c-format

-- 




[EGIT] [core/efl] master 01/01: elm_cnp: adjust image type to real format

2020-09-05 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit f8ef50eaaab4da110b23570c03e06267869fa2b3
Author: Marcel Hollerbach 
Date:   Sat Sep 5 09:07:12 2020 +0200

elm_cnp: adjust image type to real format

we should never say that we have image/png etc. if we do not have the
respective format. Otherwise we are just confusing the other client.

With this you can copy things from elm to thunderbird / libreoffice
writer / firefox / telegram / chromium.

Please note if you test this: Start *a new xorg session* it was
discovered that xorg clients tent to be totally confused if there was a
protocol error before, or some wrong mime type was delivered before,
thunderbird even likes to crash if this is not done.

This should at some point be extended to more image types.
---
 src/lib/elementary/elm_cnp.c | 52 +++-
 1 file changed, 51 insertions(+), 1 deletion(-)

diff --git a/src/lib/elementary/elm_cnp.c b/src/lib/elementary/elm_cnp.c
index 60b9c75385..005e3a4595 100644
--- a/src/lib/elementary/elm_cnp.c
+++ b/src/lib/elementary/elm_cnp.c
@@ -51,6 +51,47 @@ _elm_sel_format_to_mime_type(Elm_Sel_Format format)
return ret;
 }
 
+typedef struct {
+  const unsigned char image_sequence[16];
+  size_t image_sequence_len;
+  const char *mimetype;
+} Mimetype_Content_Matcher;
+
+Mimetype_Content_Matcher matchers[] = {
+  {{0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A}, 8, "image/png"},
+  {{0xFF, 0xD8}, 2, "image/jpeg"},
+  {{0x42, 0x4D}, 2, "image/x-ms-bmp"},
+  {{0x47, 0x49, 0x46, 0x38, 0x37, 0x61}, 6, "image/gif"},
+  {{0x47, 0x49, 0x46, 0x38, 0x39, 0x61}, 6, "image/gif"},
+  {{0x49, 0x49, 0x2A, 00}, 4, "image/tiff"},
+  {{0x49, 0x4D, 0x00, 0x2A}, 4, "image/tiff"},
+  {{0},0, NULL}
+};
+
+static inline Eina_Array*
+_elm_sel_from_content_to_mime_type(const void *buf, size_t buflen)
+{
+   Eina_Array *ret = eina_array_new(10);
+
+   for (int i = 0; matchers[i].mimetype && eina_array_count(ret) == 0; ++i)
+ {
+if (matchers[i].image_sequence_len >= buflen) continue;
+for (size_t j = 0; j < matchers[i].image_sequence_len; ++j)
+  {
+ if (((const unsigned  char*)buf)[j] == 
matchers[i].image_sequence[j])
+   {
+  eina_array_push(ret, matchers[i].mimetype);
+  break;
+   }
+  }
+ }
+
+   if (eina_array_count(ret) != 1)
+ ERR("Specified mime type is not available");
+
+   return ret;
+}
+
 static inline Elm_Sel_Format
 _mime_type_to_elm_sel_format(const char *mime_type)
 {
@@ -100,7 +141,16 @@ elm_cnp_selection_set(Evas_Object *obj, Elm_Sel_Type 
selection,
 
ee = ecore_evas_ecore_evas_get(evas_object_evas_get(obj));
 
-   tmp = _elm_sel_format_to_mime_type(format);
+   if (format == ELM_SEL_FORMAT_IMAGE)
+ {
+tmp = _elm_sel_from_content_to_mime_type(buf, buflen);
+ }
+   else
+ {
+tmp = _elm_sel_format_to_mime_type(format);
+ }
+
+
if (eina_array_count(tmp) != 1)
  {
 ERR("You cannot specify more than one format when setting selection");

-- 




[EGIT] [core/efl] master 01/01: ecore_evas_x: reply in *any* way with XdndStatus

2020-09-04 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 6e85742b42431d097e07b4b8bcdb891d0aa4123a
Author: Marcel Hollerbach 
Date:   Fri Sep 4 18:22:49 2020 +0200

ecore_evas_x: reply in *any* way with XdndStatus

otherwise Xorg stops sometimes to continue sending callbacks to us.
Which results in a broken state maschine.
---
 src/modules/ecore_evas/engines/x/ecore_evas_x.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/modules/ecore_evas/engines/x/ecore_evas_x.c 
b/src/modules/ecore_evas/engines/x/ecore_evas_x.c
index c73e530425..bb5f02c853 100644
--- a/src/modules/ecore_evas/engines/x/ecore_evas_x.c
+++ b/src/modules/ecore_evas/engines/x/ecore_evas_x.c
@@ -4196,8 +4196,7 @@ _ecore_evas_x_dnd_position(void *udata EINA_UNUSED, int 
type EINA_UNUSED, void *
EINA_SAFETY_ON_NULL_GOTO(ee, end);
ecore_evas_geometry_get(ee, &x, &y, &w, &h);
Eina_Bool used = ecore_evas_dnd_position_set(ee, 1, 
EINA_POSITION2D(pos->position.x - x, pos->position.y - y));
-   if (used)
- ecore_x_dnd_send_status(EINA_TRUE, EINA_FALSE, 
(Ecore_X_Rectangle){x,y,w,h}, pos->action);
+   ecore_x_dnd_send_status(used, EINA_FALSE, (Ecore_X_Rectangle){x,y,w,h}, 
pos->action);
 end:
return ECORE_CALLBACK_PASS_ON;
 }

-- 




[EGIT] [core/enlightenment] master 02/04: music-control: do not crash if params is NULL

2020-09-02 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 0e0cf36a32777a64e432de1aa63d04e35f43729b
Author: Marcel Hollerbach 
Date:   Wed Sep 2 15:06:13 2020 +0200

music-control: do not crash if params is NULL

should not happen normally, but it might happen due to a buggy config
screen.
---
 src/modules/music-control/e_mod_main.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/modules/music-control/e_mod_main.c 
b/src/modules/music-control/e_mod_main.c
index 1edd2d2ed..ba9ea22db 100644
--- a/src/modules/music-control/e_mod_main.c
+++ b/src/modules/music-control/e_mod_main.c
@@ -60,6 +60,7 @@ _music_control(E_Object *obj EINA_UNUSED, const char *params)
 {
E_Music_Control_Module_Context *ctxt = music_control_mod->data;
EINA_SAFETY_ON_NULL_RETURN(music_control_mod->data);
+   EINA_SAFETY_ON_NULL_RETURN(params);
 
if (!strcmp(params, "play"))
  media_player2_player_play_pause_call(ctxt->mpris2_player);

-- 




[EGIT] [core/enlightenment] master 03/04: e_acpi: add support for bluetooth remote controls

2020-09-02 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 124113ad64bab6b7675b90bf6f48c176091dcaf5
Author: Marcel Hollerbach 
Date:   Wed Sep 2 15:04:06 2020 +0200

e_acpi: add support for bluetooth remote controls

bluetooth remote controls are for example bt headsets with play / pause
/ next / prev interactions.
---
 src/bin/e_acpi.c  | 6 ++
 src/bin/e_acpi.h  | 6 +-
 src/modules/conf_bindings/e_int_config_acpibindings.c | 8 
 3 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_acpi.c b/src/bin/e_acpi.c
index 39d2bba0c..221a0592c 100644
--- a/src/bin/e_acpi.c
+++ b/src/bin/e_acpi.c
@@ -79,6 +79,12 @@ static E_ACPI_Device_Simple _devices_simple[] =
{"button/battery", E_ACPI_TYPE_BATTERY_BUTTON},
{"video/tabletmode", E_ACPI_TYPE_TABLET},
 
+   //bluetooth virtual input devices for A/V Remote Control
+   {"cd/next", E_ACPI_TYPE_CD_NEXT},
+   {"cd/prev", E_ACPI_TYPE_CD_PREV},
+   {"cd/stop", E_ACPI_TYPE_CD_STOP},
+   {"cd/play", E_ACPI_TYPE_CD_PLAY},
+
{NULL, E_ACPI_TYPE_UNKNOWN}
 };
 
diff --git a/src/bin/e_acpi.h b/src/bin/e_acpi.h
index 9dac1e825..780f32420 100644
--- a/src/bin/e_acpi.h
+++ b/src/bin/e_acpi.h
@@ -34,7 +34,11 @@ typedef enum _E_Acpi_Type
E_ACPI_TYPE_ZOOM, // 27
E_ACPI_TYPE_SCREENLOCK, // 28
E_ACPI_TYPE_BATTERY_BUTTON, // 29
-   E_ACPI_TYPE_TABLET // 30
+   E_ACPI_TYPE_TABLET, // 30
+   E_ACPI_TYPE_CD_NEXT, // 31
+   E_ACPI_TYPE_CD_PREV, // 32
+   E_ACPI_TYPE_CD_PLAY, // 33
+   E_ACPI_TYPE_CD_STOP, // 34
 } E_Acpi_Type;
 
 /* enum for acpi signals */
diff --git a/src/modules/conf_bindings/e_int_config_acpibindings.c 
b/src/modules/conf_bindings/e_int_config_acpibindings.c
index d5fb81bba..57a10852e 100644
--- a/src/modules/conf_bindings/e_int_config_acpibindings.c
+++ b/src/modules/conf_bindings/e_int_config_acpibindings.c
@@ -417,6 +417,14 @@ _binding_label_get(E_Config_Binding_Acpi *binding)
 if (binding->status == 1) return _("Tablet Enabled");
 return _("Tablet");
  }
+   if (binding->type == E_ACPI_TYPE_CD_NEXT)
+ return _("Next Media");
+   if (binding->type == E_ACPI_TYPE_CD_PREV)
+ return _("Prev Media");
+   if (binding->type == E_ACPI_TYPE_CD_STOP)
+ return _("Stop Media");
+   if (binding->type == E_ACPI_TYPE_CD_PLAY)
+ return _("Play Media");
 
return _("Unknown");
 }

-- 




[EGIT] [core/enlightenment] master 04/04: music-player: also support constant play and constant pause

2020-09-02 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 423e26cb8e3a1de30f603f6c854a988e030bd002
Author: Marcel Hollerbach 
Date:   Wed Sep 2 16:08:55 2020 +0200

music-player: also support constant play and constant pause

this is usefull if you have the buttons for it.
---
 src/modules/music-control/e_mod_main.c | 18 +-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/src/modules/music-control/e_mod_main.c 
b/src/modules/music-control/e_mod_main.c
index ba9ea22db..201a31c90 100644
--- a/src/modules/music-control/e_mod_main.c
+++ b/src/modules/music-control/e_mod_main.c
@@ -62,18 +62,26 @@ _music_control(E_Object *obj EINA_UNUSED, const char 
*params)
EINA_SAFETY_ON_NULL_RETURN(music_control_mod->data);
EINA_SAFETY_ON_NULL_RETURN(params);
 
-   if (!strcmp(params, "play"))
+   if (!strcmp(params, "play")) //legacy compatibility - this should probebly 
be called playpause
  media_player2_player_play_pause_call(ctxt->mpris2_player);
else if (!strcmp(params, "next"))
  media_player2_player_next_call(ctxt->mpris2_player);
else if (!strcmp(params, "previous"))
  media_player2_player_previous_call(ctxt->mpris2_player);
+   else if (!strcmp(params, "pause"))
+ media_player2_player_pause_call(ctxt->mpris2_player);
+   else if (!strcmp(params, "play_music")) //the name play was already taken 
by play pause, see above
+ media_player2_player_play_call(ctxt->mpris2_player);
 }
 
 #define ACTION_NEXT "next_music"
 #define ACTION_NEXT_NAME "Next Music"
 #define ACTION_PLAY_PAUSE "playpause_music"
 #define ACTION_PLAY_PAUSE_NAME "Play/Pause Music"
+#define ACTION_PAUSE "pause_music"
+#define ACTION_PAUSE_NAME "Pause Music"
+#define ACTION_PLAY "play_music"
+#define ACTION_PLAY_NAME "Play Music"
 #define ACTION_PREVIOUS "previous_music"
 #define ACTION_PREVIOUS_NAME "Previous Music"
 
@@ -91,6 +99,14 @@ _actions_register(E_Music_Control_Module_Context *ctxt)
action->func.go = _music_control;
e_action_predef_name_set(_e_music_control_Name, ACTION_PLAY_PAUSE_NAME,
 ACTION_PLAY_PAUSE, "play", NULL, 0);
+   action = e_action_add(ACTION_PAUSE);
+   action->func.go = _music_control;
+   e_action_predef_name_set(_e_music_control_Name, ACTION_PAUSE_NAME,
+ACTION_PAUSE, "pause", NULL, 0);
+   action = e_action_add(ACTION_PLAY);
+   action->func.go = _music_control;
+   e_action_predef_name_set(_e_music_control_Name, ACTION_PLAY_NAME,
+ACTION_PLAY, "play_music", NULL, 0);
action = e_action_add(ACTION_PREVIOUS);
action->func.go = _music_control;
e_action_predef_name_set(_e_music_control_Name, ACTION_PREVIOUS_NAME,

-- 




[EGIT] [core/enlightenment] master 01/04: acpi-bindings: also set params

2020-09-02 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 703f42e0994ea0b6e7818f9778d18d72f7aca37d
Author: Marcel Hollerbach 
Date:   Wed Sep 2 15:03:12 2020 +0200

acpi-bindings: also set params

this seems to have been forgotten, up to this point, you could not add
params to the config.
---
 src/modules/conf_bindings/e_int_config_acpibindings.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/modules/conf_bindings/e_int_config_acpibindings.c 
b/src/modules/conf_bindings/e_int_config_acpibindings.c
index a13a61c2f..d5fb81bba 100644
--- a/src/modules/conf_bindings/e_int_config_acpibindings.c
+++ b/src/modules/conf_bindings/e_int_config_acpibindings.c
@@ -476,6 +476,8 @@ _cb_actions_changed(void *data)
  }
 
eina_stringshare_replace(&binding->action, dsc->act_cmd);
+   if (dsc->act_params) eina_stringshare_refplace(&binding->params, 
dsc->act_params);
+
e_widget_disabled_set(cfdata->o_params, !(dsc->editable));
 
if ((!dsc->editable) && (dsc->act_params))

-- 




[EGIT] [core/efl] master 01/01: build: only find env once

2020-09-02 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit e2a1cdfda76dd0061ef8e0ab25aee4e042304366
Author: Marcel Hollerbach 
Date:   Wed Sep 2 09:25:51 2020 +0200

build: only find env once

this was a bit messy, and we might have caused a bug on the ML with
that.
---
 meson.build| 2 ++
 src/bin/edje/meson.build   | 2 --
 src/bin/elementary/meson.build | 2 --
 3 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/meson.build b/meson.build
index c7af80917f..ba34a9c311 100644
--- a/meson.build
+++ b/meson.build
@@ -126,6 +126,8 @@ if sys_sun
   add_global_arguments('-D_POSIX_PTHREAD_SEMANTICS', language: 'c')
 endif
 
+env = find_program('env', native: true)
+
 config_h = configuration_data()
 config_h.set_quoted('MODULE_ARCH', version_name)
 config_h.set_quoted('PACKAGE', meson.project_name())
diff --git a/src/bin/edje/meson.build b/src/bin/edje/meson.build
index 82d51c7a77..e715571852 100644
--- a/src/bin/edje/meson.build
+++ b/src/bin/edje/meson.build
@@ -45,7 +45,6 @@ else
   if sys_windows == true
 edje_cc_exe = [edje_cc.full_path()]
   else
-env = find_program('env', native: true)
 edje_cc_exe = [env, asan_option, 'EFL_RUN_IN_TREE=1', edje_cc.full_path()]
   endif
   edje_depends = [edje_cc, epp, evas_engine_buffer_mod, embryo_cc]
@@ -98,7 +97,6 @@ if meson.is_cross_build()
   edje_codegen_path = _edje_codegen.path()
   edje_codegen_exe = [_edje_codegen]
 else
-  env = find_program('env', native: true)
   edje_codegen_exe = [env, asan_option, 'EFL_RUN_IN_TREE=1', 
edje_codegen.full_path()]
 endif
 
diff --git a/src/bin/elementary/meson.build b/src/bin/elementary/meson.build
index f31ed793e3..1d7aa75057 100644
--- a/src/bin/elementary/meson.build
+++ b/src/bin/elementary/meson.build
@@ -234,7 +234,6 @@ endif
 if meson.is_cross_build()
   elementary_codegen_exe = [find_program('elementary_codegen', native: true)]
 else
-  env = find_program('env', native: true)
   elementary_codegen_exe = [env, asan_option, 'EFL_RUN_IN_TREE=1', 
elementary_codegen.full_path()]
 endif
 
@@ -260,7 +259,6 @@ if meson.is_cross_build()
   elm_prefs_cc_path = _elm_prefs_cc.path()
   elm_prefs_cc_exe = [_elm_prefs_cc]
 else
-  env = find_program('env', native: true)
   elm_prefs_cc_exe = [env, asan_option, 'EFL_RUN_IN_TREE=1', 
elm_prefs_cc.full_path()]
 endif
 

-- 




[EGIT] [core/efl] master 03/07: eldbus_fake_server: fix string format usage

2020-09-01 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit c40c279308e8202236cae8aad2396f573397bcb3
Author: Marcel Hollerbach 
Date:   Tue Sep 1 13:03:46 2020 +0200

eldbus_fake_server: fix string format usage

we know that there is no % etc. formatting in this string, however, we
can just use the ck abort msg macro from libcheck directly.
---
 src/tests/eldbus/eldbus_fake_server.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/src/tests/eldbus/eldbus_fake_server.c 
b/src/tests/eldbus/eldbus_fake_server.c
index c9ef1d95a0..41d4b1f7a4 100644
--- a/src/tests/eldbus/eldbus_fake_server.c
+++ b/src/tests/eldbus/eldbus_fake_server.c
@@ -179,7 +179,6 @@ _fake_server_name_request_cb(void *data EINA_UNUSED,
if (ELDBUS_NAME_REQUEST_REPLY_PRIMARY_OWNER != reply)
  {
 const char *errcode = "Unknown reply";
-char errmsg[512];
 switch (reply)
   {
case ELDBUS_NAME_REQUEST_REPLY_IN_QUEUE:
@@ -194,9 +193,8 @@ _fake_server_name_request_cb(void *data EINA_UNUSED,
  break;
default: break;
   }
-snprintf(errmsg, sizeof(errmsg), "Failed to start fake server: %s 
(%u)",
+ck_abort_msg( "Failed to start fake server: %s (%u)",
  errcode, reply);
-ck_abort_msg(errmsg);
  }
 
ecore_main_loop_quit();

-- 




[EGIT] [core/efl] master 02/07: efl: remove unused functions

2020-09-01 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 0817c49e753d0e6fc24a301bc697a3c669ec2603
Author: Marcel Hollerbach 
Date:   Tue Sep 1 13:09:37 2020 +0200

efl: remove unused functions

these are not used, if they are used again in the future, they can be
get back via git.
---
 src/lib/eina/eina_matrix.c  | 37 
 src/lib/elementary/efl_ui_table.c   | 22 ---
 src/lib/elementary/efl_ui_textpath.c|  6 
 src/lib/evas/canvas/evas_object_textblock.c | 44 -
 4 files changed, 109 deletions(-)

diff --git a/src/lib/eina/eina_matrix.c b/src/lib/eina/eina_matrix.c
index db3779b8d6..b82bca2e1d 100644
--- a/src/lib/eina/eina_matrix.c
+++ b/src/lib/eina/eina_matrix.c
@@ -62,43 +62,6 @@
 /**
  *  Local *
  
**/
-/** @cond internal */
-/*
- * In the range [-pi pi]
- * (4/pi)*x - ((4/(pi*pi))*x*abs(x))
- * http://www.devmaster.net/forums/showthread.php?t=5784
- */
-#define EXTRA_PRECISION
-static inline double
-  _sin(double x)
-{
-   const double B = 4/M_PI;
-   const double C = -4/(M_PI*M_PI);
-
-   double y = (B * x) + (C * x * fabs(x));
-
-#ifdef EXTRA_PRECISION
-   //  const float Q = 0.775;
-   const double P = 0.225;
-
-   y = P * (y * fabs(y) - y) + y; // Q * y + P * y * abs(y)
-#endif
-   return y;
-}
-
-static inline double
-_cos(double x)
-{
-   x += M_PI_2;
-
-   if (x > M_PI)   // Original x > pi/2
- {
-x -= 2 * M_PI;   // Wrap: cos(x) = cos(x - 2 pi)
- }
-
-   return _sin(x);
-}
-/** @endcond */
 
 /**
  *   API  *
diff --git a/src/lib/elementary/efl_ui_table.c 
b/src/lib/elementary/efl_ui_table.c
index 861b78ab3a..12b8342c1e 100644
--- a/src/lib/elementary/efl_ui_table.c
+++ b/src/lib/elementary/efl_ui_table.c
@@ -640,28 +640,6 @@ _efl_ui_table_item_iterator_free(Table_Item_Iterator *it)
free(it);
 }
 
-static inline Eina_Iterator *
-_efl_ui_table_item_iterator_create(Eo *obj, Eina_Inlist *list)
-{
-   Table_Item_Iterator *it;
-
-   it = calloc(1, sizeof(*it));
-   if (!it) return NULL;
-
-   EINA_MAGIC_SET(&it->iterator, EINA_MAGIC_ITERATOR);
-
-   it->object = obj;
-   it->cur = list;
-
-   it->iterator.version = EINA_ITERATOR_VERSION;
-   it->iterator.next = FUNC_ITERATOR_NEXT(_efl_ui_table_item_iterator_next);
-   it->iterator.get_container = FUNC_ITERATOR_GET_CONTAINER(
- _efl_ui_table_item_iterator_get_container);
-   it->iterator.free = FUNC_ITERATOR_FREE(_efl_ui_table_item_iterator_free);
-
-   return &it->iterator;
-}
-
 EOLIAN static Eina_Iterator *
 _efl_ui_table_efl_container_content_iterate(Eo *obj, Efl_Ui_Table_Data *pd)
 {
diff --git a/src/lib/elementary/efl_ui_textpath.c 
b/src/lib/elementary/efl_ui_textpath.c
index 539f996108..321cd20568 100644
--- a/src/lib/elementary/efl_ui_textpath.c
+++ b/src/lib/elementary/efl_ui_textpath.c
@@ -85,12 +85,6 @@ _rad_to_deg(double rad)
return 180 * rad / M_PI;
 }
 
-static inline double
-_deg_to_rad(double angle)
-{
-   return angle / 180 * M_PI;
-}
-
 static void
 _segment_draw(Efl_Ui_Textpath_Data *pd, int slice_no, double dt, double dist,
   int w1, int cmp, Evas_Map *map, Eina_Bezier bezier,
diff --git a/src/lib/evas/canvas/evas_object_textblock.c 
b/src/lib/evas/canvas/evas_object_textblock.c
index 45fc1a0028..c3c1426ea7 100644
--- a/src/lib/evas/canvas/evas_object_textblock.c
+++ b/src/lib/evas/canvas/evas_object_textblock.c
@@ -8473,50 +8473,6 @@ evas_object_textblock_replace_char_get(const 
Efl_Canvas_Textblock *obj)
return o->repch;
 }
 
-/**
- * @internal
- * Advance p_buff to point after the end of the string. It's used with the
- * @ref escaped_strings[] variable.
- *
- * @param p_buff the pointer to the current string.
- */
-static inline void
-_escaped_advance_after_end_of_string(const char **p_buf)
-{
-   while (**p_buf != 0) (*p_buf)++;
-   (*p_buf)++;
-}
-
-/**
- * @internal
- * Advance p_buff to point after the end of the string. It's used with the
- * @ref escaped_strings[] variable. Also chec if matches.
- * FIXME: doc.
- *
- * @param p_buff the pointer to the current string.
- */
-static inline int
-_escaped_is_eq_and_advance(const char *s, const char *s_end,
-  const char **p_m, const char *m_end)
-{
-   Eina_Bool reached_end;
-   for (;((s < s_end) && (*p_m < m_end)); s++, (*p_m)++)
- {
-if (*s != **p_m)
-  {
- _escaped_advance_after_end_of_string(p_m);
- return 0;
-  }
- }
-
-   reached_end = !**p_m;

[EGIT] [core/efl] master 06/07: eldbus: use the const macros we have

2020-09-01 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 9fb91f4a9fafcee5390c23440d337e0040466764
Author: Marcel Hollerbach 
Date:   Tue Sep 1 13:25:06 2020 +0200

eldbus: use the const macros we have

clang warns about that, its rather harmless, but nicer.
---
 src/examples/eldbus/dbusmodel.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/examples/eldbus/dbusmodel.c b/src/examples/eldbus/dbusmodel.c
index cc09d79ae3..1bca10b972 100644
--- a/src/examples/eldbus/dbusmodel.c
+++ b/src/examples/eldbus/dbusmodel.c
@@ -234,7 +234,7 @@ main(int argc, char **argv EINA_UNUSED)
 
if (efl_model_children_count_get(root))
  eina_future_then(efl_model_children_slice_get(root, 0, 
efl_model_children_count_get(root)),
-  _slice, (uintptr_t) 0);
+  _slice, NULL);
 
ecore_main_loop_begin();
efl_del(root);

-- 




[EGIT] [core/efl] master 07/07: efl_ui_focus_manager_calc: fix CID

2020-09-01 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit f9ade56cf8de4f040572f368da644f2a83bdee92
Author: Marcel Hollerbach 
Date:   Tue Sep 1 14:10:21 2020 +0200

efl_ui_focus_manager_calc: fix CID

coverity was complaining that the DIRECTION ACCESS macro might access
over a negative direction. However, complement of a 2D direction is
always a 2D direction. But coverity cannot detect that.
---
 src/lib/elementary/efl_ui_focus_manager_calc.c | 15 ---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/src/lib/elementary/efl_ui_focus_manager_calc.c 
b/src/lib/elementary/efl_ui_focus_manager_calc.c
index 7fb80c38c2..5b7589d95f 100644
--- a/src/lib/elementary/efl_ui_focus_manager_calc.c
+++ b/src/lib/elementary/efl_ui_focus_manager_calc.c
@@ -160,20 +160,25 @@ _manager_in_chain_set(Eo *obj, 
Efl_Ui_Focus_Manager_Calc_Data *pd)
   efl_class_name_get(pd->root->focusable), root);
 }
 
+
 static void
 border_onedirection_set(Node *node, Efl_Ui_Focus_Direction direction, 
Eina_List *list)
 {
Node *partner;
Eina_List *lnode;
Border *border;
+   Efl_Ui_Focus_Direction complement;
 
EINA_SAFETY_ON_FALSE_RETURN(DIRECTION_IS_2D(direction));
+   complement = efl_ui_focus_util_direction_complement(direction);
+   //this is basically a nop. The complement of 2D will *always* be 2D
+   EINA_SAFETY_ON_FALSE_RETURN(DIRECTION_IS_2D(complement));
 
border = &DIRECTION_ACCESS(node, direction);
 
EINA_LIST_FREE(border->one_direction, partner)
  {
-Border *b = &DIRECTION_ACCESS(partner, 
efl_ui_focus_util_direction_complement(direction));
+Border *b = &DIRECTION_ACCESS(partner, complement);
 b->cleanup_nodes = eina_list_remove(b->cleanup_nodes, node);
  }
 
@@ -181,7 +186,7 @@ border_onedirection_set(Node *node, Efl_Ui_Focus_Direction 
direction, Eina_List
 
EINA_LIST_FOREACH(border->one_direction, lnode, partner)
  {
-Border *comp_border = 
&DIRECTION_ACCESS(partner,efl_ui_focus_util_direction_complement(direction));
+Border *comp_border = &DIRECTION_ACCESS(partner, complement);
 
 comp_border->cleanup_nodes = 
eina_list_append(comp_border->cleanup_nodes, node);
  }
@@ -192,14 +197,18 @@ border_onedirection_cleanup(Node *node, 
Efl_Ui_Focus_Direction direction)
 {
Node *partner;
Border *border;
+   Efl_Ui_Focus_Direction complement;
 
EINA_SAFETY_ON_FALSE_RETURN(DIRECTION_IS_2D(direction));
+   complement = efl_ui_focus_util_direction_complement(direction);
+   //this is basically a nop. The complement of 2D will *always* be 2D
+   EINA_SAFETY_ON_FALSE_RETURN(DIRECTION_IS_2D(complement));
 
border = &DIRECTION_ACCESS(node, direction);
 
EINA_LIST_FREE(border->cleanup_nodes, partner)
  {
-Border *b = &DIRECTION_ACCESS(partner, 
efl_ui_focus_util_direction_complement(direction));
+Border *b = &DIRECTION_ACCESS(partner, complement);
 b->one_direction = eina_list_remove(b->one_direction, node);
  }
 }

-- 




[EGIT] [core/efl] master 04/07: benchmarks: specify this outside extern "C"

2020-09-01 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 9673ed6269c6286ffa4828a86a960143afaa7482
Author: Marcel Hollerbach 
Date:   Tue Sep 1 13:10:03 2020 +0200

benchmarks: specify this outside extern "C"

uint128 is defined as a c++ specific type.
---
 src/benchmarks/eina/city.h | 14 +++---
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/benchmarks/eina/city.h b/src/benchmarks/eina/city.h
index 90849a1dc6..3a2b06e26a 100644
--- a/src/benchmarks/eina/city.h
+++ b/src/benchmarks/eina/city.h
@@ -53,6 +53,13 @@ typedef uint32_t uint32;
 typedef uint64_t uint64;
 typedef std::pair uint128;
 
+// Hash function for a byte array.
+uint128 CityHash128(const char *s, size_t len);
+
+// Hash function for a byte array.  For convenience, a 128-bit seed is also
+// hashed into the result.
+uint128 CityHash128WithSeed(const char *s, size_t len, uint128 seed);
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -71,13 +78,6 @@ uint64 CityHash64WithSeed(const char *buf, size_t len, 
uint64 seed);
 uint64 CityHash64WithSeeds(const char *buf, size_t len,
uint64 seed0, uint64 seed1);
 
-// Hash function for a byte array.
-uint128 CityHash128(const char *s, size_t len);
-
-// Hash function for a byte array.  For convenience, a 128-bit seed is also
-// hashed into the result.
-uint128 CityHash128WithSeed(const char *s, size_t len, uint128 seed);
-
 // Hash 128 input bits down to 64 bits of output.
 // This is intended to be a reasonably good hash function.
 inline uint64 Hash128to64(const uint128& x) {

-- 




[EGIT] [core/efl] master 05/07: efl: resolve warnings over misleading code

2020-09-01 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 13a76dded08cf1bd55b42b867aaa524553edac6c
Author: Marcel Hollerbach 
Date:   Tue Sep 1 13:23:42 2020 +0200

efl: resolve warnings over misleading code

this is meant to be like this, but clang thought of an intention mistake
here that went unsighted.
---
 src/lib/eo/eo.c | 6 +-
 src/lib/evas/canvas/evas_object_textblock.c | 4 +++-
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/lib/eo/eo.c b/src/lib/eo/eo.c
index c3b6a8b6f7..1b9cdd9c9a 100644
--- a/src/lib/eo/eo.c
+++ b/src/lib/eo/eo.c
@@ -1721,7 +1721,9 @@ efl_class_new(const Efl_Class_Description *desc, const 
Efl_Class *parent_id, ...
mro = eina_list_remove(mro, NULL);
mro = eina_list_prepend(mro, klass);
if ((desc->type == EFL_CLASS_TYPE_MIXIN) && (desc->data_size > 0))
- mixins = eina_list_prepend(mixins, klass);
+ {
+mixins = eina_list_prepend(mixins, klass);
+ }
 
/* Copy the extensions and free the list */
  {
@@ -1751,7 +1753,9 @@ efl_class_new(const Efl_Class_Description *desc, const 
Efl_Class *parent_id, ...
 
size_t extn_data_off = klass->data_offset;
if (klass->desc->type != EFL_CLASS_TYPE_MIXIN)
+ {
   extn_data_off += EO_ALIGN_SIZE(klass->desc->data_size);
+ }
 
/* Feed the mixins data offsets and free the mixins list. */
  {
diff --git a/src/lib/evas/canvas/evas_object_textblock.c 
b/src/lib/evas/canvas/evas_object_textblock.c
index c3c1426ea7..5d1c476466 100644
--- a/src/lib/evas/canvas/evas_object_textblock.c
+++ b/src/lib/evas/canvas/evas_object_textblock.c
@@ -6647,7 +6647,9 @@ _layout_par(Ctxt *c)
 
it = _ITEM(eina_list_data_get(c->par->logical_items));
if (c->line_no == 0 || c->o->multiline)
- _layout_line_new(c, it->format);
+ {
+_layout_line_new(c, it->format);
+ }
/* We walk on our own because we want to be able to add items from
 * inside the list and then walk them on the next iteration. */
 

-- 




[EGIT] [core/efl] master 01/07: efl: remove bool and string pointer mixup

2020-09-01 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 5f73d130473e285d9d2a4ae4d61e6ba7ae4c41a2
Author: Marcel Hollerbach 
Date:   Tue Sep 1 13:02:51 2020 +0200

efl: remove bool and string pointer mixup
---
 src/lib/elementary/efl_ui_alert_popup.c | 2 +-
 src/lib/elementary/efl_ui_textbox.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/lib/elementary/efl_ui_alert_popup.c 
b/src/lib/elementary/efl_ui_alert_popup.c
index 65dcb4914c..bb3d26b8de 100644
--- a/src/lib/elementary/efl_ui_alert_popup.c
+++ b/src/lib/elementary/efl_ui_alert_popup.c
@@ -61,7 +61,7 @@ const char *
 _efl_ui_alert_popup_text_get(Eo *obj EINA_UNUSED, Efl_Ui_Alert_Popup_Data *pd, 
const char *part)
 {
if (!_elm_layout_part_aliasing_eval(obj, &part, EINA_TRUE))
-  return EINA_FALSE;
+  return NULL;
if (eina_streq(part, "efl.text.title"))
  {
 if (pd->title_text)
diff --git a/src/lib/elementary/efl_ui_textbox.c 
b/src/lib/elementary/efl_ui_textbox.c
index 46451cdcd1..165ef1f0e4 100644
--- a/src/lib/elementary/efl_ui_textbox.c
+++ b/src/lib/elementary/efl_ui_textbox.c
@@ -3426,7 +3426,7 @@ static const char *
 _efl_ui_textbox_text_get(Eo *obj EINA_UNUSED, Efl_Ui_Textbox_Data *pd,
   const char *part)
 {
-   if (!part) return EINA_FALSE;
+   if (!part) return NULL;
 
if (!strcmp("efl.text_guide", part))
  {

-- 




[EGIT] [admin/devs] master 01/01: remove unused keys

2020-08-17 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

http://git.enlightenment.org/admin/devs.git/commit/?id=6e00c0274c9ac5483bb6316519d9bd3de9d542fc

commit 6e00c0274c9ac5483bb6316519d9bd3de9d542fc
Author: Marcel Hollerbach 
Date:   Mon Aug 17 13:33:17 2020 +0200

remove unused keys
---
 developers/bu5hm4n/flups-test.pub| 1 -
 developers/bu5hm4n/mac.pub   | 1 -
 developers/bu5hm4n/phab-test-key.pub | 1 -
 developers/bu5hm4n/work.pub  | 1 -
 4 files changed, 4 deletions(-)

diff --git a/developers/bu5hm4n/flups-test.pub 
b/developers/bu5hm4n/flups-test.pub
deleted file mode 100644
index 69989da..000
--- a/developers/bu5hm4n/flups-test.pub
+++ /dev/null
@@ -1 +0,0 @@
-ssh-ed25519 
C3NzaC1lZDI1NTE5IHF6+TSfhKYRqb256/sj8KXuV6mqj9G9nWubDNTc/Tuo 
marcel@bu5hm4n-xps-power
diff --git a/developers/bu5hm4n/mac.pub b/developers/bu5hm4n/mac.pub
deleted file mode 100644
index acaa393..000
--- a/developers/bu5hm4n/mac.pub
+++ /dev/null
@@ -1 +0,0 @@
-ssh-ed25519 
C3NzaC1lZDI1NTE5IGY2l+KxJCjZeZ9/ecS0dVCln9Lu07fThjjjvmOZlvL9 
marcelhollerbach@localhost
diff --git a/developers/bu5hm4n/phab-test-key.pub 
b/developers/bu5hm4n/phab-test-key.pub
deleted file mode 100644
index 7a042d8..000
--- a/developers/bu5hm4n/phab-test-key.pub
+++ /dev/null
@@ -1 +0,0 @@
-ssh-rsa 
B3NzaC1yc2EDAQABAAABAQC+x/JChHzr3Jei8LLg8btEkVVDrCWc+LUzgjVYndTfYiuuOMYyA4eAR2z5YIFh+LcuZYWrXPPJDkg32lD2SDUeGSjSheoDZRiXbgBuaEXXFhKLA8bnrN/9rlkYKXyc/l/FzQulWUsIBdGGS7EX/WhaKkcpbqKju8h/YvFhY/+75PCYEkFtmWOK4n+uGxE5MI8hjCn8LYmkxN0FgplmDALSaQtY+JzuZUENsBOvOApfL45rn+tiWQCH50sS5A10oHBE+KahGBkxduXQOusJJfF+bIgasp6hnthzcXyszh6Nx9u6PRNd5skEfGzZwW434jxvz9dvLYs60+YwLdysBQeN
diff --git a/developers/bu5hm4n/work.pub b/developers/bu5hm4n/work.pub
deleted file mode 100644
index c9eb8f1..000
--- a/developers/bu5hm4n/work.pub
+++ /dev/null
@@ -1 +0,0 @@
-ssh-ed25519 
C3NzaC1lZDI1NTE5IHTwkRZIALb3NESoqB2/CxOaPCyuApmUPk006OK7pxde 
m.hollerbach@nb-763

-- 




[EGIT] [core/efl] master 01/01: eo: set idx on exit to 1 not to 0

2020-08-12 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 812e9f9f09e4789284536ea7fc10634e0c1148b7
Author: Marcel Hollerbach 
Date:   Mon Aug 10 10:43:18 2020 +0200

eo: set idx on exit to 1 not to 0

if this is set to 0 the next iteration in the upper frame event would
decrement the 0 again leading to a overflow making the iteration and
callback array overflow.

Long story short: set ifx to 1 to prevent overflow, test added.

fixes T8787

Differential Revision: https://phab.enlightenment.org/D12101
---
 src/lib/eo/eo_base_class.c  |  4 +++-
 src/tests/eo/signals/signals_main.c | 31 ++-
 2 files changed, 33 insertions(+), 2 deletions(-)

diff --git a/src/lib/eo/eo_base_class.c b/src/lib/eo/eo_base_class.c
index bd394910c9..e7445021bd 100644
--- a/src/lib/eo/eo_base_class.c
+++ b/src/lib/eo/eo_base_class.c
@@ -2146,7 +2146,9 @@ restart_back:
 
 end:
// Handling restarting list walking complete exit.
-   if (restart_lookup) restart_lookup->idx = 0;
+   // This must be 1, we copy back the frame idx at the end of the for loop.
+   // The next iteration then decrements the idx by 1 which results in the 
effective running idx of that frame beeing 0
+   if (restart_lookup) restart_lookup->idx = 1;
 
EVENT_STACK_POP(pd);
 
diff --git a/src/tests/eo/signals/signals_main.c 
b/src/tests/eo/signals/signals_main.c
index c3b1648c17..859e145ecb 100644
--- a/src/tests/eo/signals/signals_main.c
+++ b/src/tests/eo/signals/signals_main.c
@@ -74,6 +74,22 @@ _restart_3_cb(void *data, const Efl_Event *event)
called++;
 }
 
+static void
+_restart_3_no_stop_cb(void *data, const Efl_Event *event)
+{
+   fprintf(stderr, "restart 3 no stop inside: %i\n", inside);
+   fprintf(stderr, "restart 3 no stop exit inside: %i (%i)\n", inside, called);
+
+   if (!inside)
+ {
+inside = EINA_TRUE;
+efl_event_callback_call(event->object, event->desc, data);
+inside = EINA_FALSE;
+ }
+
+   called++;
+}
+
 int
 main(int argc, char *argv[])
 {
@@ -219,8 +235,21 @@ main(int argc, char *argv[])
efl_event_callback_legacy_call(obj, EV_RESTART, NULL);
fail_if(inside);
fail_if(called != 3);
-
efl_unref(obj);
+
+   pd = NULL;
+   inside = EINA_FALSE;
+   called = 0;
+
+   obj = efl_add_ref(SIMPLE_CLASS, NULL);
+   efl_event_callback_add(obj, EV_RESTART, _restart_3_no_stop_cb, NULL);
+   efl_event_callback_add(obj, EV_RESTART, _null_cb, NULL);
+   efl_event_callback_add(obj, EV_RESTART, _restart_3_no_stop_cb, NULL);
+   efl_event_callback_call(obj, EV_RESTART, NULL);
+   fail_if(inside);
+   fail_if(called != 2);
+
+
efl_object_shutdown();
return 0;
 }

-- 




[EGIT] [core/efl] master 03/03: eo: evalulate special counts earlier

2020-08-06 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 67cd017aac4a83a8f83f1ed84f3ea461c1c0b416
Author: Marcel Hollerbach 
Date:   Fri Jul 31 10:50:04 2020 +0200

eo: evalulate special counts earlier

we have these special counts which are > 0 when there is a callback
subscribed. THey are currently evalulated in _callback_call. However,
we can also skip the entire call from inside eo_base_class as we are
having the fields there as well.

This way we are skipping the obj pointer lookup and vtable lookup.

Reviewed-by: Cedric BAIL 
Differential Revision: https://phab.enlightenment.org/D12079
---
 src/lib/eo/eo_base_class.c | 14 --
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/lib/eo/eo_base_class.c b/src/lib/eo/eo_base_class.c
index 8132bcea58..bd394910c9 100644
--- a/src/lib/eo/eo_base_class.c
+++ b/src/lib/eo/eo_base_class.c
@@ -237,9 +237,9 @@ _efl_invalidate(_Eo_Object *obj)
 
id = _eo_obj_id_get(obj);
 
-   efl_event_callback_call(id, EFL_EVENT_INVALIDATE, NULL);
-
pd = efl_data_scope_get(id, EFL_OBJECT_CLASS);
+   if (pd->event_cb_EFL_EVENT_INVALIDATE)
+ efl_event_callback_call(id, EFL_EVENT_INVALIDATE, NULL);
 
efl_invalidate(id);
 
@@ -1575,7 +1575,8 @@ _efl_object_event_callback_priority_add(Eo *obj, 
Efl_Object_Data *pd,
_eo_callbacks_sorted_insert(pd, cb);
_special_event_count_inc(obj, pd, &(cb->items.item));
 
-   efl_event_callback_call(obj, EFL_EVENT_CALLBACK_ADD, (void *)arr);
+   if (pd->event_cb_EFL_EVENT_CALLBACK_ADD)
+ efl_event_callback_call(obj, EFL_EVENT_CALLBACK_ADD, (void *)arr);
 
return EINA_TRUE;
 
@@ -1601,8 +1602,8 @@ _efl_object_event_callback_clean(Eo *obj, Efl_Object_Data 
*pd,
  pd->need_cleaning = EINA_TRUE;
else
  _eo_callback_remove(obj, pd, cb);
-
-   efl_event_callback_call(obj, EFL_EVENT_CALLBACK_DEL, (void *)array);
+   if (pd->event_cb_EFL_EVENT_CALLBACK_DEL)
+ efl_event_callback_call(obj, EFL_EVENT_CALLBACK_DEL, (void *)array);
 }
 
 EOLIAN static Eina_Bool
@@ -1729,7 +1730,8 @@ _efl_object_event_callback_array_priority_add(Eo *obj, 
Efl_Object_Data *pd,
ev_array[i].priority = 0;
ev_array[i].func = NULL;
ev_array[i].user_data = NULL;
-   efl_event_callback_call(obj, EFL_EVENT_CALLBACK_ADD, ev_array);
+   if (pd->event_cb_EFL_EVENT_CALLBACK_ADD)
+ efl_event_callback_call(obj, EFL_EVENT_CALLBACK_ADD, ev_array);
 
return EINA_TRUE;
 

-- 




[EGIT] [core/efl] master 02/03: eo: event callback call optimization

2020-08-06 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 3d547a0b06c5932d40fa0b12c32224fce5937652
Author: Marcel Hollerbach 
Date:   Wed Aug 5 10:45:29 2020 +0200

eo: event callback call optimization

a little overfiew to how eos event emission is working:
- In eo there are 2 types of events restart events and normal events.
  Normals are *always* emitted from callback_max to 0
  Restarts are emitted from the previous emissions current idx to 0. The
  previous emission will stop then
- To keep track of the previous event emissions for restarts there was
  an eina inlist.
- To keep track of other things in eo, there was an additional eo event
  stack frame (newly inserted events etc. etc.)

This commit now uses this event stack frame for implementing the details
about the restart events. This has the advatage that every
efl_object_data contains one byte less, and the up to date keeping of
the id's in the restart infrastructure is not needed anymore, making the
whole event emission code less instructions and faster.

How this now works:
- Every emission has a event emission frame, when the emission starts,
  the frame is added, next points to the next older event emission. In
  this event stack frame we are storing the current idx, the description
  and a few other things that are not really relevant at this point.
- when a restart event is started, this event stack is searched from the
  current frame up to the next one featuring the same event description.
  The event frame stack is then remembered, if the event emission is
  done, the current idx (normally 0 or something higher when callback
  was stopped) is then copyied back to the earlier frame.
- Based on the nature of the event frame stacks, the idx is updated
  every iteration. And for the restart events, we only need to know the
  next, which removes the need of permanently updating the idx in the
  current stack.
- The event frame stack is not allocated on the heap, hence more things
  in there does not matter at all.

Reviewed-by: Cedric BAIL 
Differential Revision: https://phab.enlightenment.org/D12097
---
 src/lib/eo/eo_base_class.c | 61 --
 1 file changed, 21 insertions(+), 40 deletions(-)

diff --git a/src/lib/eo/eo_base_class.c b/src/lib/eo/eo_base_class.c
index 565f4805e8..8132bcea58 100644
--- a/src/lib/eo/eo_base_class.c
+++ b/src/lib/eo/eo_base_class.c
@@ -38,6 +38,7 @@ struct _Efl_Event_Forwarder
 
 struct _Efl_Event_Callback_Frame
 {
+   const Efl_Event_Description*desc;
Efl_Event_Callback_Frame *next;
unsigned int  idx;
unsigned int  inserted_before;
@@ -65,8 +66,6 @@ struct _Efl_Object_Data
 
Efl_Object_Extension  *ext;
 
-   Eina_Inlist   *current;
-
Efl_Event_Callback_Frame  *event_frame;
Eo_Callback_Description  **callbacks;
 #ifdef EFL64
@@ -2035,11 +2034,12 @@ _event_callback_call(Eo *obj_id, Efl_Object_Data *pd,
  Eina_Bool legacy_compare)
 {
Eo_Callback_Description **cb;
-   Eo_Current_Callback_Description *lookup, saved;
+   Efl_Event_Callback_Frame *restart_lookup = NULL; //a pointer to a frame, 
which is high up the stack, which we use to restore
Efl_Event ev;
unsigned int idx;
Eina_Bool callback_already_stopped, ret;
Efl_Event_Callback_Frame frame = {
+  .desc = desc,
   .next = NULL,
   .idx = 0,
   .inserted_before = 0,
@@ -2069,7 +2069,6 @@ _event_callback_call(Eo *obj_id, Efl_Object_Data *pd,
 
EVENT_STACK_PUSH(pd, &frame);
 
-   lookup = NULL;
callback_already_stopped = pd->callback_stopped;
pd->callback_stopped = EINA_FALSE;
ret = EINA_TRUE;
@@ -2109,9 +2108,6 @@ restart_back:
(event_freeze_count || pd->event_freeze_count))
   continue;
 
-   // Handle nested restart of walking list
-   if (lookup) lookup->current = idx - 1;
-
it->func((void *) (*cb)->func_data, &ev);
/* Abort callback calling if the func says so. */
if (pd->callback_stopped)
@@ -2119,10 +2115,6 @@ restart_back:
 ret = EINA_FALSE;
 goto end;
  }
-   // We have actually walked this list during a nested 
call
-   if (lookup &&
-   lookup->current == 0)
- goto end;
 }
}
  else
@@ -2133,9 +2125,6 @@ restart_back:
   (event_freeze_count || pd->event_freeze_count))
 continue;

[EGIT] [core/efl] master 01/02: efl_ui_focus_manager: reduce the amount of relying on events

2020-07-31 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 8d034f08e8322921b1b059cc2e93e10f7b0550f1
Author: Marcel Hollerbach 
Date:   Wed Jul 29 12:01:43 2020 +0200

efl_ui_focus_manager: reduce the amount of relying on events

with this commit we are not replying on event invocations anymore, but
rather on direct flag observation in the focus manager itself.

This reduces the amount of events that are emitted as a consequence to
elements beeing marked dirty segnificantly.

startup time of elementary_test goes from 0.50 to 0.46s.

Differential Revision: https://phab.enlightenment.org/D12072
---
 src/lib/elementary/efl_ui_focus_manager.eo  |  9 +
 src/lib/elementary/efl_ui_focus_manager_calc.c  | 20 
 src/lib/elementary/efl_ui_focus_manager_calc.eo |  1 +
 src/lib/elementary/efl_ui_focus_manager_sub.c   | 15 +--
 4 files changed, 27 insertions(+), 18 deletions(-)

diff --git a/src/lib/elementary/efl_ui_focus_manager.eo 
b/src/lib/elementary/efl_ui_focus_manager.eo
index dd95256b6d..080edaaf7a 100644
--- a/src/lib/elementary/efl_ui_focus_manager.eo
+++ b/src/lib/elementary/efl_ui_focus_manager.eo
@@ -96,6 +96,15 @@ interface Efl.Ui.Focus.Manager {
over the border objects.]]
 }
 }
+@property border_elements_changed {
+[[Return $true if the border elements have changed since the last 
invocation of @.border_elements.get]]
+get {
+
+}
+values {
+  changed : bool; [[$true if there was a change, $false if not]]
+}
+}
 @property viewport_elements {
 [[Elements that are at the border of the viewport
 
diff --git a/src/lib/elementary/efl_ui_focus_manager_calc.c 
b/src/lib/elementary/efl_ui_focus_manager_calc.c
index 173a663d79..7fb80c38c2 100644
--- a/src/lib/elementary/efl_ui_focus_manager_calc.c
+++ b/src/lib/elementary/efl_ui_focus_manager_calc.c
@@ -85,6 +85,7 @@ typedef struct {
 int freeze;
 
 Node *root;
+Eina_Bool border_elements_changed;
 } Efl_Ui_Focus_Manager_Calc_Data;
 
 static Eina_Mempool *_node_mempool;
@@ -247,7 +248,6 @@ node_item_free(Node *item)
Eina_List *l;
Eo *obj = item->manager;
FOCUS_DATA(obj);
-   Eina_Bool dirty_added = EINA_FALSE;
 
/*cleanup graph parts*/
 
@@ -264,7 +264,7 @@ node_item_free(Node *item)
   if (partner->type != NODE_TYPE_ONLY_LOGICAL) \
 { \
dirty_add(obj, pd, partner); \
-   dirty_added = EINA_TRUE; \
+   pd->border_elements_changed = EINA_TRUE; \
 } \
}
 
@@ -278,7 +278,7 @@ node_item_free(Node *item)
  }
 
//the unregistering of a item should ever result in atleast a coords_dirty 
call
-   if (dirty_added)
+   if (pd->border_elements_changed)
  efl_event_callback_call(obj, EFL_UI_FOCUS_MANAGER_EVENT_COORDS_DIRTY, 
NULL);
 
/*cleanup manager householdings*/
@@ -475,7 +475,9 @@ dirty_add(Eo *obj, Efl_Ui_Focus_Manager_Calc_Data *pd, Node 
*dirty)
pd->dirty = eina_list_append(pd->dirty, dirty);
dirty->on_list = EINA_TRUE;
 
-   efl_event_callback_call(obj, EFL_UI_FOCUS_MANAGER_EVENT_COORDS_DIRTY, NULL);
+   if (!pd->border_elements_changed)
+ efl_event_callback_call(obj, EFL_UI_FOCUS_MANAGER_EVENT_COORDS_DIRTY, 
NULL);
+   pd->border_elements_changed = EINA_TRUE;
 }
 
 
@@ -924,6 +926,7 @@ _efl_ui_focus_manager_calc_efl_object_constructor(Eo *obj, 
Efl_Ui_Focus_Manager_
pd->node_hash = eina_hash_pointer_new(_free_node);
 
pd->graph_ctx.offset_focusable = offsetof(Node, focusable);
+   pd->border_elements_changed = EINA_TRUE;
 
return obj;
 }
@@ -1110,9 +1113,18 @@ _elements_iterator_new(const Eo *obj, 
Efl_Ui_Focus_Manager_Calc_Data *pd)
 EOLIAN static Eina_Iterator*
 _efl_ui_focus_manager_calc_efl_ui_focus_manager_border_elements_get(const Eo 
*obj, Efl_Ui_Focus_Manager_Calc_Data *pd)
 {
+   pd->border_elements_changed = EINA_FALSE;
return (Eina_Iterator*) _elements_iterator_new(obj, pd);
 }
 
+
+EOLIAN static Eina_Bool
+_efl_ui_focus_manager_calc_efl_ui_focus_manager_border_elements_changed_get(const
 Eo *obj EINA_UNUSED, Efl_Ui_Focus_Manager_Calc_Data *pd)
+{
+   return pd->border_elements_changed;
+}
+
+
 EOLIAN static Eina_Iterator*
 _efl_ui_focus_manager_calc_efl_ui_focus_manager_viewport_elements_get(const Eo 
*obj, Efl_Ui_Focus_Manager_Calc_Data *pd, Eina_Rect viewport)
 {
diff --git a/src/lib/elementary/efl_ui_focus_manager_calc.eo 
b/src/lib/elementary/efl_ui_focus_manager_calc.eo
index ed86b7b05c..d7f9124fe8 100644
--- a/src/lib/elementary/efl_ui_focus_manager_calc.eo
+++ b/src/lib/elementary/efl_ui_focus_manager_calc.eo
@@ -70,6 +70,7 @@ class @beta Efl.Ui.Focus.Manager_Calc e

[EGIT] [core/efl] master 01/01: tests: fix eio tests

2020-07-28 Thread Marcel Hollerbach
stefan pushed a commit to branch master.

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

commit a25bc7e76972230cd51dde3d0227ef6886612ce4
Author: Marcel Hollerbach 
Date:   Tue Jul 28 09:23:11 2020 +0200

tests: fix eio tests

there are tests that init & shutdown efl_object in the same test, which
is since to switch to const _CLASS_GET dangerously wrong.

I checked for more cases but only found cases where no _CLASS_GET
macros where used.

Reviewed-by: Stefan Schmidt 
Differential Revision: https://phab.enlightenment.org/D12069
---
 src/tests/eio/eio_test_manager.c | 4 
 1 file changed, 4 insertions(+)

diff --git a/src/tests/eio/eio_test_manager.c b/src/tests/eio/eio_test_manager.c
index a12b9e7a78..3c49cf6271 100644
--- a/src/tests/eio/eio_test_manager.c
+++ b/src/tests/eio/eio_test_manager.c
@@ -323,6 +323,8 @@ EFL_START_TEST(efl_io_test_instantiated)
 {
Efl_Io_Manager *manager;
 
+   efl_object_init();
+
ck_assert_int_eq(eio_shutdown(), 0);
ecore_init();
fail_if(efl_provider_find(efl_main_loop_get(), EFL_IO_MANAGER_CLASS) != 
NULL);
@@ -332,6 +334,8 @@ EFL_START_TEST(efl_io_test_instantiated)
manager = efl_provider_find(efl_main_loop_get(), EFL_IO_MANAGER_CLASS);
fail_if(manager == NULL);
fail_if(!efl_isa(manager, EFL_IO_MANAGER_CLASS));
+
+   efl_object_shutdown();
 }
 EFL_END_TEST
 

-- 




[EGIT] [core/enlightenment] master 01/01: gesture_recognition: display in correct zone

2020-07-28 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 722e563cbdab4c452a5ec042eefa7f2972548e67
Author: Marcel Hollerbach 
Date:   Tue Jul 28 10:02:58 2020 +0200

gesture_recognition: display in correct zone
---
 src/modules/gesture_recognition/e_mod_main.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/modules/gesture_recognition/e_mod_main.c 
b/src/modules/gesture_recognition/e_mod_main.c
index 521063e12..b1ddbf988 100644
--- a/src/modules/gesture_recognition/e_mod_main.c
+++ b/src/modules/gesture_recognition/e_mod_main.c
@@ -81,7 +81,9 @@ _start_swipe_gesture_recognizition(struct libinput_device 
*dev)
 
if (e_bindings_swipe_available())
  {
-stats->visuals.win =  elm_notify_add(e_comp->elm);
+E_Zone *zone = e_zone_current_get();
+
+stats->visuals.win =  elm_notify_add(zone->base);
 elm_notify_align_set(stats->visuals.win, 0.5, 0.5);
 elm_object_tree_focus_allow_set(stats->visuals.win, EINA_FALSE);
 evas_object_layer_set(stats->visuals.win, E_LAYER_CLIENT_PRIO);

-- 




[EGIT] [core/efl] master 02/02: ci: do not build tests on ci

2020-07-27 Thread Marcel Hollerbach
stefan pushed a commit to branch master.

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

commit f9653f015b0db37cc1c68a449998f6270385521a
Author: Marcel Hollerbach 
Date:   Mon Jul 27 13:49:20 2020 +0200

ci: do not build tests on ci

we need to do the same on any platform that upgrades check from 0.15.0 to
0.15.1. For now this is only with macos

Reviewed-by: Stefan Schmidt 
Differential Revision: https://phab.enlightenment.org/D12068
---
 .ci/ci-configure.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.ci/ci-configure.sh b/.ci/ci-configure.sh
index 0b2f5a64c1..85aeb75202 100755
--- a/.ci/ci-configure.sh
+++ b/.ci/ci-configure.sh
@@ -96,7 +96,7 @@ elif [ "$TRAVIS_OS_NAME" = "osx" ]; then
   zlib_vers=$(grep ZLIB_VERSION /usr/include/zlib.h|head -n1|awk '{print 
$3}'|cut -d'"' -f2)
   sed -iE "s/REPLACE_THIS/$zlib_vers/" .ci/zlib.pc
   export 
PKG_CONFIG_PATH="/usr/local/opt/openssl/lib/pkgconfig:/usr/local/Cellar/libffi/$LIBFFI_VER/lib/pkgconfig:$(pwd)/.ci"
-  mkdir build && meson build -Dopengl=full 
-Decore-imf-loaders-disabler=scim,ibus -Dx11=false -Davahi=false -Deeze=false 
-Dsystemd=false -Dnls=false -Dcocoa=true -Dgstreamer=false
+  mkdir build && meson build -Dopengl=full 
-Decore-imf-loaders-disabler=scim,ibus -Dx11=false -Davahi=false -Deeze=false 
-Dsystemd=false -Dnls=false -Dcocoa=true -Dgstreamer=false -Dbuild-tests=false
 else # Native Ubuntu Linux Travis builds (non-docker)
   OPTS=" -Decore-imf-loaders-disabler=scim,ibus"
 

-- 




[EGIT] [core/efl] master 01/02: build: warn of faulty check version

2020-07-27 Thread Marcel Hollerbach
stefan pushed a commit to branch master.

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

commit b7a61632d0f639cb19823e712da9ee1a7ed145ec
Author: Marcel Hollerbach 
Date:   Mon Jul 27 12:24:57 2020 +0200

build: warn of faulty check version

Reviewed-by: Stefan Schmidt 
Differential Revision: https://phab.enlightenment.org/D12067
---
 meson.build | 4 
 1 file changed, 4 insertions(+)

diff --git a/meson.build b/meson.build
index f7f392da75..90116b67d3 100644
--- a/meson.build
+++ b/meson.build
@@ -582,6 +582,10 @@ subdir(join_paths('data'))
 if get_option('build-tests')
   check = dependency('check')
 
+  if (check.version() == '0.15.1')
+error('There is a bug in check@0.15.1 which does not allow efl to be 
compiled with it. Please downgrade / upgrade or disable tests')
+  endif
+
   test_env = environment()
   test_env.set('EFL_RUN_IN_TREE', '1')
 

-- 




[EGIT] [core/enlightenment] enlightenment-0.24 01/05: Revert "tiling - avoid infinite loop of not fit - toggle float, not fit, toggle"

2020-07-26 Thread Marcel Hollerbach
raster pushed a commit to branch enlightenment-0.24.

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

commit 6a3648a5fdd621897f53b8ece5d95c6bb7b9dfec
Author: Marcel Hollerbach 
Date:   Tue Jul 21 14:16:43 2020 +0200

Revert "tiling - avoid infinite loop of not fit - toggle float, not fit, 
toggle"

This reverts commit 265c3068740529990a2ab14477db20e773b149d4.

This is somehow the wrong way of doing that. Next commit will bring
protection against multiple recursive window_tree_apply calls.
Additionally, we should prepare to *not* accidently tile a  window that
has been previously untiled.
---
 src/modules/tiling/e_mod_tiling.c | 5 -
 1 file changed, 5 deletions(-)

diff --git a/src/modules/tiling/e_mod_tiling.c 
b/src/modules/tiling/e_mod_tiling.c
index 7f81070fc..fba3f1a8e 100644
--- a/src/modules/tiling/e_mod_tiling.c
+++ b/src/modules/tiling/e_mod_tiling.c
@@ -46,7 +46,6 @@ typedef struct Client_Extra
Eina_Bool floating E_BITFIELD;
Eina_Bool tiled E_BITFIELD;
Eina_Bool tracked E_BITFIELD;
-   Eina_Bool being_removed E_BITFIELD;
 } Client_Extra;
 
 typedef struct _Instance
@@ -796,8 +795,6 @@ _client_remove_no_apply(E_Client *ec)
 return EINA_FALSE;
  }
 
-   extra->being_removed = EINA_TRUE;
-
if (extra->drag.drag)
  {
 _client_drag_terminate(ec);
@@ -845,8 +842,6 @@ toggle_floating(E_Client *ec)
 return;
  }
 
-   if (extra->being_removed) return;
-
extra->floating = !extra->floating;
 
if (!desk_should_tile_check(ec->desk))

-- 




[EGIT] [core/enlightenment] enlightenment-0.24 02/05: tiling: prevent potential recursive apply calls

2020-07-26 Thread Marcel Hollerbach
raster pushed a commit to branch enlightenment-0.24.

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

commit d42adad715c7e8dfef425411f6e31052968b3ced
Author: Marcel Hollerbach 
Date:   Tue Jul 21 14:46:04 2020 +0200

tiling: prevent potential recursive apply calls

additionally, this ensures that clients that cannot be layouted are
definitly outside the tree. Without applying the window tree again.

With all this tiling can be used quite normally. If you want to know
exactly what is going on, set notify level to info, then tiling tells
you what cannot be tiled.
---
 src/modules/tiling/e_mod_tiling.c | 26 +++---
 src/modules/tiling/window_tree.c  | 10 +++---
 2 files changed, 30 insertions(+), 6 deletions(-)

diff --git a/src/modules/tiling/e_mod_tiling.c 
b/src/modules/tiling/e_mod_tiling.c
index fba3f1a8e..9bbed0ff4 100644
--- a/src/modules/tiling/e_mod_tiling.c
+++ b/src/modules/tiling/e_mod_tiling.c
@@ -115,6 +115,7 @@ static struct tiling_mod_main_g
*act_move_right, *act_toggle_split_mode, 
*act_swap_window;
 
Desk_Split_Type *current_split_type;
+   Ecore_Job   *apply_tree_job;
 
struct {
 Evas_Object *comp_obj;
@@ -480,7 +481,7 @@ _reapply_tree(void)
 if (zw > 0 && zh > 0)
   tiling_window_tree_apply(_G.tinfo->tree, zx, zy, zw, zh,
tiling_g.config->window_padding,
-   EINA_FALSE);
+   EINA_TRUE);
 else
   ERR("The zone desk geometry was not useful at all (%d,%d,%d,%d)", 
zx, zy, zw, zh);
  }
@@ -859,11 +860,22 @@ toggle_floating(E_Client *ec)
  }
 }
 
+static void
+_window_tree_apply_delayed(void *data EINA_UNUSED)
+{
+   _reapply_tree();
+   ecore_job_del(_G.apply_tree_job);
+   _G.apply_tree_job = NULL;
+}
+
 void
 tiling_e_client_does_not_fit(E_Client *ec)
 {
E_Notification_Notify n;
Eina_Strbuf *buf;
+   Client_Extra *extra = tiling_entry_no_desk_func(ec);
+
+   EINA_SAFETY_ON_NULL_RETURN(extra);
 
buf = eina_strbuf_new();
eina_strbuf_append_printf(buf, _("Window %s cannot be tiled\n"),
@@ -876,9 +888,17 @@ tiling_e_client_does_not_fit(E_Client *ec)
n.body = eina_strbuf_string_get(buf);
n.timeout = 8000;
e_notification_client_send(&n, NULL, NULL);
-   toggle_floating(ec);
-
eina_strbuf_string_free(buf);
+
+   EINA_SAFETY_ON_TRUE_RETURN(extra->floating);
+
+   //remove the client here without applying the tree again to break maybe 
possible recursions
+   {
+  extra->floating = EINA_TRUE;
+  _restore_client(ec);
+  _client_remove_no_apply(ec);
+  _G.apply_tree_job = ecore_job_add(_window_tree_apply_delayed, NULL);
+   }
 }
 
 static void
diff --git a/src/modules/tiling/window_tree.c b/src/modules/tiling/window_tree.c
index fa3fa8da6..f9800a2c6 100644
--- a/src/modules/tiling/window_tree.c
+++ b/src/modules/tiling/window_tree.c
@@ -306,10 +306,14 @@ _tiling_window_tree_level_apply(Window_Tree *root, 
Evas_Coord x, Evas_Coord y,
 if (!e_object_is_del(E_OBJECT(root->client)))
   {
  if ((root->client->icccm.min_w > (w - padding)) ||
- (root->client->icccm.min_h > (h - padding)))
+ (root->client->icccm.min_h > (h - padding))) {
*floaters = eina_list_append(*floaters, root->client);
- tiling_e_client_move_resize_extra(root->client, x, y,
-   w - padding, h - padding);
+ } else {
+   tiling_e_client_move_resize_extra(root->client, x, y,
+ w - padding, h - padding);
+ }
+
+
   }
 return;
  }

-- 




[EGIT] [core/enlightenment] enlightenment-0.24 03/05: e_shelf: only reset autohide timer if we are not hidden

2020-07-26 Thread Marcel Hollerbach
raster pushed a commit to branch enlightenment-0.24.

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

commit caaff77b423b8b1d566d6b951da8e2b49f8f7bde
Author: Marcel Hollerbach 
Date:   Tue Jul 21 11:20:47 2020 +0200

e_shelf: only reset autohide timer if we are not hidden

otherwise we might hide shelfs even if the calendar is shown, without
the possibility of reshowing them again.
---
 src/bin/e_shelf.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/e_shelf.c b/src/bin/e_shelf.c
index f2023fca1..3f273bc70 100644
--- a/src/bin/e_shelf.c
+++ b/src/bin/e_shelf.c
@@ -509,7 +509,7 @@ e_shelf_toggle(E_Shelf *es, int show)
E_OBJECT_TYPE_CHECK(es, E_SHELF_TYPE);
 
es->toggle = show;
-   if (_e_shelf_autohide_timer_extend(es)) return;
+   if (!es->hidden && _e_shelf_autohide_timer_extend(es)) return;
if (es->locked) return;
es->interrupted = -1;
es->urgent_show = 0;

-- 




[EGIT] [core/enlightenment] master 01/01: gesture_recognizer: add icon

2020-07-21 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 91ff9565903c6ab6da9be4b12ea975f0ff6a8175
Author: Marcel Hollerbach 
Date:   Tue Jul 21 20:51:07 2020 +0200

gesture_recognizer: add icon

thank you very much jf_simon for this icon! :)
---
 .../e-module-gesture_recognition.edj| Bin 0 -> 30531 bytes
 src/modules/gesture_recognition/meson.build |   1 -
 src/modules/gesture_recognition/module.desktop  |   2 +-
 3 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/modules/gesture_recognition/e-module-gesture_recognition.edj 
b/src/modules/gesture_recognition/e-module-gesture_recognition.edj
new file mode 100644
index 0..eae0cd28f
Binary files /dev/null and 
b/src/modules/gesture_recognition/e-module-gesture_recognition.edj differ
diff --git a/src/modules/gesture_recognition/meson.build 
b/src/modules/gesture_recognition/meson.build
index 5a007ee8e..55a7301ea 100644
--- a/src/modules/gesture_recognition/meson.build
+++ b/src/modules/gesture_recognition/meson.build
@@ -2,4 +2,3 @@ src = files(
   'e_mod_main.c',
 )
 deps += [dependency('libinput')]
-desktop_only = true
diff --git a/src/modules/gesture_recognition/module.desktop 
b/src/modules/gesture_recognition/module.desktop
index 8136450cb..9d1826825 100644
--- a/src/modules/gesture_recognition/module.desktop
+++ b/src/modules/gesture_recognition/module.desktop
@@ -2,5 +2,5 @@
 Type=Link
 Name=Gesture Recognition
 Comment=Gesture recognition using libinput
-Icon=e-module-start
+Icon=e-module-gesture_recognition
 X-Enlightenment-ModuleType=utils

-- 




[EGIT] [core/enlightenment] master 01/01: Introduce gesture recognition

2020-07-21 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 4678fa60c2759e2ce99334abd4cbf471865825d6
Author: Marcel Hollerbach 
Date:   Thu Jul 2 12:18:42 2020 +0200

Introduce gesture recognition

This is currently using libinputs gesture recognition. And offers a
config screen to setup new gestures.

1. No default gesture bindings are setup

2. When libinput is not available the module is not going to be loaded,
   and nothing is recognited.+

3. Only swipe gestures are recognized yet.

4. For now, you are required to be part of the input group, otherwise we 
cannot
   get the libinput events. (See Todo 1)

5. The visual representation is not really good. In terms of UI, it is
   visually showing a value coming from left to right, which is
   indicating a direction, which is not always the direction of the
   gesture, which is kind of bad. More improvements needed here.

Some things that still can be done:

1. The whole libinput things should be handled by elput, either with the
   input group hack, or logind, or simply by root. The ideal idea would
   be that e_sys is creating the elput context, which also listens for new
   devices etc.. When all this is done, and it recognizes a new device, it
   can simply sent a message from e_sys to e, that there is some new
   device, with a opened fd. (However, this all needs to be locked up in a
   way that e_sys cannot be abused)
---
 meson_options.txt  |   4 +
 src/bin/e_bindings.c   | 150 
 src/bin/e_bindings.h   |  30 +
 src/bin/e_config.c |  28 +
 src/bin/e_config.h |  12 +
 .../conf_bindings/e_int_config_swipebindings.c | 978 +
 src/modules/conf_bindings/e_mod_main.c |   4 +
 src/modules/conf_bindings/e_mod_main.h |   2 +-
 src/modules/conf_bindings/meson.build  |   1 +
 src/modules/gesture_recognition/e_mod_main.c   | 287 ++
 src/modules/gesture_recognition/meson.build|   5 +
 src/modules/gesture_recognition/module.desktop |   6 +
 src/modules/meson.build|   1 +
 13 files changed, 1507 insertions(+), 1 deletion(-)

diff --git a/meson_options.txt b/meson_options.txt
index 016dd8124..faedfeada 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -297,3 +297,7 @@ option('conf-window-remembers',
type: 'boolean',
value: true,
description: 'enable conf-window-remembers module: (default=true)')
+option('gesture-recognition',
+   type: 'boolean',
+   value: true,
+   description: 'Enable gesture recognition using libinput, needed to get 
swipe bindings beeing detected.')
diff --git a/src/bin/e_bindings.c b/src/bin/e_bindings.c
index 084e6ef51..e2d231761 100644
--- a/src/bin/e_bindings.c
+++ b/src/bin/e_bindings.c
@@ -7,6 +7,7 @@ static void   _e_bindings_edge_free(E_Binding_Edge 
*bind);
 static void   _e_bindings_signal_free(E_Binding_Signal *bind);
 static void   _e_bindings_wheel_free(E_Binding_Wheel *bind);
 static void   _e_bindings_acpi_free(E_Binding_Acpi *bind);
+static void   _e_bindings_swipe_free(E_Binding_Swipe *bind);
 static Eina_Bool  _e_bindings_edge_cb_timer(void *data);
 
 /* local subsystem globals */
@@ -17,9 +18,13 @@ static Eina_List *edge_bindings = NULL;
 static Eina_List *signal_bindings = NULL;
 static Eina_List *wheel_bindings = NULL;
 static Eina_List *acpi_bindings = NULL;
+static Eina_List *swipe_bindings = NULL;
 
 static unsigned int bindings_disabled = 0;
 
+static E_Bindings_Swipe_Live_Update live_update;
+static E_Bindings_Swipe_Live_Update live_update_data;
+
 EINTERN E_Action *(*e_binding_key_list_cb)(E_Binding_Context, 
Ecore_Event_Key*, E_Binding_Modifier, E_Binding_Key **);
 
 typedef struct _E_Binding_Edge_Data E_Binding_Edge_Data;
@@ -43,6 +48,7 @@ e_bindings_init(void)
E_Config_Binding_Edge *ebe;
E_Config_Binding_Key *ebk;
E_Config_Binding_Acpi *eba;
+   E_Config_Binding_Acpi *ebsw;
Eina_List *l;
 
EINA_LIST_FOREACH(e_bindings->mouse_bindings, l, ebm)
@@ -86,6 +92,8 @@ e_bindings_init(void)
  e_bindings_acpi_add(eba->context, eba->type, eba->status,
  eba->action, eba->params);
 
+   e_bindings_swipe_reset();
+
return 1;
 }
 
@@ -98,6 +106,7 @@ e_bindings_shutdown(void)
E_FREE_LIST(signal_bindings, _e_bindings_signal_free);
E_FREE_LIST(wheel_bindings, _e_bindings_wheel_free);
E_FREE_LIST(acpi_bindings, _e_bindings_acpi_free);
+   E_FREE_LIST(swipe_bindings, _e_bindings_swipe_free);
 
return 1;

[EGIT] [core/enlightenment] master 03/03: tiling: prevent potential recursive apply calls

2020-07-21 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit e6609541b1863e17f268c6b66ff42621e4dc1f06
Author: Marcel Hollerbach 
Date:   Tue Jul 21 14:46:04 2020 +0200

tiling: prevent potential recursive apply calls

additionally, this ensures that clients that cannot be layouted are
definitly outside the tree. Without applying the window tree again.

With all this tiling can be used quite normally. If you want to know
exactly what is going on, set notify level to info, then tiling tells
you what cannot be tiled.
---
 src/modules/tiling/e_mod_tiling.c | 26 +++---
 src/modules/tiling/window_tree.c  | 10 +++---
 2 files changed, 30 insertions(+), 6 deletions(-)

diff --git a/src/modules/tiling/e_mod_tiling.c 
b/src/modules/tiling/e_mod_tiling.c
index fba3f1a8e..9bbed0ff4 100644
--- a/src/modules/tiling/e_mod_tiling.c
+++ b/src/modules/tiling/e_mod_tiling.c
@@ -115,6 +115,7 @@ static struct tiling_mod_main_g
*act_move_right, *act_toggle_split_mode, 
*act_swap_window;
 
Desk_Split_Type *current_split_type;
+   Ecore_Job   *apply_tree_job;
 
struct {
 Evas_Object *comp_obj;
@@ -480,7 +481,7 @@ _reapply_tree(void)
 if (zw > 0 && zh > 0)
   tiling_window_tree_apply(_G.tinfo->tree, zx, zy, zw, zh,
tiling_g.config->window_padding,
-   EINA_FALSE);
+   EINA_TRUE);
 else
   ERR("The zone desk geometry was not useful at all (%d,%d,%d,%d)", 
zx, zy, zw, zh);
  }
@@ -859,11 +860,22 @@ toggle_floating(E_Client *ec)
  }
 }
 
+static void
+_window_tree_apply_delayed(void *data EINA_UNUSED)
+{
+   _reapply_tree();
+   ecore_job_del(_G.apply_tree_job);
+   _G.apply_tree_job = NULL;
+}
+
 void
 tiling_e_client_does_not_fit(E_Client *ec)
 {
E_Notification_Notify n;
Eina_Strbuf *buf;
+   Client_Extra *extra = tiling_entry_no_desk_func(ec);
+
+   EINA_SAFETY_ON_NULL_RETURN(extra);
 
buf = eina_strbuf_new();
eina_strbuf_append_printf(buf, _("Window %s cannot be tiled\n"),
@@ -876,9 +888,17 @@ tiling_e_client_does_not_fit(E_Client *ec)
n.body = eina_strbuf_string_get(buf);
n.timeout = 8000;
e_notification_client_send(&n, NULL, NULL);
-   toggle_floating(ec);
-
eina_strbuf_string_free(buf);
+
+   EINA_SAFETY_ON_TRUE_RETURN(extra->floating);
+
+   //remove the client here without applying the tree again to break maybe 
possible recursions
+   {
+  extra->floating = EINA_TRUE;
+  _restore_client(ec);
+  _client_remove_no_apply(ec);
+  _G.apply_tree_job = ecore_job_add(_window_tree_apply_delayed, NULL);
+   }
 }
 
 static void
diff --git a/src/modules/tiling/window_tree.c b/src/modules/tiling/window_tree.c
index fa3fa8da6..f9800a2c6 100644
--- a/src/modules/tiling/window_tree.c
+++ b/src/modules/tiling/window_tree.c
@@ -306,10 +306,14 @@ _tiling_window_tree_level_apply(Window_Tree *root, 
Evas_Coord x, Evas_Coord y,
 if (!e_object_is_del(E_OBJECT(root->client)))
   {
  if ((root->client->icccm.min_w > (w - padding)) ||
- (root->client->icccm.min_h > (h - padding)))
+ (root->client->icccm.min_h > (h - padding))) {
*floaters = eina_list_append(*floaters, root->client);
- tiling_e_client_move_resize_extra(root->client, x, y,
-   w - padding, h - padding);
+ } else {
+   tiling_e_client_move_resize_extra(root->client, x, y,
+ w - padding, h - padding);
+ }
+
+
   }
 return;
  }

-- 




[EGIT] [core/enlightenment] master 01/03: e_shelf: only reset autohide timer if we are not hidden

2020-07-21 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 324b2661cee7ddd6576338597180fa795252e82a
Author: Marcel Hollerbach 
Date:   Tue Jul 21 11:20:47 2020 +0200

e_shelf: only reset autohide timer if we are not hidden

otherwise we might hide shelfs even if the calendar is shown, without
the possibility of reshowing them again.
---
 src/bin/e_shelf.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/e_shelf.c b/src/bin/e_shelf.c
index f2023fca1..3f273bc70 100644
--- a/src/bin/e_shelf.c
+++ b/src/bin/e_shelf.c
@@ -509,7 +509,7 @@ e_shelf_toggle(E_Shelf *es, int show)
E_OBJECT_TYPE_CHECK(es, E_SHELF_TYPE);
 
es->toggle = show;
-   if (_e_shelf_autohide_timer_extend(es)) return;
+   if (!es->hidden && _e_shelf_autohide_timer_extend(es)) return;
if (es->locked) return;
es->interrupted = -1;
es->urgent_show = 0;

-- 




[EGIT] [core/enlightenment] master 02/03: Revert "tiling - avoid infinite loop of not fit - toggle float, not fit, toggle"

2020-07-21 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 48247416a53d9d39ae96215363347439ec32993d
Author: Marcel Hollerbach 
Date:   Tue Jul 21 14:16:43 2020 +0200

Revert "tiling - avoid infinite loop of not fit - toggle float, not fit, 
toggle"

This reverts commit 265c3068740529990a2ab14477db20e773b149d4.

This is somehow the wrong way of doing that. Next commit will bring
protection against multiple recursive window_tree_apply calls.
Additionally, we should prepare to *not* accidently tile a  window that
has been previously untiled.
---
 src/modules/tiling/e_mod_tiling.c | 5 -
 1 file changed, 5 deletions(-)

diff --git a/src/modules/tiling/e_mod_tiling.c 
b/src/modules/tiling/e_mod_tiling.c
index 7f81070fc..fba3f1a8e 100644
--- a/src/modules/tiling/e_mod_tiling.c
+++ b/src/modules/tiling/e_mod_tiling.c
@@ -46,7 +46,6 @@ typedef struct Client_Extra
Eina_Bool floating E_BITFIELD;
Eina_Bool tiled E_BITFIELD;
Eina_Bool tracked E_BITFIELD;
-   Eina_Bool being_removed E_BITFIELD;
 } Client_Extra;
 
 typedef struct _Instance
@@ -796,8 +795,6 @@ _client_remove_no_apply(E_Client *ec)
 return EINA_FALSE;
  }
 
-   extra->being_removed = EINA_TRUE;
-
if (extra->drag.drag)
  {
 _client_drag_terminate(ec);
@@ -845,8 +842,6 @@ toggle_floating(E_Client *ec)
 return;
  }
 
-   if (extra->being_removed) return;
-
extra->floating = !extra->floating;
 
if (!desk_should_tile_check(ec->desk))

-- 




[EGIT] [core/efl] master 01/01: efl: make all _class_get() functions const

2020-07-20 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit a931e418234bc567d725c79a9e4d0462e02fa5a7
Author: Marcel Hollerbach 
Date:   Thu Jul 16 12:39:23 2020 +0200

efl: make all _class_get() functions const

please note, not the return type, but the function.
When appending __attribute__((const)) to a function, the compiler is
told that its enough to call this function once in a function.

This is quite often happening when we are efl_data_scope_get and
efl_super in a function that is different from a implemented function.

The compiler now starts to remove the calls that aggressivly that we
need to ensure that these calls are not removed, which means, the static
function calls, and the eo init are now checking the return value of
these functions, to ensure that they are called.

Please note that you now have to be carefull when your app calls
eo_shutdown, if it does so, you *must* call it at the end of a function,
or never call class_get after that anymore.

Overall this improves elm test runs 0.1s which is fair i guess, the main
thing that is faster is textrendering, where is also the point where
this is the most beneficial.

Please note, this replaces 42 occurences of double _class_get() ... THAT
is a sign!

Reviewed-by: Stefan Schmidt 
Reviewed-by: Daniel Kolesa 
Differential Revision: https://phab.enlightenment.org/D12057
---
 src/bin/eolian/headers.c   |  2 +-
 src/bin/eolian/sources.c   | 23 --
 src/lib/ecore/ecore_exe_eo.h   |  2 +-
 src/lib/ecore_con/ecore_con_eet_base_eo.h  |  2 +-
 src/lib/ecore_con/ecore_con_eet_client_obj_eo.h|  2 +-
 src/lib/ecore_con/ecore_con_eet_server_obj_eo.h|  2 +-
 src/lib/edje/edje_edit_eo.h|  2 +-
 src/lib/elementary/efl_ui_bg_legacy_eo.h   |  2 +-
 src/lib/elementary/efl_ui_button_legacy_eo.h   |  2 +-
 src/lib/elementary/efl_ui_check_legacy_eo.h|  2 +-
 src/lib/elementary/efl_ui_flip_legacy_eo.h |  2 +-
 .../efl_ui_focus_parent_provider_gen_eo.h  |  2 +-
 src/lib/elementary/efl_ui_frame_legacy_eo.h|  2 +-
 src/lib/elementary/efl_ui_image_legacy_eo.h|  2 +-
 .../elementary/efl_ui_image_zoomable_legacy_eo.h   |  2 +-
 src/lib/elementary/efl_ui_layout_legacy_eo.h   |  4 ++--
 src/lib/elementary/efl_ui_panes_legacy_eo.h|  2 +-
 src/lib/elementary/efl_ui_progressbar_legacy_eo.h  |  2 +-
 src/lib/elementary/efl_ui_radio_legacy_eo.h|  2 +-
 src/lib/elementary/efl_ui_textpath_legacy_eo.h |  2 +-
 src/lib/elementary/efl_ui_vg_animation_eo.legacy.h |  2 +-
 src/lib/elementary/efl_ui_video_legacy_eo.h|  2 +-
 src/lib/elementary/efl_ui_win_inlined_legacy_eo.h  |  2 +-
 src/lib/elementary/efl_ui_win_legacy_eo.h  |  2 +-
 src/lib/elementary/efl_ui_win_socket_legacy_eo.h   |  2 +-
 src/lib/elementary/elm_access_eo.h |  2 +-
 src/lib/elementary/elm_actionslider_eo.h   |  2 +-
 src/lib/elementary/elm_atspi_app_object_eo.h   |  2 +-
 src/lib/elementary/elm_atspi_bridge_eo.h   |  2 +-
 src/lib/elementary/elm_box_eo.h|  2 +-
 src/lib/elementary/elm_bubble_eo.h |  2 +-
 src/lib/elementary/elm_calendar_eo.h   |  2 +-
 src/lib/elementary/elm_calendar_item_eo.h  |  2 +-
 src/lib/elementary/elm_clock_eo.h  |  2 +-
 src/lib/elementary/elm_code_widget_legacy_eo.h |  2 +-
 src/lib/elementary/elm_color_item_eo.h |  2 +-
 src/lib/elementary/elm_colorselector_eo.h  |  2 +-
 src/lib/elementary/elm_conformant_eo.h |  2 +-
 src/lib/elementary/elm_ctxpopup_eo.h   |  2 +-
 src/lib/elementary/elm_ctxpopup_item_eo.h  |  2 +-
 src/lib/elementary/elm_dayselector_eo.h|  2 +-
 src/lib/elementary/elm_dayselector_item_eo.h   |  2 +-
 src/lib/elementary/elm_diskselector_eo.h   |  2 +-
 src/lib/elementary/elm_diskselector_item_eo.h  |  2 +-
 src/lib/elementary/elm_entry_eo.h  |  2 +-
 src/lib/elementary/elm_fileselector_button_eo.h|  2 +-
 src/lib/elementary/elm_fileselector_entry_eo.h |  2 +-
 src/lib/elementary/elm_fileselector_eo.h   |  2 +-
 src/lib/elementary/elm_flipselector_eo.h   |  2 +-
 src/lib/elementary/elm_flipselector_item_eo.h  |  2 +-
 src/lib/elementary/elm_gengrid_eo.h|  2 +-
 src/lib/elementary/elm_gengrid_item_eo.h   |  2 +-
 src/lib/elementary/elm_gengrid_pan_eo.h|  2 +-
 src/lib/elementary/elm_genlist_eo.h|  2 +-
 src/lib/elementary/elm_genlist_item_eo.h   |  2 +-
 src/lib/elementary/elm_genlist_pan_eo.h|  2 +-
 src/lib/elementary/elm_gesture_layer_eo.h  |  2

[EGIT] [core/efl] master 02/02: evas_common_privat: improve tiler merge flag

2020-07-01 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit d55b7939d6088e987d23ee1b8835cdaeecb55136
Author: Marcel Hollerbach 
Date:   Wed Jun 10 20:48:45 2020 +0200

evas_common_privat: improve tiler merge flag

when this is a int and you assign 0, the whole "0" for the entire int is
moved. When this is a bit flag like this, it is a simple | operation,
which makes the whole thing somehow faster.

Reviewed-by: Christopher Michael 
Differential Revision: https://phab.enlightenment.org/D11998
---
 src/lib/evas/include/evas_common_private.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/evas/include/evas_common_private.h 
b/src/lib/evas/include/evas_common_private.h
index 4d9368b31b..509f7c93a8 100644
--- a/src/lib/evas/include/evas_common_private.h
+++ b/src/lib/evas/include/evas_common_private.h
@@ -948,12 +948,12 @@ struct _Tilebuf
struct {
   short w, h;
} tile_size;
-   int need_merge;
list_t rects;
struct {
   int x, y, w, h;
} prev_add, prev_del;
Eina_Bool strict_tiles : 1;
+   Eina_Bool need_merge : 1;
 #endif
 };
 

-- 




[EGIT] [core/efl] master 03/03: eina_array: micro optimize eina_array_push

2020-06-25 Thread Marcel Hollerbach
stefan pushed a commit to branch master.

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

commit 2dcb18acac4d1384e0651d353c2b1f15a8c5e4d4
Author: Marcel Hollerbach 
Date:   Wed Jun 10 20:48:37 2020 +0200

eina_array: micro optimize eina_array_push

This commit does two things:
- Tell the compiler that it is unlikely that we need to grow, and that
  it is unlikely that data is NULL. Sometimes the if check for data
  would get dropped out by the compiler when it can be ensured that it is
  != NULL. However, if we for example efl_add something and eina_push
  the result, the condition would not be removed, as there is no assertion
  efl_add would be != NULL.

- Do not hide the array assignment in a branch, but make it the default
  branch, this way instruction cache caches the correct instruction, as
  branch prediction will now hopefully, due to the hinting, take the
  correct branch.

While benchmarking this here (simply in elementary_perf), this reduced
pipeline faults in eina_array_push quite a bit. (Btw. it is hard to track
*which* exact calls to eina_array_push do cause that, as mostly this API
gets inlined, so it was easier optimizing that, instead of the method
arround)

Reviewed-by: Stefan Schmidt 
Differential Revision: https://phab.enlightenment.org/D11997
---
 src/lib/eina/eina_inline_array.x | 11 ---
 1 file changed, 4 insertions(+), 7 deletions(-)

diff --git a/src/lib/eina/eina_inline_array.x b/src/lib/eina/eina_inline_array.x
index 8367d61e7b..a78b674edd 100644
--- a/src/lib/eina/eina_inline_array.x
+++ b/src/lib/eina/eina_inline_array.x
@@ -44,16 +44,13 @@ EAPI Eina_Bool eina_array_grow(Eina_Array *array);
 static inline Eina_Bool
 eina_array_push(Eina_Array *array, const void *data)
 {
-   if (data)
- {
-if (EINA_UNLIKELY((array->count + 1) > array->total)) goto do_grow;
+   if (EINA_UNLIKELY(data == NULL)) return EINA_FALSE;
+   if (EINA_UNLIKELY((array->count + 1) > array->total)) goto do_grow;
 do_grow_back:
 
-array->data[array->count++] = (void*) data;
+   array->data[array->count++] = (void*) data;
 
-return EINA_TRUE;
- }
-   return EINA_FALSE;
+   return EINA_TRUE;
 do_grow:
if (!eina_array_grow(array)) return EINA_FALSE;
goto do_grow_back;

-- 




[EGIT] [core/efl] master 01/01: efl_ui_widget: addition to the previous commit

2020-06-17 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 721c097bb3e3f64f900b4fe73b8715b61a5cb908
Author: Marcel Hollerbach 
Date:   Wed Jun 17 09:13:05 2020 +0200

efl_ui_widget: addition to the previous commit

in the previous commit we started to only receive the parent_obj from
the evas object when its not a widget. However, we still need to ensure
that the parent is equal to the current one in order to remove it when a
widget.

While this is one more call, the call to get the parent is not as
heavy as the data_get call, as this directly addresses a struct, and
does not read from a hash table.

This also fixes a test case failure.
---
 src/lib/elementary/efl_ui_widget.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/lib/elementary/efl_ui_widget.c 
b/src/lib/elementary/efl_ui_widget.c
index 0b6ea105a9..16e55ec6c9 100644
--- a/src/lib/elementary/efl_ui_widget.c
+++ b/src/lib/elementary/efl_ui_widget.c
@@ -1587,6 +1587,8 @@ _efl_ui_widget_widget_sub_object_del(Eo *obj, 
Elm_Widget_Smart_Data *sd, Evas_Ob
 
if (is_widget)
  {
+   if (efl_ui_widget_parent_get(sobj) != obj)
+  return EINA_FALSE;
 if (_is_focused(sobj))
   {
  elm_widget_tree_unfocusable_set(sobj, EINA_TRUE);

-- 




[EGIT] [core/efl] efl-1.24 05/31: ecore_main_timechanges: fix include

2020-06-15 Thread Marcel Hollerbach
stefan pushed a commit to branch efl-1.24.

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

commit 88cf37d1520f68939db1f37d43a37aaacf0a62fd
Author: Marcel Hollerbach 
Date:   Mon May 25 11:24:28 2020 +0200

ecore_main_timechanges: fix include

we should not prefix this with the full path.

Reviewed-by: Stefan Schmidt 
Reviewed-by: Vincent Torri 
Differential Revision: https://phab.enlightenment.org/D11881
---
 src/lib/ecore/ecore_main_timechanges.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/ecore/ecore_main_timechanges.c 
b/src/lib/ecore/ecore_main_timechanges.c
index cb3daf1fc1..c2b50ec8e9 100644
--- a/src/lib/ecore/ecore_main_timechanges.c
+++ b/src/lib/ecore/ecore_main_timechanges.c
@@ -14,7 +14,7 @@
 
 #include "Ecore.h"
 #include "ecore_private.h"
-#include "lib/ecore/ecore_main_common.h"
+#include "ecore_main_common.h"
 
 #ifdef HAVE_SYS_TIMERFD_H
 

-- 




[EGIT] [core/efl] efl-1.24 15/31: elm_gen****: free item_content map

2020-06-15 Thread Marcel Hollerbach
stefan pushed a commit to branch efl-1.24.

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

commit a111e9702cfb4699f753a08a43d43c977948715f
Author: Marcel Hollerbach 
Date:   Mon Jun 1 10:46:29 2020 +0900

elm_gen: free item_content map

Summary:
this should be freeed. Both can be freed in group_del after the items
are deleted.

fix T8732

Reviewers: Hermet

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8732

Differential Revision: https://phab.enlightenment.org/D11882
---
 src/lib/elementary/elm_gengrid.c | 2 ++
 src/lib/elementary/elm_genlist.c | 1 +
 2 files changed, 3 insertions(+)

diff --git a/src/lib/elementary/elm_gengrid.c b/src/lib/elementary/elm_gengrid.c
index 8446db8cab..d5c90277a5 100644
--- a/src/lib/elementary/elm_gengrid.c
+++ b/src/lib/elementary/elm_gengrid.c
@@ -4185,6 +4185,8 @@ _elm_gengrid_efl_canvas_group_group_del(Eo *obj, 
Elm_Gengrid_Data *sd)
_item_cache_zero(sd);
ecore_job_del(sd->calc_job);
 
+   eina_hash_free(sd->content_item_map);
+
efl_canvas_group_del(efl_super(obj, MY_CLASS));
 }
 
diff --git a/src/lib/elementary/elm_genlist.c b/src/lib/elementary/elm_genlist.c
index 6866b14965..d6125594fe 100644
--- a/src/lib/elementary/elm_genlist.c
+++ b/src/lib/elementary/elm_genlist.c
@@ -5920,6 +5920,7 @@ _elm_genlist_efl_canvas_group_group_del(Eo *obj, 
Elm_Genlist_Data *sd)
 
eina_stringshare_replace(&sd->decorate_it_type, NULL);
 
+   eina_hash_free(sd->content_item_map);
_elm_genlist_tree_effect_stop(sd);
 }
 

-- 




[EGIT] [core/efl] efl-1.24 01/01: build: make eina drag in the -lm flag

2020-06-12 Thread Marcel Hollerbach
stefan pushed a commit to branch efl-1.24.

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

commit d068889df4576cb7cc04559532191abe91c597dd
Author: Marcel Hollerbach 
Date:   Wed May 27 18:21:37 2020 +0200

build: make eina drag in the -lm flag

eina uses math.h we need to drag in this flag everywhere.

Differential Revision: https://phab.enlightenment.org/D11896
---
 src/lib/eina/meson.build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/eina/meson.build b/src/lib/eina/meson.build
index 1104ae74c7..559696d337 100644
--- a/src/lib/eina/meson.build
+++ b/src/lib/eina/meson.build
@@ -1,5 +1,5 @@
 eina_deps = [dl]
-eina_pub_deps = [thread_dep]
+eina_pub_deps = [thread_dep, m]
 
 if sys_windows == true
eina_pub_deps += [evil]

-- 




[EGIT] [core/efl] master 01/01: mono: update window construction

2020-06-09 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 4f6a086f6ad9e0151e32930bafb6e85d5cb8f826
Author: Marcel Hollerbach 
Date:   Tue Jun 9 12:09:25 2020 +0200

mono: update window construction

they simply missed parameters here

Reviewed-by: Stefan Schmidt 
Differential Revision: https://phab.enlightenment.org/D11954
---
 src/tests/efl_mono/Model.cs | 2 +-
 src/tests/efl_mono/Parts.cs | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/tests/efl_mono/Model.cs b/src/tests/efl_mono/Model.cs
index f566b91d04..bdf30b341d 100644
--- a/src/tests/efl_mono/Model.cs
+++ b/src/tests/efl_mono/Model.cs
@@ -69,7 +69,7 @@ public static class TestModel {
 {
 string propertyBound = null;
 bool callbackCalled = false;
-var parent = new Efl.Ui.Win(null);
+var parent = new Efl.Ui.Win(null, "", "");
 parent.Visible = false;
 var factory = new Efl.Ui.ItemFactory(parent);
 factory.PropertyBoundEvent += (object sender, 
Efl.Ui.PropertyBindPropertyBoundEventArgs args) => {
diff --git a/src/tests/efl_mono/Parts.cs b/src/tests/efl_mono/Parts.cs
index c5de896053..e33ce96918 100644
--- a/src/tests/efl_mono/Parts.cs
+++ b/src/tests/efl_mono/Parts.cs
@@ -61,7 +61,7 @@ public static class TestMVVMParts
 {
 public static void mvvm_dynamic_parts()
 {
-var parent = new Efl.Ui.Win(null);
+var parent = new Efl.Ui.Win(null, "", "");
 parent.Visible = false;
 var factory = new Efl.Ui.ItemFactory(parent);
 
@@ -75,7 +75,7 @@ public static class TestMVVMParts
 
 public static void mvvm_factory_properties()
 {
-var parent = new Efl.Ui.Win(null);
+var parent = new Efl.Ui.Win(null, "", "");
 parent.Visible = false;
 var factory = new Efl.Ui.ItemFactory(parent);
 var iconFactory = new Efl.Ui.ImageFactory(null);

-- 




[EGIT] [core/efl] master 01/01: efl_ui_win: declare constructors not optional

2020-06-09 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 29ae24cbf97e66e1d3985d2f515f0b02851120f7
Author: Marcel Hollerbach 
Date:   Sat Apr 18 19:43:11 2020 +0200

efl_ui_win: declare constructors not optional

they cannot be optional, or in later languages types will collide.

Differential Revision: https://phab.enlightenment.org/D11741
---
 src/lib/elementary/efl_ui_win.eo | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/lib/elementary/efl_ui_win.eo b/src/lib/elementary/efl_ui_win.eo
index 602acf506b..54686b0bae 100644
--- a/src/lib/elementary/efl_ui_win.eo
+++ b/src/lib/elementary/efl_ui_win.eo
@@ -835,9 +835,9 @@ class Efl.Ui.Win extends Efl.Ui.Widget implements 
Efl.Canvas.Scene, Efl.Access.W
   Efl.Part.part_get;
}
constructors {
-  .win_name @optional;
+  .win_name;
   .win_type @optional;
-  .accel_preference @optional;
+  .accel_preference;
}
events {
   delete,request: void; [[Called when the window receives a delete 
request]]

-- 




[EGIT] [core/efl] master 03/04: eo-files: convert all Eina.Strbuf & Eina.Binbuf

2020-06-09 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit dade4fc2f7a75c1f54a4903c3bb9c4c5690f6fa9
Author: Marcel Hollerbach 
Date:   Sun Apr 19 15:14:12 2020 +0200

eo-files: convert all Eina.Strbuf & Eina.Binbuf

these structs should not be used, but rather the builtin types that
exist for it.

Reviewed-by: Felipe Magno de Almeida 
Differential Revision: https://phab.enlightenment.org/D11742
---
 src/lib/ecore/efl_io_copier.eo  | 4 ++--
 src/lib/efl/interfaces/efl_io_buffer.eo | 2 +-
 src/lib/eio/efl_io_manager.eo   | 4 ++--
 src/lib/eo/eina_types.eot   | 3 ---
 4 files changed, 5 insertions(+), 8 deletions(-)

diff --git a/src/lib/ecore/efl_io_copier.eo b/src/lib/ecore/efl_io_copier.eo
index e172a0c41d..291bdbc0ef 100644
--- a/src/lib/ecore/efl_io_copier.eo
+++ b/src/lib/ecore/efl_io_copier.eo
@@ -148,7 +148,7 @@ class @beta Efl.Io.Copier extends Efl.Loop_Consumer 
implements Efl.Io.Closer {
  destination then the "done" event is emitted.
 
  If the destination is not set (ie: $NULL) then data is kept
- in a internal @Eina.Binbuf, which can be stolen with
+ in a internal binbuf, which can be stolen with
  @.binbuf_steal once "data" or "line" events are
  emitted. It exists as a useful shortcut to easily drain
  readers and store all data in memory with no need to use an
@@ -313,7 +313,7 @@ class @beta Efl.Io.Copier extends Efl.Loop_Consumer 
implements Efl.Io.Closer {
  which case you should wait for "done", "data" or "line"
  events and then call it to retrieve and own the data.
]]
-   return: ptr(Eina.Binbuf) @move @no_unused; [[Binbuf]]
+   return: binbuf @move @no_unused; [[Binbuf]]
 }
 
 @property pending_size {
diff --git a/src/lib/efl/interfaces/efl_io_buffer.eo 
b/src/lib/efl/interfaces/efl_io_buffer.eo
index 518a799a3a..58e0c7ab22 100644
--- a/src/lib/efl/interfaces/efl_io_buffer.eo
+++ b/src/lib/efl/interfaces/efl_io_buffer.eo
@@ -133,7 +133,7 @@ class @beta Efl.Io.Buffer extends Efl.Object
   On failure, for example a read-only backing store was
   adopted with @.adopt_readonly, $NULL is returned.
 ]]
-return: ptr(Eina.Binbuf) @move @no_unused; [[Binbuf]]
+return: binbuf @move @no_unused; [[Binbuf]]
 }
 }
 
diff --git a/src/lib/eio/efl_io_manager.eo b/src/lib/eio/efl_io_manager.eo
index be58b047c0..6d147d95b4 100644
--- a/src/lib/eio/efl_io_manager.eo
+++ b/src/lib/eio/efl_io_manager.eo
@@ -80,13 +80,13 @@ class @beta Efl.Io.Manager extends Efl.Loop_Consumer
   [[Retrieves or sets information of a given extended attribute.]]
   set {
  values {
-data: ptr(Eina.Binbuf); [[Data to set as information]]
+data: binbuf; [[Data to set as information]]
 flags: Eina.Xattr.Flags; [[Extended attributes flags]]
  }
  return: future @move; [[Future for asynchronous set 
operation]]
   }
   get {
- return: future @move; [[Information]]
+ return: future @move; [[Information]]
   }
   keys {
  path: string; [[File path]]
diff --git a/src/lib/eo/eina_types.eot b/src/lib/eo/eina_types.eot
index 000a2567d9..cbb0981dc7 100644
--- a/src/lib/eo/eina_types.eot
+++ b/src/lib/eo/eina_types.eot
@@ -128,9 +128,6 @@ type @extern Eina.Error: int; [[Eina error type
   @since 1.22
 ]]
 
-struct @extern @beta @free(eina_binbuf_free) Eina.Binbuf; [[Eina binbuf data 
structure]]
-struct @extern @beta @free(eina_strbuf_free) Eina.Strbuf; [[Eina strbuf data 
structure]]
-
 struct @extern @beta Eina.Slice {
 [[A linear, read-only, memory segment]]
 len: size; [[Length of the memory segment]]

-- 




[EGIT] [core/efl] master 01/04: eo: make the parent a optional constructor

2020-06-09 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit ee092073a3c4ce79c582e4467fcce10e51f4696f
Author: Marcel Hollerbach 
Date:   Sun Apr 19 21:34:17 2020 +0200

eo: make the parent a optional constructor

this is needed in order to sanely bind parent calls to some objejcts,
but not all.

However, from the canvas structure up we *need* a parent, so we can
fetch the evas from it. So declare it there a none optional

Reviewed-by: Felipe Magno de Almeida 
Differential Revision: https://phab.enlightenment.org/D11734
---
 src/lib/eo/efl_object.eo | 3 +++
 src/lib/evas/canvas/efl_canvas_object.eo | 3 +++
 2 files changed, 6 insertions(+)

diff --git a/src/lib/eo/efl_object.eo b/src/lib/eo/efl_object.eo
index 1bf1ea5e58..34460473ef 100644
--- a/src/lib/eo/efl_object.eo
+++ b/src/lib/eo/efl_object.eo
@@ -432,6 +432,9 @@ abstract Efl.Object
 class.constructor;
 class.destructor;
}
+   constructors {
+.parent @optional;
+   }
events {
   del @hot: void; [[Object is being deleted. See @.destructor.]]
   invalidate @hot: void; [[Object is being invalidated and losing its 
parent. See @.invalidate.]]
diff --git a/src/lib/evas/canvas/efl_canvas_object.eo 
b/src/lib/evas/canvas/efl_canvas_object.eo
index 21dd3df8ab..64aad581ea 100644
--- a/src/lib/evas/canvas/efl_canvas_object.eo
+++ b/src/lib/evas/canvas/efl_canvas_object.eo
@@ -483,6 +483,9 @@ abstract Efl.Canvas.Object extends Efl.Loop_Consumer 
implements Efl.Gfx.Entity,
  }
   }
}
+   constructors {
+Efl.Object.parent;
+   }
implements {
   Efl.Object.constructor;
   Efl.Object.finalize;

-- 




[EGIT] [core/efl] master 01/02: evas: correctly declare filter_internal as public API

2020-06-05 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 7660da691c9f844148798db1bb35c6577b081443
Author: Marcel Hollerbach 
Date:   Thu Jun 4 10:03:44 2020 +0200

evas: correctly declare filter_internal as public API

I know this is internal. However it is public used in public .eo files.
Even if it is internal, and beta, we still need to expose the API in
order to have it correctly in the .so.

Reviewed-by: Stefan Schmidt 
Differential Revision: https://phab.enlightenment.org/D11932
---
 src/lib/evas/canvas/evas_filter_mixin.c | 6 ++
 src/lib/evas/include/evas_filter.h  | 3 ++-
 2 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/src/lib/evas/canvas/evas_filter_mixin.c 
b/src/lib/evas/canvas/evas_filter_mixin.c
index 00942628f1..11a3fe45b5 100644
--- a/src/lib/evas/canvas/evas_filter_mixin.c
+++ b/src/lib/evas/canvas/evas_filter_mixin.c
@@ -1,9 +1,7 @@
 #define EFL_CANVAS_FILTER_INTERNAL_PROTECTED
 
-#include "evas_common_private.h"
-#include "evas_private.h"
-#include "../../lib/efl/interfaces/efl_gfx_filter.eo.h"
-#include "efl_canvas_filter_internal.eo.h"
+#include 
+
 #include "evas_filter.h"
 
 #define MY_CLASS EFL_CANVAS_FILTER_INTERNAL_MIXIN
diff --git a/src/lib/evas/include/evas_filter.h 
b/src/lib/evas/include/evas_filter.h
index 5a22c2b6ae..dd779812f9 100644
--- a/src/lib/evas/include/evas_filter.h
+++ b/src/lib/evas/include/evas_filter.h
@@ -4,7 +4,6 @@
 #include "evas_common_private.h"
 #include "evas_private.h"
 
-#include "efl_canvas_filter_internal.eo.h"
 
 #ifdef EAPI
 # undef EAPI
@@ -32,6 +31,8 @@
 # endif
 #endif
 
+#include "efl_canvas_filter_internal.eo.h"
+
 #ifdef DEBUG
 # define FILTERS_DEBUG
 #endif

-- 




[EGIT] [core/efl] master 02/02: build: do not publish surface .eo files

2020-06-05 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 91a5312f70169da3c7d64cdfc8ebe12d04de5889
Author: Marcel Hollerbach 
Date:   Thu Jun 4 10:23:29 2020 +0200

build: do not publish surface .eo files

they are privat, they should never be installed.

Reviewed-by: Stefan Schmidt 
Differential Revision: https://phab.enlightenment.org/D11933
---
 src/lib/evas/canvas/meson.build | 23 +++
 1 file changed, 19 insertions(+), 4 deletions(-)

diff --git a/src/lib/evas/canvas/meson.build b/src/lib/evas/canvas/meson.build
index 7dc662e097..db23590ba3 100644
--- a/src/lib/evas/canvas/meson.build
+++ b/src/lib/evas/canvas/meson.build
@@ -5,10 +5,6 @@ pub_eo_files = [
   'efl_canvas_image.eo',
   'efl_canvas_snapshot.eo',
   'efl_canvas_proxy.eo',
-  'efl_canvas_surface.eo',
-  'efl_canvas_surface_tbm.eo',
-  'efl_canvas_surface_x11.eo',
-  'efl_canvas_surface_wayland.eo',
   'efl_canvas_filter_internal.eo',
   'efl_input_state.eo',
   'efl_input_interface.eo',
@@ -50,6 +46,25 @@ pub_eo_files = [
   'efl_canvas_object_animation.eo',
 ]
 
+priv_eo_files = [
+  'efl_canvas_surface.eo',
+  'efl_canvas_surface_tbm.eo',
+  'efl_canvas_surface_x11.eo',
+  'efl_canvas_surface_wayland.eo',
+]
+
+foreach eo_file : priv_eo_files
+  priv_eo_file_target += custom_target('eolian_gen_' + eo_file,
+input : eo_file,
+output : [eo_file + '.h'],
+depfile : eo_file + '.d',
+command : eolian_gen + [ '-I', meson.current_source_dir(), 
eolian_include_directories,
+   '-o', 'h:' + join_paths(meson.current_build_dir(), 
eo_file + '.h'),
+   '-o', 'c:' + join_paths(meson.current_build_dir(), 
eo_file + '.c'),
+   '-o', 'd:' + join_paths(meson.current_build_dir(), 
eo_file + '.d'),
+   '-gchd', '@INPUT@'])
+endforeach
+
 evas_canvas_eo_files = pub_eo_files
 
 pub_evas_eo_files += files(pub_eo_files)

-- 




[EGIT] [core/efl] master 01/01: build: move static out of none_static

2020-06-03 Thread Marcel Hollerbach
hermet pushed a commit to branch master.

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

commit e3ad84f07e60851ef4aa5890130f6a14bec50a8f
Author: Marcel Hollerbach 
Date:   Thu Jun 4 10:29:44 2020 +0900

build: move static out of none_static

Summary: these are static libs, they shall not be in the static list.

Reviewers: stefan_schmidt, jsuya

Reviewed By: stefan_schmidt, jsuya

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11923
---
 src/lib/evas/meson.build | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/lib/evas/meson.build b/src/lib/evas/meson.build
index 2196952d21..a6ac6b1117 100644
--- a/src/lib/evas/meson.build
+++ b/src/lib/evas/meson.build
@@ -50,8 +50,8 @@ evas_vg_savers_file = ['eet', 'svg']
 
 rel_evas_modules = join_paths('..', '..', '..', 'modules', 'evas', 'engines', 
'software_generic')
 evas_deps = [eo, eet, eina, efl, emile, ector, ecore, draw, buildsystem]
-evas_ext_deps = []
-evas_ext_none_static_deps = [buildsystem_simple, intl, m, draw_simple, 
valgrind, libunibreak, lua, vg_common]
+evas_ext_deps = [vg_common, draw_simple]
+evas_ext_none_static_deps = [buildsystem_simple, intl, m, valgrind, 
libunibreak, lua]
 
 pub_eo_file_target = []
 priv_eo_files = []

-- 




[EGIT] [core/efl] master 01/01: build: add eet to evas suite

2020-06-01 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 41c90a9ae3d48796884f65efbee995fae50bf7cd
Author: Marcel Hollerbach 
Date:   Tue Jun 2 08:28:27 2020 +0200

build: add eet to evas suite

evas suite seems to use internal headers, which includes eet.
---
 src/tests/evas/meson.build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/tests/evas/meson.build b/src/tests/evas/meson.build
index 765afd9960..bee736035f 100644
--- a/src/tests/evas/meson.build
+++ b/src/tests/evas/meson.build
@@ -25,7 +25,7 @@ evas_suite_src = [
 
 evas_suite = executable('evas_suite',
   evas_suite_src,
-  dependencies: [evas_bin, evas, ecore_evas, dl, check, 
evas_ext_none_static_deps], #external deps needed here since tests do include 
internal headers
+  dependencies: [evas_bin, evas, ecore_evas, dl, check, 
evas_ext_none_static_deps, eet], #external deps needed here since tests do 
include internal headers
   include_directories: include_directories(join_paths('..', '..', 'modules', 
'evas', 'engines', 'buffer')),
   c_args : [
   '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',

-- 




[EGIT] [core/efl] master 04/04: build: do not link test suite again against static libs

2020-06-01 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 6184bf670fd6ee738585ec215c9a0dc62176659c
Author: Marcel Hollerbach 
Date:   Mon Jun 1 22:32:53 2020 +0200

build: do not link test suite again against static libs

this might result in duplicated symbols.
---
 src/tests/evas/meson.build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/tests/evas/meson.build b/src/tests/evas/meson.build
index b76d4572b3..765afd9960 100644
--- a/src/tests/evas/meson.build
+++ b/src/tests/evas/meson.build
@@ -25,7 +25,7 @@ evas_suite_src = [
 
 evas_suite = executable('evas_suite',
   evas_suite_src,
-  dependencies: [evas_bin, evas, ecore_evas, dl, check, evas_ext_deps], 
#external deps needed here since tests do include internal headers
+  dependencies: [evas_bin, evas, ecore_evas, dl, check, 
evas_ext_none_static_deps], #external deps needed here since tests do include 
internal headers
   include_directories: include_directories(join_paths('..', '..', 'modules', 
'evas', 'engines', 'buffer')),
   c_args : [
   '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',

-- 




[EGIT] [core/efl] master 01/01: elm_gen****: free item_content map

2020-05-31 Thread Marcel Hollerbach
hermet pushed a commit to branch master.

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

commit 0123c8b6fc7c35466bcd5e49b6ef82a3707b8052
Author: Marcel Hollerbach 
Date:   Mon Jun 1 10:46:29 2020 +0900

elm_gen: free item_content map

Summary:
this should be freeed. Both can be freed in group_del after the items
are deleted.

fix T8732

Reviewers: Hermet

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8732

Differential Revision: https://phab.enlightenment.org/D11882
---
 src/lib/elementary/elm_gengrid.c | 2 ++
 src/lib/elementary/elm_genlist.c | 1 +
 2 files changed, 3 insertions(+)

diff --git a/src/lib/elementary/elm_gengrid.c b/src/lib/elementary/elm_gengrid.c
index 8446db8cab..d5c90277a5 100644
--- a/src/lib/elementary/elm_gengrid.c
+++ b/src/lib/elementary/elm_gengrid.c
@@ -4185,6 +4185,8 @@ _elm_gengrid_efl_canvas_group_group_del(Eo *obj, 
Elm_Gengrid_Data *sd)
_item_cache_zero(sd);
ecore_job_del(sd->calc_job);
 
+   eina_hash_free(sd->content_item_map);
+
efl_canvas_group_del(efl_super(obj, MY_CLASS));
 }
 
diff --git a/src/lib/elementary/elm_genlist.c b/src/lib/elementary/elm_genlist.c
index 6866b14965..d6125594fe 100644
--- a/src/lib/elementary/elm_genlist.c
+++ b/src/lib/elementary/elm_genlist.c
@@ -5920,6 +5920,7 @@ _elm_genlist_efl_canvas_group_group_del(Eo *obj, 
Elm_Genlist_Data *sd)
 
eina_stringshare_replace(&sd->decorate_it_type, NULL);
 
+   eina_hash_free(sd->content_item_map);
_elm_genlist_tree_effect_stop(sd);
 }
 

-- 




[EGIT] [core/efl] master 06/07: Introduce a test to verify efl-one only links to the correct libs

2020-05-28 Thread Marcel Hollerbach
stefan pushed a commit to branch master.

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

commit c5c28120f7c7a567b1a5540310535a4efc7b607f
Author: Marcel Hollerbach 
Date:   Thu May 28 11:46:45 2020 +0200

Introduce a test to verify efl-one only links to the correct libs

whenever this script finds any module linked to libe* (but not
libefl-one.so) it will error.

Differential Revision: https://phab.enlightenment.org/D11900
---
 scripts/test-efl-one.py | 52 +
 1 file changed, 52 insertions(+)

diff --git a/scripts/test-efl-one.py b/scripts/test-efl-one.py
new file mode 100755
index 00..ba3e34e63d
--- /dev/null
+++ b/scripts/test-efl-one.py
@@ -0,0 +1,52 @@
+#!/bin/env python3
+import os
+import subprocess
+import argparse
+import json
+from elftools.elf.elffile import ELFFile
+
+
+#meson changed behaviour from 0.49 to 0.50 so we need this:
+def meson_fetch_filename(filename_object):
+  if isinstance(filename_object, str):
+return filename_object
+  else:
+return filename_object[0]
+
+
+def needed_libs(filename):
+  print('Processing file:', filename)
+  result = []
+  with open(filename, 'rb') as f:
+elffile = ELFFile(f)
+for section in elffile.iter_sections():
+  if section.name.startswith('.dynamic'):
+for tag in section.iter_tags():
+  if tag.entry.d_tag == 'DT_NEEDED':
+result.append(getattr(tag, tag.entry.d_tag[3:].lower()))
+  return result
+
+
+parser = argparse.ArgumentParser(description='Check that when build with 
efl-one that no module nor efl-one lib does drag in libeina or the likes')
+parser.add_argument('builddir', metavar='build', help='the path where to find 
the meson build directory')
+
+G = parser.parse_args()
+
+#Run meson to fetch all examples
+meson_introspect = subprocess.Popen(["meson", "introspect", G.builddir, 
"--targets"],
+  stdout = subprocess.PIPE,
+  stderr = subprocess.PIPE,
+)
+meson_introspect.poll()
+build_targets = json.loads(meson_introspect.stdout.read())
+build_modules = [meson_fetch_filename(b["filename"]) for b in build_targets if 
"modules" in meson_fetch_filename(b["filename"]) and 
meson_fetch_filename(b["filename"]).endswith('.so')]
+
+for build_modules in build_modules:
+  libs = needed_libs(build_modules)
+  lib_es = [lib for lib in libs if lib.startswith("libe") and lib != 
"libefl-one.so.1"]
+  if len(lib_es) != 0:
+print("Error, {} requies lib {}".format(build_modules, lib_es[0]))
+exit(-1)
+
+print("Nothing wrong found!")
+

-- 




[EGIT] [core/efl] master 05/07: build: vg_common depends on evas internals

2020-05-28 Thread Marcel Hollerbach
stefan pushed a commit to branch master.

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

commit ee905100141b10127514cdcbe55407a297f2dd92
Author: Marcel Hollerbach 
Date:   Thu May 28 09:51:24 2020 +0200

build: vg_common depends on evas internals

this must depend on the eo file targets, as they must be generated.

Differential Revision: https://phab.enlightenment.org/D11899
---
 src/lib/evas/meson.build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/evas/meson.build b/src/lib/evas/meson.build
index d9f88afa42..3b49e2bea6 100644
--- a/src/lib/evas/meson.build
+++ b/src/lib/evas/meson.build
@@ -205,7 +205,7 @@ evas_pub_deps = [eina, ecore, ector, emile]
 
 if cpu_sse3 == true or cpu_neon == true and cpu_neon_intrinsics == false
   evas_opt = static_library('evas_opt',
-sources: evas_src_opt,
+sources: [evas_src_opt, pub_eo_file_target, priv_eo_file_target],
 include_directories:
   [ include_directories('../../..') ] +
   evas_include_directories +

-- 




[EGIT] [core/efl] master 04/07: build: split off static parts from external parts in evas

2020-05-28 Thread Marcel Hollerbach
stefan pushed a commit to branch master.

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

commit e1ea935daea28115ea610927035db00244386df5
Author: Marcel Hollerbach 
Date:   Thu May 28 08:27:37 2020 +0200

build: split off static parts from external parts in evas

this way we can use that list easily in the modules, and keep the list
for later module building.

Differential Revision: https://phab.enlightenment.org/D11897
---
 src/lib/evas/meson.build   | 23 +--
 src/modules/evas/engines/meson.build   |  2 +-
 src/modules/evas/image_loaders/meson.build |  2 +-
 src/modules/evas/image_savers/meson.build  |  2 +-
 4 files changed, 16 insertions(+), 13 deletions(-)

diff --git a/src/lib/evas/meson.build b/src/lib/evas/meson.build
index d923cee0df..d9f88afa42 100644
--- a/src/lib/evas/meson.build
+++ b/src/lib/evas/meson.build
@@ -49,7 +49,8 @@ evas_vg_savers_file = ['eet', 'svg']
 
 rel_evas_modules = join_paths('..', '..', '..', 'modules', 'evas', 'engines', 
'software_generic')
 evas_deps = [eo, eet, eina, efl, emile, ector, ecore, draw, buildsystem]
-evas_ext_deps = [buildsystem_simple, intl, m, draw_simple, valgrind, 
libunibreak, lua, vg_common]
+evas_ext_deps = []
+evas_ext_none_static_deps = [buildsystem_simple, intl, m, draw_simple, 
valgrind, libunibreak, lua, vg_common]
 
 pub_eo_file_target = []
 priv_eo_files = []
@@ -138,16 +139,16 @@ evas_src += files([
 
 evas_src_opt = [ ]
 
-evas_ext_deps += dependency('freetype2')
+evas_ext_none_static_deps += dependency('freetype2')
 
 if (get_option('fontconfig'))
config_h.set('HAVE_FONTCONFIG', '1')
-   evas_ext_deps += dependency('fontconfig')
+   evas_ext_none_static_deps += dependency('fontconfig')
 endif
 
 if (get_option('fribidi'))
config_h.set('HAVE_FRIBIDI', '1')
-   evas_ext_deps += dependency('fribidi')
+   evas_ext_none_static_deps += dependency('fribidi')
 endif
 
 if (get_option('pixman'))
@@ -155,16 +156,16 @@ if (get_option('pixman'))
foreach support : pixman_support
  config_h.set(support, '1')
endforeach
-   evas_ext_deps += dependency('pixman-1')
+   evas_ext_none_static_deps += dependency('pixman-1')
 endif
 
 if (get_option('hyphen'))
config_h.set('HAVE_HYPHEN', '1')
hyphen = dependency('hyphen', required : false)
if hyphen.found() == false
- evas_ext_deps += cc.find_library('hyphen')
+ evas_ext_none_static_deps += cc.find_library('hyphen')
endif
-   evas_ext_deps += hyphen
+   evas_ext_none_static_deps += hyphen
config_h.set_quoted('EVAS_DICTS_HYPHEN_DIR', 
get_option('dictionaries-hyphen-dir'))
 endif
 
@@ -180,12 +181,12 @@ subdir('vg')
 gl_deps = []
 
 if get_option('harfbuzz')
-  evas_ext_deps += dependency('harfbuzz')
+  evas_ext_none_static_deps += dependency('harfbuzz')
   config_h.set('HAVE_HARFBUZZ', '1')
 endif
 
 if get_option('wl')
-  evas_ext_deps += wayland_protocol
+  evas_ext_none_static_deps += wayland_protocol
 endif
 
 
@@ -210,7 +211,7 @@ if cpu_sse3 == true or cpu_neon == true and 
cpu_neon_intrinsics == false
   evas_include_directories +
   [vg_common_inc_dir],
 c_args: native_arch_opt_c_args,
-dependencies: [eina, eo, ector, emile, evas_deps, evas_ext_deps],
+dependencies: [eina, eo, ector, emile, evas_deps, 
evas_ext_none_static_deps],
   )
   evas_link += [ evas_opt ]
 endif
@@ -284,6 +285,8 @@ evas_ext_deps += declare_dependency(
   link_with: evas_link,
 )
 
+evas_ext_deps += evas_ext_none_static_deps
+
 evas_lib = library('evas',
 include_directories: evas_include_directories + [vg_common_inc_dir],
 sources : [evas_src, pub_eo_file_target, priv_eo_file_target],
diff --git a/src/modules/evas/engines/meson.build 
b/src/modules/evas/engines/meson.build
index 1efdbbddc8..c7e4255d9c 100644
--- a/src/modules/evas/engines/meson.build
+++ b/src/modules/evas/engines/meson.build
@@ -46,7 +46,7 @@ foreach engine_conf : engines
   if build
 engine_include_dir = []
 engine_src = []
-engine_deps = [eina, evas, evas_ext_deps]
+engine_deps = [eina, evas, evas_ext_none_static_deps, eet]
 engine_dep = declare_dependency(
   include_directories: include_directories(engine),
 )
diff --git a/src/modules/evas/image_loaders/meson.build 
b/src/modules/evas/image_loaders/meson.build
index 963245ecfe..11b11f79c2 100644
--- a/src/modules/evas/image_loaders/meson.build
+++ b/src/modules/evas/image_loaders/meson.build
@@ -11,7 +11,7 @@ foreach loader_inst : evas_image_loaders_file
   shared_module('s

[EGIT] [core/efl] master 02/07: build: add priv eo targets to efl_one_eo_deps

2020-05-28 Thread Marcel Hollerbach
stefan pushed a commit to branch master.

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

commit 9155e898ce1b5158ee4da23afc5e7fa56c958f97
Author: Marcel Hollerbach 
Date:   Wed May 27 18:20:11 2020 +0200

build: add priv eo targets to efl_one_eo_deps

this was forgotten / never spotted before. Thank you Quelrond for the
report!

Differential Revision: https://phab.enlightenment.org/D11895
---
 meson.build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meson.build b/meson.build
index 06213426ce..90eb3951bf 100644
--- a/meson.build
+++ b/meson.build
@@ -428,7 +428,7 @@ foreach package : subprojects
 )
 # dependency for all the .eo file targets
 efl_one_eo_deps += declare_dependency(
-  sources: pub_eo_file_target,
+  sources: pub_eo_file_target + priv_eo_file_target, #this here 
*needs* to be public and private, because our binaries and modules do depend on 
internal headers
 )
 efl_one_deps += external_deps
 efl_one_parts += tmp

-- 




[EGIT] [core/efl] master 07/07: build: add efl-canvasl-wl to efl-one

2020-05-28 Thread Marcel Hollerbach
stefan pushed a commit to branch master.

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

commit f2e0ff9d000aa25bcd69541219d551288ba61041
Author: Marcel Hollerbach 
Date:   Thu May 28 11:56:33 2020 +0200

build: add efl-canvasl-wl to efl-one

this is required by e, thank you Ross.

Differential Revision: https://phab.enlightenment.org/D11901
---
 meson.build   |  2 +-
 src/lib/efl_canvas_wl/meson.build | 14 --
 2 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/meson.build b/meson.build
index 90eb3951bf..287dbb71ae 100644
--- a/meson.build
+++ b/meson.build
@@ -337,7 +337,7 @@ subprojects = [
 ['ethumb'   ,[],  true,  true,  true, false, 
false, false,  true, ['eina', 'efl', 'eo'], []],
 ['ethumb_client',[], false,  true,  true, false, 
false,  true,  true, ['eina', 'efl', 'eo', 'ethumb'], []],
 ['elementary'   ,[],  true,  true,  true,  true,  
true,  true,  true, ['eina', 'efl', 'eo', 'eet', 'evas', 'ecore', 'ecore-evas', 
'ecore-file', 'ecore-input', 'edje', 'ethumb-client', 'emotion', 'ecore-imf', 
'ecore-con', 'eldbus', 'efreet', 'efreet-mime', 'efreet-trash', 'eio'], 
['atspi']],
-['efl_canvas_wl',['wl'], false,  true,  true, false, 
false, false, false, ['eina', 'efl', 'eo', 'evas', 'ecore'], []],
+['efl_canvas_wl',['wl'], false,  true,  true, false, 
false, false,  true, ['eina', 'efl', 'eo', 'evas', 'ecore'], []],
 ['elua' ,['elua']  , false,  true,  true, false,  
true, false, false, ['eina', 'luajit'], []],
 ['ecore_wayland',['wl-deprecated'] , false,  true, false, false, 
false, false, false, ['eina'], []],
 ['ecore_drm',['drm-deprecated'], false,  true, false, false, 
false, false, false, ['eina'], []],
diff --git a/src/lib/efl_canvas_wl/meson.build 
b/src/lib/efl_canvas_wl/meson.build
index 3b223ea174..5955da62eb 100644
--- a/src/lib/efl_canvas_wl/meson.build
+++ b/src/lib/efl_canvas_wl/meson.build
@@ -1,9 +1,10 @@
-efl_canvas_wl_deps = [ecore_wl2, ecore_input, ecore, ecore_evas, evas, emile, 
eina, wayland_protocol ]
-efl_canvas_wl_pub_deps = [eo, efl, evas, dependency('wayland-server', version 
: '>= 1.11.0'), dependency('xkbcommon', version : '>= 0.6.0')]
+efl_canvas_wl_deps = [ecore_wl2, ecore_input, ecore, ecore_evas, evas, emile, 
eina]
+efl_canvas_wl_pub_deps = [eo, efl, evas]
+efl_canvas_wl_ext_deps = [dependency('wayland-server', version : '>= 1.11.0'), 
dependency('xkbcommon', version : '>= 0.6.0'), wayland_protocol]
 
 if (get_option('x11'))
   efl_canvas_wl_deps += [ecore_x]
-  efl_canvas_wl_pub_deps += [dependency('xkbcommon-x11')]
+  efl_canvas_wl_ext_deps += [dependency('xkbcommon-x11')]
 endif
 
 pub_eo_files = [
@@ -25,16 +26,17 @@ foreach eo_file : pub_eo_files
'-gchd', '@INPUT@'])
 endforeach
 
-efl_canvas_wl_src = [
+efl_canvas_wl_src = files([
  'dmabuf.c',
  'efl_canvas_wl.c',
-]
+])
+
 efl_canvas_wl_header_src = ['Efl_Canvas_Wl.h']
 eolian_include_directories += ['-I', meson.current_source_dir()]
 
 efl_canvas_wl_lib = library('efl_canvas_wl',
 efl_canvas_wl_src, pub_eo_file_target,
-dependencies: [m, dl] + efl_canvas_wl_deps + efl_canvas_wl_pub_deps,
+dependencies: efl_canvas_wl_deps + efl_canvas_wl_pub_deps + 
efl_canvas_wl_ext_deps,
 include_directories : config_dir + 
[include_directories(join_paths('..','..'))],
 install: true,
 c_args : package_c_args,

-- 




[EGIT] [core/efl] master 03/07: build: make eina drag in the -lm flag

2020-05-28 Thread Marcel Hollerbach
stefan pushed a commit to branch master.

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

commit f6d20e1f967a1a0ccd88d15af565a313a3c870f6
Author: Marcel Hollerbach 
Date:   Wed May 27 18:21:37 2020 +0200

build: make eina drag in the -lm flag

eina uses math.h we need to drag in this flag everywhere.

Differential Revision: https://phab.enlightenment.org/D11896
---
 src/lib/eina/meson.build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/eina/meson.build b/src/lib/eina/meson.build
index 15d1742633..7aa1afa7ba 100644
--- a/src/lib/eina/meson.build
+++ b/src/lib/eina/meson.build
@@ -1,5 +1,5 @@
 eina_deps = [dl]
-eina_pub_deps = [thread_dep]
+eina_pub_deps = [thread_dep, m]
 eina_pc_deps = [m, rt, dl, thread_dep] #special case, this array is taken to 
drag in external deps to efl-one
 eina_ext_deps = eina_pc_deps
 

-- 




[EGIT] [core/efl] master 01/07: build: rely on automatic pkg file generation for eina

2020-05-28 Thread Marcel Hollerbach
stefan pushed a commit to branch master.

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

commit bb4d1165340edcd90c5e1a652d7eca21baadfb9c
Author: Marcel Hollerbach 
Date:   Wed May 27 14:37:28 2020 +0200

build: rely on automatic pkg file generation for eina

this automatically brings it to efl-one, which makes this easier.

Differential Revision: https://phab.enlightenment.org/D11892
---
 src/lib/eina/meson.build | 11 +++
 1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/src/lib/eina/meson.build b/src/lib/eina/meson.build
index bdb69000b9..15d1742633 100644
--- a/src/lib/eina/meson.build
+++ b/src/lib/eina/meson.build
@@ -388,11 +388,6 @@ install_headers(public_sub_headers,
   install_dir : join_paths(dir_package_include, 'eina')
 )
 
-automatic_pkgfile = false
-
-pkgconfig.generate(eina_lib,
-  name : 'eina',
-  subdirs : ['eina-'+version_major, 'efl-'+version_major, 
join_paths('eina-'+version_major, 'eina')],
-  version : version_major + '.' + version_minor + '.' + version_micro,
-  libraries : eina_pub_deps + eina_pc_deps,
-)
+package_header_subdirs += 'eina'
+#special case here to support -lm -ldl -threads
+eina_pub_deps += eina_pc_deps

-- 




[EGIT] [core/efl] master 01/01: build: efl-one track all subdirs correctly

2020-05-27 Thread Marcel Hollerbach
stefan pushed a commit to branch master.

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

commit 7da3eb84ab7147b023f7b2dfab62fa8f18fe073c
Author: Marcel Hollerbach 
Date:   Wed May 27 14:38:32 2020 +0200

build: efl-one track all subdirs correctly

this was missed before, so the subdirectories have not been correctly
added. With this you can now simply build with efl-one with including


Reviewed-by: Stefan Schmidt 
Differential Revision: https://phab.enlightenment.org/D11893
---
 meson.build | 6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/meson.build b/meson.build
index 5f6c339907..06213426ce 100644
--- a/meson.build
+++ b/meson.build
@@ -361,6 +361,7 @@ efl_one_parts = []
 efl_one_deps = []
 efl_one_eo_deps = []
 efl_one_include_dirs = []
+efl_one_sub_dirs = []
 tmp_empty = declare_dependency()
 
 foreach package : subprojects
@@ -462,7 +463,9 @@ foreach package : subprojects
   foreach subdir : package_header_subdirs
 tmp_package_subdirs += join_paths(package_version_name, subdir)
   endforeach
-
+  if (package[8] and get_option('efl-one'))
+efl_one_sub_dirs += [package_version_name] + tmp_package_subdirs
+  endif
   pkgconfig.generate(tmp_lib,
 name : '-'.join(package_name.split('_')),
 subdirs : [package_version_name] + tmp_package_subdirs,
@@ -503,6 +506,7 @@ if (get_option('efl-one'))
 
   pkgconfig.generate(
 name : 'efl-one',
+subdirs : efl_one_sub_dirs,
 description: 'Configureation for efl in one big fat .so',
 libraries : [efl_one] + eina_pc_deps, #eina is a special case here which 
drags in m dl & threads
   )

-- 




[EGIT] [core/efl] master 01/01: build: add correct flags to efl-one.pc

2020-05-27 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 0b08318117540f45e87874f000d2aa5eb90bcbee
Author: Marcel Hollerbach 
Date:   Wed May 27 13:09:36 2020 +0200

build: add correct flags to efl-one.pc

they are required, and normally dragged in via eina.
---
 meson.build  | 2 +-
 src/lib/eina/meson.build | 5 +++--
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/meson.build b/meson.build
index 1533d984f7..5f6c339907 100644
--- a/meson.build
+++ b/meson.build
@@ -504,7 +504,7 @@ if (get_option('efl-one'))
   pkgconfig.generate(
 name : 'efl-one',
 description: 'Configureation for efl in one big fat .so',
-libraries : efl_one,
+libraries : [efl_one] + eina_pc_deps, #eina is a special case here which 
drags in m dl & threads
   )
 
   #overwrite all the dependencies of subprojects with efl-one, in order to 
link the modules and binaries to the correct .so
diff --git a/src/lib/eina/meson.build b/src/lib/eina/meson.build
index 8df3660f31..bdb69000b9 100644
--- a/src/lib/eina/meson.build
+++ b/src/lib/eina/meson.build
@@ -1,6 +1,7 @@
 eina_deps = [dl]
 eina_pub_deps = [thread_dep]
-eina_ext_deps = [m, rt, dl, thread_dep]
+eina_pc_deps = [m, rt, dl, thread_dep] #special case, this array is taken to 
drag in external deps to efl-one
+eina_ext_deps = eina_pc_deps
 
 if sys_windows == true
eina_pub_deps += [evil]
@@ -393,5 +394,5 @@ pkgconfig.generate(eina_lib,
   name : 'eina',
   subdirs : ['eina-'+version_major, 'efl-'+version_major, 
join_paths('eina-'+version_major, 'eina')],
   version : version_major + '.' + version_minor + '.' + version_micro,
-  libraries : eina_pub_deps,
+  libraries : eina_pub_deps + eina_pc_deps,
 )

-- 




[EGIT] [core/efl] master 02/04: refactor build

2020-05-27 Thread Marcel Hollerbach
stefan pushed a commit to branch master.

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

commit 8e3606698eb439eecd7302a885504365aca7e564
Author: Marcel Hollerbach 
Date:   Sun May 10 14:41:57 2020 +0200

refactor build

libraries are split into deps, external deps, and pub deps.
Evas engines are refactored to use the predefined engine deps.

this is preparation work for efl-one.

Reviewed-by: Stefan Schmidt 
Differential Revision: https://phab.enlightenment.org/D11806
---
 src/bin/ecore_buffer/meson.build   |  2 +-
 src/bin/edje/meson.build   |  3 +-
 src/bin/elementary/meson.build | 16 
 src/bin/exactness/meson.build  |  4 +-
 src/examples/elementary/meson.build|  2 +-
 src/lib/ecore/meson.build  | 17 +
 src/lib/ecore_audio/meson.build| 23 ++--
 src/lib/ecore_buffer/meson.build   |  9 +++--
 src/lib/ecore_cocoa/meson.build| 14 +--
 src/lib/ecore_con/meson.build  | 28 +++---
 src/lib/ecore_drm2/meson.build |  9 +++--
 src/lib/ecore_evas/meson.build | 15 +---
 src/lib/ecore_fb/meson.build   |  9 +++--
 src/lib/ecore_file/meson.build | 13 ---
 src/lib/ecore_imf/meson.build  |  9 +++--
 src/lib/ecore_imf_evas/meson.build |  7 ++--
 src/lib/ecore_input/meson.build|  8 ++--
 src/lib/ecore_input_evas/meson.build   |  7 ++--
 src/lib/ecore_ipc/meson.build  |  8 ++--
 src/lib/ecore_sdl/meson.build  |  9 +++--
 src/lib/ecore_win32/meson.build| 16 +---
 src/lib/ecore_wl2/meson.build  | 18 +
 src/lib/ecore_x/meson.build| 19 +-
 src/lib/ector/meson.build  | 16 +---
 src/lib/edje/meson.build   | 13 ---
 src/lib/eet/meson.build|  9 +++--
 src/lib/eeze/meson.build   | 21 ++-
 src/lib/efl/meson.build|  5 ++-
 src/lib/efl_canvas_wl/meson.build  |  2 +-
 src/lib/efreet/meson.build | 13 ---
 src/lib/eina/meson.build   | 19 ++
 src/lib/eio/meson.build| 15 
 src/lib/eldbus/meson.build |  9 +++--
 src/lib/elementary/meson.build | 17 +
 src/lib/elput/meson.build  | 13 ---
 src/lib/embryo/meson.build | 12 +++---
 src/lib/emile/meson.build  | 13 ---
 src/lib/emotion/meson.build|  7 ++--
 src/lib/eo/meson.build |  9 +++--
 src/lib/ephysics/meson.build   | 10 ++---
 src/lib/ethumb/meson.build |  7 ++--
 src/lib/ethumb_client/meson.build  |  7 ++--
 src/lib/evas/meson.build   | 43 --
 src/lib/evas/software_generic/meson.build  |  2 +
 src/lib/evil/meson.build   | 11 --
 src/modules/ecore_evas/engines/wayland/meson.build |  2 +-
 src/modules/ecore_imf/meson.build  |  1 -
 src/modules/evas/engines/buffer/meson.build|  6 +--
 src/modules/evas/engines/drm/meson.build   |  4 +-
 src/modules/evas/engines/fb/meson.build|  4 +-
 src/modules/evas/engines/gl_cocoa/meson.build  |  4 +-
 src/modules/evas/engines/gl_drm/meson.build|  4 +-
 src/modules/evas/engines/gl_generic/meson.build|  4 +-
 src/modules/evas/engines/gl_x11/meson.build|  4 +-
 src/modules/evas/engines/meson.build   |  2 +-
 .../evas/engines/software_ddraw/meson.build|  4 +-
 src/modules/evas/engines/software_gdi/meson.build  |  4 +-
 src/modules/evas/engines/software_x11/meson.build  |  4 +-
 src/modules/evas/engines/wayland_egl/meson.build   |  4 +-
 src/modules/evas/engines/wayland_shm/meson.build   |  4 +-
 src/modules/evas/image_loaders/meson.build |  2 +-
 src/modules/evas/image_savers/meson.build  |  2 +-
 src/static_libs/buildsystem/meson.build|  4 ++
 src/static_libs/draw/meson.build   | 11 ++
 src/static_libs/rg_etc/meson.build |  4 ++
 src/tests/elementary/meson.build   |  4 +-
 src/tests/evas/meson.build |  2 +-
 src/wayland_protocol/meson.build   |  5 +++
 68 files changed, 360 insertions(+), 267 deletions(-)

diff --git a/src/bin/ecore_buffer/meson.build b/src/bin/ecore_buffer/meson.build
index 5e1a9d9381

[EGIT] [core/efl] master 04/04: build: stop buildsystem from beeing a public dependency

2020-05-27 Thread Marcel Hollerbach
stefan pushed a commit to branch master.

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

commit f5d3a2bf282b8c871b69a03f5b7f754a936e9c07
Author: Marcel Hollerbach 
Date:   Tue May 26 10:53:45 2020 +0200

build: stop buildsystem from beeing a public dependency

this is wrong, each library should declare it on its own

Reviewed-by: Stefan Schmidt 
Differential Revision: https://phab.enlightenment.org/D11883
---
 src/lib/elementary/meson.build | 4 ++--
 src/lib/emotion/meson.build| 4 ++--
 src/lib/ethumb/meson.build | 4 ++--
 src/lib/evas/meson.build   | 2 +-
 4 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/lib/elementary/meson.build b/src/lib/elementary/meson.build
index f6674fbdc3..06e07e3a71 100644
--- a/src/lib/elementary/meson.build
+++ b/src/lib/elementary/meson.build
@@ -949,10 +949,10 @@ elementary_src = files([
   'efl_ui_spotlight_animation_manager.c',
 ])
 
-elementary_deps = [emile, eo, efl, edje, ethumb, ethumb_client, emotion, 
ecore_imf, ecore_con, eldbus, efreet, eio]
+elementary_deps = [emile, eo, efl, edje, ethumb, ethumb_client, emotion, 
ecore_imf, ecore_con, eldbus, efreet, eio, buildsystem]
 elementary_pub_deps = [eina, eet, evas, ecore, ecore_evas, ecore_file, 
ecore_input, ecore_imf, ecore_con,
edje, eldbus, efreet, ethumb_client, efl]
-elementary_ext_deps = [atspi, dl, intl]
+elementary_ext_deps = [atspi, dl, intl, buildsystem_simple]
 elm_options = configuration_data()
 
 config_h.set_quoted('ELM_TOP_BUILD_DIR', meson.build_root())
diff --git a/src/lib/emotion/meson.build b/src/lib/emotion/meson.build
index b289fb221a..8404fab3fd 100644
--- a/src/lib/emotion/meson.build
+++ b/src/lib/emotion/meson.build
@@ -37,9 +37,9 @@ emotion_src = files([
   'emotion_main.c'
 ])
 
-emotion_deps = [ecore, eet, evas, eio, emile]
+emotion_deps = [ecore, eet, evas, eio, emile, buildsystem]
 emotion_pub_deps = [eina, eo, efl]
-emotion_ext_deps = []
+emotion_ext_deps = [buildsystem_simple]
 
 if get_option('eeze') == true
   emotion_deps += [eeze]
diff --git a/src/lib/ethumb/meson.build b/src/lib/ethumb/meson.build
index fbe1436e4b..9e39a7ab77 100644
--- a/src/lib/ethumb/meson.build
+++ b/src/lib/ethumb/meson.build
@@ -9,9 +9,9 @@ ethumb_src = files([
   'md5.c',
 ])
 
-ethumb_deps = [eet, evas, ecore, ecore_evas, ecore_file, ecore_imf, edje, 
emile]
+ethumb_deps = [eet, evas, ecore, ecore_evas, ecore_file, ecore_imf, edje, 
emile, buildsystem]
 ethumb_pub_deps = [eina, eo, efl]
-ethumb_ext_deps = [m]
+ethumb_ext_deps = [m, buildsystem_simple]
 
 ethumb_lib = library('ethumb',
 ethumb_src,
diff --git a/src/lib/evas/meson.build b/src/lib/evas/meson.build
index 0ff0535e4f..d923cee0df 100644
--- a/src/lib/evas/meson.build
+++ b/src/lib/evas/meson.build
@@ -200,7 +200,7 @@ if get_option('opengl') != 'none'
 endif
 
 evas_link = [ ]
-evas_pub_deps = [eina, ecore, ector, emile, buildsystem] #FIXME buildsystem 
here is wrong, but needed in this commit
+evas_pub_deps = [eina, ecore, ector, emile]
 
 if cpu_sse3 == true or cpu_neon == true and cpu_neon_intrinsics == false
   evas_opt = static_library('evas_opt',

-- 




[EGIT] [core/efl] master 03/04: build: time for efl-one

2020-05-27 Thread Marcel Hollerbach
stefan pushed a commit to branch master.

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

commit 92b049b4d7e70666b790ba78480da8f19c795b1c
Author: Marcel Hollerbach 
Date:   Sun May 10 14:43:28 2020 +0200

build: time for efl-one

this is building parts of efl into a single .so and links all modules
and binaries to it.

The libraries themselfs are build as .a's which are linked together as
.so's. Which is required as every subproject has its little custom
c_flags, which are somtimes conflicting.

After the final .so is then built, all the split up libraries are
replaced with the efl-one. After that the modules and binaries are built
correctly with the correct link on the efl-one parts.

Reviewed-by: Stefan Schmidt 
Differential Revision: https://phab.enlightenment.org/D11808
---
 meson.build| 129 +++--
 meson_options.txt  |   6 ++
 src/lib/ecore_evas/meson.build |   3 +
 src/lib/evas/meson.build   |   2 +
 4 files changed, 98 insertions(+), 42 deletions(-)

diff --git a/meson.build b/meson.build
index 330694951c..1533d984f7 100644
--- a/meson.build
+++ b/meson.build
@@ -295,48 +295,48 @@ endif
 
 subprojects = [
 # name  |   option  | mod  | lib  | bin  | bench | 
tests | examples | true if build in efl-one | pkg-config options | name of 
static libs
-['evil' ,[], false,  true, false, false, 
false, false, false, [], []],
-['eina' ,[], false,  true,  true,  true,  
true,  true, false,  [], []],
+['evil' ,[], false,  true, false, false, 
false, false,  true, [], []],
+['eina' ,[], false,  true,  true,  true,  
true,  true,  true, [], []],
 ['eolian'   ,[], false,  true,  true, false,  
true, false, false, ['eina'], []],
-['eo'   ,[], false,  true, false,  true,  
true, false, false, ['eina'], []],
-['efl'  ,[], false,  true, false, false,  
true, false, false, ['eo'], []],
-['emile',[], false,  true, false, false,  
true,  true, false, ['eina', 'efl'], ['lz4', 'rg_etc']],
-['eet'  ,[], false,  true,  true, false,  
true,  true, false, ['eina', 'emile', 'efl'], []],
-['ecore',[], false,  true, false, false, 
false, false, false, ['eina', 'eo', 'efl'], ['buildsystem']],
-['eldbus'   ,[], false,  true,  true, false,  
true,  true, false, ['eina', 'eo', 'efl'], []],
-['ecore',[],  true, false, false, false,  
true,  true, false, ['eina', 'eo', 'efl'], []], #ecores modules depend on eldbus
-['ecore_audio'  ,['audio'] , false,  true, false, false, 
false, false, false, ['eina', 'eo'], []],
+['eo'   ,[], false,  true, false,  true,  
true, false,  true, ['eina'], []],
+['efl'  ,[], false,  true, false, false,  
true, false,  true, ['eo'], []],
+['emile',[], false,  true, false, false,  
true,  true,  true, ['eina', 'efl'], ['lz4', 'rg_etc']],
+['eet'  ,[], false,  true,  true, false,  
true,  true,  true, ['eina', 'emile', 'efl'], []],
+['ecore',[], false,  true, false, false, 
false, false,  true, ['eina', 'eo', 'efl'], ['buildsystem']],
+['eldbus'   ,[], false,  true,  true, false,  
true,  true,  true, ['eina', 'eo', 'efl'], []],
+['ecore',[],  true, false, false, false,  
true,  true,  true, ['eina', 'eo', 'efl'], []], #ecores modules depend on eldbus
+['ecore_audio'  ,['audio'] , false,  true, false, false, 
false, false,  true, ['eina', 'eo'], []],
 ['ecore_avahi'  ,['avahi'] , false,  true, false, false, 
false,  true, false, ['eina', 'ecore'], []],
-['ecore_con',[], false,  true,  true, false,  
true, false, false, ['eina',

[EGIT] [core/efl] master 01/04: build: split up building of libs, bins, modules, benchmark

2020-05-27 Thread Marcel Hollerbach
stefan pushed a commit to branch master.

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

commit 2d105a7e597a38a31ea88fefc02ac84b8b6e5543
Author: Marcel Hollerbach 
Date:   Thu May 7 19:05:54 2020 +0200

build: split up building of libs, bins, modules, benchmark

this is needed as a preparation for more build refactoring. Overall goal
to build efl in a single .so.

What this commit results in is that *every* lib gets build first, then
the modules and binaries of all subprojects. This way of building is
needed in order to replace the split up libraries with the efl-one one
later.

Additionally, the infrastructure is added to set flags on the libraries
that should be build together.

Reviewed-by: Stefan Schmidt 
Differential Revision: https://phab.enlightenment.org/D11805
---
 meson.build | 173 ++--
 1 file changed, 109 insertions(+), 64 deletions(-)

diff --git a/meson.build b/meson.build
index b0129681cf..330694951c 100644
--- a/meson.build
+++ b/meson.build
@@ -294,54 +294,54 @@ if sys_osx == true and get_option('lua-interpreter') == 
'luajit'
 endif
 
 subprojects = [
-# name  |   option  | mod  | lib  | bin  | bench | 
tests | examples | pkg-config options | name of static libs
-['evil' ,[], false,  true, false, false, 
false, false, [], []],
-['eina' ,[], false,  true,  true,  true,  
true,  true, [], []],
-['eolian'   ,[], false,  true,  true, false,  
true, false, ['eina'], []],
-['eo'   ,[], false,  true, false,  true,  
true, false, ['eina'], []],
-['efl'  ,[], false,  true, false, false,  
true, false, ['eo'], []],
-['emile',[], false,  true, false, false,  
true,  true, ['eina', 'efl'], ['lz4', 'rg_etc']],
-['eet'  ,[], false,  true,  true, false,  
true,  true, ['eina', 'emile', 'efl'], []],
-['ecore',[], false,  true, false, false, 
false, false, ['eina', 'eo', 'efl'], ['buildsystem']],
-['eldbus'   ,[], false,  true,  true, false,  
true,  true, ['eina', 'eo', 'efl'], []],
-['ecore',[],  true, false, false, false,  
true,  true, ['eina', 'eo', 'efl'], []], #ecores modules depend on eldbus
-['ecore_audio'  ,['audio'] , false,  true, false, false, 
false, false, ['eina', 'eo'], []],
-['ecore_avahi'  ,['avahi'] , false,  true, false, false, 
false,  true, ['eina', 'ecore'], []],
-['ecore_con',[], false,  true,  true, false,  
true, false, ['eina', 'eo', 'efl', 'ecore'], ['http-parser']],
-['ecore_file'   ,[], false,  true, false, false, 
false, false, ['eina'], []],
-['eeze' ,['eeze']  ,  true,  true,  true, false,  
true, false, ['eina', 'efl'], []],
-['ecore_input'  ,[], false,  true, false, false, 
false, false, ['eina', 'eo'], []],
-['ecore_x'  ,['x11']   , false,  true, false, false, 
false, false, ['eina', 'efl'], []],
-['ecore_fb' ,['fb'], false,  true, false, false, 
false, false, ['eina'], []],
-['ecore_wl2',['wl'],  true,  true, false, false, true, 
false, ['eina'], ['libdrm']],
-['ecore_sdl',['sdl']   , false,  true, false, false, 
false, false, ['eina'], []],
-['ecore_win32'  ,[], false,  true, false, false, 
false, false, ['eina'], []],
-['ecore_ipc',[], false,  true, false, false, 
false, false, ['eina'], []],
-['ecore_buffer' ,['buffer'],  true,  true,  true, false, 
false, false, ['eina'], []],
-['ector',[], false,  true, false, false,  
true, false, ['eina', 'efl'], ['draw', 'triangulator', 'freetype']],
-['elput',['drm']   , fa

[EGIT] [core/efl] master 01/01: ecore_main_timechanges: fix include

2020-05-26 Thread Marcel Hollerbach
stefan pushed a commit to branch master.

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

commit a7a020dff53037746b5e042236d96b1bc2f9ef44
Author: Marcel Hollerbach 
Date:   Mon May 25 11:24:28 2020 +0200

ecore_main_timechanges: fix include

we should not prefix this with the full path.

Reviewed-by: Stefan Schmidt 
Reviewed-by: Vincent Torri 
Differential Revision: https://phab.enlightenment.org/D11881
---
 src/lib/ecore/ecore_main_timechanges.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/ecore/ecore_main_timechanges.c 
b/src/lib/ecore/ecore_main_timechanges.c
index cb3daf1fc1..c2b50ec8e9 100644
--- a/src/lib/ecore/ecore_main_timechanges.c
+++ b/src/lib/ecore/ecore_main_timechanges.c
@@ -14,7 +14,7 @@
 
 #include "Ecore.h"
 #include "ecore_private.h"
-#include "lib/ecore/ecore_main_common.h"
+#include "ecore_main_common.h"
 
 #ifdef HAVE_SYS_TIMERFD_H
 

-- 




[EGIT] [core/efl] master 06/06: Merge efreet_mime efreet_trash into efreet

2020-05-26 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 3ec1101652a9fedbfa40a29bcfe4842b1c86051e
Author: Marcel Hollerbach 
Date:   Sun May 10 12:47:58 2020 +0200

Merge efreet_mime efreet_trash into efreet

efreet_mime and efreet_trash are now included in libefreet.so. There are
compatible libs for libefreet_mime.so libefreet_trash.so, which simple
drag in libefreet.so. .pc files also are in place for compatibility.

efreet_init & shutdown now initializes and shutdowns trash and mime.
The old init functions now simply call efreet_init, efreet_init will
then init the trash or mime libs.

Reviewed-by: Stefan Schmidt 
Differential Revision: https://phab.enlightenment.org/D11807
---
 src/lib/efreet/Efreet.h |  3 +++
 src/lib/efreet/efreet.c | 12 +++
 src/lib/efreet/efreet_mime.c| 40 +++
 src/lib/efreet/efreet_private.h |  8 ++-
 src/lib/efreet/efreet_trash.c   | 26 +++
 src/lib/efreet/meson.build  | 47 +
 src/lib/eio/meson.build |  2 +-
 src/lib/elementary/meson.build  |  4 ++--
 src/tests/efreet/meson.build|  2 +-
 9 files changed, 79 insertions(+), 65 deletions(-)

diff --git a/src/lib/efreet/Efreet.h b/src/lib/efreet/Efreet.h
index 51fbfebf6f..af25e033fa 100644
--- a/src/lib/efreet/Efreet.h
+++ b/src/lib/efreet/Efreet.h
@@ -167,6 +167,9 @@ EAPI void efreet_cache_disable(void);
  */
 EAPI void efreet_cache_enable(void);
 
+#include 
+#include 
+
 #undef EAPI
 #define EAPI
 
diff --git a/src/lib/efreet/efreet.c b/src/lib/efreet/efreet.c
index 091899f2b2..4c20b12bc1 100644
--- a/src/lib/efreet/efreet.c
+++ b/src/lib/efreet/efreet.c
@@ -94,6 +94,12 @@ efreet_init(void)
if (!efreet_util_init())
  goto shutdown_efreet_menu;
 
+   if (!efreet_internal_mime_init())
+ goto shutdown_efreet_mime;
+
+   if (!efreet_internal_trash_init())
+ goto shutdown_efreet_trash;
+
 #ifdef ENABLE_NLS
bindtextdomain(PACKAGE, LOCALE_DIR);
bind_textdomain_codeset(PACKAGE, "UTF-8");
@@ -101,6 +107,10 @@ efreet_init(void)
 
return _efreet_init_count;
 
+shutdown_efreet_trash:
+   efreet_internal_trash_shutdown();
+shutdown_efreet_mime:
+   efreet_internal_mime_shutdown();
 shutdown_efreet_menu:
efreet_menu_shutdown();
 shutdown_efreet_desktop:
@@ -146,6 +156,8 @@ efreet_shutdown(void)
efreet_xml_shutdown();
efreet_cache_shutdown();
efreet_base_shutdown();
+   efreet_internal_mime_shutdown();
+   efreet_internal_trash_shutdown();
 
IF_RELEASE(efreet_lang);
IF_RELEASE(efreet_lang_country);
diff --git a/src/lib/efreet/efreet_mime.c b/src/lib/efreet/efreet_mime.c
index 9eba8c8db9..d94894ff71 100644
--- a/src/lib/efreet/efreet_mime.c
+++ b/src/lib/efreet/efreet_mime.c
@@ -348,21 +348,12 @@ _efreet_mimedb_glob_mime_get(unsigned int num)
 
 /** - **/
 
-EAPI int
-efreet_mime_init(void)
+int
+efreet_internal_mime_init(void)
 {
if (++_efreet_mime_init_count != 1)
  return _efreet_mime_init_count;
 
-   if (!ecore_init())
- return --_efreet_mime_init_count;
-
-   if (!ecore_file_init())
- goto shutdown_ecore;
-
-   if (!efreet_init())
- goto shutdown_ecore_file;
-
_efreet_mime_log_dom = eina_log_domain_register
   ("efreet_mime", EFREET_DEFAULT_LOG_COLOR);
 
@@ -388,17 +379,11 @@ unregister_log_domain:
eina_log_domain_unregister(_efreet_mime_log_dom);
_efreet_mime_log_dom = -1;
 shutdown_efreet:
-   efreet_shutdown();
-shutdown_ecore_file:
-   ecore_file_shutdown();
-shutdown_ecore:
-   ecore_shutdown();
-
return --_efreet_mime_init_count;
-}
+ }
 
-EAPI int
-efreet_mime_shutdown(void)
+int
+efreet_internal_mime_shutdown(void)
 {
if (_efreet_mime_init_count == 0)
  {
@@ -428,13 +413,22 @@ efreet_mime_shutdown(void)
IF_FREE_HASH(mime_icons);
eina_log_domain_unregister(_efreet_mime_log_dom);
_efreet_mime_log_dom = -1;
-   efreet_shutdown();
-   ecore_file_shutdown();
-   ecore_shutdown();
 
return _efreet_mime_init_count;
 }
 
+EAPI int
+efreet_mime_init(void)
+{
+   return efreet_init();
+}
+
+EAPI int
+efreet_mime_shutdown(void)
+{
+   return efreet_shutdown();
+}
+
 EAPI const char *
 efreet_mime_type_get(const char *file)
 {
diff --git a/src/lib/efreet/efreet_private.h b/src/lib/efreet/efreet_private.h
index eb42c28f74..77a74dfca1 100644
--- a/src/lib/efreet/efreet_private.h
+++ b/src/lib/efreet/efreet_private.h
@@ -114,7 +114,7 @@
 
 /**
  * macros that are used all around the code for message processing
- * four macros are defined ERR, WRN, DGB, INF. 
+ * four macros are defined ERR, WRN, DGB, INF.
  * EFREET_MODULE_LOG_DOM should be defined individually for each module
  */
 #ifdef CRI
@@ -214,6 +214,12 @@ void efreet_desktop_shutdown(void);
 int efreet_util_init(void);
 int efreet_uti

[EGIT] [core/enlightenment] enlightenment-0.24 03/05: e_ckpasswd_main: fix polkit to auth root

2020-05-25 Thread Marcel Hollerbach
raster pushed a commit to branch enlightenment-0.24.

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

commit 67bdd4d0716528bba63763098739ce5365e0376d
Author: Marcel Hollerbach 
Date:   Mon May 25 14:39:25 2020 +0200

e_ckpasswd_main: fix polkit to auth root

there were the wrong pids passed.
This fixes calls like "systemctl start docker".
---
 src/bin/e_ckpasswd_main.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/bin/e_ckpasswd_main.c b/src/bin/e_ckpasswd_main.c
index db71cd116..3d27ac6af 100644
--- a/src/bin/e_ckpasswd_main.c
+++ b/src/bin/e_ckpasswd_main.c
@@ -214,7 +214,7 @@ polkit_auth(const char *cookie, unsigned int auth_uid)
if (!m) BARF("Cannot get method call: AuthenticationAgentResponse2");
iter = eldbus_message_iter_get(m);
if (!iter) BARF("Cannot set iter on proxy");
-   if (!eldbus_message_iter_arguments_append(iter, "us", auth_uid, cookie))
+   if (!eldbus_message_iter_arguments_append(iter, "us", uid, cookie))
  BARF("Cannot append 'us' args");
if (!eldbus_message_iter_arguments_append(iter, "(sa{sv})", &subj))
  BARF("Cannot append '(sa{sv})' args");
@@ -361,7 +361,7 @@ main(int argc, char **argv)
// ok to fail - auth will just possibly fail then
e_setuid_setup(&uid, &gid, &user_name, &group_name);
 
-   if (_check_auth(uid, pw) == 0)
+   if (_check_auth(polkit_mode ? polkit_uid : uid, pw) == 0)
  {
 fprintf(stderr, "AUTH: Password OK\n");
 if (polkit_mode == 1)

-- 




[EGIT] [core/enlightenment] master 01/01: e_ckpasswd_main: fix polkit to auth root

2020-05-25 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 4475eb42a6a5ac3cf92166c4283b0b8391ce0581
Author: Marcel Hollerbach 
Date:   Mon May 25 14:39:25 2020 +0200

e_ckpasswd_main: fix polkit to auth root

there were the wrong pids passed.
This fixes calls like "systemctl start docker".
---
 src/bin/e_ckpasswd_main.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/bin/e_ckpasswd_main.c b/src/bin/e_ckpasswd_main.c
index b5e01d4ae..76bbf3543 100644
--- a/src/bin/e_ckpasswd_main.c
+++ b/src/bin/e_ckpasswd_main.c
@@ -213,7 +213,7 @@ polkit_auth(const char *cookie, unsigned int auth_uid)
if (!m) BARF("Cannot get method call: AuthenticationAgentResponse2");
iter = eldbus_message_iter_get(m);
if (!iter) BARF("Cannot set iter on proxy");
-   if (!eldbus_message_iter_arguments_append(iter, "us", auth_uid, cookie))
+   if (!eldbus_message_iter_arguments_append(iter, "us", uid, cookie))
  BARF("Cannot append 'us' args");
if (!eldbus_message_iter_arguments_append(iter, "(sa{sv})", &subj))
  BARF("Cannot append '(sa{sv})' args");
@@ -360,7 +360,7 @@ main(int argc, char **argv)
// ok to fail - auth will just possibly fail then
e_setuid_setup(&uid, &gid, &user_name, &group_name);
 
-   if (_check_auth(uid, pw) == 0)
+   if (_check_auth(polkit_mode ? polkit_uid : uid, pw) == 0)
  {
 fprintf(stderr, "AUTH: Password OK\n");
 if (polkit_mode == 1)

-- 




[EGIT] [core/efl] master 01/02: elm_dnd: do not register widgets twice

2020-05-25 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 9f7c518a20cf9d9a45b665a2d9fe2dceb373fa7d
Author: Marcel Hollerbach 
Date:   Mon May 18 19:04:43 2020 +0200

elm_dnd: do not register widgets twice

we have to support none widgets, but we should not register widgets
twice because of that.

Differential Revision: https://phab.enlightenment.org/D11877
---
 src/lib/elementary/elm_dnd.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/lib/elementary/elm_dnd.c b/src/lib/elementary/elm_dnd.c
index 18ae659bdf..f0d1824aca 100644
--- a/src/lib/elementary/elm_dnd.c
+++ b/src/lib/elementary/elm_dnd.c
@@ -182,7 +182,8 @@ elm_drop_target_add(Evas_Object *obj, Elm_Sel_Format format,
target->format = format;
 
efl_event_callback_array_add(obj, drop_target_cb(), target);
-   _drop_event_register(obj); //this is ensuring that we are also supporting 
none widgets
+   if (!efl_isa(obj, EFL_UI_WIDGET_CLASS))
+ _drop_event_register(obj); //this is ensuring that we are also supporting 
none widgets
if (!target_register)
  target_register = eina_hash_pointer_new(NULL);
eina_hash_list_append(target_register, &obj, target);

-- 




[EGIT] [core/efl] efl-1.24 01/02: exactness_player: do not test for delay_ms

2020-05-05 Thread Marcel Hollerbach
stefan pushed a commit to branch efl-1.24.

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

commit 924c6fec18958712cddd6d8cebe0476e05f8b29c
Author: Marcel Hollerbach 
Date:   Tue May 5 10:53:15 2020 +0200

exactness_player: do not test for delay_ms

that is a unsigned int, if its 0 the timer is called as fast as
possible. Not doing that breaks exactness.

@fix

Reviewed-by: Stefan Schmidt 
Differential Revision: https://phab.enlightenment.org/D11774
---
 src/bin/exactness/player.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/bin/exactness/player.c b/src/bin/exactness/player.c
index befd028852..b35637f25c 100644
--- a/src/bin/exactness/player.c
+++ b/src/bin/exactness/player.c
@@ -511,7 +511,7 @@ _feed_event_timer_cb(void *data EINA_UNUSED)
 if (act && act->type != EXACTNESS_ACTION_STABILIZE)
   {
  act = eina_list_data_get(_cur_event_list);
- if (act && act->delay_ms)
+ if (act)
{
   DBG("  %s timer_time=<%f>\n", __func__, act->delay_ms / 
1000.0);
   ecore_timer_add(act->delay_ms / 1000.0, 
_feed_event_timer_cb, NULL);
@@ -552,7 +552,7 @@ _stabilization_timer_cb(void *data EINA_UNUSED)
 if (_src_type != FTYPE_REMOTE && !_pause_request)
   {
  Exactness_Action *act = eina_list_data_get(_cur_event_list);
- if (act && act->delay_ms)
+ if (act)
{
   DBG("  %s timer_time=<%f>\n", __func__, act->delay_ms / 
1000.0);
   ecore_timer_add(act->delay_ms / 1000.0, 
_feed_event_timer_cb, NULL);

-- 




[EGIT] [core/efl] master 01/01: exactness_player: do not test for delay_ms

2020-05-05 Thread Marcel Hollerbach
stefan pushed a commit to branch master.

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

commit 2830d1c6fa3c9530584d0f1c4ad64ee503bec982
Author: Marcel Hollerbach 
Date:   Tue May 5 10:53:15 2020 +0200

exactness_player: do not test for delay_ms

that is a unsigned int, if its 0 the timer is called as fast as
possible. Not doing that breaks exactness.

@fix

Reviewed-by: Stefan Schmidt 
Differential Revision: https://phab.enlightenment.org/D11774
---
 src/bin/exactness/player.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/bin/exactness/player.c b/src/bin/exactness/player.c
index befd028852..b35637f25c 100644
--- a/src/bin/exactness/player.c
+++ b/src/bin/exactness/player.c
@@ -511,7 +511,7 @@ _feed_event_timer_cb(void *data EINA_UNUSED)
 if (act && act->type != EXACTNESS_ACTION_STABILIZE)
   {
  act = eina_list_data_get(_cur_event_list);
- if (act && act->delay_ms)
+ if (act)
{
   DBG("  %s timer_time=<%f>\n", __func__, act->delay_ms / 
1000.0);
   ecore_timer_add(act->delay_ms / 1000.0, 
_feed_event_timer_cb, NULL);
@@ -552,7 +552,7 @@ _stabilization_timer_cb(void *data EINA_UNUSED)
 if (_src_type != FTYPE_REMOTE && !_pause_request)
   {
  Exactness_Action *act = eina_list_data_get(_cur_event_list);
- if (act && act->delay_ms)
+ if (act)
{
   DBG("  %s timer_time=<%f>\n", __func__, act->delay_ms / 
1000.0);
   ecore_timer_add(act->delay_ms / 1000.0, 
_feed_event_timer_cb, NULL);

-- 




[EGIT] [core/efl] efl-1.24 01/02: ecore_evas: only define these eina errors once

2020-05-04 Thread Marcel Hollerbach
stefan pushed a commit to branch efl-1.24.

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

commit aabea0de2faa8c2f5fb7709e9b6e23021de13f97
Author: Marcel Hollerbach 
Date:   Thu Apr 30 09:22:01 2020 -0400

ecore_evas: only define these eina errors once

Summary:
they are not needed multiple times, infact this is creating multiple
definition errors.

@fix

Reviewers: stefan_schmidt, zmike

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11766
---
 src/lib/ecore_evas/ecore_evas.c | 4 
 src/lib/ecore_evas/ecore_evas_private.h | 6 +++---
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/lib/ecore_evas/ecore_evas.c b/src/lib/ecore_evas/ecore_evas.c
index f06c189ad9..87331f03e8 100644
--- a/src/lib/ecore_evas/ecore_evas.c
+++ b/src/lib/ecore_evas/ecore_evas.c
@@ -55,6 +55,10 @@
goto _label; \
 }
 
+EAPI Eina_Error ecore_evas_no_matching_type;
+EAPI Eina_Error ecore_evas_no_selection;
+EAPI Eina_Error ecore_evas_request_replaced;
+
 EAPI Eina_Bool _ecore_evas_app_comp_sync = EINA_FALSE;
 EAPI int _ecore_evas_log_dom = -1;
 static int _ecore_evas_init_count = 0;
diff --git a/src/lib/ecore_evas/ecore_evas_private.h 
b/src/lib/ecore_evas/ecore_evas_private.h
index 1a35e62a5c..20c176f050 100644
--- a/src/lib/ecore_evas/ecore_evas_private.h
+++ b/src/lib/ecore_evas/ecore_evas_private.h
@@ -33,9 +33,9 @@
 
 EAPI extern int _ecore_evas_log_dom;
 
-EAPI Eina_Error ecore_evas_no_matching_type;
-EAPI Eina_Error ecore_evas_no_selection;
-EAPI Eina_Error ecore_evas_request_replaced;
+EAPI extern Eina_Error ecore_evas_no_matching_type;
+EAPI extern Eina_Error ecore_evas_no_selection;
+EAPI extern Eina_Error ecore_evas_request_replaced;
 
 #ifdef ECORE_EVAS_DEFAULT_LOG_COLOR
 # undef ECORE_EVAS_DEFAULT_LOG_COLOR

-- 




[EGIT] [core/efl] efl-1.24 01/01: elm_fileselector: support expandable items

2020-04-30 Thread Marcel Hollerbach
raster pushed a commit to branch efl-1.24.

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

commit 498af4b32da4ef668370d6c8a71c2b1a5eb9ad25
Author: Marcel Hollerbach 
Date:   Wed Apr 29 11:47:05 2020 -0400

elm_fileselector: support expandable items

Summary:
the fileselector can store exactly 1 model and monitor that for changes,
which works normally just well. However, when we expand a items, another
model comes into play, which is not monitored, and no additional
reference is taken. Which means, _process_last will simply delete it,
and elements that did not come into play at the _populate call are never
displayed.

With this commit, we check that we do not have a parent item, and
explictly wait for the model to publish all its items, before we call
_process_last.

Additionally, that showed that the tracking of the list/grid item is
ultimatly buggy, as there is no assertion that the parent model is
really the parent directoy. Hence we need to hand pass the parent item
here, as a fallback option to set the correct parent item.

fixes T8689

Reviewers: zmike

Reviewed By: zmike

Subscribers: zmike, cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8689

Differential Revision: https://phab.enlightenment.org/D11765
---
 src/lib/elementary/elc_fileselector.c | 38 +++
 1 file changed, 34 insertions(+), 4 deletions(-)

diff --git a/src/lib/elementary/elc_fileselector.c 
b/src/lib/elementary/elc_fileselector.c
index eb107b14c6..01d4586b0e 100644
--- a/src/lib/elementary/elc_fileselector.c
+++ b/src/lib/elementary/elc_fileselector.c
@@ -880,7 +880,7 @@ _listing_request_cleanup(Listing_Request *lreq)
 }
 
 static void
-_process_model(Elm_Fileselector_Data *sd, Efl_Model *child)
+_process_model(Elm_Fileselector_Data *sd, Efl_Model *child, Elm_Object_Item 
*fallback_parent_item)
 {
Elm_Fileselector_Item_Data *it_data;
Elm_Object_Item *item, *it_parent;
@@ -927,6 +927,8 @@ _process_model(Elm_Fileselector_Data *sd, Efl_Model *child)
it_data->is_dir = dir;
 
it_parent = efl_key_data_get(parent, ".item.data");
+   if (!it_parent)
+ it_parent = fallback_parent_item;
 
if (dir)
  {
@@ -981,7 +983,9 @@ _process_children_cb(Eo *model EINA_UNUSED, void *data, 
const Eina_Value v)
if (!lreq->valid) goto end;
 
EINA_VALUE_ARRAY_FOREACH(&v, len, i, child)
- _process_model(lreq->sd, child);
+ {
+_process_model(lreq->sd, child, lreq->parent_it);
+ }
 
lreq->item_total = len;
 
@@ -1003,6 +1007,29 @@ _process_children_error(Eo *model EINA_UNUSED, void 
*data, Eina_Error error)
return eina_value_error_init(error);
 }
 
+static void
+_count_changed_cb(void *data, const Efl_Event *ev EINA_UNUSED)
+{
+   Listing_Request *lreq = data;
+   Eina_Future *future;
+
+   efl_event_callback_del(lreq->model, EFL_MODEL_EVENT_CHILDREN_COUNT_CHANGED, 
_count_changed_cb, lreq);
+
+   if (efl_model_children_count_get(lreq->model))
+ {
+future = efl_model_children_slice_get(lreq->model, 0, 
efl_model_children_count_get(lreq->model));
+future = efl_future_then(lreq->obj, future);
+efl_future_then(lreq->model, future,
+.success = _process_children_cb,
+.error = _process_children_error,
+.data = lreq);
+ }
+   else
+ {
+_process_last(lreq);
+ }
+}
+
 static void
 _populate(Evas_Object *obj,
   Efl_Model *model,
@@ -1087,7 +1114,10 @@ _populate(Evas_Object *obj,
  }
else
  {
-_process_last(lreq);
+if (parent_it)
+  efl_event_callback_add(lreq->model, 
EFL_MODEL_EVENT_CHILDREN_COUNT_CHANGED, _count_changed_cb, lreq);
+else
+  _process_last(lreq);
  }
 }
 
@@ -1624,7 +1654,7 @@ _resource_created_then(Eo *model EINA_UNUSED, void *data, 
const Eina_Value v)
ELM_FILESELECTOR_DATA_GET(fs, sd);
 
EINA_VALUE_ARRAY_FOREACH(&v, len, i, child)
- _process_model(sd, child);
+ _process_model(sd, child, NULL); //this function will always just work 
for the root model of the fileselector
 
return v;
 }

-- 




[EGIT] [core/efl] master 01/01: ecore_evas: only define these eina errors once

2020-04-30 Thread Marcel Hollerbach
zmike pushed a commit to branch master.

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

commit 7b68960d3a2deb5d4064193a2e2a7b6f7f8baae3
Author: Marcel Hollerbach 
Date:   Thu Apr 30 09:22:01 2020 -0400

ecore_evas: only define these eina errors once

Summary:
they are not needed multiple times, infact this is creating multiple
definition errors.

@fix

Reviewers: stefan_schmidt, zmike

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11766
---
 src/lib/ecore_evas/ecore_evas.c | 4 
 src/lib/ecore_evas/ecore_evas_private.h | 6 +++---
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/lib/ecore_evas/ecore_evas.c b/src/lib/ecore_evas/ecore_evas.c
index f06c189ad9..87331f03e8 100644
--- a/src/lib/ecore_evas/ecore_evas.c
+++ b/src/lib/ecore_evas/ecore_evas.c
@@ -55,6 +55,10 @@
goto _label; \
 }
 
+EAPI Eina_Error ecore_evas_no_matching_type;
+EAPI Eina_Error ecore_evas_no_selection;
+EAPI Eina_Error ecore_evas_request_replaced;
+
 EAPI Eina_Bool _ecore_evas_app_comp_sync = EINA_FALSE;
 EAPI int _ecore_evas_log_dom = -1;
 static int _ecore_evas_init_count = 0;
diff --git a/src/lib/ecore_evas/ecore_evas_private.h 
b/src/lib/ecore_evas/ecore_evas_private.h
index 1a35e62a5c..20c176f050 100644
--- a/src/lib/ecore_evas/ecore_evas_private.h
+++ b/src/lib/ecore_evas/ecore_evas_private.h
@@ -33,9 +33,9 @@
 
 EAPI extern int _ecore_evas_log_dom;
 
-EAPI Eina_Error ecore_evas_no_matching_type;
-EAPI Eina_Error ecore_evas_no_selection;
-EAPI Eina_Error ecore_evas_request_replaced;
+EAPI extern Eina_Error ecore_evas_no_matching_type;
+EAPI extern Eina_Error ecore_evas_no_selection;
+EAPI extern Eina_Error ecore_evas_request_replaced;
 
 #ifdef ECORE_EVAS_DEFAULT_LOG_COLOR
 # undef ECORE_EVAS_DEFAULT_LOG_COLOR

-- 




[EGIT] [core/efl] master 01/01: elm_fileselector: support expandable items

2020-04-29 Thread Marcel Hollerbach
zmike pushed a commit to branch master.

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

commit f21df93595f18f803ee50095084bd695421b304a
Author: Marcel Hollerbach 
Date:   Wed Apr 29 11:47:05 2020 -0400

elm_fileselector: support expandable items

Summary:
the fileselector can store exactly 1 model and monitor that for changes,
which works normally just well. However, when we expand a items, another
model comes into play, which is not monitored, and no additional
reference is taken. Which means, _process_last will simply delete it,
and elements that did not come into play at the _populate call are never
displayed.

With this commit, we check that we do not have a parent item, and
explictly wait for the model to publish all its items, before we call
_process_last.

Additionally, that showed that the tracking of the list/grid item is
ultimatly buggy, as there is no assertion that the parent model is
really the parent directoy. Hence we need to hand pass the parent item
here, as a fallback option to set the correct parent item.

fixes T8689

Reviewers: zmike

Reviewed By: zmike

Subscribers: zmike, cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8689

Differential Revision: https://phab.enlightenment.org/D11765
---
 src/lib/elementary/elc_fileselector.c | 38 +++
 1 file changed, 34 insertions(+), 4 deletions(-)

diff --git a/src/lib/elementary/elc_fileselector.c 
b/src/lib/elementary/elc_fileselector.c
index eb107b14c6..01d4586b0e 100644
--- a/src/lib/elementary/elc_fileselector.c
+++ b/src/lib/elementary/elc_fileselector.c
@@ -880,7 +880,7 @@ _listing_request_cleanup(Listing_Request *lreq)
 }
 
 static void
-_process_model(Elm_Fileselector_Data *sd, Efl_Model *child)
+_process_model(Elm_Fileselector_Data *sd, Efl_Model *child, Elm_Object_Item 
*fallback_parent_item)
 {
Elm_Fileselector_Item_Data *it_data;
Elm_Object_Item *item, *it_parent;
@@ -927,6 +927,8 @@ _process_model(Elm_Fileselector_Data *sd, Efl_Model *child)
it_data->is_dir = dir;
 
it_parent = efl_key_data_get(parent, ".item.data");
+   if (!it_parent)
+ it_parent = fallback_parent_item;
 
if (dir)
  {
@@ -981,7 +983,9 @@ _process_children_cb(Eo *model EINA_UNUSED, void *data, 
const Eina_Value v)
if (!lreq->valid) goto end;
 
EINA_VALUE_ARRAY_FOREACH(&v, len, i, child)
- _process_model(lreq->sd, child);
+ {
+_process_model(lreq->sd, child, lreq->parent_it);
+ }
 
lreq->item_total = len;
 
@@ -1003,6 +1007,29 @@ _process_children_error(Eo *model EINA_UNUSED, void 
*data, Eina_Error error)
return eina_value_error_init(error);
 }
 
+static void
+_count_changed_cb(void *data, const Efl_Event *ev EINA_UNUSED)
+{
+   Listing_Request *lreq = data;
+   Eina_Future *future;
+
+   efl_event_callback_del(lreq->model, EFL_MODEL_EVENT_CHILDREN_COUNT_CHANGED, 
_count_changed_cb, lreq);
+
+   if (efl_model_children_count_get(lreq->model))
+ {
+future = efl_model_children_slice_get(lreq->model, 0, 
efl_model_children_count_get(lreq->model));
+future = efl_future_then(lreq->obj, future);
+efl_future_then(lreq->model, future,
+.success = _process_children_cb,
+.error = _process_children_error,
+.data = lreq);
+ }
+   else
+ {
+_process_last(lreq);
+ }
+}
+
 static void
 _populate(Evas_Object *obj,
   Efl_Model *model,
@@ -1087,7 +1114,10 @@ _populate(Evas_Object *obj,
  }
else
  {
-_process_last(lreq);
+if (parent_it)
+  efl_event_callback_add(lreq->model, 
EFL_MODEL_EVENT_CHILDREN_COUNT_CHANGED, _count_changed_cb, lreq);
+else
+  _process_last(lreq);
  }
 }
 
@@ -1624,7 +1654,7 @@ _resource_created_then(Eo *model EINA_UNUSED, void *data, 
const Eina_Value v)
ELM_FILESELECTOR_DATA_GET(fs, sd);
 
EINA_VALUE_ARRAY_FOREACH(&v, len, i, child)
- _process_model(sd, child);
+ _process_model(sd, child, NULL); //this function will always just work 
for the root model of the fileselector
 
return v;
 }

-- 




[EGIT] [core/efl] master 02/02: build: install eo files per default

2020-04-28 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit e6a62186971d5ef445f6a79d593bc3c3b92628a7
Author: Marcel Hollerbach 
Date:   Sun Sep 29 18:04:51 2019 +0200

build: install eo files per default

in the last release we turned that off, because we started to stabelize
API back there, but the .eo file format wasnt ready yet.

Now, the file format is stable. And we stabelized more widgets, which
means, we should also install the .eo files per default.

Reviewed-by: Stefan Schmidt 
Differential Revision: https://phab.enlightenment.org/D10242
---
 meson_options.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meson_options.txt b/meson_options.txt
index 0907aff980..043957e046 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -361,7 +361,7 @@ option('elementary-base-dir',
 
 option('install-eo-files',
   type: 'boolean',
-  value: false,
+  value: true,
   description : 'Install any eo file'
 )
 

-- 




[EGIT] [core/efl] master 01/01: efl_fileselector_entry: do not crash on a invalid model

2020-04-28 Thread Marcel Hollerbach
stefan pushed a commit to branch master.

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

commit 3614c4190d78ed3abce4b3e1e175342e6299a242
Author: Marcel Hollerbach 
Date:   Sun Apr 26 17:29:09 2020 +0200

efl_fileselector_entry: do not crash on a invalid model

something is happening during shutdown, when a fileselector was created
before. This is ending up in a strcmp to a NULL ptr, which crashes, with
the now, we ensure that we are not crashing anymore, when that is
happning.

TO solve this properly we should really fix the cause of a invalid model
beeing returned, however, i do not feel compftable doing that so short
before a release.

Reviewed-by: Stefan Schmidt 
Differential Revision: https://phab.enlightenment.org/D11762
---
 src/lib/elementary/elc_fileselector_entry.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/elementary/elc_fileselector_entry.c 
b/src/lib/elementary/elc_fileselector_entry.c
index 632f17385b..ff37e5b1d0 100644
--- a/src/lib/elementary/elc_fileselector_entry.c
+++ b/src/lib/elementary/elc_fileselector_entry.c
@@ -444,7 +444,7 @@ _elm_fileselector_entry_efl_ui_view_model_get(const Eo 
*obj, Elm_Fileselector_En
free(sd->path);
sd->path = elm_entry_markup_to_utf8(elm_object_text_get(sd->entry));
 
-   if (!strcmp(sd->path, efl_io_model_path_get(bmodel)))
+   if (eina_streq(sd->path, efl_io_model_path_get(bmodel)))
  return bmodel;
 
ret = efl_add_ref(efl_class_get(bmodel), (Eo*) obj,

-- 




  1   2   3   4   5   6   7   8   9   10   >