[EGIT] [core/efl] master 01/01: efl_ui_scroll_util: add null check after calloc

2019-09-19 Thread WooHyun Jung
woohyun pushed a commit to branch master.

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

commit bc162b1253b3dc16fb6c8989b96d26fd120384c0
Author: WooHyun Jung 
Date:   Fri Sep 20 11:09:02 2019 +0900

efl_ui_scroll_util: add null check after calloc
---
 src/lib/elementary/efl_ui_scroll_util.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/lib/elementary/efl_ui_scroll_util.c 
b/src/lib/elementary/efl_ui_scroll_util.c
index abf77110d6..b375c7488f 100644
--- a/src/lib/elementary/efl_ui_scroll_util.c
+++ b/src/lib/elementary/efl_ui_scroll_util.c
@@ -249,6 +249,7 @@ void
 efl_ui_scroll_connector_bind(Eo *obj, Eo *manager)
 {
Scroll_Connector_Context *ctx = calloc(1, sizeof(Scroll_Connector_Context));
+   if (!ctx) return;
ctx->obj = obj;
ctx->smanager = manager;
efl_key_data_set(obj, "__context", ctx);

-- 




Re: [E-devel] 1.23 work items list

2019-09-19 Thread Simon Lees




On 9/19/19 11:22 PM, Stefan Schmidt wrote:


I have not heard anything bad from packagers yet. If that means all is
good or if nobody tested its hard to say. :/

I am aiming to have info for you next week, 1.22 changed some stuff that 
broke the building of most of our themes so I need ot address that first 
before I can give some more meaningful info


--

Simon Lees (Simotek)http://simotek.net

Emergency Update Team   keybase.io/simotek
SUSE Linux   Adelaide Australia, UTC+10:30
GPG Fingerprint: 5B87 DB9D 88DC F606 E489 CEC5 0922 C246 02F0 014B


___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 01/01: efl_io_model: next try to fix this race condition

2019-09-19 Thread Marcel Hollerbach
cedric pushed a commit to branch master.

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

commit 1eb24301fd517952e7e2c31a19c523bd4bf2e06e
Author: Marcel Hollerbach 
Date:   Wed Sep 18 11:32:08 2019 +0200

efl_io_model: next try to fix this race condition

what is happening is that a file gets announced through eio_model
listing code, at this point of time, the monitor does not yet know about
the file. If the file now gets deleted between the annoncing and the
learning of the file from the monitor, then the file got an ADD event,
but no DEL event. Which is a bug.

With this commit there is a new API which asks the monitor if the file
already has the knowledge about the files existance, or not. A few
monitors like win32 inotify or cocoa do not have context about the file
directly, if the OS is now having the same bug, then we are again in
trouble, however, we canot do anything about that. In the case of kevent
or poll, this asks the context of the monitor if the file is already
there.

Reviewed-by: Cedric BAIL 
Differential Revision: https://phab.enlightenment.org/D10006
---
 src/lib/eio/Eio_Legacy.h  | 18 ++
 src/lib/eio/efl_io_model.c|  7 +++
 src/lib/eio/eio_monitor.c | 14 ++
 src/lib/eio/eio_monitor_cocoa.c   |  4 
 src/lib/eio/eio_monitor_inotify.c |  5 +
 src/lib/eio/eio_monitor_kevent.c  | 19 ++-
 src/lib/eio/eio_monitor_poll.c| 15 +++
 src/lib/eio/eio_monitor_win32.c   |  5 +
 src/lib/eio/eio_private.h |  2 ++
 9 files changed, 88 insertions(+), 1 deletion(-)

diff --git a/src/lib/eio/Eio_Legacy.h b/src/lib/eio/Eio_Legacy.h
index 50140edd4e..c44340cac0 100644
--- a/src/lib/eio/Eio_Legacy.h
+++ b/src/lib/eio/Eio_Legacy.h
@@ -1257,6 +1257,24 @@ EAPI const char *eio_monitor_path_get(Eio_Monitor 
*monitor);
  * @beta
  */
 EAPI Eina_Bool eio_monitor_fallback_check(const Eio_Monitor *monitor);
+
+/**
+ * @brief Check if a monitor has the context about a file or not
+ * @param monitor The Eio_Monitor to check
+ * @param path The path to check
+ * @return EINA_TRUE if there is context, EINA_FALSE otherwise.
+ *
+ * There are Monitors that need context about a file before they can monitor 
the file correctly.
+ * As an example: If you publish a file in your API before the monitor has 
this file in his context,
+ * and the file gets deleted as a reaction to this, the monitor will not be 
able to emit the correct DELETE
+ * event even if the file is in the monitors path.
+ *
+ * In case the monitor does not yet have context, you can be sure that the 
monitor will bring up an FILE_ADD event about that file.
+ *
+ * @since 1.23
+ * @beta
+ */
+EAPI Eina_Bool eio_monitor_has_context(const Eio_Monitor *monitor, const char 
*path);
 #endif
 /**
  * @}
diff --git a/src/lib/eio/efl_io_model.c b/src/lib/eio/efl_io_model.c
index e6b6149288..88c32b19b8 100644
--- a/src/lib/eio/efl_io_model.c
+++ b/src/lib/eio/efl_io_model.c
@@ -762,6 +762,12 @@ _efl_io_model_efl_model_property_set(Eo *obj,
return efl_loop_future_rejected(obj, err);
 }
 
+static Eina_Bool
+_monitor_has_context(Efl_Io_Model_Data *pd, const char *path)
+{
+   return eio_monitor_has_context(pd->monitor, path);
+}
+
 static void
 _efl_io_model_children_list(void *data, Eina_Array *entries)
 {
@@ -779,6 +785,7 @@ _efl_io_model_children_list(void *data, Eina_Array *entries)
  {
 Efl_Io_Model_Info *mi;
 
+if (!_monitor_has_context(pd, info->path)) continue;
 if (_already_added(pd, info->path)) continue;
 
 if (pd->filter.cb)
diff --git a/src/lib/eio/eio_monitor.c b/src/lib/eio/eio_monitor.c
index bc1ed07db0..64eab219b2 100644
--- a/src/lib/eio/eio_monitor.c
+++ b/src/lib/eio/eio_monitor.c
@@ -411,3 +411,17 @@ eio_monitor_path_get(Eio_Monitor *monitor)
EINA_SAFETY_ON_NULL_RETURN_VAL(monitor, NULL);
return monitor->path;
 }
+
+
+EAPI Eina_Bool
+eio_monitor_has_context(const Eio_Monitor *monitor, const char *path)
+{
+   if (monitor->fallback)
+ {
+return eio_monitor_fallback_context_check(monitor, path);
+ }
+   else
+ {
+return eio_monitor_context_check(monitor, path);
+ }
+}
diff --git a/src/lib/eio/eio_monitor_cocoa.c b/src/lib/eio/eio_monitor_cocoa.c
index d491de4194..be354964a0 100644
--- a/src/lib/eio/eio_monitor_cocoa.c
+++ b/src/lib/eio/eio_monitor_cocoa.c
@@ -403,6 +403,10 @@ void eio_monitor_backend_del(Eio_Monitor *monitor)
eina_hash_del(_fsevent_monitors, monitor->path, backend);
 }
 
+Eina_Bool eio_monitor_context_check(const Eio_Monitor *monitor, const char 
*path)
+{
+   return EINA_TRUE;
+}
 
 /**
  *   API  *
diff --git a/src/lib/eio/eio_monitor_inotify.c 
b/src/lib/eio/eio_monitor_inotify.c
index f3

[EGIT] [core/efl] master 17/23: ecore: properly initialize the event structure in Efl.Generic_Model.

2019-09-19 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit 6af8a70f37d4ddbf8629e0b6d747518620bca3f7
Author: Cedric Bail 
Date:   Tue Sep 17 18:42:51 2019 -0700

ecore: properly initialize the event structure in Efl.Generic_Model.

Reviewed-by: Mike Blumenkrantz 
Differential Revision: https://phab.enlightenment.org/D10028
---
 src/lib/ecore/efl_generic_model.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/ecore/efl_generic_model.c 
b/src/lib/ecore/efl_generic_model.c
index 99b6f480ec..c478e918d2 100644
--- a/src/lib/ecore/efl_generic_model.c
+++ b/src/lib/ecore/efl_generic_model.c
@@ -144,7 +144,7 @@ _efl_generic_model_efl_model_children_count_get(const Eo 
*obj EINA_UNUSED, Efl_G
 static Eo *
 _efl_generic_model_efl_model_child_add(Eo *obj, Efl_Generic_Model_Data *sd)
 {
-   Efl_Model_Children_Event cevt;
+   Efl_Model_Children_Event cevt = { 0 };
Efl_Model *child;
 
child = efl_add(EFL_GENERIC_MODEL_CLASS, obj);

-- 




[EGIT] [core/efl] master 18/23: ecore: properly initialize all field in event generated by Efl.Generic_Model

2019-09-19 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit f402efbba31515095ac41551483e51b6e283b094
Author: Cedric Bail 
Date:   Tue Sep 17 19:03:48 2019 -0700

ecore: properly initialize all field in event generated by Efl.Generic_Model

Reviewed-by: Mike Blumenkrantz 
Differential Revision: https://phab.enlightenment.org/D10029
---
 src/lib/ecore/efl_generic_model.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/ecore/efl_generic_model.c 
b/src/lib/ecore/efl_generic_model.c
index c478e918d2..dc33428d99 100644
--- a/src/lib/ecore/efl_generic_model.c
+++ b/src/lib/ecore/efl_generic_model.c
@@ -175,7 +175,7 @@ _efl_generic_model_efl_model_child_del(Eo *obj, 
Efl_Generic_Model_Data *sd, Eo *
  {
 if (data == child)
   {
- Efl_Model_Children_Event cevt;
+ Efl_Model_Children_Event cevt = { 0 };
 
  sd->childrens = eina_list_remove_list(sd->childrens, l);
 

-- 




[EGIT] [core/efl] master 01/23: ecore/signal: also use nonblock for writing side of signal pipe

2019-09-19 Thread Mike Blumenkrantz
cedric pushed a commit to branch master.

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

commit aae2e49744824d8698262fca943b5c47c94ee560
Author: Mike Blumenkrantz 
Date:   Thu Sep 19 14:03:59 2019 -0400

ecore/signal: also use nonblock for writing side of signal pipe

if any efl-based process receives a bunch of signals in a short period of
time, it will deadlock in the signal handler. this is unavoidable given the
current signal handling architecture

by setting nonblock, we can at least avoid deadlocking even if it means 
we'll
be losing signal events

@fix

Reviewed-by: Cedric BAIL 
Differential Revision: https://phab.enlightenment.org/D10025
---
 src/lib/ecore/ecore_signal.c | 18 --
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/src/lib/ecore/ecore_signal.c b/src/lib/ecore/ecore_signal.c
index e16694b55a..c3e5b0fda9 100644
--- a/src/lib/ecore/ecore_signal.c
+++ b/src/lib/ecore/ecore_signal.c
@@ -168,13 +168,17 @@ _ecore_signal_callback(int sig, siginfo_t *si, void *foo 
EINA_UNUSED)
  {
 int err = errno;
 if (pipe_dead) return;
-const ssize_t bytes = write(sig_pipe[1], &sdata, sizeof(sdata));
-if (EINA_UNLIKELY(bytes != sizeof(sdata)))
+do
   {
- err = errno;
- ERR("write() failed: %s", strerror(err));
-  }
-errno = err;
+ const ssize_t bytes = write(sig_pipe[1], &sdata, sizeof(sdata));
+ if (EINA_UNLIKELY(bytes != sizeof(sdata)))
+   {
+  err = errno;
+  ERR("write() failed: %d: %s", err, strerror(err));
+   }
+ errno = err;
+ /* loop if we got preempted */
+  } while (err == EINTR);
  }
switch (sig)
  {
@@ -249,6 +253,8 @@ _ecore_signal_pipe_init(void)
 eina_file_close_on_exec(sig_pipe[1], EINA_TRUE);
 if (fcntl(sig_pipe[0], F_SETFL, O_NONBLOCK) < 0)
   ERR("can't set pipe to NONBLOCK");
+if (fcntl(sig_pipe[1], F_SETFL, O_NONBLOCK) < 0)
+  ERR("can't set pipe to NONBLOCK");
 
  }
_signalhandler_setup();

-- 




[EGIT] [core/efl] master 11/23: efl_ui_layout_part_box/table: remove real_part_set

2019-09-19 Thread Marcel Hollerbach
cedric pushed a commit to branch master.

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

commit d8053bac9607f0cd592f605d46db57c72d33b70d
Author: Marcel Hollerbach 
Date:   Tue Sep 17 16:39:55 2019 +0200

efl_ui_layout_part_box/table: remove real_part_set

real part set was used to set the real part on the part, so the obj
pointer of Layout_Part_Data points to the correct evas object. With this
commit, this API is removed from the public .eo files, and is refactored
into the same API which is private.

Reviewed-by: Mike Blumenkrantz 
Differential Revision: https://phab.enlightenment.org/D9993
---
 src/lib/elementary/efl_ui_layout_pack.c| 31 +-
 src/lib/elementary/efl_ui_layout_part_box.eo   |  9 
 src/lib/elementary/efl_ui_layout_part_table.eo |  9 
 3 files changed, 11 insertions(+), 38 deletions(-)

diff --git a/src/lib/elementary/efl_ui_layout_pack.c 
b/src/lib/elementary/efl_ui_layout_pack.c
index 646ef3e483..02ad407981 100644
--- a/src/lib/elementary/efl_ui_layout_pack.c
+++ b/src/lib/elementary/efl_ui_layout_pack.c
@@ -41,15 +41,24 @@ struct _Layout_Part_Data
unsigned char  temp;
 };
 
+static void
+_efl_ui_layout_part_set_real_part(Eo *obj, struct _Layout_Part_Data *pd, Eo 
*layout, const char *part)
+{
+   pd->obj = layout;
+   pd->sd = efl_data_xref(pd->obj, EFL_UI_LAYOUT_BASE_CLASS, obj);
+   eina_stringshare_replace(&pd->part, part);
+   pd->temp = 1;
+}
+
 Eo *
 _efl_ui_layout_pack_proxy_get(Efl_Ui_Layout *obj, Edje_Part_Type type, const 
char *part)
 {
if (type == EDJE_PART_TYPE_BOX)
  return efl_add(BOX_CLASS, obj,
-   efl_ui_layout_part_box_real_part_set(efl_added, obj, part));
+   _efl_ui_layout_part_set_real_part(efl_added, 
efl_data_scope_get(efl_added, BOX_CLASS), obj, part));
else if (type == EDJE_PART_TYPE_TABLE)
  return efl_add(TABLE_CLASS, obj,
-   efl_ui_layout_part_table_real_part_set(efl_added, obj, 
part));
+   _efl_ui_layout_part_set_real_part(efl_added, 
efl_data_scope_get(efl_added, TABLE_CLASS), obj, part));
else
  return NULL;
 }
@@ -63,15 +72,6 @@ _efl_ui_layout_part_box_efl_object_destructor(Eo *obj, 
Efl_Ui_Layout_Table_Data
efl_destructor(efl_super(obj, BOX_CLASS));
 }
 
-EOLIAN static void
-_efl_ui_layout_part_box_real_part_set(Eo *obj, Efl_Ui_Layout_Box_Data *pd, Eo 
*layout, const char *part)
-{
-   pd->obj = layout;
-   pd->sd = efl_data_xref(pd->obj, EFL_UI_LAYOUT_BASE_CLASS, obj);
-   eina_stringshare_replace(&pd->part, part);
-   pd->temp = 1;
-}
-
 EOLIAN static Eina_Iterator *
 _efl_ui_layout_part_box_efl_container_content_iterate(Eo *obj, 
Efl_Ui_Layout_Box_Data *pd)
 {
@@ -214,15 +214,6 @@ 
_efl_ui_layout_part_box_efl_ui_layout_orientable_orientation_get(const Eo *obj E
 
 /* Table proxy implementation */
 
-EOLIAN static void
-_efl_ui_layout_part_table_real_part_set(Eo *obj, Efl_Ui_Layout_Table_Data *pd, 
Eo *layout, const char *part)
-{
-   pd->obj = layout;
-   pd->sd = efl_data_xref(pd->obj, EFL_UI_LAYOUT_BASE_CLASS, obj);
-   eina_stringshare_replace(&pd->part, part);
-   pd->temp = 1;
-}
-
 EOLIAN static void
 _efl_ui_layout_part_table_efl_object_destructor(Eo *obj, 
Efl_Ui_Layout_Table_Data *pd)
 {
diff --git a/src/lib/elementary/efl_ui_layout_part_box.eo 
b/src/lib/elementary/efl_ui_layout_part_box.eo
index 683418c7d4..6ebbc2c2b6 100644
--- a/src/lib/elementary/efl_ui_layout_part_box.eo
+++ b/src/lib/elementary/efl_ui_layout_part_box.eo
@@ -8,15 +8,6 @@ class @beta Efl.Ui.Layout_Part_Box extends Efl.Object 
implements Efl.Pack_Linear
]]
data: Efl_Ui_Layout_Box_Data;
methods {
-  /* FIXME: Remove this. */
-  @property real_part @protected {
-  [[Real part property]]
- set {}
- values {
-layout: Efl.Object; [[Real part object]]
-part: string; [[Real part name]]
- }
-  }
}
implements {
   Efl.Object.destructor;
diff --git a/src/lib/elementary/efl_ui_layout_part_table.eo 
b/src/lib/elementary/efl_ui_layout_part_table.eo
index 9c9482cf1e..6730927065 100644
--- a/src/lib/elementary/efl_ui_layout_part_table.eo
+++ b/src/lib/elementary/efl_ui_layout_part_table.eo
@@ -7,15 +7,6 @@ class @beta Efl.Ui.Layout_Part_Table extends Efl.Object 
implements Efl.Pack_Tabl
]]
data: Efl_Ui_Layout_Table_Data;
methods {
-  /* FIXME: Remove this. */
-  @property real_part @protected {
-  [[Real part property]]
- set {}
- values {
-layout: Efl.Object; [[Real part object]]
-part: string; [[Real part name]]
- }
-  }
}
implements {
   Efl.Object.destructor;

-- 




[EGIT] [core/efl] master 16/23: eina: add code to help debug leaking Eina_Value.

2019-09-19 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit 2fdad9294876f475225618e9f50d558a62c6bcf3
Author: Cedric Bail 
Date:   Sat Sep 14 19:12:44 2019 -0700

eina: add code to help debug leaking Eina_Value.

Reviewed-by: Mike Blumenkrantz 
Differential Revision: https://phab.enlightenment.org/D9942
---
 src/lib/eina/eina_value.c | 41 +
 1 file changed, 41 insertions(+)

diff --git a/src/lib/eina/eina_value.c b/src/lib/eina/eina_value.c
index 3df0baa329..63f45b9bbe 100644
--- a/src/lib/eina/eina_value.c
+++ b/src/lib/eina/eina_value.c
@@ -5279,6 +5279,9 @@ typedef struct _Eina_Value_Inner_Mp Eina_Value_Inner_Mp;
 struct _Eina_Value_Inner_Mp
 {
Eina_Mempool *mempool;
+#ifdef DEBUG
+   int size;
+#endif
int references;
 };
 
@@ -5310,6 +5313,9 @@ _eina_value_inner_mp_get(int size)
  return NULL;
 
imp->references = 0;
+#ifdef DEBUG
+   imp->size = size;
+#endif
 
imp->mempool = eina_mempool_add(_eina_value_mp_choice,
"Eina_Value_Inner_Mp", NULL, size, 16);
@@ -5517,7 +5523,42 @@ eina_value_init(void)
 Eina_Bool
 eina_value_shutdown(void)
 {
+#ifdef DEBUG
+   Eina_Iterator *it;
+   Eina_Value_Inner_Mp *imp;
+#endif
+
eina_lock_take(&_eina_value_inner_mps_lock);
+
+#ifdef DEBUG
+   it = eina_hash_iterator_data_new(_eina_value_inner_mps);
+   EINA_ITERATOR_FOREACH(it, imp)
+ {
+Eina_Iterator *mit;
+Eina_Value *value;
+
+fprintf(stderr, "There is still %i Eina_Value in pool of size %i\n",
+imp->references, imp->size);
+mit = eina_mempool_iterator_new(imp->mempool);
+EINA_ITERATOR_FOREACH(mit, value)
+  {
+ if (value->type)
+   {
+  char *str = eina_value_to_string(value);
+  fprintf(stderr, "Value %p of type '%s' containing '%s' still 
allocated.\n",
+  value, value->type->name, str);
+  free(str);
+   }
+ else
+   {
+  fprintf(stderr, "Unknown type found for value %p\n", value);
+   }
+  }
+eina_iterator_free(mit);
+ }
+   eina_iterator_free(it);
+#endif
+
if (eina_hash_population(_eina_value_inner_mps) != 0)
  ERR("Cannot free eina_value internal memory pools -- still in use!");
else

-- 




[EGIT] [core/efl] master 02/23: tests/ecore: add stress test for main loop signal handling

2019-09-19 Thread Mike Blumenkrantz
cedric pushed a commit to branch master.

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

commit af5abbe4bcdd3ae0a687ef77b38d942e3249377d
Author: Mike Blumenkrantz 
Date:   Thu Sep 19 14:15:45 2019 -0400

tests/ecore: add stress test for main loop signal handling

this explodes after about 500 signals, so make it 1000 for a good test

Reviewed-by: Cedric BAIL 
Differential Revision: https://phab.enlightenment.org/D10026
---
 src/tests/ecore/ecore_test_job.c | 23 +++
 1 file changed, 23 insertions(+)

diff --git a/src/tests/ecore/ecore_test_job.c b/src/tests/ecore/ecore_test_job.c
index 5a2d6f3f75..7f3e6ad7b4 100644
--- a/src/tests/ecore/ecore_test_job.c
+++ b/src/tests/ecore/ecore_test_job.c
@@ -28,7 +28,30 @@ EFL_START_TEST(ecore_test_job)
 }
 EFL_END_TEST
 
+#ifndef _WIN32
+static void
+_ecore_signal_job(void *data EINA_UNUSED)
+{
+   EXPECT_ERROR_START;
+   for (unsigned int i = 0; i < 1000; i++)
+ raise(SIGUSR2);
+   ecore_main_loop_quit();
+   EXPECT_ERROR_END;
+}
+
+EFL_START_TEST(ecore_test_job_signal)
+{
+   ecore_job_add(_ecore_signal_job, NULL);
+
+   ecore_main_loop_begin();
+}
+EFL_END_TEST
+#endif
+
 void ecore_test_ecore_job(TCase *tc)
 {
tcase_add_test(tc, ecore_test_job);
+#ifndef _WIN32
+   tcase_add_test(tc, ecore_test_job_signal);
+#endif
 }

-- 




[EGIT] [core/efl] master 13/23: efl_ui_layout_part_*: declare stable

2019-09-19 Thread Marcel Hollerbach
cedric pushed a commit to branch master.

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

commit 2f48607e7c01622f0f0699efa749412b1897de5a
Author: Marcel Hollerbach 
Date:   Tue Sep 17 16:41:49 2019 +0200

efl_ui_layout_part_*: declare stable

Reviewed-by: Cedric BAIL 
Differential Revision: https://phab.enlightenment.org/D9995
---
 src/lib/elementary/efl_ui_layout_part.eo | 2 +-
 src/lib/elementary/efl_ui_layout_part_bg.eo  | 2 +-
 src/lib/elementary/efl_ui_layout_part_box.eo | 2 +-
 src/lib/elementary/efl_ui_layout_part_content.eo | 2 +-
 src/lib/elementary/efl_ui_layout_part_table.eo   | 2 +-
 src/lib/elementary/efl_ui_layout_part_text.eo| 2 +-
 6 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/lib/elementary/efl_ui_layout_part.eo 
b/src/lib/elementary/efl_ui_layout_part.eo
index 0ce9829c59..f015ca22ed 100644
--- a/src/lib/elementary/efl_ui_layout_part.eo
+++ b/src/lib/elementary/efl_ui_layout_part.eo
@@ -1,4 +1,4 @@
-class @beta Efl.Ui.Layout_Part extends Efl.Ui.Widget_Part
+class Efl.Ui.Layout_Part extends Efl.Ui.Widget_Part
 {
[[Elementary layout internal part class]]
data: null;
diff --git a/src/lib/elementary/efl_ui_layout_part_bg.eo 
b/src/lib/elementary/efl_ui_layout_part_bg.eo
index f1404d2c10..dff060f9bd 100644
--- a/src/lib/elementary/efl_ui_layout_part_bg.eo
+++ b/src/lib/elementary/efl_ui_layout_part_bg.eo
@@ -1,4 +1,4 @@
-class @beta Efl.Ui.Layout_Part_Bg extends Efl.Ui.Widget_Part_Bg
+class Efl.Ui.Layout_Part_Bg extends Efl.Ui.Widget_Part_Bg
 {
[[Elementary layout internal part background class]]
data: null;
diff --git a/src/lib/elementary/efl_ui_layout_part_box.eo 
b/src/lib/elementary/efl_ui_layout_part_box.eo
index 6ebbc2c2b6..7f7f815bac 100644
--- a/src/lib/elementary/efl_ui_layout_part_box.eo
+++ b/src/lib/elementary/efl_ui_layout_part_box.eo
@@ -1,4 +1,4 @@
-class @beta Efl.Ui.Layout_Part_Box extends Efl.Object implements 
Efl.Pack_Linear,
+class Efl.Ui.Layout_Part_Box extends Efl.Object implements Efl.Pack_Linear,
   Efl.Ui.Layout_Orientable_Readonly
 {
[[Represents a Box created as part of a layout.
diff --git a/src/lib/elementary/efl_ui_layout_part_content.eo 
b/src/lib/elementary/efl_ui_layout_part_content.eo
index 923033dd4e..c09d075d40 100644
--- a/src/lib/elementary/efl_ui_layout_part_content.eo
+++ b/src/lib/elementary/efl_ui_layout_part_content.eo
@@ -1,4 +1,4 @@
-class @beta Efl.Ui.Layout_Part_Content extends Efl.Ui.Layout_Part implements 
Efl.Content
+class Efl.Ui.Layout_Part_Content extends Efl.Ui.Layout_Part implements 
Efl.Content
 {
[[Elementary layout internal part class]]
data: null;
diff --git a/src/lib/elementary/efl_ui_layout_part_table.eo 
b/src/lib/elementary/efl_ui_layout_part_table.eo
index 6730927065..6fe94f21b8 100644
--- a/src/lib/elementary/efl_ui_layout_part_table.eo
+++ b/src/lib/elementary/efl_ui_layout_part_table.eo
@@ -1,4 +1,4 @@
-class @beta Efl.Ui.Layout_Part_Table extends Efl.Object implements 
Efl.Pack_Table
+class Efl.Ui.Layout_Part_Table extends Efl.Object implements Efl.Pack_Table
 {
[[Represents a Table created as part of a layout.
 
diff --git a/src/lib/elementary/efl_ui_layout_part_text.eo 
b/src/lib/elementary/efl_ui_layout_part_text.eo
index a7442a7f45..0a092a251f 100644
--- a/src/lib/elementary/efl_ui_layout_part_text.eo
+++ b/src/lib/elementary/efl_ui_layout_part_text.eo
@@ -1,4 +1,4 @@
-class @beta Efl.Ui.Layout_Part_Text extends Efl.Ui.Layout_Part implements 
Efl.Text, Efl.Text_Markup,
+class Efl.Ui.Layout_Part_Text extends Efl.Ui.Layout_Part implements Efl.Text, 
Efl.Text_Markup,
Efl.Ui.L10n
 {
[[Elementary layout internal part class]]

-- 




[EGIT] [core/efl] master 03/23: ecore/signal: increase maximum signal throughput

2019-09-19 Thread Mike Blumenkrantz
cedric pushed a commit to branch master.

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

commit da5fcb8ea07f69f1348f0c2c86cc408cf5184e30
Author: Mike Blumenkrantz 
Date:   Thu Sep 19 14:52:23 2019 -0400

ecore/signal: increase maximum signal throughput

this adds 4 more signal handling fds and loops over them for reading/writing
signal info in order to handle more signals when the buffer of one (or more)
pipes is full

also update the unit test to verify that we are receiving all the events 
without
dropping any and bump the number of signals to 2000 since we should now be 
able to
handle that many

Reviewed-by: Cedric BAIL 
Differential Revision: https://phab.enlightenment.org/D10027
---
 src/lib/ecore/ecore_signal.c | 274 ---
 src/tests/ecore/ecore_test_job.c |  18 ++-
 2 files changed, 158 insertions(+), 134 deletions(-)

diff --git a/src/lib/ecore/ecore_signal.c b/src/lib/ecore/ecore_signal.c
index c3e5b0fda9..eebb692276 100644
--- a/src/lib/ecore/ecore_signal.c
+++ b/src/lib/ecore/ecore_signal.c
@@ -34,8 +34,10 @@ static void _ecore_signal_generic_free(void *data, void 
*event);
 
 typedef void (*Signal_Handler)(int sig, siginfo_t *si, void *foo);
 
-static int sig_pipe[2] = { -1, -1 }; // [0] == read, [1] == write
-static Eo *sig_pipe_handler = NULL;
+#define NUM_PIPES 5
+
+static int sig_pipe[NUM_PIPES][2] = {{ -1 }}; // [0] == read, [1] == write
+static Eo *sig_pipe_handler[NUM_PIPES] = {NULL};
 static Eina_Spinlock sig_pid_lock;
 static Eina_List *sig_pid_info_list = NULL;
 
@@ -48,114 +50,111 @@ typedef struct _Signal_Data
siginfo_t info;
 } Signal_Data;
 
-static Eina_Bool
+static void
 _ecore_signal_pipe_read(Eo *obj)
 {
Signal_Data sdata;
int ret;
 
-   if (pipe_dead) return EINA_TRUE;
-   ret = read(sig_pipe[0], &sdata, sizeof(sdata));
-   if (ret != sizeof(sdata)) return EINA_FALSE;
-   switch (sdata.sig)
+   if (pipe_dead) return;
+   for (unsigned int i = 0; i < NUM_PIPES; i++)
  {
-  case SIGPIPE:
-break;
-  case SIGALRM:
-break;
-  case SIGCHLD:
-_ecore_signal_waitpid(EINA_FALSE, sdata.info);
-break;
-  case SIGUSR1:
-  case SIGUSR2:
+while (1)
   {
- Ecore_Event_Signal_User *e = _ecore_event_signal_user_new();
- if (e)
-   {
-  if (sdata.sig == SIGUSR1) e->number = 1;
-  else e->number = 2;
-  e->data = sdata.info;
-  ecore_event_add(ECORE_EVENT_SIGNAL_USER, e,
-  _ecore_signal_generic_free, NULL);
-   }
- Eo *loop = efl_provider_find(obj, EFL_LOOP_CLASS);
- if (loop)
-   {
-  if (sdata.sig == SIGUSR1)
-efl_event_callback_call(loop, EFL_APP_EVENT_SIGNAL_USR1, 
NULL);
-  else
-efl_event_callback_call(loop, EFL_APP_EVENT_SIGNAL_USR2, 
NULL);
-   }
-  }
-break;
-  case SIGHUP:
-  {
- Ecore_Event_Signal_Hup *e = _ecore_event_signal_hup_new();
- if (e)
-   {
-  e->data = sdata.info;
-  ecore_event_add(ECORE_EVENT_SIGNAL_HUP, e,
-  _ecore_signal_generic_free, NULL);
-   }
- Eo *loop = efl_provider_find(obj, EFL_LOOP_CLASS);
- if (loop)
-   efl_event_callback_call(loop, EFL_APP_EVENT_SIGNAL_HUP, NULL);
-  }
-break;
-  case SIGQUIT:
-  case SIGINT:
-  case SIGTERM:
-  {
- Ecore_Event_Signal_Exit *e = _ecore_event_signal_exit_new();
- if (e)
-   {
-  if (sdata.sig == SIGQUIT) e->quit = 1;
-  else if (sdata.sig == SIGINT) e->interrupt = 1;
-  else e->terminate = 1;
-  e->data = sdata.info;
-  ecore_event_add(ECORE_EVENT_SIGNAL_EXIT, e,
-  _ecore_signal_generic_free, NULL);
-   }
- Eo *loop = efl_provider_find(obj, EFL_LOOP_CLASS);
- if (loop)
-   efl_event_callback_call(loop, EFL_LOOP_EVENT_QUIT, NULL);
-  }
-break;
-#ifdef SIGPWR
-  case SIGPWR:
-  {
- Ecore_Event_Signal_Power *e = _ecore_event_signal_power_new();
- if (e)
+ ret = read(sig_pipe[i][0], &sdata, sizeof(sdata));
+
+ /* read as many signals as we can, trying again if we get 
interrupted */
+ if ((ret != sizeof(sdata)) && (errno != EINTR)) break;
+ switch (sdata.sig)
{
-  e->data = sdata.info;
-  ecore_event_add(ECORE_EVENT_SIGNAL_POWER, e,
-  _ecore_signal_generic_free, NULL);
+

[EGIT] [core/efl] master 14/23: efl_ui_layout_part_table: implement missing API

2019-09-19 Thread Marcel Hollerbach
cedric pushed a commit to branch master.

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

commit bf12fe241ec04c81129faf9ccfa7438fa9a23062
Author: Marcel Hollerbach 
Date:   Wed Sep 18 14:59:44 2019 +0200

efl_ui_layout_part_table: implement missing API

setting of these properties does not work, as they are not available in
legacy, but edje is still creating legacy objects.

Reviewed-by: Cedric BAIL 
Differential Revision: https://phab.enlightenment.org/D10007
---
 src/lib/elementary/efl_ui_layout_pack.c| 18 ++
 src/lib/elementary/efl_ui_layout_part_table.eo |  6 +++---
 2 files changed, 21 insertions(+), 3 deletions(-)

diff --git a/src/lib/elementary/efl_ui_layout_pack.c 
b/src/lib/elementary/efl_ui_layout_pack.c
index 02ad407981..0e2743db01 100644
--- a/src/lib/elementary/efl_ui_layout_pack.c
+++ b/src/lib/elementary/efl_ui_layout_pack.c
@@ -447,5 +447,23 @@ 
_efl_ui_layout_part_table_efl_pack_table_table_rows_get(const Eo *obj EINA_UNUSE
return rows;
 }
 
+EOLIAN static void
+_efl_ui_layout_part_table_efl_pack_table_table_rows_set(Eo *obj EINA_UNUSED, 
Efl_Ui_Layout_Table_Data *pd EINA_UNUSED, int rows EINA_UNUSED)
+{
+   ERR("This API is currently not supported on table parts");
+}
+
+EOLIAN static void
+_efl_ui_layout_part_table_efl_pack_table_table_columns_set(Eo *obj 
EINA_UNUSED, Efl_Ui_Layout_Table_Data *pd EINA_UNUSED, int cols EINA_UNUSED)
+{
+   ERR("This API is currently not supported on table parts");
+}
+
+EOLIAN static void
+_efl_ui_layout_part_table_efl_pack_table_table_size_set(Eo *obj EINA_UNUSED, 
Efl_Ui_Layout_Table_Data *pd EINA_UNUSED, int cols EINA_UNUSED, int rows 
EINA_UNUSED)
+{
+   ERR("This API is currently not supported on table parts");
+}
+
 #include "efl_ui_layout_part_box.eo.c"
 #include "efl_ui_layout_part_table.eo.c"
diff --git a/src/lib/elementary/efl_ui_layout_part_table.eo 
b/src/lib/elementary/efl_ui_layout_part_table.eo
index 6fe94f21b8..cecd1fc2f3 100644
--- a/src/lib/elementary/efl_ui_layout_part_table.eo
+++ b/src/lib/elementary/efl_ui_layout_part_table.eo
@@ -21,8 +21,8 @@ class Efl.Ui.Layout_Part_Table extends Efl.Object implements 
Efl.Pack_Table
   Efl.Pack_Table.table_contents_get;
   Efl.Pack_Table.table_cell_column { get; set; }
   Efl.Pack_Table.table_cell_row { get; set; }
-  Efl.Pack_Table.table_size { get; }
-  Efl.Pack_Table.table_columns { get; }
-  Efl.Pack_Table.table_rows { get; }
+  Efl.Pack_Table.table_size { get; set; }
+  Efl.Pack_Table.table_columns { get; set; }
+  Efl.Pack_Table.table_rows { get; set; }
}
 }

-- 




[EGIT] [core/efl] master 20/23: efl: improve Efl.Boolean_Model test to enforce Eina_Value type too.

2019-09-19 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit 8128e3fea2af21b41ff420fc0fc2cd2045b72684
Author: Cedric Bail 
Date:   Wed Sep 18 19:30:17 2019 -0700

efl: improve Efl.Boolean_Model test to enforce Eina_Value type too.

Reviewed-by: Mike Blumenkrantz 
Differential Revision: https://phab.enlightenment.org/D10031
---
 src/tests/efl/efl_test_composite_model.c | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/tests/efl/efl_test_composite_model.c 
b/src/tests/efl/efl_test_composite_model.c
index d20bc1c017..5a7d3f21ab 100644
--- a/src/tests/efl/efl_test_composite_model.c
+++ b/src/tests/efl/efl_test_composite_model.c
@@ -43,7 +43,7 @@ _children_slice_get_then(void *data EINA_UNUSED,
 Eina_Value *p_int = NULL;
 Eina_Value *p_true = NULL;
 Eina_Value *p_false = NULL;
-int v_int = 0;
+int v_int = -1;
 Eina_Bool v_true = EINA_FALSE;
 Eina_Bool v_false = EINA_TRUE;
 
@@ -51,9 +51,9 @@ _children_slice_get_then(void *data EINA_UNUSED,
 p_true = efl_model_property_get(child, "test_p_true");
 p_false = efl_model_property_get(child, "test_p_false");
 
-eina_value_get(p_int, &v_int);
-eina_value_get(p_true, &v_true);
-eina_value_get(p_false, &v_false);
+eina_value_int_get(p_int, &v_int);
+eina_value_bool_get(p_true, &v_true);
+eina_value_bool_get(p_false, &v_false);
 
 fail_if(v_int != base_ints[i]);
 fail_if(v_true != EINA_TRUE);

-- 




[EGIT] [core/efl] master 21/23: efl_ui_position_manager: a way to announce new entities

2019-09-19 Thread Marcel Hollerbach
cedric pushed a commit to branch master.

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

commit fc935e99d936a3b1fd4a81232e493094bf5e5989
Author: Marcel Hollerbach 
Date:   Sun Sep 15 11:54:51 2019 +0200

efl_ui_position_manager: a way to announce new entities

there are situations where the entity is not ready yet when the initial
placing does happen. With this API you can tell the position manager
that the placing of the items can be reapplied at the entities are
availble now.

Differential Revision: https://phab.enlightenment.org/D9947
---
 .../elementary/efl_ui_position_manager_entity.eo   | 10 +
 src/lib/elementary/efl_ui_position_manager_grid.c  | 43 ++
 src/lib/elementary/efl_ui_position_manager_grid.eo |  1 +
 src/lib/elementary/efl_ui_position_manager_list.c  | 30 +++
 src/lib/elementary/efl_ui_position_manager_list.eo |  1 +
 5 files changed, 85 insertions(+)

diff --git a/src/lib/elementary/efl_ui_position_manager_entity.eo 
b/src/lib/elementary/efl_ui_position_manager_entity.eo
index d61c7c62d1..865d8f3180 100644
--- a/src/lib/elementary/efl_ui_position_manager_entity.eo
+++ b/src/lib/elementary/efl_ui_position_manager_entity.eo
@@ -91,6 +91,16 @@ interface @beta Efl.Ui.Position_Manager.Entity extends 
Efl.Ui.Layout_Orientable
   end_id : int; [[The last item that has a new size]]
 }
   }
+  entities_ready {
+[[The items from $start_id to $end_id now have their entities ready
+
+  The position manager will reapply the geometry to the elements if 
they are visible.
+]]
+params {
+  start_id : uint; [[The first item that is available]]
+  end_id : uint; [[The last item that is available]]
+}
+  }
   relative_item {
 [[Translates the $current_id, into a new id which is oriented in the 
$direction of $current_id.
   In case that there is no item, -1 is returned]]
diff --git a/src/lib/elementary/efl_ui_position_manager_grid.c 
b/src/lib/elementary/efl_ui_position_manager_grid.c
index fee0855ec6..206bc73221 100644
--- a/src/lib/elementary/efl_ui_position_manager_grid.c
+++ b/src/lib/elementary/efl_ui_position_manager_grid.c
@@ -19,6 +19,7 @@ typedef struct {
Eina_Vector2 scroll_position;
Efl_Ui_Layout_Orientation dir;
Vis_Segment prev_run;
+   unsigned int prev_consumed_space;
Eina_Size2D max_min_size;
Eina_Size2D last_viewport_size;
Eina_Size2D prev_min_size;
@@ -491,6 +492,7 @@ _reposition_content(Eo *obj EINA_UNUSED, 
Efl_Ui_Position_Manager_Grid_Data *pd)
  {
 ev.start_id = pd->prev_run.start_id = cur.start_id;
 ev.end_id = pd->prev_run.end_id = cur.end_id;
+pd->prev_consumed_space = consumed_space;
 efl_event_callback_call(obj, 
EFL_UI_POSITION_MANAGER_ENTITY_EVENT_VISIBLE_RANGE_CHANGED, &ev);
  }
 }
@@ -809,5 +811,46 @@ _efl_ui_position_manager_grid_efl_object_finalize(Eo *obj, 
Efl_Ui_Position_Manag
return obj;
 }
 
+EOLIAN static void
+_efl_ui_position_manager_grid_efl_ui_position_manager_entity_entities_ready(Eo 
*obj, Efl_Ui_Position_Manager_Grid_Data *pd, unsigned int start_id, unsigned 
int end_id)
+{
+   Eina_Size2D space_size;
+   int relevant_space_size;
+   Item_Position_Context ctx;
+
+   if (end_id < pd->prev_run.start_id || start_id > pd->prev_run.end_id)
+ return;
+
+   space_size.w = (MAX(pd->last_viewport_size.w - pd->viewport.w, 
0))*pd->scroll_position.x;
+   space_size.h = (MAX(pd->last_viewport_size.h - pd->viewport.h, 
0))*pd->scroll_position.y;
+
+   if (pd->dir == EFL_UI_LAYOUT_ORIENTATION_VERTICAL)
+ {
+relevant_space_size = space_size.h;
+ }
+   else
+ {
+relevant_space_size = space_size.w;
+ }
+
+   ctx.new = pd->prev_run;
+   ctx.consumed_space = pd->prev_consumed_space;
+   ctx.relevant_space_size = relevant_space_size;
+   ctx.floating_group = NULL;
+   ctx.placed_item = NULL;
+
+   if (pd->dir == EFL_UI_LAYOUT_ORIENTATION_VERTICAL)
+ {
+_position_items_vertical(obj, pd, &ctx);
+_position_group_items(obj, pd, &ctx);
+ }
+   else
+ {
+_position_items_horizontal(obj, pd, &ctx);
+_position_group_items(obj, pd, &ctx);
+ }
+}
+
+
 
 #include "efl_ui_position_manager_grid.eo.c"
diff --git a/src/lib/elementary/efl_ui_position_manager_grid.eo 
b/src/lib/elementary/efl_ui_position_manager_grid.eo
index 91deee348e..35ebeb5fc1 100644
--- a/src/lib/elementary/efl_ui_position_manager_grid.eo
+++ b/src/lib/elementary/efl_ui_position_manager_grid.eo
@@ -15,6 +15,7 @@ class @beta Efl.Ui.Position_Manager.Grid extends Efl.Object
   Efl.Ui.Position_Manager.Entity.position_single_item;
   Efl.Ui.Position_Manager.Entity.item_size_changed;
   Efl.Ui.Position_Manager.Entity.relative_item;
+  Efl.Ui.Position_Manager.Entity.entities_ready;
   Efl.Ui.Layout_Orientable.orientation {set; get;}
   Efl.Ui.Po

[EGIT] [core/efl] master 12/23: efl_ui_widget_*: declare parts stable

2019-09-19 Thread Marcel Hollerbach
cedric pushed a commit to branch master.

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

commit fc22a94d26abbce8f166893ec1436404190670f0
Author: Marcel Hollerbach 
Date:   Tue Sep 17 15:59:07 2019 +0200

efl_ui_widget_*: declare parts stable

Reviewed-by: Cedric BAIL 
Differential Revision: https://phab.enlightenment.org/D9994
---
 src/lib/elementary/efl_ui_widget.eo | 4 ++--
 src/lib/elementary/efl_ui_widget_part.eo| 2 +-
 src/lib/elementary/efl_ui_widget_part_bg.eo | 2 +-
 src/lib/elementary/efl_ui_widget_part_shadow.eo | 2 +-
 4 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/lib/elementary/efl_ui_widget.eo 
b/src/lib/elementary/efl_ui_widget.eo
index fe7a032324..2848ef0db5 100644
--- a/src/lib/elementary/efl_ui_widget.eo
+++ b/src/lib/elementary/efl_ui_widget.eo
@@ -397,8 +397,8 @@ abstract Efl.Ui.Widget extends Efl.Canvas.Group implements 
Efl.Access.Object,
   }
}
parts {
-  shadow @beta: Efl.Ui.Widget_Part_Shadow;
-  background @beta: Efl.Ui.Widget_Part_Bg;
+  shadow : Efl.Ui.Widget_Part_Shadow;
+  background : Efl.Ui.Widget_Part_Bg;
}
implements {
   class.constructor;
diff --git a/src/lib/elementary/efl_ui_widget_part.eo 
b/src/lib/elementary/efl_ui_widget_part.eo
index e629fdcfa2..badf49c17b 100644
--- a/src/lib/elementary/efl_ui_widget_part.eo
+++ b/src/lib/elementary/efl_ui_widget_part.eo
@@ -1,4 +1,4 @@
-class @beta Efl.Ui.Widget_Part extends Efl.Object implements 
Efl.Ui.Property_Bind
+class Efl.Ui.Widget_Part extends Efl.Object implements Efl.Ui.Property_Bind
 {
[[This is the base class for all "Part" handles in Efl.Ui widgets.
 
diff --git a/src/lib/elementary/efl_ui_widget_part_bg.eo 
b/src/lib/elementary/efl_ui_widget_part_bg.eo
index d19b8574e2..9aec9e44a1 100644
--- a/src/lib/elementary/efl_ui_widget_part_bg.eo
+++ b/src/lib/elementary/efl_ui_widget_part_bg.eo
@@ -1,4 +1,4 @@
-class @beta Efl.Ui.Widget_Part_Bg extends Efl.Ui.Widget_Part implements 
Efl.File, Efl.Gfx.Color, Efl.Gfx.Image composite Efl.Gfx.Image
+class Efl.Ui.Widget_Part_Bg extends Efl.Ui.Widget_Part implements Efl.File, 
Efl.Gfx.Color, Efl.Gfx.Image composites Efl.Gfx.Image
 {
[[Elementary widget internal part background class
 
diff --git a/src/lib/elementary/efl_ui_widget_part_shadow.eo 
b/src/lib/elementary/efl_ui_widget_part_shadow.eo
index 77002c0b41..0dc4c7d127 100644
--- a/src/lib/elementary/efl_ui_widget_part_shadow.eo
+++ b/src/lib/elementary/efl_ui_widget_part_shadow.eo
@@ -1,4 +1,4 @@
-class @beta Efl.Ui.Widget_Part_Shadow extends Efl.Ui.Widget_Part implements 
Efl.Gfx.Color,
+class Efl.Ui.Widget_Part_Shadow extends Efl.Ui.Widget_Part implements 
Efl.Gfx.Color,
  Efl.Gfx.Blur, Efl.Gfx.Filter
 {
[[A drop-shadow or glow effect around any widget.

-- 




[EGIT] [core/efl] master 10/23: efl_ui_layout_part_table: implement Efl.Pack.pack API

2019-09-19 Thread Marcel Hollerbach
cedric pushed a commit to branch master.

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

commit aecb3a4bb27ec9a83e5f69aea323743bc5d57360
Author: Marcel Hollerbach 
Date:   Tue Sep 17 16:25:37 2019 +0200

efl_ui_layout_part_table: implement Efl.Pack.pack API

this api was missing, the pack method here is behaving in the same
manner as Efl.Ui.Table.

Reviewed-by: Cedric BAIL 
Differential Revision: https://phab.enlightenment.org/D9992
---
 src/lib/elementary/efl_ui_layout_pack.c| 42 ++
 src/lib/elementary/efl_ui_layout_part_table.eo |  1 +
 2 files changed, 43 insertions(+)

diff --git a/src/lib/elementary/efl_ui_layout_pack.c 
b/src/lib/elementary/efl_ui_layout_pack.c
index 2c79d66266..646ef3e483 100644
--- a/src/lib/elementary/efl_ui_layout_pack.c
+++ b/src/lib/elementary/efl_ui_layout_pack.c
@@ -274,6 +274,48 @@ _efl_ui_layout_part_table_efl_pack_unpack(Eo *obj 
EINA_UNUSED, Efl_Ui_Layout_Tab
return _efl_ui_layout_table_unpack(pd->obj, pd->sd, pd->part, subobj) == 
subobj;
 }
 
+
+EOLIAN static Eina_Bool
+_efl_ui_layout_part_table_efl_pack_pack(Eo *obj, Efl_Ui_Layout_Table_Data *pd, 
Efl_Gfx_Entity *subobj)
+{
+   int last_col, last_row;
+   int req_cols, req_rows;
+   Eina_Iterator *iter;
+   Eo *pack, *element;
+
+   pack = (Eo *) edje_object_part_object_get(pd->obj, pd->part);
+
+
+   //first lookup what the most lower / right element is
+   iter = evas_object_table_iterator_new(pack);
+   EINA_ITERATOR_FOREACH(iter, element)
+ {
+unsigned short item_col, item_row;
+
+evas_object_table_pack_get(pack, element, &item_col, &item_row, NULL, 
NULL);
+if (item_row > last_row ||
+(item_row == last_row && item_col > last_col))
+  {
+ last_col = item_col;
+ last_row = item_row;
+  }
+ }
+   eina_iterator_free(iter);
+
+   //now add the new element right to it, or do a linebreak and place
+   //that element in the next column on the first element
+   evas_object_table_col_row_size_get(pack, &req_cols, &req_rows);
+   last_col ++;
+   if (last_col > req_cols)
+ {
+last_row ++;
+last_col = 0;
+ }
+
+   return _efl_ui_layout_table_pack(obj, pd->sd, pd->part, subobj, last_col, 
last_row, 1, 1);
+}
+
+
 EOLIAN static Eina_Bool
 _efl_ui_layout_part_table_efl_pack_table_pack_table(Eo *obj EINA_UNUSED, 
Efl_Ui_Layout_Table_Data *pd, Efl_Gfx_Entity *subobj, int col, int row, int 
colspan, int rowspan)
 {
diff --git a/src/lib/elementary/efl_ui_layout_part_table.eo 
b/src/lib/elementary/efl_ui_layout_part_table.eo
index eca9fa43f9..9c9482cf1e 100644
--- a/src/lib/elementary/efl_ui_layout_part_table.eo
+++ b/src/lib/elementary/efl_ui_layout_part_table.eo
@@ -21,6 +21,7 @@ class @beta Efl.Ui.Layout_Part_Table extends Efl.Object 
implements Efl.Pack_Tabl
   Efl.Object.destructor;
   Efl.Container.content_iterate;
   Efl.Container.content_count;
+  Efl.Pack.pack;
   Efl.Pack.pack_clear;
   Efl.Pack.unpack_all;
   Efl.Pack.unpack;

-- 




[EGIT] [core/efl] master 05/23: eo: custom created legacy events should be unfreezable

2019-09-19 Thread Marcel Hollerbach
cedric pushed a commit to branch master.

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

commit 21fe2bdc411cba7443d26c17fbb4c819d3edc916
Author: Marcel Hollerbach 
Date:   Thu Sep 19 09:27:59 2019 +0200

eo: custom created legacy events should be unfreezable

a while back we have moved event submission from custom lists to eo
events. We also merged together the freeze and thaw functions, however,
this brought up one bug. smart_callbacks and the likes (those that used
custom lists before) are not effected by the legacy freeze and thaw
functions. This means, we should declare these legacy wrapper objects
unfreezable in order to obtain this behaviour.

Reviewed-by: Cedric BAIL 
Reviewed-by: SangHyeon Jade Lee 
Differential Revision: https://phab.enlightenment.org/D10016
---
 src/lib/eo/eo_base_class.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/lib/eo/eo_base_class.c b/src/lib/eo/eo_base_class.c
index d9edf15a90..782a57f52e 100644
--- a/src/lib/eo/eo_base_class.c
+++ b/src/lib/eo/eo_base_class.c
@@ -1132,6 +1132,7 @@ efl_object_legacy_only_event_description_get(const char 
*_event_name)
 event_desc = calloc(1, sizeof(Efl_Event_Description));
 event_desc->name = event_name;
 event_desc->legacy_is = EINA_TRUE;
+event_desc->unfreezable = EINA_TRUE;
 eina_hash_add(_legacy_events_hash, event_name, event_desc);
  }
else

-- 




[EGIT] [core/efl] master 07/23: elm_test_widget_focus: cleanup callbacks correctly

2019-09-19 Thread Marcel Hollerbach
cedric pushed a commit to branch master.

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

commit 6960751c4580af9e902cd7719c1acafab4ce7bc5
Author: Marcel Hollerbach 
Date:   Thu Sep 19 14:43:31 2019 +0200

elm_test_widget_focus: cleanup callbacks correctly

we need to delete the callback here, otherwise the objects are deleted
later on, which:
- changes focus, which leads to
- callbacks executed with stacked addresses from a dead function

this fixes a testsuite failure on the release build.

Reviewed-by: Mike Blumenkrantz 
Reviewed-by: Stefan Schmidt 
Differential Revision: https://phab.enlightenment.org/D10020
---
 src/tests/elementary/elm_test_widget_focus.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/tests/elementary/elm_test_widget_focus.c 
b/src/tests/elementary/elm_test_widget_focus.c
index d41889b86e..fb2a5a2678 100644
--- a/src/tests/elementary/elm_test_widget_focus.c
+++ b/src/tests/elementary/elm_test_widget_focus.c
@@ -201,6 +201,8 @@ EFL_START_TEST(elm_test_widget_focus_simple_widget)
  ck_assert_int_eq(flag_unfocused, EINA_TRUE);
  ck_assert_int_eq(elm_object_focus_get(resettor), EINA_TRUE);
  ck_assert_int_eq(elm_object_focus_get(o), EINA_FALSE);
+ evas_object_smart_callback_del_full(o, "focused", _eventing_test, 
&flag_focused);
+ evas_object_smart_callback_del_full(o, "unfocused", _eventing_test, 
&flag_unfocused);
   }
 
eina_hash_free(map);

-- 




[EGIT] [core/efl] master 23/23: elementary: Efl.Ui.Widget_Factory bind widget property before finalizing the widget.

2019-09-19 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit 3e9f619b1d3fa3c66641292c11992e5730307b13
Author: Cedric BAIL 
Date:   Fri Aug 23 14:29:55 2019 -0700

elementary: Efl.Ui.Widget_Factory bind widget property before finalizing 
the widget.

In the same vain as previous patch this will initialize more of the widget 
during its
creation and reduce unecessary recalc.

Reviewed-by: Marcel Hollerbach 
Differential Revision: https://phab.enlightenment.org/D9949
---
 src/lib/elementary/efl_ui_widget_factory.c | 46 ++
 1 file changed, 22 insertions(+), 24 deletions(-)

diff --git a/src/lib/elementary/efl_ui_widget_factory.c 
b/src/lib/elementary/efl_ui_widget_factory.c
index c65bda5847..4b1523dd01 100644
--- a/src/lib/elementary/efl_ui_widget_factory.c
+++ b/src/lib/elementary/efl_ui_widget_factory.c
@@ -69,16 +69,30 @@ _efl_ui_widget_factory_item_class_get(const Eo *obj 
EINA_UNUSED,
 }
 
 static void
-_efl_ui_widget_factory_efl_ui_factory_building(const Eo *obj EINA_UNUSED, 
Efl_Ui_Widget_Factory_Data *pd EINA_UNUSED, Efl_Gfx_Entity *ui_view)
+_efl_ui_widget_factory_efl_ui_factory_building(const Eo *factory EINA_UNUSED, 
Efl_Ui_Widget_Factory_Data *pd, Efl_Gfx_Entity *ui_view)
 {
const Efl_Model *model;
Eina_Value *property, *width, *height;
+   Efl_Ui_Bind_Part_Data *bpd;
+   Eina_Iterator *it;
char *style;
 
-   if (!pd->style) return ;
-
model = efl_ui_view_model_get(ui_view);
 
+   // Bind all property before the object is finalize
+   it = eina_hash_iterator_data_new(pd->parts);
+   EINA_ITERATOR_FOREACH(it, bpd)
+ {
+Efl_Ui_Property_Bind_Data *bppd;
+Eina_List *l;
+
+EINA_LIST_FOREACH(bpd->properties, l, bppd)
+  efl_ui_property_bind(efl_part(ui_view, bpd->part),
+   bppd->part_property,
+   bppd->model_property);
+ }
+   eina_iterator_free(it);
+
// Fetch min size from model if available to avoid recalculcating it
width = efl_model_property_get(model, "self.width");
height = efl_model_property_get(model, "self.height");
@@ -96,6 +110,8 @@ _efl_ui_widget_factory_efl_ui_factory_building(const Eo *obj 
EINA_UNUSED, Efl_Ui
eina_value_free(height);
 
// As we have already waited for the property to be ready, we should get 
the right style now
+   if (!pd->style) return ;
+
property = efl_model_property_get(model, pd->style);
if (!property) return ;
 
@@ -109,31 +125,13 @@ _efl_ui_widget_factory_efl_ui_factory_building(const Eo 
*obj EINA_UNUSED, Efl_Ui
 static Efl_Ui_Widget *
 _efl_ui_widget_create(const Efl_Ui_Factory *factory,
   const Efl_Class *klass, Eo *parent,
-  Efl_Model *model,
-  const Eina_Hash *parts)
+  Efl_Model *model)
 {
-   Efl_Ui_Bind_Part_Data *bpd;
-   Eina_Iterator *it;
Efl_Ui_Widget *w;
 
w = efl_add(klass, parent,
efl_ui_view_model_set(efl_added, model),
efl_ui_factory_building(factory, efl_added));
-   if (!parts) return w;
-
-   it = eina_hash_iterator_data_new(parts);
-   EINA_ITERATOR_FOREACH(it, bpd)
- {
-Efl_Ui_Property_Bind_Data *bppd;
-Eina_List *l;
-
-EINA_LIST_FOREACH(bpd->properties, l, bppd)
-  efl_ui_property_bind(efl_part(w, bpd->part),
-   bppd->part_property,
-   bppd->model_property);
- }
-   eina_iterator_free(it);
-
return w;
 }
 
@@ -143,7 +141,7 @@ _efl_ui_widget_factory_create_then(Eo *model, void *data, 
const Eina_Value v EIN
Efl_Ui_Widget_Factory_Request *r = data;
Efl_Ui_Widget *w;
 
-   w = _efl_ui_widget_create(r->factory, r->pd->klass, r->parent, model, 
r->pd->parts);
+   w = _efl_ui_widget_create(r->factory, r->pd->klass, r->parent, model);
if (!w) return eina_value_error_init(ENOMEM);
return eina_value_object_init(w);
 }
@@ -185,7 +183,7 @@ _efl_ui_widget_factory_efl_ui_factory_create(Eo *obj, 
Efl_Ui_Widget_Factory_Data
 
 EINA_ITERATOR_FOREACH(models, model)
   {
- w = _efl_ui_widget_create(obj, pd->klass, parent, model, 
pd->parts);
+ w = _efl_ui_widget_create(obj, pd->klass, parent, model);
 
  if (!w) return efl_loop_future_rejected(obj, ENOMEM);
  eina_value_array_append(&r, w);

-- 




[EGIT] [core/efl] master 09/23: efl_ui_widget_part: implement all the missing API

2019-09-19 Thread Marcel Hollerbach
cedric pushed a commit to branch master.

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

commit ccdec4ba6885bff7f5d991f3ca2122f84d6dd332
Author: Marcel Hollerbach 
Date:   Tue Sep 17 15:51:54 2019 +0200

efl_ui_widget_part: implement all the missing API

Efl.Color and Efl.File cannot be done due to composition. Efl.Gfx.Image
can, so we can solve this via composition, this also resolves all the
other cases for Efl.Gfx.Image.

Reviewed-by: Mike Blumenkrantz 
Differential Revision: https://phab.enlightenment.org/D9991
---
 src/lib/elementary/efl_ui_widget.c  | 15 +--
 src/lib/elementary/efl_ui_widget_part_bg.eo |  4 ++--
 2 files changed, 7 insertions(+), 12 deletions(-)

diff --git a/src/lib/elementary/efl_ui_widget.c 
b/src/lib/elementary/efl_ui_widget.c
index 88eae6ef78..5168dbc793 100644
--- a/src/lib/elementary/efl_ui_widget.c
+++ b/src/lib/elementary/efl_ui_widget.c
@@ -5759,22 +5759,17 @@ _efl_ui_widget_part_bg_efl_gfx_color_color_get(const Eo 
*obj, void *pd EINA_UNUS
efl_gfx_color_get(bg_obj, r, g, b, a);
 }
 
-EOLIAN static void
-_efl_ui_widget_part_bg_efl_gfx_image_scale_method_set(Eo *obj, void *pd 
EINA_UNUSED, Efl_Gfx_Image_Scale_Method scale_type)
+EOLIAN static Efl_Object*
+_efl_ui_widget_part_bg_efl_object_finalize(Eo *obj, void *pd EINA_UNUSED)
 {
Evas_Object *bg_obj = efl_ui_widget_part_bg_get(obj);
 
-   efl_gfx_image_scale_method_set(bg_obj, scale_type);
-}
+   efl_composite_attach(obj, bg_obj);
 
-EOLIAN static Efl_Gfx_Image_Scale_Method
-_efl_ui_widget_part_bg_efl_gfx_image_scale_method_get(const Eo *obj, void *pd 
EINA_UNUSED)
-{
-   Evas_Object *bg_obj = efl_ui_widget_part_bg_get(obj);
-
-   return efl_gfx_image_scale_method_get(bg_obj);
+   return efl_finalize(efl_super(obj, EFL_UI_WIDGET_PART_BG_CLASS));
 }
 
+
 typedef struct _Efl_Ui_Property_Bound Efl_Ui_Property_Bound;
 struct _Efl_Ui_Property_Bound
 {
diff --git a/src/lib/elementary/efl_ui_widget_part_bg.eo 
b/src/lib/elementary/efl_ui_widget_part_bg.eo
index 8e0612ec87..d19b8574e2 100644
--- a/src/lib/elementary/efl_ui_widget_part_bg.eo
+++ b/src/lib/elementary/efl_ui_widget_part_bg.eo
@@ -1,4 +1,4 @@
-class @beta Efl.Ui.Widget_Part_Bg extends Efl.Ui.Widget_Part implements 
Efl.File, Efl.Gfx.Color, Efl.Gfx.Image
+class @beta Efl.Ui.Widget_Part_Bg extends Efl.Ui.Widget_Part implements 
Efl.File, Efl.Gfx.Color, Efl.Gfx.Image composite Efl.Gfx.Image
 {
[[Elementary widget internal part background class
 
@@ -9,12 +9,12 @@ class @beta Efl.Ui.Widget_Part_Bg extends Efl.Ui.Widget_Part 
implements Efl.File
]]
data: null;
implements {
+  Efl.Object.finalize;
   Efl.File.file { get; set; }
   Efl.File.key { get; set; }
   Efl.File.mmap { get; set; }
   Efl.File.load;
   Efl.File.unload;
   Efl.Gfx.Color.color { set; get; }
-  Efl.Gfx.Image.scale_method { get; set; }
}
 }

-- 




[EGIT] [core/efl] master 08/23: efl_test_multi_selectable: test for the correct event

2019-09-19 Thread Marcel Hollerbach
cedric pushed a commit to branch master.

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

commit 422154c0de048da021f3dd1909802b1529c98708
Author: Marcel Hollerbach 
Date:   Wed Sep 18 17:42:28 2019 +0200

efl_test_multi_selectable: test for the correct event

EFL_UI_EVENT_ITEM_SELECTED / UNSELECTED is the wrong event here. We
should check of the selection changed event. ITEM_SELECTED is the legacy
event. this was not found based on the fact that we test for this event
to NOT be executed.

Reviewed-by: Cedric BAIL 
Differential Revision: https://phab.enlightenment.org/D10011
---
 .../elementary/spec/efl_test_multi_selectable.c| 32 ++
 1 file changed, 9 insertions(+), 23 deletions(-)

diff --git a/src/tests/elementary/spec/efl_test_multi_selectable.c 
b/src/tests/elementary/spec/efl_test_multi_selectable.c
index 770c10e5bb..a2606a13b8 100644
--- a/src/tests/elementary/spec/efl_test_multi_selectable.c
+++ b/src/tests/elementary/spec/efl_test_multi_selectable.c
@@ -17,15 +17,6 @@
 
spec-meta-end */
 
-static void
-_set_pointer_quit(void *data, const Efl_Event *ev)
-{
-   Efl_Ui_Item **b = data;
-
-   ck_assert_ptr_eq(*b, NULL);
-   *b = ev->info;
-}
-
 static void
 _iterator_to_array(Eina_Array **arr, Eina_Iterator *iter)
 {
@@ -137,31 +128,26 @@ EFL_END_TEST
 
 EFL_START_TEST(test_none_select)
 {
-   Efl_Ui_Item *selected = NULL;
-   Efl_Ui_Item *unselected = NULL;
Eina_Array *arr_selected;
+   int c = 0;
 
efl_ui_select_mode_set(widget, EFL_UI_SELECT_MODE_NONE);
-   efl_event_callback_add(widget, EFL_UI_EVENT_ITEM_SELECTED, 
_set_pointer_quit, &selected);
-   efl_event_callback_add(widget, EFL_UI_EVENT_ITEM_UNSELECTED, 
_set_pointer_quit, &unselected);
+   efl_event_callback_add(widget, 
EFL_UI_SINGLE_SELECTABLE_EVENT_SELECTION_CHANGED, (void*) 
event_callback_single_call_int_data, &c);
+   efl_event_callback_add(widget, 
EFL_UI_SINGLE_SELECTABLE_EVENT_SELECTION_CHANGED, 
event_callback_that_quits_the_main_loop_when_called, NULL);
 
efl_ui_selectable_selected_set(efl_pack_content_get(widget, 0), EINA_TRUE);
-   ck_assert_ptr_eq(selected, NULL);
-   ck_assert_ptr_eq(unselected, NULL);
-   selected = NULL;
-   unselected = NULL;
+   get_me_to_those_events(widget);
+   ck_assert_int_eq(c, 0);
efl_ui_selectable_selected_set(efl_pack_content_get(widget, 2), EINA_TRUE);
-   ck_assert_ptr_eq(selected, NULL);
-   ck_assert_ptr_eq(unselected, NULL);
-   selected = NULL;
-   unselected = NULL;
+   get_me_to_those_events(widget);
+   ck_assert_int_eq(c, 0);

ck_assert_int_eq(efl_ui_selectable_selected_get(efl_pack_content_get(widget, 
0)), EINA_FALSE);

ck_assert_int_eq(efl_ui_selectable_selected_get(efl_pack_content_get(widget, 
2)), EINA_FALSE);
ck_assert_ptr_eq(efl_ui_single_selectable_last_selected_get(widget), NULL);
_iterator_to_array(&arr_selected, efl_ui_selected_items_get(widget));
ck_assert_int_eq(eina_array_count(arr_selected), 0);
-   efl_event_callback_del(widget, EFL_UI_EVENT_ITEM_SELECTED, 
_set_pointer_quit, &selected);
-   efl_event_callback_del(widget, EFL_UI_EVENT_ITEM_UNSELECTED, 
_set_pointer_quit, &unselected);
+   efl_event_callback_del(widget, 
EFL_UI_SINGLE_SELECTABLE_EVENT_SELECTION_CHANGED, (void*) 
event_callback_single_call_int_data, &c);
+   efl_event_callback_del(widget, 
EFL_UI_SINGLE_SELECTABLE_EVENT_SELECTION_CHANGED, 
event_callback_that_quits_the_main_loop_when_called, NULL);
 }
 EFL_END_TEST
 

-- 




[EGIT] [core/efl] master 06/23: efl_ui_collection: fix null pointer dereferences

2019-09-19 Thread Yeongjong Lee
cedric pushed a commit to branch master.

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

commit e06e03f2200c1ed33a46369c01f3c6ca311f37e8
Author: Yeongjong Lee 
Date:   Tue Sep 17 09:15:05 2019 +

efl_ui_collection: fix null pointer dereferences

This will fix Coverity issue.

Reviewed-by: Mike Blumenkrantz 
Differential Revision: https://phab.enlightenment.org/D9986
---
 src/lib/elementary/efl_ui_collection.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/lib/elementary/efl_ui_collection.c 
b/src/lib/elementary/efl_ui_collection.c
index 1763b65195..718f5b120e 100644
--- a/src/lib/elementary/efl_ui_collection.c
+++ b/src/lib/elementary/efl_ui_collection.c
@@ -960,6 +960,7 @@ 
_efl_ui_collection_efl_ui_widget_focus_manager_focus_manager_create(Eo *obj, Efl
Eo *man = efl_add(EFL_UI_COLLECTION_FOCUS_MANAGER_CLASS, obj,
  efl_ui_focus_manager_root_set(efl_added, root));
Efl_Ui_Collection_Focus_Manager_Data *fm_pd = efl_data_scope_safe_get(man, 
EFL_UI_COLLECTION_FOCUS_MANAGER_CLASS);
+   EINA_SAFETY_ON_NULL_RETURN_VAL(fm_pd, NULL);
fm_pd->collection = obj;
return man;
 }

-- 




[EGIT] [core/efl] master 19/23: ecore: remove unused piece of code.

2019-09-19 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit 77ab3523cdafe3e128d1fa911e93ede14fac96b6
Author: Cedric Bail 
Date:   Wed Sep 18 10:33:23 2019 -0700

ecore: remove unused piece of code.

Reviewed-by: Mike Blumenkrantz 
Differential Revision: https://phab.enlightenment.org/D10030
---
 src/lib/ecore/efl_model_accessor_view.c | 133 
 src/lib/ecore/efl_model_accessor_view_private.h |   5 -
 src/lib/ecore/meson.build   |   2 -
 3 files changed, 140 deletions(-)

diff --git a/src/lib/ecore/efl_model_accessor_view.c 
b/src/lib/ecore/efl_model_accessor_view.c
deleted file mode 100644
index a73e9459a5..00
--- a/src/lib/ecore/efl_model_accessor_view.c
+++ /dev/null
@@ -1,133 +0,0 @@
-#ifdef HAVE_CONFIG_H
-# include 
-#endif
-
-#include "Eina.h"
-#include "Eo.h"
-
-#include "efl_model_accessor_view_private.h"
-
-typedef struct _Efl_Model_Accessor
-{
-   Eina_Accessor  vtable;
-   Eina_Accessor  *real_accessor;
-   void   *pdata;
-   Efl_Model_Accessor_View_Constructor_Cb cb;
-   Eina_Array *children;
-} Efl_Model_Accessor;
-
-static void
-_efl_model_accessor_setup(Efl_Model_Accessor *acc,
-  Eina_Accessor* real_accessor,
-  Efl_Model_Accessor_View_Constructor_Cb ctor,
-  void* pdata);
-
-static Eina_Bool
-_efl_model_acessor_get_at(Efl_Model_Accessor *acc, unsigned int idx, void 
**data)
-{
-  void* eo;
-  Eo *p;
-  Eo *child;
-
-  if(eina_accessor_data_get(acc->real_accessor, idx, &eo))
-{
-  p = eo;
-  child = acc->cb(acc->pdata, p);
-  if(!acc->children)
-{
-   acc->children = eina_array_new(32);
-}
-  eina_array_push(acc->children, child);
-  *data = child;
-  return !!*data;
-}
-  else
-return EINA_FALSE;
-}
-
-static void *
-_efl_model_acessor_get_container(Efl_Model_Accessor *acc)
-{
-   return eina_accessor_container_get(acc->real_accessor);
-}
-
-static void
-_efl_model_acessor_free(Efl_Model_Accessor *acc)
-{
-   if (acc->real_accessor)
- {
-eina_accessor_free(acc->real_accessor);
-acc->real_accessor = NULL;
- }
-
-   if(acc->children)
- {
-unsigned i;
-Eina_Array_Iterator iterator;
-Eo* item;
-   
-EINA_ARRAY_ITER_NEXT(acc->children, i, item, iterator)
-  {
-efl_unref(item);
-  }
-eina_array_free(acc->children);
-acc->children = NULL;
- }
-
-   free(acc);
-}
-
-static Eina_Bool
-_efl_model_acessor_lock(Efl_Model_Accessor *acc)
-{
-   return eina_accessor_lock(acc->real_accessor);
-}
-
-static Eina_Bool
-_efl_model_acessor_unlock(Efl_Model_Accessor *acc)
-{
-   return eina_accessor_unlock(acc->real_accessor);
-}
-
-static Efl_Model_Accessor *
-_efl_model_acessor_clone(Efl_Model_Accessor *acc EINA_UNUSED)
-{
-   Efl_Model_Accessor* accessor = calloc(1, sizeof(Efl_Model_Accessor));
-   _efl_model_accessor_setup(accessor, eina_accessor_clone(acc->real_accessor),
- acc->cb, acc->pdata);
-   return accessor;
-}
-
-static void
-_efl_model_accessor_setup(Efl_Model_Accessor *acc,
-Eina_Accessor* real_accessor,
-Efl_Model_Accessor_View_Constructor_Cb ctor,
-void* pdata)
-{
-   acc->vtable.version = EINA_ACCESSOR_VERSION;
-   acc->vtable.get_at = FUNC_ACCESSOR_GET_AT(_efl_model_acessor_get_at);
-   acc->vtable.get_container = 
FUNC_ACCESSOR_GET_CONTAINER(_efl_model_acessor_get_container);
-   acc->vtable.free = FUNC_ACCESSOR_FREE(_efl_model_acessor_free);
-
-   acc->vtable.lock = FUNC_ACCESSOR_LOCK(_efl_model_acessor_lock);
-   acc->vtable.unlock = FUNC_ACCESSOR_LOCK(_efl_model_acessor_unlock);
-
-   acc->vtable.clone = FUNC_ACCESSOR_CLONE(_efl_model_acessor_clone);
-
-   EINA_MAGIC_SET(&acc->vtable, EINA_MAGIC_ACCESSOR);
-
-   acc->real_accessor = real_accessor;
-   acc->cb = ctor;
-   acc->pdata = pdata;
-}
-
-Eina_Accessor* efl_model_accessor_view_new(Eina_Accessor* accessor,
-   
Efl_Model_Accessor_View_Constructor_Cb ctor,
-   void* data)
-{
-   Efl_Model_Accessor* acc = calloc(1, sizeof(Efl_Model_Accessor));
-   _efl_model_accessor_setup(acc, accessor, ctor, data);
-   return &acc->vtable;
-}
-
-
diff --git a/src/lib/ecore/efl_model_accessor_view_private.h 
b/src/lib/ecore/efl_model_accessor_view_private.h
deleted file mode 100644
index c44f2ec3cb..00
--- a/src/lib/ecore/efl_model_accessor_view_private.h
+++ /dev/null
@@ -1,5 +0,0 @@
-
-typedef Eo*(*Efl_Model_Accessor_View_Constructor_Cb)(void* data, Eo* child);
-
-Eina_Accessor* efl_model_accessor_view_new(Eina_Accessor* accessor,
-   

[EGIT] [core/efl] master 04/23: efl_ui: further unbreak headers

2019-09-19 Thread Mike Blumenkrantz
cedric pushed a commit to branch master.

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

commit 393530b770da3cb5680ff2a3de5ee166310954cf
Author: Mike Blumenkrantz 
Date:   Thu Sep 19 10:54:47 2019 -0400

efl_ui: further unbreak headers

move more header includes around to fix building with Efl_Ui.h

ref T8228

Reviewed-by: Cedric BAIL 
Differential Revision: https://phab.enlightenment.org/D10022
---
 src/lib/elementary/Efl_Ui.h   | 12 +---
 src/lib/elementary/efl_ui_list_view_private.h |  1 +
 src/lib/elementary/elm_priv.h | 10 +-
 3 files changed, 11 insertions(+), 12 deletions(-)

diff --git a/src/lib/elementary/Efl_Ui.h b/src/lib/elementary/Efl_Ui.h
index f9b3dee410..e5b5b6b00b 100644
--- a/src/lib/elementary/Efl_Ui.h
+++ b/src/lib/elementary/Efl_Ui.h
@@ -327,28 +327,18 @@ typedef Eo Efl_Ui_Spotlight_Indicator;
 # include "efl_ui_list_view_types.eot.h"
 # include 
 # include 
-# include 
-# include 
-# include 
 # include 
-# include 
-# include 
-# include 
-# include 
+
 
 # include 
 # include 
 # include 
 
-# include 
 # include 
-# include 
 # include 
 # include 
 # include 
-# include 
 
-# include 
 # include 
 # include 
 # include 
diff --git a/src/lib/elementary/efl_ui_list_view_private.h 
b/src/lib/elementary/efl_ui_list_view_private.h
index 6b1c632d60..2443cf4438 100644
--- a/src/lib/elementary/efl_ui_list_view_private.h
+++ b/src/lib/elementary/efl_ui_list_view_private.h
@@ -7,6 +7,7 @@
 
 #include 
 #include "efl_ui_list_view_relayout.eo.h"
+#include "efl_ui_list_view_pan.eo.h"
 #include "elm_priv.h"
 
 typedef struct _Efl_Ui_List_View_Data Efl_Ui_List_View_Data;
diff --git a/src/lib/elementary/elm_priv.h b/src/lib/elementary/elm_priv.h
index 86f4066810..b94322c004 100644
--- a/src/lib/elementary/elm_priv.h
+++ b/src/lib/elementary/elm_priv.h
@@ -156,7 +156,15 @@
 
 
 #include "efl_ui_layout_legacy_eo.h"
-
+# include "efl_ui_size_model.eo.h"
+# include "efl_ui_homogeneous_model.eo.h"
+# include "efl_ui_exact_model.eo.h"
+# include "efl_ui_average_model.eo.h"
+
+# include "efl_ui_focus_parent_provider.eo.h"
+# include "efl_ui_focus_parent_provider_standard.eo.h"
+# include "efl_ui_selection_manager.eo.h"
+# include "efl_datetime_manager.eo.h"
 extern const char *_efl_model_property_itemw;
 extern const char *_efl_model_property_itemh;
 extern const char *_efl_model_property_selfw;

-- 




[EGIT] [core/efl] master 22/23: elementary: leverage sizing information from model if available to avoid unecessary calc.

2019-09-19 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit cc49c8ac64a358e8aa0bf8897abc6a5e4cf2c692
Author: Cedric BAIL 
Date:   Fri Aug 23 12:48:16 2019 -0700

elementary: leverage sizing information from model if available to avoid 
unecessary calc.

With the new Efl unified infrastructure, we do delay a lot of the 
computation to finalize,
by filling the object information before finalize we reduce unecessary 
computation.

Reviewed-by: Mike Blumenkrantz 
Differential Revision: https://phab.enlightenment.org/D9948
---
 src/lib/elementary/efl_ui_widget_factory.c | 19 ++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/src/lib/elementary/efl_ui_widget_factory.c 
b/src/lib/elementary/efl_ui_widget_factory.c
index c9d5759744..c65bda5847 100644
--- a/src/lib/elementary/efl_ui_widget_factory.c
+++ b/src/lib/elementary/efl_ui_widget_factory.c
@@ -72,12 +72,29 @@ static void
 _efl_ui_widget_factory_efl_ui_factory_building(const Eo *obj EINA_UNUSED, 
Efl_Ui_Widget_Factory_Data *pd EINA_UNUSED, Efl_Gfx_Entity *ui_view)
 {
const Efl_Model *model;
-   Eina_Value *property;
+   Eina_Value *property, *width, *height;
char *style;
 
if (!pd->style) return ;
 
model = efl_ui_view_model_get(ui_view);
+
+   // Fetch min size from model if available to avoid recalculcating it
+   width = efl_model_property_get(model, "self.width");
+   height = efl_model_property_get(model, "self.height");
+   if (eina_value_type_get(width) != EINA_VALUE_TYPE_ERROR &&
+   eina_value_type_get(height) != EINA_VALUE_TYPE_ERROR)
+ {
+Eina_Size2D s;
+
+if (!eina_value_int_convert(width, &s.w)) s.w = 0;
+if (!eina_value_int_convert(height, &s.h)) s.h = 0;
+
+efl_gfx_hint_size_min_set(ui_view, s);
+ }
+   eina_value_free(width);
+   eina_value_free(height);
+
// As we have already waited for the property to be ready, we should get 
the right style now
property = efl_model_property_get(model, pd->style);
if (!property) return ;

-- 




[EGIT] [core/efl] master 15/23: eina: add eina_mempool_iterator_new to slowly iterate every allocated pointer in a mempool.

2019-09-19 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit 9382bfc0bc1c6a5fb3aafce18094016b110036c0
Author: Cedric Bail 
Date:   Sat Sep 14 10:54:05 2019 -0700

eina: add eina_mempool_iterator_new to slowly iterate every allocated 
pointer in a mempool.

Reviewed-by: Mike Blumenkrantz 
Differential Revision: https://phab.enlightenment.org/D9941
---
 src/lib/eina/eina_inline_mempool.x | 13 +++
 src/lib/eina/eina_mempool.c|  1 +
 src/lib/eina/eina_mempool.h| 11 +++
 .../eina/mp/chained_pool/eina_chained_mempool.c| 94 --
 src/modules/eina/mp/one_big/eina_one_big.c | 82 ++-
 .../eina/mp/pass_through/eina_pass_through.c   |  3 +-
 src/tests/eina/eina_test_mempool.c | 18 -
 7 files changed, 209 insertions(+), 13 deletions(-)

diff --git a/src/lib/eina/eina_inline_mempool.x 
b/src/lib/eina/eina_inline_mempool.x
index d30364f097..0805c82f07 100644
--- a/src/lib/eina/eina_inline_mempool.x
+++ b/src/lib/eina/eina_inline_mempool.x
@@ -56,6 +56,11 @@ struct _Eina_Mempool_Backend
 * @see eina_mempool_from
 */
Eina_Bool (*from)(void *data, void *element);
+   /** Function to get an Eina_Iterator that will walk every allocated element
+* in the pool.
+* @use eina_mempool_iterator_new
+*/
+   Eina_Iterator *(*iterator)(void *data);
 };
 
 struct _Eina_Mempool_Backend_ABI1
@@ -74,6 +79,7 @@ struct _Eina_Mempool_Backend_ABI2
 {
void (*repack)(void *data, Eina_Mempool_Repack_Cb cb, void *cb_data);
Eina_Bool (*from)(void *data, void *element);
+   Eina_Iterator *(*iterator)(void *data);
 };
 
 struct _Eina_Mempool
@@ -116,6 +122,13 @@ eina_mempool_from(Eina_Mempool *mp, void *element)
return mp->backend2->from(mp->backend_data, element);
 }
 
+static inline Eina_Iterator *
+eina_mempool_iterator_new(Eina_Mempool *mp)
+{
+   if (!mp->backend2->iterator) return NULL;
+   return mp->backend2->iterator(mp->backend_data);
+}
+
 static inline unsigned int
 eina_mempool_alignof(unsigned int size)
 {
diff --git a/src/lib/eina/eina_mempool.c b/src/lib/eina/eina_mempool.c
index 56144a0f1c..51a29906f2 100644
--- a/src/lib/eina/eina_mempool.c
+++ b/src/lib/eina/eina_mempool.c
@@ -104,6 +104,7 @@ _new_va(const char *name,
 if (!mp->backend2) goto on_error;
 mp->backend2->repack = be->repack;
 mp->backend2->from = be->from;
+mp->backend2->iterator = be->iterator;
  }
 
mp->backend_data = mp->backend.init(context, options, args);
diff --git a/src/lib/eina/eina_mempool.h b/src/lib/eina/eina_mempool.h
index 606ecbaef9..d7759ce6c8 100644
--- a/src/lib/eina/eina_mempool.h
+++ b/src/lib/eina/eina_mempool.h
@@ -197,6 +197,17 @@ static inline Eina_Bool eina_mempool_from(Eina_Mempool 
*mp, void *element);
  */
 EAPI void   eina_mempool_statistics(Eina_Mempool *mp) 
EINA_ARG_NONNULL(1);
 
+/**
+ * @brief Provide an iterator to walk all allocated elements from a specified 
mempool.
+ *
+ * @param[in] mp The mempool
+ * @return @c NULL if it is not possible to iterate over the mempool, a valid 
iterator otherwise.
+ *
+ * @note This call is expected to be slow and should not be used in any 
performance critical area.
+ * @since 1.23
+ */
+static inline Eina_Iterator *eina_mempool_iterator_new(Eina_Mempool *mp);
+
 /**
  * @brief Registers the given memory pool backend.
  *
diff --git a/src/modules/eina/mp/chained_pool/eina_chained_mempool.c 
b/src/modules/eina/mp/chained_pool/eina_chained_mempool.c
index d44f0bf6cb..6d4facf74d 100644
--- a/src/modules/eina/mp/chained_pool/eina_chained_mempool.c
+++ b/src/modules/eina/mp/chained_pool/eina_chained_mempool.c
@@ -79,7 +79,7 @@ struct _Chained_Pool
EINA_INLIST;
EINA_RBTREE;
Eina_Trash *base;
-   int usage;
+   unsigned int usage;
 
unsigned char *last;
unsigned char *limit;
@@ -91,11 +91,11 @@ struct _Chained_Mempool
Eina_Inlist *first;
Eina_Rbtree *root;
const char *name;
-   int item_alloc;
-   int pool_size;
-   int alloc_size;
-   int group_size;
-   int usage;
+   unsigned int item_alloc;
+   unsigned int pool_size;
+   unsigned int alloc_size;
+   unsigned int group_size;
+   unsigned int usage;
Chained_Pool* first_fill; //All allocation will happen in this chain,unless 
it is filled
 #ifdef EINA_DEBUG_MALLOC
int minimal_size;
@@ -453,6 +453,85 @@ eina_chained_mempool_from(void *data, void *ptr)
return ret;
 }
 
+typedef struct _Eina_Iterator_Chained_Mempool Eina_Iterator_Chained_Mempool;
+struct _Eina_Iterator_Chained_Mempool
+{
+   Eina_Iterator iterator;
+
+   Eina_Iterator *walker;
+   Chained_Pool *current;
+   Chained_Mempool *pool;
+
+   unsigned int offset;
+};
+
+static Eina_Bool
+eina_mempool_iterator_next(Eina_Iterator_Chained_Mempool *it, void **data)
+{
+   if (!it->current)
+ {
+if (!eina_iterator_next(it->walker, (v

[EGIT] [core/enlightenment] master 02/04: pager/desks - stop using numeric N, M if no name is set - be blank

2019-09-19 Thread Carsten Haitzler
raster pushed a commit to branch master.

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

commit 11c0fb01bd891b95931c30dae1d253246064669c
Author: Carsten Haitzler (Rasterman) 
Date:   Thu Sep 19 18:33:17 2019 +0100

pager/desks - stop using numeric N,M if no name is set - be blank
---
 TODO |  5 ++---
 src/bin/e_desk.c | 12 ++--
 src/modules/conf_display/e_int_config_desk.c | 12 ++--
 3 files changed, 6 insertions(+), 23 deletions(-)

diff --git a/TODO b/TODO
index b9adc84e8..12be817cc 100644
--- a/TODO
+++ b/TODO
@@ -150,7 +150,6 @@ TODO:
 * pager: add "Set desktop name" on right click on desktop in pager
   * turn on desktop names when setting one here
 * pager: add "Set wallpaper" on right clikc on desktop in pager
-* pager: only show desktop names set and not 0,0 0,1 etc.
 * start: start menu could do with more featured content
   * like you see on windows for example (search and multiple columns etc.)
   * a touch screen android-style scrolling fullscreen app icon style
@@ -186,8 +185,8 @@ TODO:
   screen migrated to has diffrent res
 * randr: when losing a zone/screen, put windows in purgatory and then have
   purgatory screens available via pager to drag onto a current screen,
-  or the specific virtual desktops from purgator to be accessible evenm
-if not on a real screen/zone
+  or the specific virtual desktops from purgator to be accessible even
+  if not on a real screen/zone
 * device manager: new tool to browser /sys etc. and display nicely present
   hardware and device drivers and state
 * sys top: new tool displays cpu/mem "top" - evisum. we want it to be shipped
diff --git a/src/bin/e_desk.c b/src/bin/e_desk.c
index 1ea09647c..dd2b10738 100644
--- a/src/bin/e_desk.c
+++ b/src/bin/e_desk.c
@@ -118,11 +118,7 @@ e_desk_new(E_Zone *zone, int x, int y)
 break;
  }
 
-   if (!ok)
- {
-snprintf(name, sizeof(name), "%d,%d", x, y);
-desk->name = eina_stringshare_add(name);
- }
+   if (!ok) desk->name = eina_stringshare_add("");
 
/* Get window profile name for current desktop */
if (zone->randr2_id)
@@ -231,11 +227,7 @@ e_desk_name_update(void)
break;
 }
 
-  if (!ok)
-{
-   snprintf(name, sizeof(name), "%d,%d", d_x, d_y);
-   e_desk_name_set(desk, name);
-}
+  if (!ok) e_desk_name_set(desk, "");
}
   }
  }
diff --git a/src/modules/conf_display/e_int_config_desk.c 
b/src/modules/conf_display/e_int_config_desk.c
index 274ac9b62..313ccc4a5 100644
--- a/src/modules/conf_display/e_int_config_desk.c
+++ b/src/modules/conf_display/e_int_config_desk.c
@@ -55,7 +55,6 @@ static void
 _fill_data(E_Config_Dialog_Data *cfdata)
 {
Eina_List *l;
-   char name[1024];
int ok = 0;
 
cfdata->bg = e_bg_file_get(cfdata->zone_num, cfdata->desk_x, 
cfdata->desk_y);
@@ -75,11 +74,7 @@ _fill_data(E_Config_Dialog_Data *cfdata)
 ok = 1;
 break;
  }
-   if (!ok)
- {
-snprintf(name, sizeof(name), "%d,%d", cfdata->desk_x, cfdata->desk_y);
-cfdata->name = strdup(name);
- }
+   if (!ok) cfdata->name = strdup("");
 }
 
 static void *
@@ -106,13 +101,10 @@ _free_data(E_Config_Dialog *cfd EINA_UNUSED, 
E_Config_Dialog_Data *cfdata)
 static int
 _basic_apply(E_Config_Dialog *cfd EINA_UNUSED, E_Config_Dialog_Data *cfdata)
 {
-   char name[40];
-
if ((!cfdata->name) || (!cfdata->name[0]))
  {
-snprintf(name, sizeof(name), "%d,%d", cfdata->desk_x, cfdata->desk_y);
 free(cfdata->name);
-cfdata->name = strdup(name);
+cfdata->name = strdup("");
  }
 
e_desk_name_del(cfdata->zone_num,

-- 




[EGIT] [core/enlightenment] master 03/04: pager - more direct config from right click menu

2019-09-19 Thread Carsten Haitzler
raster pushed a commit to branch master.

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

commit 3e4ff27c19289b8dc9b196ca7632100a860e64e9
Author: Carsten Haitzler (Rasterman) 
Date:   Thu Sep 19 19:17:12 2019 +0100

pager - more direct config from right click menu
---
 TODO   |  3 ---
 src/modules/pager/e_mod_main.c | 33 -
 2 files changed, 32 insertions(+), 4 deletions(-)

diff --git a/TODO b/TODO
index 12be817cc..627398b40 100644
--- a/TODO
+++ b/TODO
@@ -147,9 +147,6 @@ TODO:
 * efm: partitioning front end
 * efm: filesystem formatting front-end
 * efm: tune2fs/fsck front-end
-* pager: add "Set desktop name" on right click on desktop in pager
-  * turn on desktop names when setting one here
-* pager: add "Set wallpaper" on right clikc on desktop in pager
 * start: start menu could do with more featured content
   * like you see on windows for example (search and multiple columns etc.)
   * a touch screen android-style scrolling fullscreen app icon style
diff --git a/src/modules/pager/e_mod_main.c b/src/modules/pager/e_mod_main.c
index a3f00d28b..e6fdc1f7a 100644
--- a/src/modules/pager/e_mod_main.c
+++ b/src/modules/pager/e_mod_main.c
@@ -45,6 +45,9 @@ struct _Pager
int xnum, ynum;
Eina_List  *desks;
Pager_Desk *active_pd;
+   struct {
+  int zone_num, desk_x, desk_y;
+   } menu;
unsigned char   dragging E_BITFIELD;
unsigned char   just_dragged E_BITFIELD;
Evas_Coord  dnd_x, dnd_y;
@@ -106,6 +109,7 @@ static void _pager_cb_obj_moveresize(void 
*data, Evas *e EINA_UNUSED
 static void _button_cb_mouse_down(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_UNUSED, void *event_info);
 static void _pager_inst_cb_menu_configure(void *data EINA_UNUSED, 
E_Menu *m EINA_UNUSED, E_Menu_Item *mi EINA_UNUSED);
 static void _pager_inst_cb_menu_virtual_desktops_dialog(void 
*data, E_Menu *m EINA_UNUSED, E_Menu_Item *mi EINA_UNUSED);
+static void _pager_inst_cb_menu_virtual_desktop_dialog(void *data, 
E_Menu *m EINA_UNUSED, E_Menu_Item *mi EINA_UNUSED);
 static void _pager_instance_drop_zone_recalc(Instance *inst);
 static Eina_Bool_pager_cb_event_desk_show(void *data EINA_UNUSED, int 
type EINA_UNUSED, void *event);
 static Eina_Bool_pager_cb_event_desk_name_change(void *data 
EINA_UNUSED, int type EINA_UNUSED, void *event);
@@ -876,6 +880,7 @@ _button_cb_mouse_down(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_UNU
E_Menu *m;
E_Menu_Item *mi;
int cx, cy;
+   Pager_Desk *pd;
 
inst = data;
ev = event_info;
@@ -889,13 +894,28 @@ _button_cb_mouse_down(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_UNU
e_menu_item_callback_set(mi, _pager_inst_cb_menu_configure, NULL);
 
m = e_gadcon_client_util_menu_items_append(inst->gcc, m, 0);
+
+   mi = e_menu_item_new_relative(m, NULL);
+   e_menu_item_separator_set(mi, 1);
+
if (e_configure_registry_exists("screen/virtual_desktops"))
  {
 mi = e_menu_item_new_relative(m, NULL);
-e_menu_item_label_set(mi, _("Virtual Desktops Settings"));
+e_menu_item_label_set(mi, _("All desktop settings"));
 e_util_menu_item_theme_icon_set(mi, "preferences-desktop");
 e_menu_item_callback_set(mi, 
_pager_inst_cb_menu_virtual_desktops_dialog, inst);
  }
+   if (e_configure_registry_exists("internal/desk"))
+ {
+pd = _pager_desk_at_coord(inst->pager, ev->canvas.x, ev->canvas.y);
+inst->pager->menu.zone_num = inst->pager->zone->num;
+inst->pager->menu.desk_x = pd->desk->x;
+inst->pager->menu.desk_y = pd->desk->y;
+mi = e_menu_item_new_relative(m, NULL);
+e_menu_item_label_set(mi, _("This desktop name and wallpaper 
settings"));
+e_util_menu_item_theme_icon_set(mi, "preferences-desktop");
+e_menu_item_callback_set(mi, 
_pager_inst_cb_menu_virtual_desktop_dialog, inst);
+ }
 
e_gadcon_canvas_zone_geometry_get(inst->gcc->gadcon, &cx, &cy,
  NULL, NULL);
@@ -931,6 +951,17 @@ _pager_inst_cb_menu_virtual_desktops_dialog(void *data 
EINA_UNUSED, E_Menu *m EI
e_configure_registry_call("screen/virtual_desktops", NULL, NULL);
 }
 
+static void
+_pager_inst_cb_menu_virtual_desktop_dialog(void *data, E_Menu *m EINA_UNUSED, 
E_Menu_Item *mi EINA_UNUSED)
+{
+   Instance *inst = data;
+   char buf[256];
+
+   snprintf(buf, sizeof(buf), "%i %i %i", inst->pager->menu.zone_num,
+inst->pager->menu.desk_x, inst->pager->menu.desk_y);
+   e_configure_registry_call("internal/desk", NULL, buf);
+}
+
 static void
 _pager_instance_drop_zone_recalc(Instance *inst)
 {

-- 




[EGIT] [core/enlightenment] master 01/04: backlight - add battery timeout in addition to regular dim timeout

2019-09-19 Thread Carsten Haitzler
raster pushed a commit to branch master.

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

commit 1783c328394ffe1743522cab4d904a226ac7574c
Author: Carsten Haitzler (Rasterman) 
Date:   Wed Sep 18 18:56:42 2019 +0100

backlight - add battery timeout in addition to regular dim timeout

this allows for a shorter timeout when on battery vs when on ac for
backlight dimming. this is actually important so when on ac dimming
can interrupt minimally bur when on battery it can be much more
aggressive.
---
 data/config/default/e.src|  5 +++--
 data/config/standard/e.src   |  5 +++--
 data/config/tiling/e.src |  3 +++
 src/bin/e_config.c   |  1 +
 src/bin/e_config.h   |  1 +
 src/bin/e_screensaver.c  | 19 +--
 src/modules/conf_display/e_int_config_dpms.c | 17 +
 7 files changed, 41 insertions(+), 10 deletions(-)

diff --git a/data/config/default/e.src b/data/config/default/e.src
index 4b081d0b3..a2e0e3e2e 100644
--- a/data/config/default/e.src
+++ b/data/config/default/e.src
@@ -202,8 +202,9 @@ group "E_Config" struct {
   value "backlight.normal" double: 1.0
   value "backlight.dim" double: 0.3;
   value "backlight.transition" double: 0.5;
-  value "backlight.timer" double: 1.0;
-  value "backlight.idle_dim" uchar: 0;
+  value "backlight.timer" double: 30.0;
+  value "backlight.battery_timer" double: 20.0;
+  value "backlight.idle_dim" uchar: 1;
   value "device_desktop" int: 0;
   value "device_auto_mount" int: 0;
   value "device_auto_open" int: 0;
diff --git a/data/config/standard/e.src b/data/config/standard/e.src
index 31b2982f2..4c716d877 100644
--- a/data/config/standard/e.src
+++ b/data/config/standard/e.src
@@ -193,8 +193,9 @@ group "E_Config" struct {
 value "backlight.normal" double: 1.0
 value "backlight.dim" double: 0.3;
 value "backlight.transition" double: 0.5;
-value "backlight.timer" double: 1.0;
-value "backlight.idle_dim" uchar: 0;
+value "backlight.timer" double: 30.0;
+value "backlight.battery_timer" double: 20.0;
+value "backlight.idle_dim" uchar: 1;
 value "deskenv.load_xrdb" uchar: 1;
 value "deskenv.load_xmodmap" uchar: 1;
 value "deskenv.load_gnome" uchar: 0;
diff --git a/data/config/tiling/e.src b/data/config/tiling/e.src
index 2ec6af31a..431fce4bd 100644
--- a/data/config/tiling/e.src
+++ b/data/config/tiling/e.src
@@ -193,6 +193,9 @@ group "E_Config" struct {
 value "backlight.normal" double: 1.0;
 value "backlight.dim" double: 0.3;
 value "backlight.transition" double: 0.5;
+value "backlight.timer" double: 30.0;
+value "backlight.battery_timer" double: 20.0;
+value "backlight.idle_dim" uchar: 1;
 value "deskenv.load_xrdb" uchar: 1;
 value "deskenv.load_xmodmap" uchar: 1;
 value "deskenv.load_gnome" uchar: 0;
diff --git a/src/bin/e_config.c b/src/bin/e_config.c
index 3f1b12233..5195321a1 100644
--- a/src/bin/e_config.c
+++ b/src/bin/e_config.c
@@ -739,6 +739,7 @@ _e_config_edd_init(Eina_Bool old)
E_CONFIG_VAL(D, T, backlight.dim, DOUBLE);
E_CONFIG_VAL(D, T, backlight.transition, DOUBLE);
E_CONFIG_VAL(D, T, backlight.timer, DOUBLE);
+   E_CONFIG_VAL(D, T, backlight.battery_timer, DOUBLE);
E_CONFIG_VAL(D, T, backlight.sysdev, STR);
E_CONFIG_VAL(D, T, backlight.idle_dim, UCHAR);
 
diff --git a/src/bin/e_config.h b/src/bin/e_config.h
index 183585181..dc8889e84 100644
--- a/src/bin/e_config.h
+++ b/src/bin/e_config.h
@@ -369,6 +369,7 @@ struct _E_Config
   doubledim; // GUI
   doubletransition; // GUI
   doubletimer; // GUI
+  doublebattery_timer; // GUI
   const char   *sysdev; // GUI
   unsigned char idle_dim; // GUI
   E_Backlight_Mode mode; /* not saved, display-only */
diff --git a/src/bin/e_screensaver.c b/src/bin/e_screensaver.c
index 6aa1142e6..ad21ecee2 100644
--- a/src/bin/e_screensaver.c
+++ b/src/bin/e_screensaver.c
@@ -71,13 +71,16 @@ e_screensaver_timeout_get(Eina_Bool use_idle)
  {
 if (e_config->backlight.idle_dim)
   {
+ double t2 = e_config->backlight.timer;
+
+ if ((e_powersave_mode_get() > E_POWERSAVE_MODE_LOW) &&
+ (e_config->backlight.battery_timer > 0.0))
+   t2 = e_config->backlight.battery_timer;
  if (timeout > 0)
{
-  if (e_config->backlight.timer < timeout)
-timeout = e_config->backlight.timer;
+  if (t2 < timeout) timeout = t2;
}
- else
-   timeout = e_config->backlight.timer;
+ else timeout = t2;
   }
  }
return timeout;
@@ -568,8 +571,12 @@ e_screensaver_eval(Eina_Bool saver_on)
 if ((e_config->backlight.idle_dim) &&
 (!use_special_instead

[EGIT] [core/enlightenment] master 04/04: e - bump config version properly in src

2019-09-19 Thread Carsten Haitzler
raster pushed a commit to branch master.

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

commit f89cb9382971a38a912e29185e59d2c1398462b7
Author: Carsten Haitzler (Rasterman) 
Date:   Thu Sep 19 19:29:28 2019 +0100

e - bump config version properly in src

this doesnt resulti n a looping of wiz - but does result in a "version
too new of config" complaint and issues... so fix.
---
 src/bin/e_config.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/e_config.h b/src/bin/e_config.h
index dc8889e84..0c732502c 100644
--- a/src/bin/e_config.h
+++ b/src/bin/e_config.h
@@ -46,7 +46,7 @@ typedef enum
 /* increment this whenever a new set of config values are added but the users
  * config doesn't need to be wiped - simply new values need to be put in
  */
-#define E_CONFIG_FILE_GENERATION 27
+#define E_CONFIG_FILE_GENERATION 28
 #define E_CONFIG_FILE_VERSION((E_CONFIG_FILE_EPOCH * 100) + 
E_CONFIG_FILE_GENERATION)
 
 #define E_CONFIG_BINDINGS_VERSION 0 // DO NOT INCREMENT UNLESS YOU WANT TO 
WIPE ALL BINDINGS!

-- 




[EGIT] [core/efl] master 04/04: eolian: remove the composite keyword (replaced by composites)

2019-09-19 Thread Daniel Kolesa
q66 pushed a commit to branch master.

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

commit 539dc642e9bc5e89ef0391ca0bf263bfc76c703c
Author: Daniel Kolesa 
Date:   Thu Sep 19 18:17:37 2019 +0200

eolian: remove the composite keyword (replaced by composites)
---
 src/lib/eolian/eo_lexer.h  | 2 +-
 src/lib/eolian/eo_parser.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/lib/eolian/eo_lexer.h b/src/lib/eolian/eo_lexer.h
index 0746e79bae..e6ab8da0bd 100644
--- a/src/lib/eolian/eo_lexer.h
+++ b/src/lib/eolian/eo_lexer.h
@@ -27,7 +27,7 @@ enum Tokens
  */
 #define KEYWORDS KW(class), KW(const), KW(enum), KW(return), KW(struct), \
 \
-KW(abstract), KW(c_prefix), KW(composite), KW(composites), 
KW(constructor), KW(constructors), \
+KW(abstract), KW(c_prefix), KW(composites), KW(constructor), 
KW(constructors), \
 KW(data), KW(destructor), KW(error), KW(event_prefix), KW(events), 
KW(extends), \
 KW(free), KW(get), KW(implements), KW(import), KW(interface), \
 KW(keys), KW(legacy), KW(methods), KW(mixin), KW(params), \
diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c
index c403305a2f..879cc0af3a 100644
--- a/src/lib/eolian/eo_parser.c
+++ b/src/lib/eolian/eo_parser.c
@@ -2318,7 +2318,7 @@ tags_done:
  while (test_next(ls, ','));
   }
 
-if (ls->t.kw == KW_composite || ls->t.kw == KW_composites)
+if (ls->t.kw == KW_composites)
   {
  if (type == EOLIAN_CLASS_INTERFACE)
 eo_lexer_syntax_error(ls, "interfaces cannot composite");

-- 




[EGIT] [core/efl] master 03/04: efl: replace composite with composites and dedup implements

2019-09-19 Thread Daniel Kolesa
q66 pushed a commit to branch master.

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

commit b74f98e8b7cc3a1b680488395d257841d8d3f007
Author: Daniel Kolesa 
Date:   Thu Sep 19 17:32:56 2019 +0200

efl: replace composite with composites and dedup implements

Since using 'composites' now automatically implements what has not
been implemented yet, remove the unnecessary duplicates.
---
 src/lib/elementary/efl_ui_collection.eo   |  4 +---
 src/lib/elementary/efl_ui_image_zoomable.eo   |  6 ++
 src/lib/elementary/efl_ui_list_view.eo| 10 ++
 src/lib/elementary/efl_ui_panel.eo|  4 ++--
 src/lib/elementary/efl_ui_radio_box.eo|  3 +--
 src/lib/elementary/efl_ui_scroller.eo |  4 +---
 src/lib/elementary/efl_ui_tab_bar.eo  |  4 ++--
 src/lib/elementary/efl_ui_tags.eo |  4 ++--
 src/lib/elementary/efl_ui_text.eo |  4 ++--
 src/lib/elementary/efl_ui_video.eo|  4 ++--
 src/lib/elementary/efl_ui_widget_focus_manager.eo |  3 +--
 src/lib/elementary/efl_ui_win.eo  |  6 +++---
 src/tests/eolian/data/unimpl.eo   |  2 +-
 13 files changed, 26 insertions(+), 32 deletions(-)

diff --git a/src/lib/elementary/efl_ui_collection.eo 
b/src/lib/elementary/efl_ui_collection.eo
index 30451214ad..43eacec9af 100644
--- a/src/lib/elementary/efl_ui_collection.eo
+++ b/src/lib/elementary/efl_ui_collection.eo
@@ -1,12 +1,10 @@
 class @beta Efl.Ui.Collection extends Efl.Ui.Layout_Base implements
-   Efl.Ui.Scrollable_Interactive,
-   Efl.Ui.Scrollbar,
Efl.Pack_Linear, Efl.Pack_Layout,
Efl.Ui.Layout_Orientable,
Efl.Ui.Multi_Selectable,
Efl.Ui.Focus.Manager_Sub,
Efl.Ui.Widget_Focus_Manager
-   composite
+   composites
Efl.Ui.Scrollable_Interactive,
Efl.Ui.Scrollbar,
Efl.Ui.Focus.Manager
diff --git a/src/lib/elementary/efl_ui_image_zoomable.eo 
b/src/lib/elementary/efl_ui_image_zoomable.eo
index 932c732e15..cc8ae5dac9 100644
--- a/src/lib/elementary/efl_ui_image_zoomable.eo
+++ b/src/lib/elementary/efl_ui_image_zoomable.eo
@@ -2,10 +2,8 @@
 struct @extern Elm.Photocam.Error; [[Photocam error information.]]
 struct @extern Elm.Photocam.Progress; [[Photocam progress information.]]
 
-class @beta Efl.Ui.Image_Zoomable extends Efl.Ui.Image implements Efl.Ui.Zoom,
- Efl.Ui.Scrollable_Interactive,
- Efl.Ui.Scrollbar
-   composite Efl.Ui.Scrollable_Interactive, Efl.Ui.Scrollbar
+class @beta Efl.Ui.Image_Zoomable extends Efl.Ui.Image implements Efl.Ui.Zoom
+   composites Efl.Ui.Scrollable_Interactive, Efl.Ui.Scrollbar
 {
[[Elementary Image Zoomable class]]
methods {
diff --git a/src/lib/elementary/efl_ui_list_view.eo 
b/src/lib/elementary/efl_ui_list_view.eo
index 5c49394ec4..37db3fb183 100644
--- a/src/lib/elementary/efl_ui_list_view.eo
+++ b/src/lib/elementary/efl_ui_list_view.eo
@@ -7,10 +7,12 @@ struct @beta Efl.Ui.List_View_Item_Event
child: Efl.Model; [[TBD]]
index: int; [[TBD]]
 }
-class @beta Efl.Ui.List_View extends Efl.Ui.Layout_Base implements 
Efl.Ui.Scrollable_Interactive, Efl.Ui.Scrollbar,
-Efl.Access.Widget.Action, Efl.Access.Selection, 
Efl.Ui.Focus.Composition, Efl.Ui.Focus.Manager_Sub,
-Efl.Ui.Container_Selectable, Efl.Ui.List_View_Model, 
Efl.Ui.Widget_Focus_Manager
-   composite
+class @beta Efl.Ui.List_View extends Efl.Ui.Layout_Base implements
+Efl.Access.Widget.Action, Efl.Access.Selection,
+Efl.Ui.Focus.Composition, Efl.Ui.Focus.Manager_Sub,
+Efl.Ui.Container_Selectable, Efl.Ui.List_View_Model,
+Efl.Ui.Widget_Focus_Manager
+   composites
 Efl.Ui.Scrollable_Interactive, Efl.Ui.Scrollbar
 {
methods {
diff --git a/src/lib/elementary/efl_ui_panel.eo 
b/src/lib/elementary/efl_ui_panel.eo
index edf688c2eb..f02845eb1c 100644
--- a/src/lib/elementary/efl_ui_panel.eo
+++ b/src/lib/elementary/efl_ui_panel.eo
@@ -16,9 +16,9 @@ struct @beta Efl.Ui.Panel_Scroll_Info
 }
 
 class @beta Efl.Ui.Panel extends Efl.Ui.Layout_Base
- implements Efl.Ui.Focus.Layer, 
Efl.Ui.Scrollable_Interactive, Efl.Content,
+ implements Efl.Ui.Focus.Layer, Efl.Content,
 Efl.Access.Widget.Action
- composite Efl.Ui.Scrollable_Interactive
+ composites Efl.Ui.Scrollable_Interactive
 {
[[Elementary panel class]]
methods {
diff --git a/src/lib/elementary/efl_ui_radio_box.eo 
b/src/lib/elementary/efl_ui_radio_box.eo
index 15f6b3ee13..e6b2259376 100644
--- a/src/lib/elementary/efl_ui_radio_box.eo
+++ b/src/lib/elementary/efl_ui_radio_box

[EGIT] [core/efl] master 01/04: eolian: auto-add composited interfaces into implements if needed

2019-09-19 Thread Daniel Kolesa
q66 pushed a commit to branch master.

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

commit 46a6949b2e29bddacd523d96564492957faecc34
Author: Daniel Kolesa 
Date:   Thu Sep 19 16:49:31 2019 +0200

eolian: auto-add composited interfaces into implements if needed

The condition here is that the composited interface does not
already appear in the inheritance tree of the given class. If
it does, don't add. If it doesn't, add it to the class that
specifies the composited block.
---
 src/lib/eolian/database_validate.c | 57 +-
 1 file changed, 50 insertions(+), 7 deletions(-)

diff --git a/src/lib/eolian/database_validate.c 
b/src/lib/eolian/database_validate.c
index cdbd699293..f13e0e82b7 100644
--- a/src/lib/eolian/database_validate.c
+++ b/src/lib/eolian/database_validate.c
@@ -865,6 +865,22 @@ _extend_impl(Eina_Hash *fs, Eolian_Implement *impl, 
Eina_Bool as_iface)
return !st;
 }
 
+/* fills a complete set of stuff implemented or inherited on a class
+ * this is used to check whether to auto-add composited interfaces into
+ * implemented/extended list
+ */
+static void
+_db_fill_ihash(Eolian_Class *icl, Eina_Hash *icls)
+{
+   if (icl->parent)
+ _db_fill_ihash(icl->parent, icls);
+   Eina_List *l;
+   Eolian_Class *sicl;
+   EINA_LIST_FOREACH(icl->extends, l, sicl)
+ _db_fill_ihash(sicl, icls);
+   eina_hash_set(icls, &icl, icl);
+}
+
 static void
 _db_fill_callables(Eolian_Class *cl, Eolian_Class *icl, Eina_Hash *fs, 
Eina_Bool parent)
 {
@@ -1084,13 +1100,6 @@ _db_swap_inherit(Eolian_Class *cl, Eina_Bool succ, 
Eina_Stringshare *in_cl,
 succ = EINA_FALSE;
 _eo_parser_log(&cl->base, "non-interface class '%s' in composite 
list", icl->base.name);
  }
-   else if (iface_only && !_get_impl_class(cl, icl->base.name))
- {
-/* TODO: optimize check using a lookup hash later */
-succ = EINA_FALSE;
-_eo_parser_log(&cl->base, "interface '%s' not found within the 
inheritance tree of '%s'",
-   icl->base.name, cl->base.name);
- }
else
  *out_cl = icl;
eina_stringshare_del(in_cl);
@@ -1183,6 +1192,7 @@ _db_fill_inherits(Validate_State *vals, Eolian_Class *cl, 
Eina_Hash *fhash,
/* replace the composite list with real instances and initial-fill the hash 
*/
il = cl->composite;
cl->composite = NULL;
+   int ncomp = 0;
EINA_LIST_FREE(il, inn)
  {
 Eolian_Class *out_cl = NULL;
@@ -1190,6 +1200,8 @@ _db_fill_inherits(Validate_State *vals, Eolian_Class *cl, 
Eina_Hash *fhash,
 if (!succ)
   continue;
 cl->composite = eina_list_append(cl->composite, out_cl);
+succ = _db_fill_inherits(vals, out_cl, fhash, errh);
+++ncomp;
 eina_hash_set(ch, &out_cl, out_cl);
  }
 
@@ -1216,6 +1228,37 @@ _db_fill_inherits(Validate_State *vals, Eolian_Class 
*cl, Eina_Hash *fhash,
 
eina_hash_add(fhash, &cl->base.name, cl);
 
+   /* there are more than zero of composites of its own */
+   if (ncomp > 0)
+ {
+/* this one stores what is already in inheritance tree */
+Eina_Hash *ih = eina_hash_pointer_new(NULL);
+
+/* fill a complete inheritance tree set */
+if (cl->parent)
+  _db_fill_ihash(cl->parent, ih);
+
+EINA_LIST_FOREACH(cl->extends, il, icl)
+  _db_fill_ihash(icl, ih);
+
+/* go through only the explicitly specified composite list part, as the
+ * rest was to be handled in parents already... add what hasn't been
+ * explicitly implemented so far into implements/extends
+ */
+EINA_LIST_FOREACH(cl->composite, il, icl)
+  {
+ /* ran out of classes */
+ if (!ncomp--)
+   break;
+ /* found in inheritance tree, skip */
+ if (eina_hash_find(ih, &icl))
+   continue;
+ cl->extends = eina_list_append(cl->extends, icl);
+  }
+
+eina_hash_free(ih);
+ }
+
/* stores mappings from function to Impl_Status */
Eina_Hash *fh = eina_hash_pointer_new(NULL);
 

-- 




[EGIT] [core/efl] master 02/04: eolian: allow composites keyword in place of composite

2019-09-19 Thread Daniel Kolesa
q66 pushed a commit to branch master.

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

commit bc793753cb5c7764b5766720c16177fcd1656517
Author: Daniel Kolesa 
Date:   Thu Sep 19 17:26:48 2019 +0200

eolian: allow composites keyword in place of composite

Fixes T8218.
---
 src/lib/eolian/eo_lexer.h  |  2 +-
 src/lib/eolian/eo_parser.c | 10 +-
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/lib/eolian/eo_lexer.h b/src/lib/eolian/eo_lexer.h
index 876f1c70bc..0746e79bae 100644
--- a/src/lib/eolian/eo_lexer.h
+++ b/src/lib/eolian/eo_lexer.h
@@ -27,7 +27,7 @@ enum Tokens
  */
 #define KEYWORDS KW(class), KW(const), KW(enum), KW(return), KW(struct), \
 \
-KW(abstract), KW(c_prefix), KW(composite), KW(constructor), 
KW(constructors), \
+KW(abstract), KW(c_prefix), KW(composite), KW(composites), 
KW(constructor), KW(constructors), \
 KW(data), KW(destructor), KW(error), KW(event_prefix), KW(events), 
KW(extends), \
 KW(free), KW(get), KW(implements), KW(import), KW(interface), \
 KW(keys), KW(legacy), KW(methods), KW(mixin), KW(params), \
diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c
index 1f5a678215..c403305a2f 100644
--- a/src/lib/eolian/eo_parser.c
+++ b/src/lib/eolian/eo_parser.c
@@ -2210,8 +2210,8 @@ _composite_add(Eo_Lexer *ls, Eina_Strbuf *buf)
 eo_lexer_syntax_error(ls, ebuf);
 return;
  }
-   /* do not introduce a dependency */
-   database_defer(ls->state, fnm, EINA_FALSE);
+   /* composite == definitely a dependency */
+   database_defer(ls->state, fnm, EINA_TRUE);
free(fnm);
ls->klass->composite = eina_list_append(ls->klass->composite, nm);
eo_lexer_context_pop(ls);
@@ -2306,7 +2306,7 @@ tags_done:
   /* regular class can have a parent, but just one */
   _inherit_dep(ls, ibuf, EINA_TRUE);
   /* if not followed by implements, we're done */
-  if (ls->t.kw != KW_implements)
+  if ((ls->t.kw != KW_implements) && (ls->t.kw != 
KW_composites))
 {
eo_lexer_dtor_pop(ls);
goto inherit_done;
@@ -2318,10 +2318,10 @@ tags_done:
  while (test_next(ls, ','));
   }
 
-if (ls->t.kw == KW_composite)
+if (ls->t.kw == KW_composite || ls->t.kw == KW_composites)
   {
  if (type == EOLIAN_CLASS_INTERFACE)
-eo_lexer_syntax_error(ls, "composite not allowed in 
interfaces");
+eo_lexer_syntax_error(ls, "interfaces cannot composite");
  eo_lexer_get(ls);
  do
_composite_add(ls, ibuf);

-- 




[EGIT] [core/efl] master 01/01: docs: Update documentation for Efl.Gfx.Color_Class

2019-09-19 Thread Xavi Artigas
xartigas pushed a commit to branch master.

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

commit f8926697ff430e025d782fbdbb588db8ee154852
Author: Xavi Artigas 
Date:   Thu Sep 19 16:51:04 2019 +0200

docs: Update documentation for Efl.Gfx.Color_Class
---
 src/lib/efl/interfaces/efl_gfx_color_class.eo | 7 +--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/lib/efl/interfaces/efl_gfx_color_class.eo 
b/src/lib/efl/interfaces/efl_gfx_color_class.eo
index 6acfa42f0f..7d91347dfe 100644
--- a/src/lib/efl/interfaces/efl_gfx_color_class.eo
+++ b/src/lib/efl/interfaces/efl_gfx_color_class.eo
@@ -2,7 +2,10 @@ import efl_gfx_types;
 
 mixin @beta Efl.Gfx.Color_Class
 {
-   [[Efl Gfx Color Class mixin class]]
+   [[This mixin provides an interface for objects supporting color classes
+ (this is, named colors) and provides a helper method to also allow 
hexadecimal
+ color codes.
+   ]]
data: null;
methods {
   @property color_class @pure_virtual {
@@ -53,7 +56,7 @@ mixin @beta Efl.Gfx.Color_Class
 
 Setting color emits a signal "color_class,set" with source being
 the given color.
-
+
 When retrieving the color of an object, if no explicit
 object color is set, then global values will be used.
 

-- 




[EGIT] [tools/examples] master 01/01: life: remove Elementary.h usage

2019-09-19 Thread Mike Blumenkrantz
xartigas pushed a commit to branch master.

http://git.enlightenment.org/tools/examples.git/commit/?id=fea913d1e1bc3fe5d8943b2d0a835d35d58f9ba9

commit fea913d1e1bc3fe5d8943b2d0a835d35d58f9ba9
Author: Mike Blumenkrantz 
Date:   Thu Sep 19 16:32:19 2019 +0200

life: remove Elementary.h usage

Summary: this should not be needed

Reviewers: segfaultxavi

Reviewed By: segfaultxavi

Tags: #examples

Differential Revision: https://phab.enlightenment.org/D10021
---
 apps/c/life/src/life_board.c   | 1 -
 apps/c/life/src/life_main.c| 1 -
 apps/c/life/src/life_private.h | 1 -
 apps/c/life/src/life_render.c  | 1 -
 4 files changed, 4 deletions(-)

diff --git a/apps/c/life/src/life_board.c b/apps/c/life/src/life_board.c
index 445e7253..7839f934 100644
--- a/apps/c/life/src/life_board.c
+++ b/apps/c/life/src/life_board.c
@@ -1,6 +1,5 @@
 #define EFL_BETA_API_SUPPORT 1
 
-#include 
 #include 
 
 #include "life_private.h"
diff --git a/apps/c/life/src/life_main.c b/apps/c/life/src/life_main.c
index 0c7d8152..93728cfa 100644
--- a/apps/c/life/src/life_main.c
+++ b/apps/c/life/src/life_main.c
@@ -1,6 +1,5 @@
 #define EFL_BETA_API_SUPPORT 1
 
-#include 
 #include 
 
 #include "life_private.h"
diff --git a/apps/c/life/src/life_private.h b/apps/c/life/src/life_private.h
index 724c76b0..140e208e 100644
--- a/apps/c/life/src/life_private.h
+++ b/apps/c/life/src/life_private.h
@@ -1,7 +1,6 @@
 #ifndef LIFE_PRIVATE_H_
 # define LIFE_PRIVATE_H_
 
-#include 
 #include 
 
 #define LIFE_BOARD_WIDTH 47
diff --git a/apps/c/life/src/life_render.c b/apps/c/life/src/life_render.c
index ed6daffb..32777f35 100644
--- a/apps/c/life/src/life_render.c
+++ b/apps/c/life/src/life_render.c
@@ -1,6 +1,5 @@
 #define EFL_BETA_API_SUPPORT 1
 
-#include 
 #include 
 
 #include "life_private.h"

-- 




[E-devel] RFC: Text interface + advice regarding interface splitting

2019-09-19 Thread Tom Hacohen
Hey,

As most of you (at least the IRC lurkers) know, I've been recently
working on the text interfaces. Trying to clean them up and stabilise them.
The discussion and work has been covered on phab at:
https://phab.enlightenment.org/T8151

And the new (suggested) interfaces are all the files starting with
"efl2_" in my branch:
https://git.enlightenment.org/core/efl.git/tree/?h=devs/tasn/ifaces

I'd love to get your feedback and let me know if there's anything I've
missed. All feedback is welcomed, including bike shedding.
Some interfaces still have massive FIXMEs at the top, so obviously read
those before replying to avoid repeating what we already know.


As for the advice I mentioned in the title: due to composite object
regressions as described in T8184, I'm forced to break up the classes
into interfaces. As discussed at length in the ticket, these interfaces
would have to be very specific to the classes and not really reusable
("cursor_new" is quite specific, obviously).

I can either just do as I said in the ticket, and for every class do a
big interface, so Efl.Canvas.Text -> Efl.Canvas.Text +
Efl.Canvas.Text_Interface. This is one way. It's obviously very ugly.
The other way is to split to a lot of smaller, probably 1/2 property
interfaces, which is also ugly and quite inefficient (classes/interfaces
are not free).

I'd love to get your input, to what interfaces would you split up these
two classes:
1.
https://git.enlightenment.org/core/efl.git/tree/src/lib/evas/canvas/efl2_canvas_text.eo?h=devs/tasn/ifaces
2.
https://git.enlightenment.org/core/efl.git/tree/src/lib/elementary/efl2_text_raw_editable.eo?h=devs/tasn/ifaces


Thanks a lot for your help and feedback!

--
Tom


___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 01/01: eolian: return NULL instead of EINA_FALSE on safety checks

2019-09-19 Thread Daniel Kolesa
q66 pushed a commit to branch master.

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

commit 4de4995fa27d6a8907983d2f450a5666823995b7
Author: Daniel Kolesa 
Date:   Thu Sep 19 16:04:56 2019 +0200

eolian: return NULL instead of EINA_FALSE on safety checks
---
 src/lib/eolian/database_function_api.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/lib/eolian/database_function_api.c 
b/src/lib/eolian/database_function_api.c
index fd78164892..ca9454449b 100644
--- a/src/lib/eolian/database_function_api.c
+++ b/src/lib/eolian/database_function_api.c
@@ -346,9 +346,9 @@ EAPI Eina_Stringshare *
 eolian_function_return_c_type_get(const Eolian_Function *fid,
   Eolian_Function_Type ftype)
 {
-   EINA_SAFETY_ON_NULL_RETURN_VAL(fid, EINA_FALSE);
-   EINA_SAFETY_ON_FALSE_RETURN_VAL(ftype != EOLIAN_UNRESOLVED, EINA_FALSE);
-   EINA_SAFETY_ON_FALSE_RETURN_VAL(ftype != EOLIAN_PROPERTY, EINA_FALSE);
+   EINA_SAFETY_ON_NULL_RETURN_VAL(fid, NULL);
+   EINA_SAFETY_ON_FALSE_RETURN_VAL(ftype != EOLIAN_UNRESOLVED, NULL);
+   EINA_SAFETY_ON_FALSE_RETURN_VAL(ftype != EOLIAN_PROPERTY, NULL);
const Eolian_Type *tp = NULL;
Eina_Bool by_ref = EINA_FALSE;
switch (ftype)

-- 




Re: [E-devel] High impact rated Coverity issues for 1.23

2019-09-19 Thread Stefan Schmidt
Hello.

On 17.09.19 08:36, Stefan Schmidt wrote:
> Hello.
> 
> On 16.09.19 11:01, Stefan Schmidt wrote:
>> Hello.
>>
>> We still have many (338) issues detected by Coverity in our code base.
>> For the upcoming release we should ate least aim to look at the ones
>> rated with high impact (we are talking about memory corruptions, illegal
>> memory access use after free, resource leaks and uninitialized variables
>> here).
>>
>> Coverity shows 71 of these in our current code base. While I consider
>> all of these at least worth to have a look it makes sense to break this
>> down to a list that includes tests and examples to have this a bit more
>> manageable. Which brings me to the following list:
> 
> Thanks to everyone who had a look and already fixed some of these. From
> the former list of 32 reports we are down to 17 now.

Further down to 13.

1402666 Out-of-bounds access: efl_ui_selection_manager.c
1402671 Use after free: elementary_codegen.c
1402701 Use after free: elementary_codegen.c
1382209 Resource leak: edje_cc_script.c
1382215 Resource leak: vg_common_svg.c
1382852 Resource leak: evas_font_dir.c
1399087 Resource leak: efl_ui_size_model.c
1399107 Resource leak: efl_ui_exact_model.c
1402653 Resource leak: efl_ui_selection_manager.c
1404741 Resource leak: efl_ui_widget_factory.c1404749 Resource leak:
efl_ui_caching_factory.c
1401457 Uninitialized scalar variable: efl_ui_textpath.c
1401458 Uninitialized scalar variable: efl_ui_textpath.c
regards
Stefan Schmidt


___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] API/ABI report review for 1.23 release

2019-09-19 Thread Stefan Schmidt
Hello.

On 16.09.19 10:21, Stefan Schmidt wrote:
> Hello.
> 
> We are getting closer to the EFL release and one of the missing pieces
> is a review of the API/ABI reports ABI laboratory is kindly providing:
> https://abi-laboratory.pro/index.php?view=timeline&l=efl

This has been updated to beta 2 now.

> As you can see we are adding 76 new APIs and removing 9 so far. Which is
> luckily a pretty low number compared to older releases.
> 
> Please help for the release by reviewing these and speak out if you find
> something that should not be in there or breaks something.
> 
> What follows is my own review, but please do your own so we can make
> sure I did not miss anything.
> 
> Eina (8 new)
> eina_file.h, libeina.so.1.23.0
> eina_file_statgen_bisable ( )
> ---> Clearly a typo. I submitted a patch to fix this as D9962

This one is fixed in beta 2.

Could other people review as well, please?
Also state if you reviewed and are fine with them to make it clear we
have some more people looking over it.

regards
Stefan Schmidt


___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] 1.23 work items list

2019-09-19 Thread Stefan Schmidt
Hello.

With beta 2 out its tiem for an update here.

On 02.09.19 17:09, Stefan Schmidt wrote:
> Hello.
> 
> 
> Its stabilization time for 1.23! Everybody stand up and say YAY!
> 
> The freeze for master is on and I would like folks to focus on
> stabilization and getting efl into shape for a release.
> 
> The drill is the usual: fix show stopper tickets, review ABI/API
> changes, look into critical Coverity issue reports, etc.
> 
> 1) Phab tickets:
> 
> https://phab.enlightenment.org/maniphest/query/91Ac3kuLMeSm/
> 
> Currently we have listed 17 tickets as showstoppers and 99 as high.
> This needs some work to figure out what is still relevant before I will
> start to list the issues here. You can help by going through the tickets
> and checking if they are still applying to master and adjusting priority
> accordingly or closing them. Mike will have a good stab at organising
> them the next days but help is always welcome. Especially on
> verification and fixing :-)

Mike sorted through all of them and this is what got tagged for 1.23:
https://phab.enlightenment.org/maniphest/query/0Wwev4LUdG3y/

>From the 6 showstopper bugs we have at least 2-3 being worked on
actively right now. There is still plenty of room to help out here.
Showstopper as well as nigh rated issues.

> 2) ABI/API checker:
> 
> I hope that the great folks at ABI Laboratory will pick up the alpha
> release and a report will be generated automatically to be found here:
> https://abi-laboratory.pro/index.php?view=timeline&l=efl

There was a separate mail on this. They updated to the results to our
beta2 now. Besides the nome naming typo fix I pushed I see nothing that
strikes me as bad.

I would like others to review as well though. If you reviewed and found
no problems please state this as well as silence could mean nobody had a
look or its all fine.

> 
> 3) Coverity reports tagged high:
> 
> In our last Coverity run on EFL from Saturday (31.8) we have 339
> outstanding issues reported. Out of these over 300 issues 71 are marked
> as high from Coverity and this is where we should focus our efforts into
> for a start.
> 
> 08 Memory corruptions
> 09 Memory illegal access
> 16 Uninitialized variables
> 38 Memory leaks

Again this was also brought up in a different mail. The number was
reduced greatly but there are some left that are worth having a look.

Again, the ones rated as high impact in our actual libraries is what I
worry about most.

> 4) Build system switch from autotools to meson:
> 
> This is the first release which will only use our new meson build
> system. If you are a packager and slept under a rock and thus have not
> noticed it would be a good idea to try this out early and not wait for
> the final tarball to check if it all works for you. :-)

I have been running into two issues durign the release handling a) meson
does not allow a beta or alpha suffix in teh release version to generate
the tarballs. Easy enough to be worked around in our release script, as
I did. b) there was an issue in the test suite with buildtype=release
(this is why it was still set to plain) but that should be fixed with a
patch today.

I have not heard anything bad from packagers yet. If that means all is
good or if nobody tested its hard to say. :/

All in all it looks not to bad in shape for the release. If we really
can do the final on next Monday has to be seen. If we have still some
open issues that are actively worked on we might delay for a few days.

regards
Stefan Schmidt


___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 01/01: docs: Update docs for Efl.Gfx.Image_Orientable

2019-09-19 Thread Xavi Artigas
xartigas pushed a commit to branch master.

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

commit 5428f26f7d08b03ce4e7963595d6f83f70d5957a
Author: Xavi Artigas 
Date:   Thu Sep 19 13:11:00 2019 +0200

docs: Update docs for Efl.Gfx.Image_Orientable
---
 src/lib/efl/interfaces/efl_gfx_image_orientable.eo | 6 +-
 src/lib/efl/interfaces/efl_ui_layout_orientable.eo | 2 ++
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/lib/efl/interfaces/efl_gfx_image_orientable.eo 
b/src/lib/efl/interfaces/efl_gfx_image_orientable.eo
index 09653edd9e..9e4c90cda4 100644
--- a/src/lib/efl/interfaces/efl_gfx_image_orientable.eo
+++ b/src/lib/efl/interfaces/efl_gfx_image_orientable.eo
@@ -29,7 +29,11 @@ enum Efl.Gfx.Image_Orientation
 
 interface Efl.Gfx.Image_Orientable
 {
-   [[Interface for objects which can be oriented.]]
+   [[Interface for images which can be rotated or flipped (mirrored).
+
+ Compare with @Efl.Ui.Layout_Orientable which works for layout objects and 
does
+ not include rotation.
+   ]]
c_prefix: efl_gfx;
methods {
@property image_orientation {
diff --git a/src/lib/efl/interfaces/efl_ui_layout_orientable.eo 
b/src/lib/efl/interfaces/efl_ui_layout_orientable.eo
index 34da902e56..e1e2d667fd 100644
--- a/src/lib/efl/interfaces/efl_ui_layout_orientable.eo
+++ b/src/lib/efl/interfaces/efl_ui_layout_orientable.eo
@@ -30,6 +30,8 @@ interface Efl.Ui.Layout_Orientable
 
  For example, sliders, which can be horizontal or vertical, or container
  boxes, which can arrange their elements in a horizontal or vertical 
fashion.
+
+ Compare with @Efl.Gfx.Image_Orientable that works for images and includes 
rotation.
]]
c_prefix: efl_ui_layout;
methods {

-- 




[EGIT] [core/efl] master 01/02: efl_model: improve docs

2019-09-19 Thread Marcel Hollerbach
xartigas pushed a commit to branch master.

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

commit 71e8dc0e7587a8f6b79bff2b1a5b3e3b1e08502e
Author: Marcel Hollerbach 
Date:   Thu Sep 19 11:36:26 2019 +0200

efl_model: improve docs

Reviewers: segfaultxavi

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10009
---
 src/lib/efl/interfaces/efl_model.eo | 9 -
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/lib/efl/interfaces/efl_model.eo 
b/src/lib/efl/interfaces/efl_model.eo
index c256483e54..f1fa4071a1 100644
--- a/src/lib/efl/interfaces/efl_model.eo
+++ b/src/lib/efl/interfaces/efl_model.eo
@@ -15,7 +15,14 @@ struct @beta Efl.Model_Children_Event {
 
 interface @beta Efl.Model
 {
-   [[Efl model interface]]
+   [[Basic Model abstraction.
+
+ A model in EFL can have a set of key-value properties, where key can only 
be a string.
+ The value can be anything within an Eina_Value. If a property is not yet 
available EAGAIN is returned.
+
+ Additionally a model can have a list of children. The fetching of the 
children is asynchronous, this has the advantage of
+ having as few data sets as possible in the memory itself.
+   ]]
c_prefix: efl_model;
   methods {
  @property properties {

-- 




[EGIT] [core/efl] master 02/02: efl_model: fix links

2019-09-19 Thread Marcel Hollerbach
xartigas pushed a commit to branch master.

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

commit e3bc67257fcb35bf0e7650f0e1ba6cf3f4a1d80a
Author: Marcel Hollerbach 
Date:   Thu Sep 19 11:36:27 2019 +0200

efl_model: fix links

Summary: Depends on D10009

Reviewers: segfaultxavi

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10010
---
 src/lib/efl/interfaces/efl_model.eo | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/lib/efl/interfaces/efl_model.eo 
b/src/lib/efl/interfaces/efl_model.eo
index f1fa4071a1..9390b87b22 100644
--- a/src/lib/efl/interfaces/efl_model.eo
+++ b/src/lib/efl/interfaces/efl_model.eo
@@ -46,8 +46,8 @@ interface @beta Efl.Model
set {
   [[Set a property value of a given property name.
 
-   The caller must ensure to call at least efl_model_prop_list
-   before being able to see/set properties. This function sets
+   The caller must first read @.properties to obtain the list of 
available properties
+   before being able to access them through @.property. This 
function sets
a new property value into given property name. Once the
operation is completed the concrete implementation should
raise @[Efl.Model.properties,changed] event in order to
@@ -136,7 +136,7 @@ interface @beta Efl.Model
  @property children_count {
 [[Number of children.
 
-   When efl_model_load is completed @.children_count.get
+   After @[.properties,changed] is emitted, @.children_count.get
can be used to get the number of children. @.children_count.get
can also be used before calling @.children_slice_get so a valid
range is known. Event @[Efl.Model.children,count,changed] is

-- 




[EGIT] [core/efl] master 01/01: docs: Update documentation on Gestures

2019-09-19 Thread Xavi Artigas
xartigas pushed a commit to branch master.

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

commit ac531f881fe084b4683e96f6de6b8a64a2ca0c9d
Author: Xavi Artigas 
Date:   Thu Sep 19 11:17:49 2019 +0200

docs: Update documentation on Gestures

We need to keep in mind that the Manager and the Recognizers are not 
visible to the user.
The user only sees the events and the different Efl.Canvas.Gesture_* 
payloads.
---
 src/lib/evas/gesture/efl_canvas_gesture.eo | 27 +++--
 .../evas/gesture/efl_canvas_gesture_double_tap.eo  |  8 ++--
 src/lib/evas/gesture/efl_canvas_gesture_flick.eo   | 21 ++-
 .../evas/gesture/efl_canvas_gesture_long_tap.eo|  9 ++---
 src/lib/evas/gesture/efl_canvas_gesture_manager.eo | 26 +++--
 .../evas/gesture/efl_canvas_gesture_momentum.eo| 12 +++---
 .../evas/gesture/efl_canvas_gesture_recognizer.eo  | 38 +--
 .../efl_canvas_gesture_recognizer_double_tap.eo| 12 +++---
 .../gesture/efl_canvas_gesture_recognizer_flick.eo |  8 ++--
 .../efl_canvas_gesture_recognizer_long_tap.eo  | 12 +++---
 .../efl_canvas_gesture_recognizer_momentum.eo  |  8 ++--
 .../gesture/efl_canvas_gesture_recognizer_tap.eo   |  8 ++--
 .../efl_canvas_gesture_recognizer_triple_tap.eo| 24 ++--
 .../gesture/efl_canvas_gesture_recognizer_zoom.eo  |  8 ++--
 src/lib/evas/gesture/efl_canvas_gesture_tap.eo |  9 ++---
 .../evas/gesture/efl_canvas_gesture_triple_tap.eo  |  9 ++---
 src/lib/evas/gesture/efl_canvas_gesture_zoom.eo| 20 +-
 src/lib/evas/gesture/efl_gesture_events.eo | 44 ++
 18 files changed, 170 insertions(+), 133 deletions(-)

diff --git a/src/lib/evas/gesture/efl_canvas_gesture.eo 
b/src/lib/evas/gesture/efl_canvas_gesture.eo
index b76aac0936..eaced25ad8 100644
--- a/src/lib/evas/gesture/efl_canvas_gesture.eo
+++ b/src/lib/evas/gesture/efl_canvas_gesture.eo
@@ -1,44 +1,49 @@
 import efl_canvas_gesture_types;
+parse efl_gesture_events;
 
 abstract @beta Efl.Canvas.Gesture extends Efl.Object
 {
-   [[EFL Gesture abstract class
+   [[Base abstract class to support gesture-specific classes.
 
- A gesture class defines a method that specific gesture event and privides 
information
- about the gesture's type, state, and associated pointer information.
+ A gesture object holds the current state of that gesture (i.e. whether 
the gesture has
+ just been started, it is in progress or it has finished) along with any 
gesture-specific
+ information it needs (like the number of taps so far, to detect 
triple-taps, for example).
 
- For cetain gesture types, additional methods are defined to provide 
meaningful gesture
- information to the user.]]
+ Typically this class is not used directly, instead, some sub-class of it 
(like
+ @Efl.Canvas.Gesture_Tap or @Efl.Canvas.Gesture_Zoom) is retrieved from 
gesture events
+ (like @[Efl.Gesture.Events.gesture,tap] or 
@[Efl.Gesture.Events.gesture,zoom]).
+   ]]
c_prefix: efl_gesture;
methods {
   @property state {
- [[This property holds the current state of the gesture.]]
+ [[Current state of the gesture, from initial detection to successful 
recognition.]]
  get {
  }
  set {
  }
  values {
-state: Efl.Canvas.Gesture_State; [[gesture state]]
+state: Efl.Canvas.Gesture_State; [[State.]]
  }
   }
   @property hotspot {
- [[This property holds the hotspot of the current gesture.]]
+ [[Hotspot of the gesture currently being analyzed.
+   The exact meaning depends on the gesture type.]]
  get {
  }
  set {
  }
  values {
-hotspot: Eina.Position2D;[[hotspot co-ordinate]]
+hotspot: Eina.Position2D;[[Hotspot coordinates.]]
  }
   }
   @property timestamp {
- [[This property holds the timestamp of the current gesture.]]
+ [[Moment when the gesture currently being analyzed started.]]
  get {
  }
  set {
  }
  values {
-timestamp: uint;[[The timestamp]]
+timestamp: uint;[[The time-stamp.]]
  }
   }
}
diff --git a/src/lib/evas/gesture/efl_canvas_gesture_double_tap.eo 
b/src/lib/evas/gesture/efl_canvas_gesture_double_tap.eo
index 5a0b1bc57b..87b93ccd9c 100644
--- a/src/lib/evas/gesture/efl_canvas_gesture_double_tap.eo
+++ b/src/lib/evas/gesture/efl_canvas_gesture_double_tap.eo
@@ -1,9 +1,9 @@
 class @beta Efl.Canvas.Gesture_Double_Tap extends Efl.Canvas.Gesture
 {
-   [[EFL Gesture Double Tap class
-   
- A gesture class defines a method that double tap gesture event and 
provides information
- about the double tap gesture's type, state and associated pointer 
information.]]
+   [[Double-tap gesture class holding state information.
+ See @Efl.Canvas.Gesture

[EGIT] [website/www-content] master 01/01: Wiki page hello-world.md changed with summary [Typo] by Xavi Artigas

2019-09-19 Thread Xavi Artigas
WWW-www.enlightenment.org pushed a commit to branch master.

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

commit 660fd4e778b59bf94254566bebd0fa46bbf76954
Author: Xavi Artigas 
Date:   Thu Sep 19 01:07:54 2019 -0700

Wiki page hello-world.md changed with summary [Typo] by Xavi Artigas
---
 pages/develop/tutorials/c/hello-world.md.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pages/develop/tutorials/c/hello-world.md.txt 
b/pages/develop/tutorials/c/hello-world.md.txt
index ab9dadf95..48f4fdc08 100644
--- a/pages/develop/tutorials/c/hello-world.md.txt
+++ b/pages/develop/tutorials/c/hello-world.md.txt
@@ -42,7 +42,7 @@ efl_main(void *data EINA_UNUSED, const Efl_Event *ev 
EINA_UNUSED)
 
 EFL takes care of all initialization tasks and calls your ``efl_main()`` 
method when everything is ready.
 
-At this point the parameters to ``efl_main()`` are not being used, hence the 
``EINA_UNUSED`` macro. This is optional but it gets rid of warnings regarding 
unused parameters so it's worth having. Moreover, the ``data`` argument will 
always be NULL in this tutorials.
+At this point the parameters to ``efl_main()`` are not being used, hence the 
``EINA_UNUSED`` macro. This is optional but it gets rid of warnings regarding 
unused parameters so it's worth having. Moreover, the ``data`` argument will 
always be NULL in these tutorials.
 
 ## Step Three: Print "Hello World" ##
 

-- 




[EGIT] [website/www-content] master 01/01: Wiki page hello-world.md changed with summary [Typo] by Xavi Artigas

2019-09-19 Thread Xavi Artigas
WWW-www.enlightenment.org pushed a commit to branch master.

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

commit 5d9a4b888f24b0120ce399f2f16493b99e59d86d
Author: Xavi Artigas 
Date:   Thu Sep 19 01:06:43 2019 -0700

Wiki page hello-world.md changed with summary [Typo] by Xavi Artigas
---
 pages/develop/tutorials/c/hello-world.md.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pages/develop/tutorials/c/hello-world.md.txt 
b/pages/develop/tutorials/c/hello-world.md.txt
index 6a607bdc0..ab9dadf95 100644
--- a/pages/develop/tutorials/c/hello-world.md.txt
+++ b/pages/develop/tutorials/c/hello-world.md.txt
@@ -18,7 +18,7 @@ Using your favorite text editor, create a text file and save 
it as ``hello-world
 #include 
 ```
 
-The new EFL API has been in Beta stage for a while, and some libraries still 
need that you define the ``EFL_BETA_API_SUPPORT`` symbols before including any 
EFL library. Don't worry, though, they should not be required any more in the 
near future.
+The new EFL API has been in Beta stage for a while, and some libraries still 
need that you define the ``EFL_BETA_API_SUPPORT`` symbol before including any 
EFL library. Don't worry, though, they should not be required any more in the 
near future.
 
 The EFL is split into several libraries. You only need to include the ones you 
actually want to use. In this tutorial you will be calling methods from the 
``Eina`` and ``Efl`` libraries, therefore you just need to include the 
``Efl_Core.h`` header which includes ``Eina.h`` and ``Efl.h``.
 

-- 




[EGIT] [website/www-content] master 01/01: Update libraries needed by first tutorial.

2019-09-19 Thread Xavi Artigas
xartigas pushed a commit to branch master.

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

commit 4e0e7c4615dc4af3ef8c8279b417dc1f5c44539d
Author: Xavi Artigas 
Date:   Thu Sep 19 10:03:41 2019 +0200

Update libraries needed by first tutorial.

Original author: Vincent Torri 
---
 pages/develop/tutorials/c/hello-world.md.txt | 14 +++---
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/pages/develop/tutorials/c/hello-world.md.txt 
b/pages/develop/tutorials/c/hello-world.md.txt
index 8b0d7ca3d..6a607bdc0 100644
--- a/pages/develop/tutorials/c/hello-world.md.txt
+++ b/pages/develop/tutorials/c/hello-world.md.txt
@@ -15,13 +15,12 @@ Using your favorite text editor, create a text file and 
save it as ``hello-world
 ```c
 #define EFL_BETA_API_SUPPORT 1
 
-#include 
 #include 
 ```
 
 The new EFL API has been in Beta stage for a while, and some libraries still 
need that you define the ``EFL_BETA_API_SUPPORT`` symbols before including any 
EFL library. Don't worry, though, they should not be required any more in the 
near future.
 
-The EFL is split into several libraries. You only need to include the ones you 
actually want to use. In this tutorial you will be calling methods from the 
``Eina`` and ``Efl`` libraries, therefore you need to include the ``Eina.h`` 
and ``Efl_Core.h`` headers.
+The EFL is split into several libraries. You only need to include the ones you 
actually want to use. In this tutorial you will be calling methods from the 
``Eina`` and ``Efl`` libraries, therefore you just need to include the 
``Efl_Core.h`` header which includes ``Eina.h`` and ``Efl.h``.
 
 You will explore the EFL libraries in greater depth in later tutorials. Other 
examples are ``Efl_Net.h`` for network operations and ``Efl_Ui.h`` to create 
*User Interface* elements like windows and buttons.
 
@@ -43,7 +42,7 @@ efl_main(void *data EINA_UNUSED, const Efl_Event *ev 
EINA_UNUSED)
 
 EFL takes care of all initialization tasks and calls your ``efl_main()`` 
method when everything is ready.
 
-At this point the parameters to ``efl_main()`` are not being used, hence the 
``EINA_UNUSED`` macro. This is optional but it gets rid of warnings regarding 
unused parameters so it's worth having.
+At this point the parameters to ``efl_main()`` are not being used, hence the 
``EINA_UNUSED`` macro. This is optional but it gets rid of warnings regarding 
unused parameters so it's worth having. Moreover, the ``data`` argument will 
always be NULL in this tutorials.
 
 ## Step Three: Print "Hello World" ##
 
@@ -84,7 +83,8 @@ This is not mandatory but it simplifies the setup and 
shutdown processes conside
 
 Your program should now look something like this:
 ```c
-#include 
+#define EFL_BETA_API_SUPPORT 1
+
 #include 
 
 void
@@ -100,7 +100,7 @@ EFL_MAIN()
 Save the program then build it as outlined in [Setting up the Development 
Environment](/develop/setup/c/#Building). As a reminder, if you are using the 
``gcc`` compiler, run:
 
 ```bash
-gcc -o hello-world hello-world.c `pkg-config --cflags --libs eina efl 
elementary`
+gcc -o hello-world hello-world.c `pkg-config --cflags --libs ecore`
 ```
 
 If the systems displays no errors, your program should be ready. Test it by 
typing:
@@ -158,8 +158,8 @@ In the above example, if no parameters are passed to your 
program (``eina_array_
 
 At the end of this tutorial you have learned:
 
-* **Header files** must be included for any EFL libraries you intend to use. 
Typically, these are ``Eina.h`` and ``Efl.h``.
+* **Header files** must be included for any EFL libraries you intend to use. 
Typically, these are ``Efl_Core.h`` or ``Efl_Ui.h``.
 * Your **main method** should be ``efl_main()``.
 * Your EFL programs should **always call ``efl_exit()``** at some stage.
 * Your EFL programs should **include the ``EFL_MAIN()`` macro** at the end so 
EFL can insert its own start-up and shutdown code.
-* **Command line parameters** are available through the ``Efl_Event *`` 
parameter in ``efl_main()``, and can be accessed with ``eina_array_count()`` 
and ``eina_array_data_get()``.
\ No newline at end of file
+* **Command line parameters** are available through the ``Efl_Event *`` 
parameter in ``efl_main()``, and can be accessed with ``eina_array_count()`` 
and ``eina_array_data_get()``.

--