[EGIT] [core/efl] master 01/01: eo: Rename efl_ref_get to efl_ref_count

2017-11-08 Thread Andy Williams
ajwillia-ms pushed a commit to branch master.

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

commit d5dbcdabd14c1ddf01f22b4865487ecce272c055
Author: Andy Williams 
Date:   Wed Nov 8 09:30:42 2017 +

eo: Rename efl_ref_get to efl_ref_count
---
 src/bindings/cxx/eo_cxx/eo_ops.hh  |  2 +-
 src/lib/ecore/efl_io_copier.c  |  6 +-
 src/lib/ecore_con/efl_net_dialer_http.c|  2 +-
 src/lib/ecore_con/efl_net_server_fd.c  |  2 +-
 src/lib/ecore_con/efl_net_server_simple.c  |  2 +-
 src/lib/ecore_con/efl_net_server_ssl.c |  2 +-
 src/lib/ecore_con/efl_net_server_windows.c |  2 +-
 src/lib/eio/eio_model.c|  2 +-
 src/lib/elementary/elm_atspi_bridge.c  |  2 +-
 src/lib/eo/Eo.h|  8 +--
 src/lib/eo/eo.c|  4 +-
 src/lib/evas/canvas/evas_main.c| 12 ++--
 src/tests/elementary/elm_test_win.c|  4 +-
 src/tests/eo/suite/eo_test_general.c   | 88 +++---
 14 files changed, 69 insertions(+), 69 deletions(-)

diff --git a/src/bindings/cxx/eo_cxx/eo_ops.hh 
b/src/bindings/cxx/eo_cxx/eo_ops.hh
index 8d385fd212..1f08d8d738 100644
--- a/src/bindings/cxx/eo_cxx/eo_ops.hh
+++ b/src/bindings/cxx/eo_cxx/eo_ops.hh
@@ -42,7 +42,7 @@ unref(const Eo *obj)
 inline int
 ref_get(const Eo *obj)
 {
-   return ::efl_ref_get(obj);
+   return ::efl_ref_count(obj);
 }
 
 inline Eina_Bool
diff --git a/src/lib/ecore/efl_io_copier.c b/src/lib/ecore/efl_io_copier.c
index dc4d1e17dd..e9d7d2313b 100644
--- a/src/lib/ecore/efl_io_copier.c
+++ b/src/lib/ecore/efl_io_copier.c
@@ -42,7 +42,7 @@ static void _efl_io_copier_read(Eo *o, Efl_Io_Copier_Data 
*pd);
 DBG("copier={%p %s, refs=%d, closed=%d, done=%d, buf=%zd}", \
 o, \
 efl_class_name_get(efl_class_get(o)), \
-efl_ref_get(o), \
+efl_ref_count(o), \
 efl_io_closer_closed_get(o), \
 pd->done, \
 pd->buf ? eina_binbuf_length_get(pd->buf): 0); \
@@ -52,7 +52,7 @@ static void _efl_io_copier_read(Eo *o, Efl_Io_Copier_Data 
*pd);
   DBG("source={%p %s, refs=%d, can_read=%d, eos=%d, closed=%d}", \
   pd->source, \
   efl_class_name_get(efl_class_get(pd->source)), \
-  efl_ref_get(pd->source), \
+  efl_ref_count(pd->source), \
   efl_io_reader_can_read_get(pd->source), \
   efl_io_reader_eos_get(pd->source), \
   efl_isa(pd->source, EFL_IO_CLOSER_MIXIN) ? \
@@ -63,7 +63,7 @@ static void _efl_io_copier_read(Eo *o, Efl_Io_Copier_Data 
*pd);
   DBG("destination={%p %s, refs=%d, can_write=%d, closed=%d}", \
   pd->destination, \
   efl_class_name_get(efl_class_get(pd->destination)), \
-  efl_ref_get(pd->destination), \
+  efl_ref_count(pd->destination), \
   efl_io_writer_can_write_get(pd->destination), \
   efl_isa(pd->destination, EFL_IO_CLOSER_MIXIN) ? \
   efl_io_closer_closed_get(pd->destination) : 0); \
diff --git a/src/lib/ecore_con/efl_net_dialer_http.c 
b/src/lib/ecore_con/efl_net_dialer_http.c
index cbc3e033e8..d553bad134 100644
--- a/src/lib/ecore_con/efl_net_dialer_http.c
+++ b/src/lib/ecore_con/efl_net_dialer_http.c
@@ -820,7 +820,7 @@ _efl_net_dialer_http_curl_safe_end(Eo *o, 
Efl_Net_Dialer_Http_Data *pd, CURL *ea
Eina_Future *f;
int refs;
 
-   refs = efl_ref_get(o);
+   refs = efl_ref_count(o);
if (refs >= 2)
  {
 pd->in_curl_callback--;
diff --git a/src/lib/ecore_con/efl_net_server_fd.c 
b/src/lib/ecore_con/efl_net_server_fd.c
index c04b6c2186..5fede8d0f7 100644
--- a/src/lib/ecore_con/efl_net_server_fd.c
+++ b/src/lib/ecore_con/efl_net_server_fd.c
@@ -513,7 +513,7 @@ _efl_net_server_fd_efl_net_server_client_announce(Eo *o, 
Efl_Net_Server_Fd_Data
 return EINA_TRUE;
  }
 
-   if (efl_ref_get(client) == 1) /* users must take a reference themselves */
+   if (efl_ref_count(client) == 1) /* users must take a reference themselves */
  {
 DBG("client %s was not handled, closing it...",
 efl_net_socket_address_remote_get(client));
diff --git a/src/lib/ecore_con/efl_net_server_simple.c 
b/src/lib/ecore_con/efl_net_server_simple.c
index 0dba2f6a83..479948b2e0 100644
--- a/src/lib/ecore_con/efl_net_server_simple.c
+++ b/src/lib/ecore_con/efl_net_server_simple.c
@@ -46,7 +46,7 @@ _efl_net_server_simple_efl_net_server_client_announce(Eo *o, 
Efl_Net_Server_Simp
 return EINA_TRUE;
  }
 
-   if (efl_ref_get(client) == 1) /* users must take a reference themselves */
+   if (efl_ref_count(client) == 1) /* users must take a reference themselves */
  {
 DBG("client %s was not handled, closing it...",
 efl_net_socket_address_remote_get(client));
d

[EGIT] [tools/examples] master 01/01: Update to efl_ref_count

2017-11-08 Thread Andy Williams
ajwillia-ms pushed a commit to branch master.

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

commit b3f6e19657378eafa77f031cc2ed05c6126896ac
Author: Andy Williams 
Date:   Wed Nov 8 09:34:28 2017 +

Update to efl_ref_count
---
 c-eo-intro/src/eo_intro_main.c | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/c-eo-intro/src/eo_intro_main.c b/c-eo-intro/src/eo_intro_main.c
index 55fef85..cd5d51e 100644
--- a/c-eo-intro/src/eo_intro_main.c
+++ b/c-eo-intro/src/eo_intro_main.c
@@ -16,7 +16,7 @@ static const char*
 _parent_name_get(Eo *obj)
 {
// Object has been destroyed
-   if (efl_ref_get(obj) == 0) return "-";
+   if (efl_ref_count(obj) == 0) return "-";
// Object has no parent
if (efl_parent_get(obj) == NULL) return "none";
// Otherwise, return parent's name
@@ -29,9 +29,9 @@ _status_print()
 {
printf("Object:   %6s %6s %6s\n", "ROOT", "CHILD1", "CHILD2");
printf("Refcount: %6d %6d %6d\n",
-  efl_ref_get(_root_ref),
-  efl_ref_get(_child1_ref),
-  efl_ref_get(_child2_ref));
+  efl_ref_count(_root_ref),
+  efl_ref_count(_child1_ref),
+  efl_ref_count(_child2_ref));
printf("Parent:   %6s %6s %6s\n\n",
   _parent_name_get(_root_ref),
   _parent_name_get(_child1_ref),

-- 




[EGIT] [core/efl] master 01/02: Efl: add class interfaces (color/text/size)

2017-11-08 Thread Jee-Yong Um
jpeg pushed a commit to branch master.

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

commit 2f838acd4ef0f3f914bb5d03081aef2fd1f412b5
Author: Jee-Yong Um 
Date:   Wed Nov 8 19:04:26 2017 +0900

Efl: add class interfaces (color/text/size)

Summary: implement Efl.Gfx.Class interface

Reviewers: jpeg, cedric

Subscribers: taxi2se, herdsman

Differential Revision: https://phab.enlightenment.org/D4403
---
 src/Makefile_Edje.am  |   1 +
 src/Makefile_Efl.am   |   3 +
 src/lib/edje/Edje_Eo.h|   1 +
 src/lib/edje/Edje_Legacy.h| 143 +++-
 src/lib/edje/edje_global.eo   |  12 ++
 src/lib/edje/edje_main.c  |   5 +
 src/lib/edje/edje_object.eo   | 226 ++---
 src/lib/edje/edje_private.h   |   2 +
 src/lib/edje/edje_smart.c |  10 ++
 src/lib/edje/edje_types.eot   |   9 -
 src/lib/edje/edje_util.c  | 231 ++
 src/lib/efl/Efl.h |   3 +
 src/lib/efl/interfaces/efl_gfx_color_class.eo |  85 ++
 src/lib/efl/interfaces/efl_gfx_size_class.eo  |  49 ++
 src/lib/efl/interfaces/efl_gfx_text_class.eo  |  43 +
 src/lib/efl/interfaces/efl_gfx_types.eot  |   8 +
 src/lib/efl/interfaces/efl_interfaces_main.c  |   4 +
 src/lib/efl/interfaces/efl_text_properties.eo |   4 +-
 18 files changed, 545 insertions(+), 294 deletions(-)

diff --git a/src/Makefile_Edje.am b/src/Makefile_Edje.am
index b4299f171e..cf7d9f2655 100644
--- a/src/Makefile_Edje.am
+++ b/src/Makefile_Edje.am
@@ -5,6 +5,7 @@ edje_eolian_files = \
lib/edje/efl_canvas_layout_calc.eo \
lib/edje/efl_canvas_layout_signal.eo \
lib/edje/efl_canvas_layout_group.eo \
+   lib/edje/edje_global.eo \
lib/edje/edje_object.eo \
lib/edje/efl_canvas_layout_part.eo \
lib/edje/efl_canvas_layout_part_box.eo \
diff --git a/src/Makefile_Efl.am b/src/Makefile_Efl.am
index c4e866aaa3..f9cdc7fe3c 100644
--- a/src/Makefile_Efl.am
+++ b/src/Makefile_Efl.am
@@ -76,6 +76,9 @@ efl_eolian_files = \
   lib/efl/interfaces/efl_ui_menu.eo \
   lib/efl/interfaces/efl_ui_autorepeat.eo \
   lib/efl/interfaces/efl_ui_format.eo \
+  lib/efl/interfaces/efl_gfx_color_class.eo \
+  lib/efl/interfaces/efl_gfx_text_class.eo \
+  lib/efl/interfaces/efl_gfx_size_class.eo \
   $(efl_eolian_legacy_files) \
   $(NULL)
 
diff --git a/src/lib/edje/Edje_Eo.h b/src/lib/edje/Edje_Eo.h
index 877f3bea07..37c5db5ce0 100644
--- a/src/lib/edje/Edje_Eo.h
+++ b/src/lib/edje/Edje_Eo.h
@@ -3,6 +3,7 @@
 #include "efl_canvas_layout_calc.eo.h"
 #include "efl_canvas_layout_signal.eo.h"
 #include "efl_canvas_layout_group.eo.h"
+#include "edje_global.eo.h"
 #include "edje_object.eo.h"
 #include "edje_edit.eo.h"
 
diff --git a/src/lib/edje/Edje_Legacy.h b/src/lib/edje/Edje_Legacy.h
index 24a913675f..edd30e25da 100644
--- a/src/lib/edje/Edje_Legacy.h
+++ b/src/lib/edje/Edje_Legacy.h
@@ -1213,6 +1213,147 @@ EAPI Eina_Bool edje_object_color_class_set(Evas_Object 
*obj, const char * color_
 EAPI Eina_Bool edje_object_color_class_get(const Evas_Object *obj, const char 
* color_class, int *r, int *g, int *b, int *a, int *r2, int *g2, int *b2, int 
*a2, int *r3, int *g3, int *b3, int *a3);
 
 /**
+ * @brief Delete the object color class.
+ *
+ * This function deletes any values at the object level for the specified
+ * object and color class.
+ *
+ * Deleting the color class will revert it to the values defined by
+ * edje_color_class_set() or the color class defined in the theme file.
+ *
+ * Deleting the color class will emit the signal "color_class,del" for the
+ * given Edje object.
+ *
+ * @param[in] color_class The color class to be deleted.
+ *
+ * @ingroup Edje_Object
+ */
+EAPI void edje_object_color_class_del(Evas_Object *obj, const char 
*color_class);
+
+/**
+ * @brief Delete all color classes defined in object level.
+ *
+ * This function deletes any color classes defined in object level.
+ * Clearing color classes will revert the color of all edje parts to
+ * the values defined in global level or theme file.
+ *
+ * @return @c true, on success or @c false, on error
+ *
+ * @since 1.17.0
+ *
+ * @ingroup Edje_Object
+ */
+EAPI Eina_Bool edje_object_color_class_clear(const Evas_Object *obj);
+
+/**
+ * @brief Sets Edje text class.
+ *
+ * This function sets the text class for the Edje.
+ *
+ * @param[in] text_class The text class name
+ * @param[in] font Font name
+ * @param[in] size Font Size
+ *
+ * @return @c true, on success or @c false, on error
+ *
+ * @ingroup Edje_Object
+ */
+EAPI Eina_Bool edje_object_text_class_set(Evas_Object *obj, const char * 
text_class, const char *font, Evas_Font_Size size);
+
+/**
+ * @brief Gets font and font size from edje 

[EGIT] [core/efl] master 02/02: edje: Hide edje_global from the rest of the world

2017-11-08 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit cc1ed7183c9ccab57ffd010338e781744fa424ad
Author: Jean-Philippe Andre 
Date:   Wed Nov 8 19:29:13 2017 +0900

edje: Hide edje_global from the rest of the world

Call provider_find on the loop (or basically any object) with the
color/text/size class interface instead, to find it. The main loop is
the main holder of those objects.

Note: This makes use of provider_find instead of direct access to the
variable, in order to self-test the code. In theory release builds will
not do this and user directly the variable.
---
 src/Makefile_Edje.am|  2 +-
 src/lib/ecore/ecore_main.c  |  2 +-
 src/lib/edje/edje_global.eo |  4 
 src/lib/edje/edje_main.c| 21 +++--
 src/lib/edje/edje_private.h | 16 ++--
 src/lib/edje/edje_smart.c   |  9 -
 src/lib/edje/edje_util.c| 28 +---
 7 files changed, 52 insertions(+), 30 deletions(-)

diff --git a/src/Makefile_Edje.am b/src/Makefile_Edje.am
index cf7d9f2655..e1a1973430 100644
--- a/src/Makefile_Edje.am
+++ b/src/Makefile_Edje.am
@@ -5,7 +5,6 @@ edje_eolian_files = \
lib/edje/efl_canvas_layout_calc.eo \
lib/edje/efl_canvas_layout_signal.eo \
lib/edje/efl_canvas_layout_group.eo \
-   lib/edje/edje_global.eo \
lib/edje/edje_object.eo \
lib/edje/efl_canvas_layout_part.eo \
lib/edje/efl_canvas_layout_part_box.eo \
@@ -19,6 +18,7 @@ edje_eolian_type_files = \
 lib/edje/edje_types.eot
 
 edje_eolian_priv_files = \
+   lib/edje/edje_global.eo \
$(NULL)
 
 edje_eolian_c = $(edje_eolian_files:%.eo=%.eo.c)
diff --git a/src/lib/ecore/ecore_main.c b/src/lib/ecore/ecore_main.c
index 4b7c93d79c..f85d2cdc0d 100644
--- a/src/lib/ecore/ecore_main.c
+++ b/src/lib/ecore/ecore_main.c
@@ -3056,7 +3056,7 @@ _efl_loop_efl_object_constructor(Eo *obj, Efl_Loop_Data 
*pd)
 
efl_event_callback_array_add(obj, event_catcher_watch(), pd);
 
-   pd->providers = eina_hash_pointer_new((void*) efl_unref);
+   pd->providers = eina_hash_pointer_new(EINA_FREE_CB(efl_unref));
 
return obj;
 }
diff --git a/src/lib/edje/edje_global.eo b/src/lib/edje/edje_global.eo
index 07ebba5130..f5001f2e73 100644
--- a/src/lib/edje/edje_global.eo
+++ b/src/lib/edje/edje_global.eo
@@ -1,5 +1,9 @@
 class Edje.Global (Efl.Object, Efl.Gfx.Color_Class, Efl.Gfx.Text_Class, 
Efl.Gfx.Size_Class)
 {
+   [[An internal object that manages global color, text and size classes for
+ the whole application. Individual edje objects also support the same
+ features.
+   ]]
data: null;
implements {
   Efl.Gfx.Color_Class.color_class { get; set; }
diff --git a/src/lib/edje/edje_main.c b/src/lib/edje/edje_main.c
index f5980cc67e..bd96acca4b 100644
--- a/src/lib/edje/edje_main.c
+++ b/src/lib/edje/edje_main.c
@@ -13,6 +13,8 @@ Eina_Mempool *_edje_real_part_state_mp = NULL;
 Eina_Cow *_edje_calc_params_map_cow = NULL;
 Eina_Cow *_edje_calc_params_physics_cow = NULL;
 
+Edje_Global *_edje_global_obj = NULL;
+
 static const Edje_Calc_Params_Map default_calc_map = {
{ 0, 0, 0 }, { 0.0, 0.0, 0.0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0 
}, { 0.0, 0.0 }, NULL, 0
 };
@@ -82,6 +84,11 @@ edje_init(void)
 
_edje_scale = FROM_DOUBLE(1.0);
_edje_global_obj = efl_add(EDJE_GLOBAL_CLASS, NULL);
+   if (!_edje_global_obj ||
+   !efl_loop_register(ecore_main_loop_get(), 
EFL_GFX_COLOR_CLASS_INTERFACE, _edje_global_obj) ||
+   !efl_loop_register(ecore_main_loop_get(), EFL_GFX_TEXT_CLASS_INTERFACE, 
_edje_global_obj) ||
+   !efl_loop_register(ecore_main_loop_get(), EFL_GFX_SIZE_CLASS_INTERFACE, 
_edje_global_obj))
+ goto shutdown_efreet;
 
_edje_edd_init();
_edje_text_init();
@@ -141,8 +148,15 @@ shutdown_all:
_edje_text_class_hash_free();
_edje_size_class_hash_free();
_edje_edd_shutdown();
-   efl_del(_edje_global_obj);
-   _edje_global_obj = NULL;
+   if (_edje_global_obj)
+ {
+efl_loop_unregister(ecore_main_loop_get(), 
EFL_GFX_COLOR_CLASS_INTERFACE, _edje_global_obj);
+efl_loop_unregister(ecore_main_loop_get(), 
EFL_GFX_TEXT_CLASS_INTERFACE, _edje_global_obj);
+efl_loop_unregister(ecore_main_loop_get(), 
EFL_GFX_SIZE_CLASS_INTERFACE, _edje_global_obj);
+efl_del(_edje_global_obj);
+_edje_global_obj = NULL;
+ }
+shutdown_efreet:
efreet_shutdown();
 shutdown_evas:
evas_shutdown();
@@ -195,6 +209,9 @@ _edje_shutdown_core(void)
_edje_text_class_hash_free();
_edje_size_class_hash_free();
_edje_edd_shutdown();
+   efl_loop_unregister(ecore_main_loop_get(), EFL_GFX_COLOR_CLASS_INTERFACE, 
_edje_global_obj);
+   efl_loop_unregister(ecore_main_loop_get(), EFL_GFX_TEXT_CLASS_INTERFACE, 
_edje_global_obj);
+   efl_loop_unregister(ecore_main_loop_get(), EFL_GFX_SIZE_CLASS_INTERFACE, 
_edje_global_obj);
efl_del(_ed

[EGIT] [core/efl] master 01/01: edje: Oops. Remove edje_global include as well.

2017-11-08 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit 10b6eb627abe7f0419b1c76ff73faf90274e940b
Author: Jean-Philippe Andre 
Date:   Wed Nov 8 20:16:28 2017 +0900

edje: Oops. Remove edje_global include as well.
---
 src/lib/edje/Edje_Eo.h | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/lib/edje/Edje_Eo.h b/src/lib/edje/Edje_Eo.h
index 37c5db5ce0..877f3bea07 100644
--- a/src/lib/edje/Edje_Eo.h
+++ b/src/lib/edje/Edje_Eo.h
@@ -3,7 +3,6 @@
 #include "efl_canvas_layout_calc.eo.h"
 #include "efl_canvas_layout_signal.eo.h"
 #include "efl_canvas_layout_group.eo.h"
-#include "edje_global.eo.h"
 #include "edje_object.eo.h"
 #include "edje_edit.eo.h"
 

-- 




[EGIT] [core/efl] master 01/01: elput - re-enable switches (power buttons, lid etc.)

2017-11-08 Thread Carsten Haitzler
raster pushed a commit to branch master.

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

commit 7a7abb043add0af083c46305824d8c341daf2374
Author: Carsten Haitzler (Rasterman) 
Date:   Tue Nov 7 11:04:03 2017 +0900

elput - re-enable switches (power buttons, lid etc.)

this is needed for devices that no longer produce aspi events for
these. otherwise good luck getting any event on lid open/close or on
pressing the power button. this also stops hiding switch events from
libinput and now you can get switch events to find lid or tablet mode
switching changes.

@fix
---
 src/lib/elput/Elput.h   | 27 +++
 src/lib/elput/elput.c   |  3 +++
 src/lib/elput/elput_evdev.c | 37 -
 3 files changed, 54 insertions(+), 13 deletions(-)

diff --git a/src/lib/elput/Elput.h b/src/lib/elput/Elput.h
index b05536130b..db62c52d10 100644
--- a/src/lib/elput/Elput.h
+++ b/src/lib/elput/Elput.h
@@ -38,6 +38,7 @@ typedef enum
ELPUT_DEVICE_CAPS_TABLET_TOOL = (1 << 3),
ELPUT_DEVICE_CAPS_TABLET_PAD = (1 << 4),
ELPUT_DEVICE_CAPS_GESTURE = (1 << 5),
+   ELPUT_DEVICE_CAPS_SWITCH = (1 << 6),
 } Elput_Device_Caps;
 
 /* opaque structure to represent an input manager */
@@ -112,6 +113,29 @@ typedef struct Elput_Event_Pointer_Motion
double dy_unaccel;
 } Elput_Event_Pointer_Motion;
 
+/** @since 1.21 */
+typedef enum
+{
+   ELPUT_SWITCH_TYPE_LID = 1,
+   ELPUT_SWITCH_TYPE_TABLET_MODE,
+} Elput_Switch_Type;
+
+/** @since 1.21 */
+typedef enum
+{
+   ELPUT_SWITCH_STATE_OFF = 0,
+   ELPUT_SWITCH_STATE_ON = 1,
+} Elput_Switch_State;
+
+/** @since 1.21 */
+typedef struct _Elput_Event_Switch
+{
+   Elput_Device *device;
+   uint64_t time_usec;
+   Elput_Switch_Type type;
+   Elput_Switch_State state;
+} Elput_Event_Switch;
+
 
 EAPI extern int ELPUT_EVENT_SEAT_CAPS;
 EAPI extern int ELPUT_EVENT_SEAT_FRAME;
@@ -122,6 +146,9 @@ EAPI extern int ELPUT_EVENT_SESSION_ACTIVE;
 /** @since 1.19 */
 EAPI extern int ELPUT_EVENT_POINTER_MOTION;
 
+/** @since 1.21 */
+EAPI extern int ELPUT_EVENT_SWITCH;
+
 /**
  * @file
  * @brief Ecore functions for dealing with libinput
diff --git a/src/lib/elput/elput.c b/src/lib/elput/elput.c
index 9519129759..f3cda411ea 100644
--- a/src/lib/elput/elput.c
+++ b/src/lib/elput/elput.c
@@ -13,6 +13,7 @@ EAPI int ELPUT_EVENT_MODIFIERS_SEND = 0;
 EAPI int ELPUT_EVENT_DEVICE_CHANGE = 0;
 EAPI int ELPUT_EVENT_SESSION_ACTIVE = 0;
 EAPI int ELPUT_EVENT_POINTER_MOTION = 0;
+EAPI int ELPUT_EVENT_SWITCH = 0;
 EAPI int elput_event_session_ready = 0;
 
 EAPI int
@@ -41,6 +42,7 @@ elput_init(void)
 ELPUT_EVENT_DEVICE_CHANGE = ecore_event_type_new();
 ELPUT_EVENT_SESSION_ACTIVE = ecore_event_type_new();
 ELPUT_EVENT_POINTER_MOTION = ecore_event_type_new();
+ELPUT_EVENT_SWITCH = ecore_event_type_new();
 elput_event_session_ready = ecore_event_type_new();
  }
 
@@ -71,6 +73,7 @@ elput_shutdown(void)
   ELPUT_EVENT_DEVICE_CHANGE,
   ELPUT_EVENT_SESSION_ACTIVE,
   ELPUT_EVENT_POINTER_MOTION,
+  ELPUT_EVENT_SWITCH,
   elput_event_session_ready);
 
eina_log_domain_unregister(_elput_log_dom);
diff --git a/src/lib/elput/elput_evdev.c b/src/lib/elput/elput_evdev.c
index 09d75932f8..afa42df68c 100644
--- a/src/lib/elput/elput_evdev.c
+++ b/src/lib/elput/elput_evdev.c
@@ -1595,6 +1595,20 @@ _tablet_tool_tip(struct libinput_device *idev, struct 
libinput_event_tablet_tool
_pointer_button_send(dev, press[state]);
 }
 
+static void
+_switch_toggle(struct libinput_device *idev, struct libinput_event_switch 
*event)
+{
+   Elput_Event_Switch *ev;
+
+   ev = calloc(1, sizeof(Elput_Event_Switch));
+   if (!ev) return;
+   ev->device = libinput_device_get_user_data(idev);
+   ev->time_usec = libinput_event_switch_get_time_usec(event);
+   ev->type = (Elput_Switch_Type)libinput_event_switch_get_switch(event);
+   ev->state = 
(Elput_Switch_State)libinput_event_switch_get_switch_state(event);
+   ecore_event_add(ELPUT_EVENT_SWITCH, ev, NULL, NULL);
+}
+
 int
 _evdev_event_process(struct libinput_event *event)
 {
@@ -1642,6 +1656,9 @@ _evdev_event_process(struct libinput_event *event)
   case LIBINPUT_EVENT_TABLET_TOOL_TIP: /* is this useful? */
 _tablet_tool_tip(idev, libinput_event_get_tablet_tool_event(event));
 break;
+  case LIBINPUT_EVENT_SWITCH_TOGGLE:
+_switch_toggle(idev, libinput_event_get_switch_event(event));
+break;
   default:
 ret = 0;
 break;
@@ -1670,7 +1687,6 @@ _evdev_device_create(Elput_Seat *seat, struct 
libinput_device *device)
edev->refs = 1;
edev->seat = seat;
edev->device = device;
-   edev->caps = 0;
edev->ow = seat->manager->output_w;
edev->oh = seat->manager->output_h;
 
@@ -1679,13 +1695,14 @@ _evdev_device_create(Elput_Se

[EGIT] [website/www-content] master 01/01: Wiki media playground:evasgl-graphics-pipeline.png uploaded by Gareth Halfacree

2017-11-08 Thread Gareth Halfacree
WWW-www.enlightenment.org pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=0f400cd98b1114909a37dce61b1cf45a4739

commit 0f400cd98b1114909a37dce61b1cf45a4739
Author: Gareth Halfacree 
Date:   Wed Nov 8 05:54:53 2017 -0800

Wiki media playground:evasgl-graphics-pipeline.png uploaded by Gareth 
Halfacree
---
 media/playground/evasgl-graphics-pipeline.png | Bin 0 -> 51464 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/media/playground/evasgl-graphics-pipeline.png 
b/media/playground/evasgl-graphics-pipeline.png
new file mode 100644
index ..614c9856
Binary files /dev/null and b/media/playground/evasgl-graphics-pipeline.png 
differ

-- 




[EGIT] [website/www-content] master 01/01: Wiki media playground:evasgl-rasterization.png uploaded by Gareth Halfacree

2017-11-08 Thread Gareth Halfacree
WWW-www.enlightenment.org pushed a commit to branch master.

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

commit 4aa65c54aa88e0cf4f413107aecabd5b52f6483c
Author: Gareth Halfacree 
Date:   Wed Nov 8 05:58:07 2017 -0800

Wiki media playground:evasgl-rasterization.png uploaded by Gareth Halfacree
---
 media/playground/evasgl-rasterization.png | Bin 0 -> 3831 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/media/playground/evasgl-rasterization.png 
b/media/playground/evasgl-rasterization.png
new file mode 100644
index ..8b035ced
Binary files /dev/null and b/media/playground/evasgl-rasterization.png differ

-- 




[EGIT] [website/www-content] master 01/01: Wiki media playground:evasgl-triangle-assembly.png uploaded by Gareth Halfacree

2017-11-08 Thread Gareth Halfacree
WWW-www.enlightenment.org pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=81cde0e48a056a5a2a9e0e8e15c73037bc2d6214

commit 81cde0e48a056a5a2a9e0e8e15c73037bc2d6214
Author: Gareth Halfacree 
Date:   Wed Nov 8 05:57:54 2017 -0800

Wiki media playground:evasgl-triangle-assembly.png uploaded by Gareth 
Halfacree
---
 media/playground/evasgl-triangle-assembly.png | Bin 0 -> 16726 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/media/playground/evasgl-triangle-assembly.png 
b/media/playground/evasgl-triangle-assembly.png
new file mode 100644
index ..a21c9e46
Binary files /dev/null and b/media/playground/evasgl-triangle-assembly.png 
differ

-- 




[EGIT] [core/enlightenment] master 01/01: more E_BITFIELD conversions

2017-11-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit 99db9e2557f94464b490fd7af3c90d1e3a65c111
Author: Mike Blumenkrantz 
Date:   Wed Nov 8 09:22:24 2017 -0500

more E_BITFIELD conversions
---
 src/bin/e_bryce.c  | 12 ++---
 src/bin/e_client.c |  2 +-
 src/bin/e_comp_object.c| 56 +--
 src/bin/e_comp_wl_extensions.c |  6 +--
 src/bin/e_comp_x.c |  2 +-
 src/bin/e_dbusmenu.c   |  2 +-
 src/bin/e_deskmirror.c |  8 +--
 src/bin/e_exec.c   |  2 +-
 src/bin/e_flowlayout.c | 20 +++
 src/bin/e_fm.c | 62 +++---
 src/bin/e_gadcon.c |  8 +--
 src/bin/e_gadget.c |  4 +-
 src/bin/e_gadget_runner.c  |  4 +-
 src/bin/e_icon.c   | 14 ++---
 src/bin/e_ilist.c  |  8 +--
 src/bin/e_int_config_comp.c|  4 +-
 src/bin/e_int_config_modules.c |  2 +-
 src/bin/e_layout.c |  2 +-
 src/bin/e_msg.c|  2 +-
 src/bin/e_pixmap.c |  6 +--
 src/bin/e_powersave.c  |  2 +-
 src/bin/e_scrollframe.c| 22 
 src/bin/e_slidecore.c  |  2 +-
 src/bin/e_slider.c |  2 +-
 src/bin/e_slidesel.c   |  4 +-
 src/bin/e_thumb.c  |  6 +--
 src/bin/e_video.c  |  2 +-
 src/bin/e_widget.c |  8 +--
 src/bin/e_widget_bgpreview.c   |  4 +-
 src/bin/e_widget_filepreview.c | 24 -
 src/bin/e_widget_fsel.c|  4 +-
 src/bin/e_widget_toolbar.c |  6 +--
 src/bin/e_win.c| 14 ++---
 src/bin/e_xsettings.c  |  2 +-
 src/bin/e_zoomap.c |  6 +--
 .../conf_bindings/e_int_config_keybindings.c   |  2 +-
 src/modules/conf_intl/e_int_config_intl.c  |  2 +-
 src/modules/conf_theme/e_int_config_theme.c|  2 +-
 src/modules/connman/agent.c|  2 +-
 src/modules/everything/evry_view.c | 14 ++---
 src/modules/fileman/e_fwin.c   |  4 +-
 src/modules/ibar/e_mod_main.c  | 14 ++---
 src/modules/ibox/e_mod_main.c  |  4 +-
 src/modules/lokker/lokker.c|  6 +--
 src/modules/pager/e_mod_main.c | 22 
 src/modules/pager/gadget/pager.c   | 24 -
 src/modules/pager_plain/e_mod_main.c   | 22 
 src/modules/sysinfo/batman/batman_fallback.c   |  4 +-
 src/modules/tasks/e_mod_main.c |  8 +--
 src/modules/teamwork/e_mod_tw.c|  6 +--
 src/modules/tiling/e_mod_tiling.c  |  6 +--
 src/modules/winlist/e_winlist.c|  4 +-
 src/modules/wireless/connman.c | 10 ++--
 src/modules/wireless/wireless.c|  2 +-
 src/modules/xwayland/dnd.c |  2 +-
 55 files changed, 247 insertions(+), 247 deletions(-)

diff --git a/src/bin/e_bryce.c b/src/bin/e_bryce.c
index 4369e3140..74871ac4a 100644
--- a/src/bin/e_bryce.c
+++ b/src/bin/e_bryce.c
@@ -43,12 +43,12 @@ typedef struct Bryce
Eina_Bool autohide;
unsigned int version;
 
-   Eina_Bool hidden : 1;
-   Eina_Bool animating : 1;
-   Eina_Bool mouse_in : 1;
-   Eina_Bool noshadow : 1;
-   Eina_Bool size_changed : 1;
-   Eina_Bool editing : 1;
+   Eina_Bool hidden E_BITFIELD;
+   Eina_Bool animating E_BITFIELD;
+   Eina_Bool mouse_in E_BITFIELD;
+   Eina_Bool noshadow E_BITFIELD;
+   Eina_Bool size_changed E_BITFIELD;
+   Eina_Bool editing E_BITFIELD;
 } Bryce;
 
 typedef struct Bryces
diff --git a/src/bin/e_client.c b/src/bin/e_client.c
index 6ea96054c..aa35610d5 100644
--- a/src/bin/e_client.c
+++ b/src/bin/e_client.c
@@ -3238,7 +3238,7 @@ e_client_res_change_geometry_restore(E_Client *ec)
 {
struct
{
-  unsigned char valid : 1;
+  unsigned char valid E_BITFIELD;
   int   x, y, w, h;
   struct
   {
diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index d7130d2cc..c1a7941c7 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -101,34 +101,34 @@ typedef struct _E_Comp_Object
unsigned int ani

[EGIT] [website/www-content] master 01/01: Wiki page eo-intro.md changed with summary [created] by Xavi Artigas

2017-11-08 Thread Xavi Artigas
WWW-www.enlightenment.org pushed a commit to branch master.

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

commit 5f68f4fff9e42f3be019f1abcfa72315b5eee3c0
Author: Xavi Artigas 
Date:   Wed Nov 8 06:34:20 2017 -0800

Wiki page eo-intro.md changed with summary [created] by Xavi Artigas
---
 pages/develop/tutorial/c/eo-intro.md.txt | 289 +++
 1 file changed, 289 insertions(+)

diff --git a/pages/develop/tutorial/c/eo-intro.md.txt 
b/pages/develop/tutorial/c/eo-intro.md.txt
new file mode 100644
index ..072ad6ab
--- /dev/null
+++ b/pages/develop/tutorial/c/eo-intro.md.txt
@@ -0,0 +1,289 @@
+---
+~~Title: Introduction to Eo~~
+---
+ 
+# Introduction to Eo: Creating and destroying objects #
+ 
+The Eo generic object system was designed to provide **Object-Oriented 
capabilities** to the EFL. Eo objects are at the core of almost every EFL 
entity (like Windows, Buttons or Timers), providing lifecycle management and 
inheritance abilities, for example.
+
+This tutorial will show you the basics of creating and destroying Eo objects, 
along with **Reference Counting**, the technique at the heart of the Eo object 
lifecycle management.
+
+Due to its fundamental nature, this tutorial is more theoretic than the 
average. The concepts being explained are crucial, though, so its reading is 
highly encouraged. If you are familiar with Reference Counting, it should be a 
breeze.
+ 
+## Prerequisites ##
+ 
+* Read the [Setting up the Development Environment](/develop/setup/c/) guide 
so you are able to build and run EFL applications.
+* Read the [Hello World tutorial](hello-word.md) so you know the basics of 
building an EFL application.
+ 
+## Step One: Object Creation and Destruction ##
+
+Start with the basic EFL application skeleton from the [Hello World 
tutorial](hello-word.md) and add some placeholder methods that will be filled 
later on:
+
+```c
+#define EFL_EO_API_SUPPORT 1
+#define EFL_BETA_API_SUPPORT 1
+
+#include 
+#include 
+#include 
+
+// Create our test hierarchy
+static void
+_obj_create()
+{
+}
+
+// Destroy the test hierarchy
+static void
+_obj_destroy()
+{
+}
+
+EAPI_MAIN void
+efl_main(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
+{
+   // Create all objects
+   _obj_create();
+
+   // Destroy all objects
+   _obj_destroy();
+
+   // Exit
+   efl_exit(0);
+}
+EFL_MAIN()
+```
+
+Sensibly enough, the objects will be created in ``_obj_create()``, and will be 
destroyed in ``_obj_destroy()``.
+
+Also define some global pointers to keep track of the created objects. In a 
real application you won't be using global variables, but they help keep these 
first tutorials as simple as possible. Put this line after the includes:
+
+```c
+Eo *_root;
+```
+
+This tutorial will use generic ``Eo *`` pointers to store the objects; your 
programs can use them too, or use more specific types like ``Efl_Ui_Win *`` or 
``Efl_Ui_Button *``. EFL methods will accept both types (generic and specific) 
and perform runtime checks to ensure that you provide objects of the type a 
method is expecting.
+
+Now, fill-in the object creation method:
+
+```c
+static void
+_obj_create()
+{
+   // First create a root element
+   _root = efl_add(EFL_MODEL_ITEM_CLASS, NULL,
+   efl_name_set(efl_added, "Root"));
+}
+```
+
+``efl_add()`` is one of the most commonly-used methods in EFL so it requires 
careful inspection. It mainly does **three** separate things:
+
+* Creates a new object of the type (**class**) specified in the first 
parameter.
+* Sets the new object as a child of the already existing object specified in 
the second parameter.
+* Calls a list of methods to further initialize or configure the new object.
+
+In the code snippet above, an object of type ``EFL_MODEL_ITEM_CLASS`` is being 
created, set as a child of no one (the ``NULL`` parameter) and 
``efl_name_set()`` is used to configure the object (as explained below).
+
+The particular kind of object being created in this tutorial 
(``EFL_MODEL_ITEM_CLASS``) is irrelevant. It was chosen because it does not 
need configuration and is therefore easier to use.
+
+You can use as many configuration calls inside ``efl_add()`` as you need, 
since it accepts an infinite number of parameters. Also, configuration calls 
can use the special symbol ``efl_added`` which refers to the object being 
created. Together, these two powerful features make object creation code 
smaller and more compact: You could create an object, configure it and add it 
to a scene without even requiring a variable to store it!
+
+In this example, ``efl_name_set()`` is used to name the new object "Root" 
(note the ``efl_added`` parameter being used).
+
+Finally, the return value of ``efl_add()`` is the new object, with type ``Eo 
*`` which you can safely assign to a pointer of the specific type you 
requested, or keep the generic ``Eo *``, as you prefer. In this case, the 
pointer is st

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

2017-11-08 Thread Xavi Artigas
WWW-www.enlightenment.org pushed a commit to branch master.

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

commit 3c2287e95f476f1a2e60e9ec388f83ab614054ca
Author: Xavi Artigas 
Date:   Wed Nov 8 07:03:40 2017 -0800

Wiki page eo-intro.md changed with summary [] by Xavi Artigas
---
 pages/develop/tutorial/c/eo-intro.md.txt | 20 ++--
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/pages/develop/tutorial/c/eo-intro.md.txt 
b/pages/develop/tutorial/c/eo-intro.md.txt
index 072ad6ab..dcfc5e2c 100644
--- a/pages/develop/tutorial/c/eo-intro.md.txt
+++ b/pages/develop/tutorial/c/eo-intro.md.txt
@@ -2,11 +2,11 @@
 ~~Title: Introduction to Eo~~
 ---
  
-# Introduction to Eo: Creating and destroying objects #
+# Introduction to Eo: Creating and Destroying Objects #
  
-The Eo generic object system was designed to provide **Object-Oriented 
capabilities** to the EFL. Eo objects are at the core of almost every EFL 
entity (like Windows, Buttons or Timers), providing lifecycle management and 
inheritance abilities, for example.
+The Eo generic object system was designed to provide *Object-Oriented 
capabilities* to the EFL. Eo objects are at the core of almost every EFL entity 
(like Windows, Buttons or Timers), providing lifecycle management and 
inheritance abilities, for example.
 
-This tutorial will show you the basics of creating and destroying Eo objects, 
along with **Reference Counting**, the technique at the heart of the Eo object 
lifecycle management.
+This tutorial will show you the basics of creating and destroying Eo objects, 
along with *Reference Counting*, the technique at the heart of the Eo object 
lifecycle management.
 
 Due to its fundamental nature, this tutorial is more theoretic than the 
average. The concepts being explained are crucial, though, so its reading is 
highly encouraged. If you are familiar with Reference Counting, it should be a 
breeze.
  
@@ -105,7 +105,7 @@ A common approach to this problem is to use the **Reference 
Counting** technique
 
 The advantage of this technique is that objects can be automatically destroyed 
when their internal reference counter reaches 0, because it means that nobody 
is using them anymore.
 
-### Reference Counting and ``efl_add()`` ###
+### Reference Counting and efl_add() ###
 
 Eo objects created through ``efl_add()`` have a starting reference count of 1, 
meaning that there is one piece of code using them. **It is very important to 
understand which one is this piece of code**, because it will be responsible 
for returning the reference. It is easy, though:
 
@@ -175,7 +175,7 @@ efl_main(void *data EINA_UNUSED, const Efl_Event *ev 
EINA_UNUSED)
 EFL_MAIN()
 ```
 
-## Step Two: A more complex hierarchy ##
+## Step Two: A More Complex Hierarchy ##
 
 In this second step more objects will be added forming a hierarchy. This will 
give you more hands-on training with the concepts you acquired in the previous 
step.
 
@@ -284,6 +284,14 @@ At the end of this tutorial you have learned:
 * ``efl_add()`` creates objects with **one reference**, which belongs to their 
parent. You don't have to do anything to destroy the objects.
 * If you do not provide a parent to ``efl_add()`` then the reference belongs 
to **you**, and you have to return it when you are done working with the object 
using ``efl_unref()``.
 
+The following tutorial builds on top of this one, adding instrumentation calls 
to display the actual values of the different reference counters.
+
 ## Further Reading ##
+[Introduction to Eo 2](eo-intro-2.md)
+:Part two of this tutorial
+
+[Setting up the Development Environment](/develop/setup/c/)
+:Read this before trying to develop with the EFL
 
-[The following tutorial](eo-intro-2.md) builds on top of this one, adding 
instrumentation calls to display the actual values of the different reference 
counters.
\ No newline at end of file
+[Hello World tutorial](hello-word.md)
+:Teaches the basic EFL application skeleton

-- 




[EGIT] [core/efl] master 02/02: eolian: enable cyclic imports of eo files

2017-11-08 Thread Daniel Kolesa
q66 pushed a commit to branch master.

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

commit 70ee11af84bf81a16eefdf577ce4e4ecb62dcdef
Author: Daniel Kolesa 
Date:   Wed Nov 8 16:46:14 2017 +0100

eolian: enable cyclic imports of eo files
---
 src/lib/eolian/eo_parser.c | 16 +---
 1 file changed, 1 insertion(+), 15 deletions(-)

diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c
index db8878a5c7..a231e722e1 100644
--- a/src/lib/eolian/eo_parser.c
+++ b/src/lib/eolian/eo_parser.c
@@ -2176,21 +2176,7 @@ parse_unit(Eo_Lexer *ls, Eina_Bool eot)
   }
 else is_eo = EINA_TRUE;
  }
-   if (eina_hash_find(_parsingeos, found))
- {
-pop_strbuf(ls);
-snprintf(errbuf, sizeof(errbuf),
- "cyclic import '%s'", ls->t.value.s);
-eo_lexer_syntax_error(ls, errbuf);
- }
-   pop_strbuf(ls);
-   if (!eo_parser_database_fill(found, !is_eo, NULL))
- {
-pop_strbuf(ls);
-snprintf(errbuf, sizeof(errbuf),
- "error while parsing import '%s'", ls->t.value.s);
-eo_lexer_syntax_error(ls, errbuf);
- }
+   eina_hash_set(_defereos, eina_strbuf_string_get(buf), found);
pop_strbuf(ls);
eo_lexer_get(ls);
check_next(ls, ';');

-- 




[EGIT] [core/efl] master 01/02: eolian: simplify dependency parsing and cut down on hash lookups

2017-11-08 Thread Daniel Kolesa
q66 pushed a commit to branch master.

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

commit 5c2611d93a58bff942e49202053cad3e0090540d
Author: Daniel Kolesa 
Date:   Wed Nov 8 16:12:40 2017 +0100

eolian: simplify dependency parsing and cut down on hash lookups
---
 src/lib/eolian/eo_parser.c   | 35 +++
 src/lib/eolian/eo_parser.h   |  2 +-
 src/lib/eolian/eolian_database.c |  8 
 3 files changed, 24 insertions(+), 21 deletions(-)

diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c
index da03709c38..db8878a5c7 100644
--- a/src/lib/eolian/eo_parser.c
+++ b/src/lib/eolian/eo_parser.c
@@ -672,18 +672,20 @@ parse_struct_attrs(Eo_Lexer *ls, Eina_Bool is_enum, 
Eina_Bool *is_extern,
  }
 }
 
-static void
+static Eolian_Class *
 _parse_dep(Eo_Lexer *ls, const char *fname, const char *name)
 {
if (eina_hash_find(_parsingeos, fname))
- return;
-   if (!eo_parser_database_fill(fname, EINA_FALSE))
+ return NULL;
+   Eolian_Class *cl = NULL;
+   if (!eo_parser_database_fill(fname, EINA_FALSE, &cl) || !cl)
  {
 char buf[PATH_MAX];
 eo_lexer_context_restore(ls);
 snprintf(buf, sizeof(buf), "error parsing dependency '%s'", name);
 eo_lexer_syntax_error(ls, buf);
  }
+   return cl;
 }
 
 static Eolian_Type *
@@ -1515,13 +1517,12 @@ parse_part(Eo_Lexer *ls)
char *fnm = database_class_to_filename(nm);
if (!compare_class_file(bnm, fnm))
  {
+Eolian_Class *dep = NULL;
 const char *fname = eina_hash_find(_filenames, fnm);
 eina_stringshare_del(bnm);
 free(fnm);
 if (fname)
-  _parse_dep(ls, fname, nm);
-/* FIXME: pass unit properly */
-Eolian_Class *dep = (Eolian_Class *)eolian_class_get_by_name(NULL, nm);
+  dep = _parse_dep(ls, fname, nm);
 if (!dep)
   {
  char ebuf[PATH_MAX];
@@ -2031,9 +2032,7 @@ _inherit_dep(Eo_Lexer *ls, Eina_Strbuf *buf, Eina_Bool 
check_inherit,
 snprintf(ebuf, sizeof(ebuf), "unknown inherit '%s'", iname);
 eo_lexer_syntax_error(ls, ebuf);
  }
-   _parse_dep(ls, fname, iname);
-   /* FIXME: pass unit properly */
-   Eolian_Class *dep = (Eolian_Class *)eolian_class_get_by_name(NULL, iname);
+   Eolian_Class *dep = _parse_dep(ls, fname, iname);
if (!dep)
  {
 char ebuf[PATH_MAX];
@@ -2185,7 +2184,7 @@ parse_unit(Eo_Lexer *ls, Eina_Bool eot)
 eo_lexer_syntax_error(ls, errbuf);
  }
pop_strbuf(ls);
-   if (!eo_parser_database_fill(found, !is_eo))
+   if (!eo_parser_database_fill(found, !is_eo, NULL))
  {
 pop_strbuf(ls);
 snprintf(errbuf, sizeof(errbuf),
@@ -2498,10 +2497,14 @@ end:
 }
 
 Eina_Bool
-eo_parser_database_fill(const char *filename, Eina_Bool eot)
+eo_parser_database_fill(const char *filename, Eina_Bool eot, Eolian_Class 
**fcl)
 {
-   if (eina_hash_find(_parsedeos, filename))
- return EINA_TRUE;
+   Eolian_Class *cl = eina_hash_find(_parsedeos, filename);
+   if (cl)
+ {
+if (!eot && fcl) *fcl = cl;
+return EINA_TRUE;
+ }
 
eina_hash_set(_parsingeos, filename, (void *)EINA_TRUE);
 
@@ -2521,8 +2524,6 @@ eo_parser_database_fill(const char *filename, Eina_Bool 
eot)
parse_chunk(ls, eot);
if (eot) goto done;
 
-   Eolian_Class *cl;
-
if (!(cl = ls->tmp.kls))
  {
 _eolian_log("eolian: no class for file '%s'", filename);
@@ -2539,8 +2540,10 @@ eo_parser_database_fill(const char *filename, Eina_Bool 
eot)
eina_hash_set(_classes, cl->full_name, cl);
eina_hash_set(_classesf, cl->base.file, cl);
 
+   if (fcl) *fcl = cl;
+
 done:
-   eina_hash_set(_parsedeos, filename, (void *)EINA_TRUE);
+   eina_hash_set(_parsedeos, filename, eot ? (void *)EINA_TRUE : cl);
eina_hash_set(_parsingeos, filename, (void *)EINA_FALSE);
 
eo_lexer_free(ls);
diff --git a/src/lib/eolian/eo_parser.h b/src/lib/eolian/eo_parser.h
index 08f5142388..7179107803 100644
--- a/src/lib/eolian/eo_parser.h
+++ b/src/lib/eolian/eo_parser.h
@@ -3,6 +3,6 @@
 
 #include "eo_lexer.h"
 
-Eina_Bool eo_parser_database_fill(const char *filename, Eina_Bool eot);
+Eina_Bool eo_parser_database_fill(const char *filename, Eina_Bool eot, 
Eolian_Class **cl);
 
 #endif /* __EO_PARSER_H__ */
\ No newline at end of file
diff --git a/src/lib/eolian/eolian_database.c b/src/lib/eolian/eolian_database.c
index eacc5b94fb..0141450275 100644
--- a/src/lib/eolian/eolian_database.c
+++ b/src/lib/eolian/eolian_database.c
@@ -682,11 +682,11 @@ _eolian_file_parse_nodep(const char *filepath)
if (!(eopath = eina_hash_find(is_eo ? _filenames : _tfilenames, filepath)))
  {
 char *vpath = eina_file_path_sanitize(filepath);
-Eina_Bool ret = eo_parser_database_fill(vpath, !is_eo);
+Eina_Bool ret = eo_parser_database_fill(vpath, !is_eo, NULL);
 free(vp

[EGIT] [core/enlightenment] enlightenment-0.22 01/20: create wl output resource when running in wl nested

2017-11-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit efa975eb4e3a08ac36c00be5fc56f953751f69b6
Author: Mike Blumenkrantz 
Date:   Fri Nov 3 12:15:30 2017 -0400

create wl output resource when running in wl nested
---
 src/modules/wl_wl/e_mod_main.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/modules/wl_wl/e_mod_main.c b/src/modules/wl_wl/e_mod_main.c
index 850032631..9bad95953 100644
--- a/src/modules/wl_wl/e_mod_main.c
+++ b/src/modules/wl_wl/e_mod_main.c
@@ -16,6 +16,9 @@ _cb_sync_done(void *data EINA_UNUSED, int type EINA_UNUSED, 
void *event)
if ((w < 1) || (h < 1)) return ECORE_CALLBACK_PASS_ON;
 
e_comp_canvas_resize(w * 2 / 3, h * 2 / 3);
+   e_comp_wl_output_init(NULL, NULL, NULL,
+   0, 0, w * 2 / 3, h * 2 / 3,
+   0, 0, 0, 0, 0, 0);
 
if (!ecore_wl2_display_dmabuf_get(e_comp_wl->wl.client_disp))
  e_comp_wl->dmabuf_disable = EINA_TRUE;

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 15/20: do not add iconify provider for luncher when creating a demo gadget

2017-11-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit 2fbcb807aa25e9efd87f3deb98c747283d01e27f
Author: Mike Blumenkrantz 
Date:   Mon Nov 6 09:22:24 2017 -0500

do not add iconify provider for luncher when creating a demo gadget
---
 src/modules/luncher/bar.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/modules/luncher/bar.c b/src/modules/luncher/bar.c
index a411493ef..58c0f07c1 100644
--- a/src/modules/luncher/bar.c
+++ b/src/modules/luncher/bar.c
@@ -1880,8 +1880,9 @@ _bar_created_cb(void *data, Evas_Object *obj, void 
*event_data EINA_UNUSED)
 
if (inst->cfg->type != E_LUNCHER_MODULE_LAUNCH_ONLY)
  {
-inst->iconify_provider = e_comp_object_effect_mover_add(80, 
"e,action,*iconify",
-_bar_iconify_start, inst);
+if (inst->cfg->id != -1)
+  inst->iconify_provider = e_comp_object_effect_mover_add(80, 
"e,action,*iconify",
+  _bar_iconify_start, inst);
  }
_bar_fill(inst);
 

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 12/20: improve meson build module disabling

2017-11-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit 2b2d2c00add7783735313be06c5c3b3c10051fb1
Author: Mike Blumenkrantz 
Date:   Mon Nov 6 06:32:19 2017 -0500

improve meson build module disabling

ref 61ddcb25e6075e5e6a5436dc6f981e45317c5d7d
---
 src/modules/meson.build | 8 +---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/src/modules/meson.build b/src/modules/meson.build
index 01e335fc7..65f0b2fb8 100644
--- a/src/modules/meson.build
+++ b/src/modules/meson.build
@@ -78,6 +78,7 @@ mods = [
 
 foreach m: mods
   desktop_only = false
+  disable  = false
   no_icon  = false
   cargs= ''
   data = []
@@ -87,13 +88,14 @@ foreach m: mods
   _dir_bin = join_paths(_dir, module_arch)
 
   opt = '-'.join(m.split('_'))
-  disable = get_option(opt)
 
-  if disable == true
+  if get_option(opt) == true
 subdir(m)
+  else
+disable = true
   endif
 
-  if disable == true
+  if disable == false
 
 _inc2 = []
 foreach i: inc

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 06/20: check meson module option state before executing subdir

2017-11-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit 2e956cb089bc8abab2e222fd0ae6b28fb180ad78
Author: Mike Blumenkrantz 
Date:   Fri Nov 3 14:35:43 2017 -0400

check meson module option state before executing subdir

fix module disabling
---
 src/modules/meson.build | 10 ++
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/modules/meson.build b/src/modules/meson.build
index 337ce9c4c..01e335fc7 100644
--- a/src/modules/meson.build
+++ b/src/modules/meson.build
@@ -79,7 +79,6 @@ mods = [
 foreach m: mods
   desktop_only = false
   no_icon  = false
-  disable  = false
   cargs= ''
   data = []
   deps = []
@@ -87,11 +86,14 @@ foreach m: mods
   _dir = join_paths(dir_module_e, m)
   _dir_bin = join_paths(_dir, module_arch)
 
-  subdir(m)
-
   opt = '-'.join(m.split('_'))
+  disable = get_option(opt)
+
+  if disable == true
+subdir(m)
+  endif
 
-  if get_option(opt) == true and disable == false
+  if disable == true
 
 _inc2 = []
 foreach i: inc

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 18/20: prevent double shutdown of x11 compositor in xwayland mode

2017-11-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit 7a9a4b085502014acd44c5b5e225093a1ebe672c
Author: Mike Blumenkrantz 
Date:   Mon Nov 6 13:58:53 2017 -0500

prevent double shutdown of x11 compositor in xwayland mode

only do shutdown in xwl module if not actively shutting down
---
 src/modules/xwayland/e_mod_main.c | 7 +--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/modules/xwayland/e_mod_main.c 
b/src/modules/xwayland/e_mod_main.c
index f3826c3cd..7848595b3 100644
--- a/src/modules/xwayland/e_mod_main.c
+++ b/src/modules/xwayland/e_mod_main.c
@@ -451,8 +451,11 @@ xwl_shutdown(void)
if (exs->sig_hdlr) ecore_event_handler_del(exs->sig_hdlr);
 
free(exs);
-   if (e_comp_util_has_x()) e_comp_x_shutdown();
-   ecore_x_shutdown();
+   if (!stopping)
+ {
+if (e_comp_util_has_x()) e_comp_x_shutdown();
+ecore_x_shutdown();
+ }
e_util_env_set("DISPLAY", NULL);
 }
 

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 04/20: make wl_pointer cursor handling state-based to correctly handle cursor visuals

2017-11-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit e4cf048112c3006cf279fc20d213fb9784ea810a
Author: Mike Blumenkrantz 
Date:   Fri Nov 3 13:23:26 2017 -0400

make wl_pointer cursor handling state-based to correctly handle cursor 
visuals

this fixes a lot of corner cases such as apps which set their cursor before
receiving pointer.enter events
---
 src/bin/e_comp_wl.c   | 24 ---
 src/bin/e_comp_wl.h   |  9 ++
 src/bin/e_comp_wl_input.c | 74 +--
 src/bin/e_comp_wl_input.h |  2 ++
 4 files changed, 71 insertions(+), 38 deletions(-)

diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c
index 141132c77..320830451 100644
--- a/src/bin/e_comp_wl.c
+++ b/src/bin/e_comp_wl.c
@@ -211,11 +211,15 @@ _e_comp_wl_mouse_in(E_Client *ec, Evas_Event_Mouse_In *ev)
serial = wl_display_next_serial(e_comp_wl->wl.disp);
EINA_LIST_FOREACH(e_comp_wl->ptr.resources, l, res)
  {
+E_Comp_Wl_Pointer *ptr = wl_resource_get_user_data(res);
+
 if (!e_comp_wl_input_pointer_check(res)) continue;
 if (wl_resource_get_client(res) != wc) continue;
+ptr->entered = 1;
 wl_pointer_send_enter(res, serial, ec->comp_data->surface,
   wl_fixed_from_int(ev->canvas.x - ec->client.x),
   wl_fixed_from_int(ev->canvas.y - ec->client.y));
+e_comp_wl_input_pointer_cursor_update(ptr);
  }
 }
 
@@ -267,8 +271,10 @@ _e_comp_wl_mouse_out(E_Client *ec)
serial = wl_display_next_serial(e_comp_wl->wl.disp);
EINA_LIST_FOREACH(e_comp_wl->ptr.resources, l, res)
  {
+E_Comp_Wl_Pointer *ptr = wl_resource_get_user_data(res);
 if (!e_comp_wl_input_pointer_check(res)) continue;
 if (wl_resource_get_client(res) != wc) continue;
+ptr->entered = 0;
 wl_pointer_send_leave(res, serial, ec->comp_data->surface);
  }
 }
@@ -2591,11 +2597,21 @@ _e_comp_wl_client_cb_del(void *data EINA_UNUSED, 
E_Client *ec)
  _e_comp_wl_mouse_out(ec);
else if (ec->comp_data->cursor)
  {
-Evas_Object *o;
+Eina_List *l;
+struct wl_resource *res;
+
+EINA_LIST_FOREACH(e_comp_wl->ptr.resources, l, res)
+  {
+ E_Comp_Wl_Pointer *ptr = wl_resource_get_user_data(res);
 
-ecore_evas_cursor_get(e_comp->ee, &o, NULL, NULL, NULL);
-if (o == ec->frame)
-  e_pointer_object_set(e_comp->pointer, NULL, 0, 0);
+ if (ptr->cursor_set && (ptr->cursor == ec))
+   {
+  ptr->cursor = NULL;
+  ptr->cursor_set = 0;
+  if (ptr->entered)
+e_comp_wl_input_pointer_cursor_update(ptr);
+   }
+  }
  }
 
if (ec->comp_data->aux_hint.hints)
diff --git a/src/bin/e_comp_wl.h b/src/bin/e_comp_wl.h
index 199923a45..84212850d 100644
--- a/src/bin/e_comp_wl.h
+++ b/src/bin/e_comp_wl.h
@@ -5,6 +5,7 @@ typedef struct _E_Comp_Wl_Subsurf_Data E_Comp_Wl_Subsurf_Data;
 typedef struct _E_Comp_Wl_Surface_State E_Comp_Wl_Surface_State;
 typedef struct _E_Comp_Wl_Client_Data E_Comp_Wl_Client_Data;
 typedef struct _E_Comp_Wl_Output E_Comp_Wl_Output;
+typedef struct _E_Comp_Wl_Pointer E_Comp_Wl_Pointer;
 typedef struct E_Shell_Data E_Shell_Data;
 typedef struct Tizen_Extensions Tizen_Extensions;
 typedef void (*E_Comp_Wl_Grab_End_Cb)(E_Client*);
@@ -394,6 +395,14 @@ struct _E_Comp_Wl_Output
void *data;
 };
 
+struct _E_Comp_Wl_Pointer
+{
+   E_Client *cursor;
+   Evas_Point offset;
+   Eina_Bool entered : 1;
+   Eina_Bool cursor_set : 1;
+};
+
 E_API Eina_Bool e_comp_wl_init(void);
 EINTERN void e_comp_wl_shutdown(void);
 
diff --git a/src/bin/e_comp_wl_input.c b/src/bin/e_comp_wl_input.c
index b1d50e959..e9f1bd385 100644
--- a/src/bin/e_comp_wl_input.c
+++ b/src/bin/e_comp_wl_input.c
@@ -43,39 +43,18 @@ _e_comp_wl_input_cb_resource_destroy(struct wl_client 
*client EINA_UNUSED, struc
 }
 
 static void
-_e_comp_wl_input_pointer_cb_cursor_set(struct wl_client *client, struct 
wl_resource *resource EINA_UNUSED, uint32_t serial EINA_UNUSED, struct 
wl_resource *surface_resource, int32_t x, int32_t y)
+_e_comp_wl_input_pointer_cb_cursor_set(struct wl_client *client EINA_UNUSED, 
struct wl_resource *resource, uint32_t serial EINA_UNUSED, struct wl_resource 
*surface_resource, int32_t x, int32_t y)
 {
E_Client *ec;
-   Eina_Bool got_mouse = EINA_FALSE;
-
-   E_CLIENT_FOREACH(ec)
- {
-   if (e_object_is_del(E_OBJECT(ec))) continue;
-   if (e_pixmap_type_get(ec->pixmap) != E_PIXMAP_TYPE_WL) continue;
-   if (!ec->comp_data->surface) continue;
-   if (client != wl_resource_get_client(ec->comp_data->surface)) continue;
-   if (ec->mouse.in)
- {
-if (e_client_has_xwindow(ec))
-  got_mouse = E_INSIDE(ec->mouse.current.m

[EGIT] [core/enlightenment] enlightenment-0.22 10/20: e sys - frix warning for less noise

2017-11-08 Thread Carsten Haitzler
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit 24257c718a89d4225c93284e5911b45975fd1bbb
Author: Carsten Haitzler (Rasterman) 
Date:   Mon Nov 6 10:24:37 2017 +0900

e sys - frix warning for less noise

though act will not be set unless mnt is also true... this means less
noise from compiler wanrings so we can focus on real errors.
---
 src/bin/e_sys_main.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_sys_main.c b/src/bin/e_sys_main.c
index acd1f038d..9043b5854 100644
--- a/src/bin/e_sys_main.c
+++ b/src/bin/e_sys_main.c
@@ -115,7 +115,7 @@ main(int argc,
char *output = NULL;
 #ifdef HAVE_EEZE_MOUNT
Eina_Bool mnt = EINA_FALSE;
-   const char *act;
+   const char *act = NULL;
 #endif
gid_t gid, gl[65536], egid;
 
@@ -355,6 +355,7 @@ main(int argc,
 const char *mp = NULL;
 Eina_Strbuf *buf = NULL;
 
+if (!act) exit(40);
 if (!mount_args_check(argc, argv, act)) exit(40);
 /* all options are deemed safe at this point, so away we go! */
 if (!strcmp(act, "mount"))

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 07/20: meson: make those scripts executable

2017-11-08 Thread Marcel Hollerbach
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit cc0ac5cf72cd209b1646f255423bb3dbc547358d
Author: Marcel Hollerbach 
Date:   Sat Nov 4 10:40:55 2017 +

meson: make those scripts executable

A missing executable bit here brings old meson version down while building 
e.
---
 meson/clean_check.sh   | 0
 meson/meson_inst.sh| 0
 meson/meson_modules.sh | 0
 3 files changed, 0 insertions(+), 0 deletions(-)

diff --git a/meson/clean_check.sh b/meson/clean_check.sh
old mode 100644
new mode 100755
diff --git a/meson/meson_inst.sh b/meson/meson_inst.sh
old mode 100644
new mode 100755
diff --git a/meson/meson_modules.sh b/meson/meson_modules.sh
old mode 100644
new mode 100755

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 11/20: hits: silence warnings about possible null string for strcmp

2017-11-08 Thread Carsten Haitzler
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit b78cbb40ad48e75b85394d6e07e66b7b04bf0279
Author: Carsten Haitzler (Rasterman) 
Date:   Mon Nov 6 11:19:39 2017 +0900

hits: silence warnings about possible null string for strcmp
---
 src/bin/e_hints.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/bin/e_hints.c b/src/bin/e_hints.c
index 067dc0b9a..c5f842772 100644
--- a/src/bin/e_hints.c
+++ b/src/bin/e_hints.c
@@ -1782,7 +1782,7 @@ e_hints_aux_hint_add_with_pixmap(E_Pixmap *cp, int32_t 
id, const char *name, con
E_Comp_Wl_Aux_Hint *hint;
Eina_List *l;
 
-   if (!cp) return EINA_FALSE;
+   if ((!cp) || (!val) || (!name)) return EINA_FALSE;
cdata = (E_Comp_Wl_Client_Data*)e_pixmap_cdata_get(cp);
if (!cdata) return EINA_FALSE;
 
@@ -1836,7 +1836,7 @@ e_hints_aux_hint_change_with_pixmap(E_Pixmap *cp, int32_t 
id, const char *val, i
E_Comp_Wl_Aux_Hint *hint;
Eina_Bool found = EINA_FALSE;
 
-   if (!cp) return EINA_FALSE;
+   if ((!cp) || (!val)) return EINA_FALSE;
cdata = (E_Comp_Wl_Client_Data*)e_pixmap_cdata_get(cp);
if (!cdata) return EINA_FALSE;
 

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 09/20: Adding danish strings to desktop files

2017-11-08 Thread Massimo Maiurana
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit 94d937b848671960d99b53dfb8edf5d09713bcf0
Author: maxerba 
Date:   Sun Nov 5 13:54:49 2017 +0100

Adding danish strings to desktop files
---
 data/desktop/enlightenment_filemanager.desktop | 2 ++
 data/favorites/desktop.desktop | 2 ++
 data/session/enlightenment.desktop.in  | 1 +
 3 files changed, 5 insertions(+)

diff --git a/data/desktop/enlightenment_filemanager.desktop 
b/data/desktop/enlightenment_filemanager.desktop
index d99a93805..06e493b30 100644
--- a/data/desktop/enlightenment_filemanager.desktop
+++ b/data/desktop/enlightenment_filemanager.desktop
@@ -3,6 +3,7 @@ Encoding=UTF-8
 Type=Application
 Name=Enlightenment File Manager
 Name[ca]=Gestor d'arxius Enlightenment
+Name[da]=Enlightenment-filhåndtering
 Name[de]=Enlightenment-Dateiverwaltung
 Name[eo]=Dosieradministrilo de Enlightenment
 Name[es]=Administrador de archivos de Enlightenment
@@ -21,6 +22,7 @@ Name[sr]=Управник датотека Просвећења
 Name[tr]=Enlightenment Dosya Yöneticisi
 Comment=File Manager provided by Enlightenment
 Comment[ca]=Gestor d'arxius proveït per Enlightenment
+Comment[da]=Filhåndtering leveret af Enlightenment
 Comment[de]=Die Dateiverwaltung bereitgestellt von Enlightenment
 Comment[eo]=La dosieradministrilo provizita de Enlightenment
 Comment[es]=El administrador de ficheros proporcionado por Enlightenment
diff --git a/data/favorites/desktop.desktop b/data/favorites/desktop.desktop
index bb07339c4..826d2c55f 100644
--- a/data/favorites/desktop.desktop
+++ b/data/favorites/desktop.desktop
@@ -3,6 +3,7 @@ Encoding=UTF-8
 Type=Link
 Name=Desktop
 Name[ca]=Escriptori
+Name[da]=Skrivebord
 Name[de]=Schreibtisch
 Name[el]=Επιφάνεια Εργασίας
 Name[eo]=Labortablo
@@ -20,6 +21,7 @@ Name[sr]=Радна површ
 Name[tr]=Masaüstü
 Comment=Files on your Desktop
 Comment[ca]=Fitxers a l'escriptori
+Comment[da]=Filer på dit skrivebord
 Comment[de]=Dateien auf dem Schreibtisch
 Comment[eo]=Dosieroj sur via labortablo
 Comment[es]=Los archivos en su escritorio
diff --git a/data/session/enlightenment.desktop.in 
b/data/session/enlightenment.desktop.in
index ce233b3a2..85d4908e5 100644
--- a/data/session/enlightenment.desktop.in
+++ b/data/session/enlightenment.desktop.in
@@ -18,6 +18,7 @@ Name[sr]=Просвећење
 Name[tr]=Enlightenment
 Comment=Log in using Enlightenment (Version @VERSION@)
 Comment[ca]=Iniciar sessió amb Enlightenment (Versió @VERSION@)
+Comment[da]=Log ind med Enlightenment (Version @VERSION@)
 Comment[de]=Anmelden und Enlightenment verwenden (Version @VERSION@)
 Comment[el]=Είσοδος με το Enlightenment (Έκδοση @VERSION@)
 Comment[eo]=Ensaluti pere de Enlightenment (Versio @VERSION@)

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 03/20: show internal pointer cursor whenever resetting to internal cursor

2017-11-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit 8e66ba180831350ae9d54afda2ac49b9abba
Author: Mike Blumenkrantz 
Date:   Fri Nov 3 13:23:26 2017 -0400

show internal pointer cursor whenever resetting to internal cursor

don't rely on efl internals for this
---
 src/bin/e_pointer.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/bin/e_pointer.c b/src/bin/e_pointer.c
index ef6163853..4f3648bc8 100644
--- a/src/bin/e_pointer.c
+++ b/src/bin/e_pointer.c
@@ -806,6 +806,7 @@ e_pointer_object_set(E_Pointer *ptr, Evas_Object *obj, int 
x, int y)
  {
 ecore_evas_cursor_unset(ptr->ee);
 ecore_evas_object_cursor_set(ptr->ee, ptr->o_ptr, E_LAYER_MAX - 1, 
ptr->hot.x, ptr->hot.y);
+evas_object_show(ptr->o_ptr);
  }
ptr->client.ec = ec;
ptr->client.x = x;

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 02/20: unset wayland cursor for all pointers when running nested in wl

2017-11-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit a5423c9aa609f22568761495e69a0b76f9d43e4a
Author: Mike Blumenkrantz 
Date:   Fri Nov 3 13:23:26 2017 -0400

unset wayland cursor for all pointers when running nested in wl
---
 src/modules/wl_wl/e_mod_main.c | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/src/modules/wl_wl/e_mod_main.c b/src/modules/wl_wl/e_mod_main.c
index 9bad95953..16a0ef20e 100644
--- a/src/modules/wl_wl/e_mod_main.c
+++ b/src/modules/wl_wl/e_mod_main.c
@@ -7,6 +7,8 @@ _cb_sync_done(void *data EINA_UNUSED, int type EINA_UNUSED, 
void *event)
 {
Ecore_Wl2_Event_Sync_Done *ev;
int w = 0, h = 0;
+   Eina_Iterator *it;
+   Ecore_Wl2_Input *input;
 
ev = event;
if (ev->display != e_comp_wl->wl.client_disp)
@@ -19,6 +21,10 @@ _cb_sync_done(void *data EINA_UNUSED, int type EINA_UNUSED, 
void *event)
e_comp_wl_output_init(NULL, NULL, NULL,
0, 0, w * 2 / 3, h * 2 / 3,
0, 0, 0, 0, 0, 0);
+   it = 
ecore_wl2_display_inputs_get(ecore_wl2_window_display_get(ecore_evas_wayland2_window_get(e_comp->ee)));
+   EINA_ITERATOR_FOREACH(it, input)
+ ecore_wl2_input_pointer_set(input, NULL, 0, 0);
+   eina_iterator_free(it);
 
if (!ecore_wl2_display_dmabuf_get(e_comp_wl->wl.client_disp))
  e_comp_wl->dmabuf_disable = EINA_TRUE;

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 14/20: destroy luncher iconify provider on gadget delete

2017-11-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit 185bdaf2a410fb855ff9d92f6d4071047192c4a8
Author: Mike Blumenkrantz 
Date:   Mon Nov 6 09:20:37 2017 -0500

destroy luncher iconify provider on gadget delete

this is removed on object delete, not config delete

fix T6258
---
 src/modules/luncher/bar.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/modules/luncher/bar.c b/src/modules/luncher/bar.c
index 2cfb1a5f8..a411493ef 100644
--- a/src/modules/luncher/bar.c
+++ b/src/modules/luncher/bar.c
@@ -1656,8 +1656,6 @@ _bar_removed_cb(void *data, Evas_Object *obj EINA_UNUSED, 
void *event_data)
if (e_user_dir_snprintf(buf, sizeof(buf), "applications/bar/%s", 
inst->cfg->dir) >= sizeof(buf))
  return;
 
-   E_FREE_FUNC(inst->iconify_provider, e_comp_object_effect_mover_del);
-
luncher_config->items = eina_list_remove(luncher_config->items, inst->cfg);
eina_stringshare_del(inst->cfg->dir);
E_FREE(inst->cfg);
@@ -1670,6 +1668,7 @@ _bar_del(void *data, Evas *e EINA_UNUSED, Evas_Object 
*obj, void *event_data EIN
Ecore_Event_Handler *handler;
 
evas_object_smart_callback_del_full(e_gadget_site_get(obj), 
"gadget_removed", _bar_removed_cb, inst);
+   E_FREE_FUNC(inst->iconify_provider, e_comp_object_effect_mover_del);
inst->main_del = EINA_TRUE;
_bar_empty(inst);
e_object_del(E_OBJECT(inst->order));

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 17/20: avoid performing client rescales during shutdown

2017-11-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit 2a1c23ed4bff11135a539bc4ffa863811efba295
Author: Mike Blumenkrantz 
Date:   Mon Nov 6 13:58:16 2017 -0500

avoid performing client rescales during shutdown
---
 src/bin/e_client.c | 2 ++
 src/bin/e_comp.c   | 1 +
 src/bin/e_zone.c   | 3 ++-
 3 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_client.c b/src/bin/e_client.c
index 7c68bc407..6ea96054c 100644
--- a/src/bin/e_client.c
+++ b/src/bin/e_client.c
@@ -3331,6 +3331,8 @@ e_client_rescale(E_Client *ec)
 {
Eina_Bool shaded;
int shade_dir;
+
+   if (stopping) return;
E_OBJECT_CHECK(ec);
E_OBJECT_TYPE_CHECK(ec, E_CLIENT_TYPE);
 
diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c
index 650e4a978..42a47736c 100644
--- a/src/bin/e_comp.c
+++ b/src/bin/e_comp.c
@@ -1813,6 +1813,7 @@ e_comp_clients_rescale(void)
 {
int i;
 
+   if (stopping) return;
for (i = 0; i < 11; i++)
  {
 Eina_List *tmp = NULL;
diff --git a/src/bin/e_zone.c b/src/bin/e_zone.c
index 4a24ed540..0d769b876 100644
--- a/src/bin/e_zone.c
+++ b/src/bin/e_zone.c
@@ -1312,7 +1312,8 @@ e_zone_useful_geometry_dirty(E_Zone *zone)
e_object_ref(E_OBJECT(ev->zone));
ecore_event_add(E_EVENT_ZONE_USEFUL_GEOMETRY_CHANGED, ev, 
_e_zone_event_generic_free, NULL);
 
-   e_comp_clients_rescale();
+   if (!stopping)
+ e_comp_clients_rescale();
 }
 
 E_API E_Zone_Obstacle *

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 20/20: use last client from E_Exec_Instance list when updating luncher popups

2017-11-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit 2f3d1473cf25b861dd27b1830f71adeefafd6c86
Author: Mike Blumenkrantz 
Date:   Mon Nov 6 14:21:11 2017 -0500

use last client from E_Exec_Instance list when updating luncher popups

the last client is the most recently-added

fix T6288
---
 src/modules/luncher/bar.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/modules/luncher/bar.c b/src/modules/luncher/bar.c
index 58c0f07c1..68b2057a2 100644
--- a/src/modules/luncher/bar.c
+++ b/src/modules/luncher/bar.c
@@ -1403,7 +1403,7 @@ _bar_cb_exec_new(void *data EINA_UNUSED, int type, 
E_Exec_Instance *ex)
 
if (type == E_EVENT_EXEC_NEW_CLIENT)
  {
-ec = eina_list_data_get(ex->clients);
+ec = eina_list_last_data_get(ex->clients);
 if (ec->netwm.state.skip_taskbar || e_client_util_is_popup(ec))
   skip = EINA_TRUE;
 else

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 16/20: requeue client for render if show animation completes and damages exist

2017-11-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit bbabdb11b2d3ac05c8d4c110c84c9a61b9b83fda
Author: Mike Blumenkrantz 
Date:   Mon Nov 6 10:31:58 2017 -0500

requeue client for render if show animation completes and damages exist

attempt to catch clients which have a render queued prior to the image
becoming visible
---
 src/bin/e_comp_object.c | 6 +-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 2fb36f415..01a86f3a0 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -827,7 +827,11 @@ _e_comp_object_done_defer(void *data, Evas_Object *obj 
EINA_UNUSED, const char *
if (cw->defer_hide && ((!strcmp(emission, "e,action,hide,done")) || 
(!strcmp(emission, "e,action,done"
  evas_object_hide(cw->smart_obj);
else
- e_comp_shape_queue();
+ {
+e_comp_shape_queue();
+if (cw->visible && cw->updates_exist)
+  e_comp_object_render_update_add(cw->smart_obj);
+ }
 }
 
 /* run a visibility compositor effect if available, return false if object is 
dead */

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 19/20: always emit E_EVENT_COMP_OBJECT_ADD events

2017-11-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit 3fc4e337e73c20cbf41a41f64a4b4be7cedf49ef
Author: Mike Blumenkrantz 
Date:   Mon Nov 6 14:08:33 2017 -0500

always emit E_EVENT_COMP_OBJECT_ADD events

fix T6322
---
 src/bin/e_comp_object.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 01a86f3a0..755538b17 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -172,7 +172,6 @@ _e_comp_object_event_add(Evas_Object *obj)
E_Event_Comp_Object *ev;
E_Client *ec;
 
-   if (stopping) return;
ev = E_NEW(E_Event_Comp_Object, 1);
evas_object_ref(obj);
ev->comp_object = obj;

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 13/20: add field width limits to all fscanf params in e_intlc.

2017-11-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit 29ad9c85d9e3923c724ff4fdf8c6e5b2a1e10390
Author: Mike Blumenkrantz 
Date:   Mon Nov 6 08:34:24 2017 -0500

add field width limits to all fscanf params in e_intlc.

fix T6316
---
 src/bin/e_intl.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/bin/e_intl.c b/src/bin/e_intl.c
index 3cb7deaee..57198d925 100644
--- a/src/bin/e_intl.c
+++ b/src/bin/e_intl.c
@@ -585,7 +585,7 @@ _e_intl_locale_alias_hash_get(void)
  char alias[4096], locale[4096];
 
  /* read locale alias lines */
- while (fscanf(f, "%4090s %[^\n]\n", alias, locale) == 2)
+ while (fscanf(f, "%4095s %4095[^\n]\n", alias, locale) == 2)
{
   /* skip comments */
   if ((alias[0] == '!') || (alias[0] == '#'))
@@ -873,7 +873,7 @@ _e_intl_locale_system_locales_get(void)
if (output)
  {
 char line[32];
-while (fscanf(output, "%[^\n]\n", line) == 1)
+while (fscanf(output, "%31[^\n]\n", line) == 1)
   locales = eina_list_append(locales, strdup(line));
 
 pclose(output);

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 08/20: meson: this version is enough for the things we use in the moment

2017-11-08 Thread Marcel Hollerbach
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit d710cf5bb0fb59853e177b5baf274eb452372d36
Author: Marcel Hollerbach 
Date:   Sat Nov 4 10:43:10 2017 +

meson: this version is enough for the things we use in the moment

this makes meson build work on ubuntu 17.04
---
 meson.build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/meson.build b/meson.build
index c5ccdf4fe..dde40a8ba 100644
--- a/meson.build
+++ b/meson.build
@@ -3,7 +3,7 @@ project('enlightenment', 'c',
 version: '0.22.0',
 license: 'BSD 2 clause',
 default_options: [ 'c_std=gnu99', 'warning_level=2' ],
-meson_version  : '>= 0.40.0')
+meson_version  : '>= 0.39.0')
 
 # convenience variables for later
 proj = meson.project_name()

-- 




[EGIT] [website/www-content] master 01/01: Wiki media playground:scalability-scale-relative.png uploaded by Gareth Halfacree

2017-11-08 Thread Gareth Halfacree
WWW-www.enlightenment.org pushed a commit to branch master.

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

commit 3b2d814eb5cdcd62947b26bb3881b66ab7e7dfb8
Author: Gareth Halfacree 
Date:   Wed Nov 8 08:04:48 2017 -0800

Wiki media playground:scalability-scale-relative.png uploaded by Gareth 
Halfacree
---
 media/playground/scalability-scale-relative.png | Bin 0 -> 6313 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/media/playground/scalability-scale-relative.png 
b/media/playground/scalability-scale-relative.png
new file mode 100644
index ..8a033c32
Binary files /dev/null and b/media/playground/scalability-scale-relative.png 
differ

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 05/20: update README with meson instructions

2017-11-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit fc3f0dd4a9a377499bf04be6f9aedb690f57181d
Author: Mike Blumenkrantz 
Date:   Fri Nov 3 14:10:07 2017 -0400

update README with meson instructions
---
 README | 16 +++-
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/README b/README
index 53ab8de47..033c2df0f 100644
--- a/README
+++ b/README
@@ -1,6 +1,6 @@
 Please report bugs and send patches to phab.enlightenment.org
 
-Enlightenment 0.19.0
+Enlightenment
 
 Requirements:
 -
@@ -14,12 +14,18 @@ Heavily suggested:
   evas_generic_loaders (all loaders)
 
 NOTE: Users of DR16 will need to rename the $prefix/bin/enlightenment
-file prior to installing DR19 or it will be overwritten.
+file prior to installing this release or it will be overwritten.
 
-You can also use the configure --prefix option to put enlightenment in a 
separate tree
-of its own (recommended) like:
+MESON BUILD:
+   meson . build
+optional:
+   mesonconf --options OR meson configure --options
 
-  ./configure --prefix=/usr/local/e19
+   cd build && sudo ninja install
+
+AUTOTOOLS BUILD:
+   ./configure --prefix=/usr/local/e
+   sudo make install
 
 You will, as usual, need to add the subsequent bin dir to your $PATH etc.
 

-- 




[EGIT] [website/www-content] master 01/01: Wiki media playground:scalability-scale-fixed.png uploaded by Gareth Halfacree

2017-11-08 Thread Gareth Halfacree
WWW-www.enlightenment.org pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=482bc580fd4cede457bc8c9d8ecc5419613926ee

commit 482bc580fd4cede457bc8c9d8ecc5419613926ee
Author: Gareth Halfacree 
Date:   Wed Nov 8 08:06:24 2017 -0800

Wiki media playground:scalability-scale-fixed.png uploaded by Gareth 
Halfacree
---
 media/playground/scalability-scale-fixed.png | Bin 0 -> 5861 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/media/playground/scalability-scale-fixed.png 
b/media/playground/scalability-scale-fixed.png
new file mode 100644
index ..6e59df13
Binary files /dev/null and b/media/playground/scalability-scale-fixed.png differ

-- 




[EGIT] [website/www-content] master 01/01: Wiki media playground:scalability-scale-flexible-height.png uploaded by Gareth Halfacree

2017-11-08 Thread Gareth Halfacree
WWW-www.enlightenment.org pushed a commit to branch master.

http://git.enlightenment.org/website/www-content.git/commit/?id=6feebf2d6decde29969e63cf7e85f3a8cdb35931

commit 6feebf2d6decde29969e63cf7e85f3a8cdb35931
Author: Gareth Halfacree 
Date:   Wed Nov 8 08:09:04 2017 -0800

Wiki media playground:scalability-scale-flexible-height.png uploaded by 
Gareth Halfacree
---
 media/playground/scalability-scale-flexible-height.png | Bin 0 -> 5389 bytes
 1 file changed, 0 insertions(+), 0 deletions(-)

diff --git a/media/playground/scalability-scale-flexible-height.png 
b/media/playground/scalability-scale-flexible-height.png
new file mode 100644
index ..ed7a890c
Binary files /dev/null and 
b/media/playground/scalability-scale-flexible-height.png differ

-- 




[EGIT] [core/efl] master 02/02: build: improve configure accessibility

2017-11-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit 1cda9fe749636484b1328e694a8dbbe4f9d0c31d
Author: Mike Blumenkrantz 
Date:   Wed Nov 8 12:07:25 2017 -0500

build: improve configure accessibility

as decided by unanimous vote, the community does not want builds to pause or
stop when various features are disabled. warnings for disabling features 
have
been left intact

ref V30

@feature
---
 configure.ac | 21 -
 1 file changed, 21 deletions(-)

diff --git a/configure.ac b/configure.ac
index 7ac39ef34a..fe9be24fd9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -5226,19 +5226,6 @@ AC_ARG_ENABLE([always-build-examples],
[want_always_build_examples="no"])
 AM_CONDITIONAL([ALWAYS_BUILD_EXAMPLES], [test "${want_always_build_examples}" 
= "yes"])
 
-BARF_OK="xno"
-# Harfbuzz
-AC_ARG_ENABLE([i-really-know-what-i-am-doing-and-that-this-will-probably-break-things-and-i-will-fix-them-myself-and-send-patches-abb],
-   [ You will be told when this is needed ],
-   [
-if test "x${enableval}" = "xyes" ; then
-   BARF_OK=""
-else
-   BARF_OK="xno"
-fi
-   ],
-   [ BARF_OK="xno" ])
-
  Ecore_Buffer
 build_ecore_buffer_x11_dri2="no"
 build_ecore_buffer_x11_dri3="no"
@@ -6111,14 +6098,6 @@ if test -n "$CFOPT_WARNING"; then
   echo "==-- WARNING --=="
   echo ""
   echo "_"
-  if test -n "$BARF_OK"; then
-echo "Please add the following option to acknowledge this:"
-echo "  
--enable-i-really-know-what-i-am-doing-and-that-this-will-probably-break-things-and-i-will-fix-them-myself-and-send-patches-abb"
-echo 
"_"
-rm -f Makefile
-exit 1
-  fi
-  sleep 10
 fi
 
 if test "x$prefix" != "x/usr"; then

-- 




[EGIT] [core/efl] master 01/02: quicklaunch: add support for quicklaunch domains

2017-11-08 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit e99183c33b734a7914e9934cbbe972fd094f226c
Author: Mike Blumenkrantz 
Date:   Wed Nov 8 11:48:39 2017 -0500

quicklaunch: add support for quicklaunch domains

this allows quicklaunch to be used independently of the DISPLAY value
---
 src/bin/elementary/quicklaunch.c | 11 ---
 src/bin/elementary/run.c | 11 ---
 2 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/src/bin/elementary/quicklaunch.c b/src/bin/elementary/quicklaunch.c
index b7fec56740..6370f6d683 100644
--- a/src/bin/elementary/quicklaunch.c
+++ b/src/bin/elementary/quicklaunch.c
@@ -181,7 +181,7 @@ main(int argc, char **argv)
struct linger lin;
char buf[PATH_MAX];
struct sigaction action;
-   const char *disp;
+   const char *domain;
int ret = 0;
 
if (!eina_init())
@@ -197,7 +197,12 @@ main(int argc, char **argv)
 _log_dom = EINA_LOG_DOMAIN_GLOBAL;
  }
 
-   if (!(disp = getenv("DISPLAY"))) disp = "unknown";
+   if (!(domain = getenv("ELM_QUICKLAUNCH_DOMAIN")))
+ {
+domain = getenv("WAYLAND_DISPLAY");
+if (!domain) domain = getenv("DISPLAY");
+if (!domain) domain = "unknown";
+ }
snprintf(buf, sizeof(buf), "/tmp/elm-ql-%i", getuid());
if (stat(buf, &st) < 0)
  {
@@ -208,7 +213,7 @@ main(int argc, char **argv)
  exit(-1);
   }
  }
-   snprintf(buf, sizeof(buf), "/tmp/elm-ql-%i/%s", getuid(), disp);
+   snprintf(buf, sizeof(buf), "/tmp/elm-ql-%i/%s", getuid(), domain);
unlink(buf);
sock = socket(AF_UNIX, SOCK_STREAM, 0);
if (sock < 0)
diff --git a/src/bin/elementary/run.c b/src/bin/elementary/run.c
index a3ad3a4cab..6d547ad16a 100644
--- a/src/bin/elementary/run.c
+++ b/src/bin/elementary/run.c
@@ -32,7 +32,7 @@ main(int argc, char **argv)
struct stat st;
char *exe;
int we_are_elementary_run = 0;
-   char *disp;
+   char *domain;
char *cwd;
 
int sargc, slen, envnum;
@@ -45,8 +45,13 @@ main(int argc, char **argv)
 exit(-1);
  }
cwd = strdup(buf);
-   if (!(disp = getenv("DISPLAY"))) disp = "unknown";
-   snprintf(buf, sizeof(buf), "/tmp/elm-ql-%i/%s", getuid(), disp);
+   if (!(domain = getenv("ELM_QUICKLAUNCH_DOMAIN")))
+ {
+domain = getenv("WAYLAND_DISPLAY");
+if (!domain) domain = getenv("DISPLAY");
+if (!domain) domain = "unknown";
+ }
+   snprintf(buf, sizeof(buf), "/tmp/elm-ql-%i/%s", getuid(), domain);
if ((sock = socket(AF_UNIX, SOCK_STREAM, 0)) < 0)
  {
 perror("elementary_quicklaunch: socket(AF_UNIX, SOCK_STREAM, 0)");

-- 




[EGIT] [core/efl] master 08/11: wayland_shm: Remove useless function

2017-11-08 Thread Derek Foreman
derekf pushed a commit to branch master.

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

commit b5674b788539b9e0aa5ed1e11fe4d38de9a4772c
Author: Derek Foreman 
Date:   Wed Nov 8 11:15:04 2017 -0600

wayland_shm: Remove useless function

This serves no purpose anymore.
---
 src/modules/evas/engines/wayland_shm/evas_engine.h | 2 --
 src/modules/evas/engines/wayland_shm/evas_outbuf.c | 8 +---
 2 files changed, 1 insertion(+), 9 deletions(-)

diff --git a/src/modules/evas/engines/wayland_shm/evas_engine.h 
b/src/modules/evas/engines/wayland_shm/evas_engine.h
index a3da8fbf75..3744599ed3 100644
--- a/src/modules/evas/engines/wayland_shm/evas_engine.h
+++ b/src/modules/evas/engines/wayland_shm/evas_engine.h
@@ -155,6 +155,4 @@ void _evas_outbuf_update_region_push(Outbuf *ob, RGBA_Image 
*update, int x, int
 void _evas_surface_damage(struct wl_surface *s, int compositor_version, int w, 
int h, Eina_Rectangle *rects, unsigned int count);
 void _evas_outbuf_redraws_clear(Outbuf *ob);
 
-Eina_Bool _evas_surface_init(Surface *s, int w, int h, int num_buf);
-
 #endif
diff --git a/src/modules/evas/engines/wayland_shm/evas_outbuf.c 
b/src/modules/evas/engines/wayland_shm/evas_outbuf.c
index c962e37905..8cdd70da18 100644
--- a/src/modules/evas/engines/wayland_shm/evas_outbuf.c
+++ b/src/modules/evas/engines/wayland_shm/evas_outbuf.c
@@ -9,12 +9,6 @@
 #define GREEN_MASK 0x00ff00
 #define BLUE_MASK 0xff
 
-Eina_Bool
-_evas_surface_init(Surface *s, int w, int h, int num_buf)
-{
-   return _evas_dmabuf_surface_create(s, w, h, num_buf);
-}
-
 static Surface *
 _evas_surface_create(Evas_Engine_Info_Wayland *info, int w, int h, Outbuf *ob)
 {
@@ -26,7 +20,7 @@ _evas_surface_create(Evas_Engine_Info_Wayland *info, int w, 
int h, Outbuf *ob)
out->info = info;
out->ob = ob;
 
-   if (_evas_surface_init(out, w, h, ob->num_buff)) return out;
+   if (_evas_dmabuf_surface_create(out, w, h, ob->num_buff)) return out;
 
free(out);
return NULL;

-- 




[EGIT] [core/efl] master 04/11: wayland_shm: Track size of buffer

2017-11-08 Thread Derek Foreman
derekf pushed a commit to branch master.

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

commit d346ac7b2e609ed459148bf56cfd14bd6ecb8fbc
Author: Derek Foreman 
Date:   Mon Nov 6 17:01:16 2017 -0600

wayland_shm: Track size of buffer
---
 src/modules/evas/engines/wayland_shm/evas_dmabuf.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/modules/evas/engines/wayland_shm/evas_dmabuf.c 
b/src/modules/evas/engines/wayland_shm/evas_dmabuf.c
index a956b6a2d1..813d7b2d92 100644
--- a/src/modules/evas/engines/wayland_shm/evas_dmabuf.c
+++ b/src/modules/evas/engines/wayland_shm/evas_dmabuf.c
@@ -53,6 +53,7 @@ struct _Dmabuf_Buffer
 {
Dmabuf_Surface *surface;
struct wl_buffer *wl_buffer;
+   int size;
int w, h;
int age;
unsigned long stride;
@@ -694,6 +695,7 @@ _evas_dmabuf_buffer_init(Dmabuf_Surface *s, int w, int h)
  }
out->w = w;
out->h = h;
+   out->size = out->stride * h;
 
out->wl_buffer = _buffer_manager_buf_to_wl_buffer(s->surface->ob->ewd, out);
 

-- 




[EGIT] [core/efl] master 07/11: wayland_shm: Remove dmabuf fallback

2017-11-08 Thread Derek Foreman
derekf pushed a commit to branch master.

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

commit 566c3f328a2cdeb55f78b5efa0efb8698ec6ae3b
Author: Derek Foreman 
Date:   Wed Nov 8 13:57:20 2017 -0600

wayland_shm: Remove dmabuf fallback

Now that we're dependent on create_immed there's no possibility of falling
back to non dmabuf allocation.

The only failing case we really need to handle is failing the first
allocation, which is currently broken and I'll be adding an advance test
for it shortly.
---
 src/modules/evas/engines/wayland_shm/evas_dmabuf.c | 62 ++
 1 file changed, 3 insertions(+), 59 deletions(-)

diff --git a/src/modules/evas/engines/wayland_shm/evas_dmabuf.c 
b/src/modules/evas/engines/wayland_shm/evas_dmabuf.c
index de1c3fc124..ffa65e9ff2 100644
--- a/src/modules/evas/engines/wayland_shm/evas_dmabuf.c
+++ b/src/modules/evas/engines/wayland_shm/evas_dmabuf.c
@@ -462,6 +462,7 @@ _buffer_manager_deref(void)
close(drm_fd);
 }
 
+/* Currently no callers, but that will change...
 static void
 _buffer_manager_destroy(void)
 {
@@ -469,7 +470,7 @@ _buffer_manager_destroy(void)
buffer_manager->destroyed = EINA_TRUE;
_buffer_manager_deref();
 }
-
+*/
 
 static Buffer_Handle *
 _buffer_manager_alloc(const char *name, int w, int h, unsigned long *stride, 
int32_t *fd)
@@ -513,57 +514,6 @@ _buffer_manager_discard(Dmabuf_Buffer *buf)
 }
 
 static void
-_fallback(Dmabuf_Surface *s, int w, int h)
-{
-   Dmabuf_Buffer *b;
-   Surface *surf;
-   Eina_Bool recovered;
-   unsigned char *new_data, *old_data;
-   int y;
-
-   dmabuf_totally_hosed = EINA_TRUE;
-   surf = s->surface;
-   if (!surf) goto out;
-
-   recovered = _evas_surface_init(surf, w, h, s->nbuf);
-   if (!recovered)
- {
-ERR("Fallback from dmabuf to shm attempted and failed.");
-abort();
- }
-
-   /* Since a buffer may have been filled before we realized we can't
-* display it, we need to make sure any async render on it is finished,
-* then copy the contents into one of the newly allocated shm buffers
-*/
-
-   b = s->pre;
-   if (!b) b = s->current;
-   if (!b) goto out;
-
-   if (!b->mapping) b->mapping = _buffer_manager_map(b);
-
-   b->busy = EINA_FALSE;
-
-   if (!b->mapping) goto out;
-
-   evas_thread_queue_wait();
-
-   old_data = b->mapping;
-   surf->funcs.assign(surf);
-   new_data = surf->funcs.data_get(surf, NULL, NULL);
-   for (y = 0; y < h; y++)
- memcpy(new_data + y * w * 4, old_data + y * b->stride, w * 4);
-   surf->funcs.post(surf, NULL, 0);
-   _buffer_manager_unmap(b);
-   b->mapping = NULL;
-
-out:
-   _internal_evas_dmabuf_surface_destroy(s);
-   _buffer_manager_destroy();
-}
-
-static void
 _evas_dmabuf_buffer_unlock(Dmabuf_Buffer *b)
 {
_buffer_manager_unmap(b);
@@ -616,12 +566,7 @@ _evas_dmabuf_surface_reconfigure(Surface *s, int w, int h, 
uint32_t flags EINA_U
  _evas_dmabuf_buffer_destroy(b);
   }
 buf = _evas_dmabuf_buffer_init(surface, w, h);
-if (!buf)
-   {
-  if (surface) _fallback(surface, w, h);
-  s->surf.dmabuf = NULL;
-  return;
-   }
+if (!buf)  return;
 surface->buffer[i] = buf;
  }
 }
@@ -777,7 +722,6 @@ _evas_dmabuf_buffer_init(Dmabuf_Surface *s, int w, int h)
if (!out->bh)
  {
 free(out);
-_fallback(s, w, h);
 return NULL;
  }
out->w = w;

-- 




[EGIT] [core/efl] master 05/11: wayland_shm: Add wl_shm to dmabuf

2017-11-08 Thread Derek Foreman
derekf pushed a commit to branch master.

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

commit c54a12aca60f169a7f2a8536d9a5c4cd71bb86b7
Author: Derek Foreman 
Date:   Mon Nov 6 17:05:25 2017 -0600

wayland_shm: Add wl_shm to dmabuf

wl_shm and dmabuf only really need to differ in how they allocate a buffer,
but right now we've got them in separate files.  This dramatically
reduces the complexity of the wl_shm code and shares much more
implementation with the dmabuf code.

This throws away at least one "optimization" wl_shm used - over-allocating
buffers so that window resizing doesn't always require a new buffer
allocation.  If people feel that window resizing has become too slow now
this can be added to the dmabuf code to the benefit of both allocators.

Disabling dmabuf by env var still uses the old wl_shm implementation for
now, but soon that code will be removed entirely and the env var disable
will use this path.
---
 src/modules/evas/engines/wayland_shm/evas_dmabuf.c | 84 ++
 1 file changed, 84 insertions(+)

diff --git a/src/modules/evas/engines/wayland_shm/evas_dmabuf.c 
b/src/modules/evas/engines/wayland_shm/evas_dmabuf.c
index 813d7b2d92..9947cb5e51 100644
--- a/src/modules/evas/engines/wayland_shm/evas_dmabuf.c
+++ b/src/modules/evas/engines/wayland_shm/evas_dmabuf.c
@@ -322,6 +322,89 @@ err:
return EINA_FALSE;
 }
 
+static Buffer_Handle *
+_wl_shm_alloc(Buffer_Manager *self EINA_UNUSED, const char *name EINA_UNUSED, 
int w, int h, unsigned long *stride, int32_t *fd)
+{
+   Efl_Vpath_File *file_obj;
+   Eina_Tmpstr *fullname;
+   size_t size = w * h * 4;
+   void *out = NULL;
+
+   file_obj = efl_vpath_manager_fetch(EFL_VPATH_MANAGER_CLASS,
+  "(:run:)/evas-wayland_shm-XX");
+   *fd = eina_file_mkstemp(efl_vpath_file_result_get(file_obj), &fullname);
+   efl_del(file_obj);
+   if (*fd < 0) return NULL;
+
+   unlink(fullname);
+   eina_tmpstr_del(fullname);
+
+   *stride = w * 4;
+   if (ftruncate(*fd, size) < 0) goto err;
+
+   out = mmap(NULL, size, (PROT_READ | PROT_WRITE), MAP_SHARED, *fd, 0);
+   if (out == MAP_FAILED) goto err;
+
+   return out;
+
+err:
+   close(*fd);
+   return NULL;
+}
+
+static void *
+_wl_shm_map(Dmabuf_Buffer *buf)
+{
+   return buf->bh;
+}
+
+static void
+_wl_shm_unmap(Dmabuf_Buffer *buf EINA_UNUSED)
+{
+   /* wl_shm is mapped for its lifetime */
+}
+
+static void
+_wl_shm_discard(Dmabuf_Buffer *buf)
+{
+   munmap(buf->bh, buf->size);
+}
+
+static void
+_wl_shm_manager_destroy()
+{
+   /* Nop. */
+}
+
+static struct wl_buffer *
+_wl_shm_to_buffer(Ecore_Wl2_Display *ewd, Dmabuf_Buffer *db)
+{
+   struct wl_buffer *buf;
+   struct wl_shm_pool *pool;
+   struct wl_shm *shm;
+
+   shm = ecore_wl2_display_shm_get(ewd);
+   pool = wl_shm_create_pool(shm, db->fd, db->size);
+   buf = wl_shm_pool_create_buffer(pool, 0, db->w, db->h, db->stride, 0);
+   wl_shm_pool_destroy(pool);
+   close(db->fd);
+   db->fd = -1;
+   wl_buffer_add_listener(buf, &buffer_listener, db);
+   return buf;
+}
+
+static Eina_Bool
+_wl_shm_buffer_manager_setup(int fd EINA_UNUSED)
+{
+   buffer_manager->alloc = _wl_shm_alloc;
+   buffer_manager->to_buffer = _wl_shm_to_buffer;
+   buffer_manager->map = _wl_shm_map;
+   buffer_manager->unmap = _wl_shm_unmap;
+   buffer_manager->discard = _wl_shm_discard;
+   buffer_manager->manager_destroy = _wl_shm_manager_destroy;
+   return EINA_TRUE;
+}
+
 static Buffer_Manager *
 _buffer_manager_get(void)
 {
@@ -342,6 +425,7 @@ _buffer_manager_get(void)
 
success = _intel_buffer_manager_setup(fd);
if (!success) success = _exynos_buffer_manager_setup(fd);
+   if (!success) success = _wl_shm_buffer_manager_setup(fd);
if (!success) goto err_bm;
 
drm_fd = fd;

-- 




[EGIT] [core/efl] master 01/11: wayland_shm: Factor out wl_buffer creation code

2017-11-08 Thread Derek Foreman
derekf pushed a commit to branch master.

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

commit 7e1805ada13cf9e851e02ab1cf34b24886db7e4a
Author: Derek Foreman 
Date:   Mon Nov 6 13:10:59 2017 -0600

wayland_shm: Factor out wl_buffer creation code
---
 src/modules/evas/engines/wayland_shm/evas_dmabuf.c | 33 ++
 1 file changed, 22 insertions(+), 11 deletions(-)

diff --git a/src/modules/evas/engines/wayland_shm/evas_dmabuf.c 
b/src/modules/evas/engines/wayland_shm/evas_dmabuf.c
index b3446b03fe..0194b62133 100644
--- a/src/modules/evas/engines/wayland_shm/evas_dmabuf.c
+++ b/src/modules/evas/engines/wayland_shm/evas_dmabuf.c
@@ -98,6 +98,8 @@ static void *(*sym_exynos_bo_map)(struct exynos_bo *bo) = 
NULL;
 static void (*sym_exynos_bo_destroy)(struct exynos_bo *bo) = NULL;
 static void (*sym_exynos_device_destroy)(struct exynos_device *) = NULL;
 
+static struct wl_buffer * _evas_dmabuf_wl_buffer_from_dmabuf(Ecore_Wl2_Display 
*disp, Dmabuf_Buffer *db);
+
 static Buffer_Handle *
 _intel_alloc(Buffer_Manager *self, const char *name, int w, int h, unsigned 
long *stride, int32_t *fd)
 {
@@ -645,15 +647,30 @@ _evas_dmabuf_surface_post(Surface *s, Eina_Rectangle 
*rects, unsigned int count)
ecore_wl2_window_commit(s->info->info.wl2_win, EINA_TRUE);
 }
 
-static Dmabuf_Buffer *
-_evas_dmabuf_buffer_init(Dmabuf_Surface *s, int w, int h)
+static struct wl_buffer *
+_evas_dmabuf_wl_buffer_from_dmabuf(Ecore_Wl2_Display *ewd, Dmabuf_Buffer *db)
 {
struct wl_buffer *buf;
-   Dmabuf_Buffer *out;
struct zwp_linux_dmabuf_v1 *dmabuf;
struct zwp_linux_buffer_params_v1 *dp;
uint32_t flags = 0;
 
+   dmabuf = ecore_wl2_display_dmabuf_get(ewd);
+   dp = zwp_linux_dmabuf_v1_create_params(dmabuf);
+   zwp_linux_buffer_params_v1_add(dp, db->fd, 0, 0, db->stride, 0, 0);
+   buf = zwp_linux_buffer_params_v1_create_immed(dp, db->w, db->h,
+ DRM_FORMAT_ARGB, flags);
+   wl_buffer_add_listener(buf, &buffer_listener, db);
+   zwp_linux_buffer_params_v1_destroy(dp);
+
+   return buf;
+}
+
+static Dmabuf_Buffer *
+_evas_dmabuf_buffer_init(Dmabuf_Surface *s, int w, int h)
+{
+   Dmabuf_Buffer *out;
+
out = calloc(1, sizeof(Dmabuf_Buffer));
if (!out) return NULL;
 
@@ -669,14 +686,8 @@ _evas_dmabuf_buffer_init(Dmabuf_Surface *s, int w, int h)
out->w = w;
out->h = h;
 
-   dmabuf = ecore_wl2_display_dmabuf_get(s->surface->ob->ewd);
-   dp = zwp_linux_dmabuf_v1_create_params(dmabuf);
-   zwp_linux_buffer_params_v1_add(dp, out->fd, 0, 0, out->stride, 0, 0);
-   buf = zwp_linux_buffer_params_v1_create_immed(dp, out->w, out->h,
- DRM_FORMAT_ARGB, flags);
-   wl_buffer_add_listener(buf, &buffer_listener, out);
-   zwp_linux_buffer_params_v1_destroy(dp);
-   out->wl_buffer = buf;
+   out->wl_buffer = _evas_dmabuf_wl_buffer_from_dmabuf(s->surface->ob->ewd,
+   out);
 
ecore_wl2_display_flush(s->surface->info->info.wl2_display);
return out;

-- 




[EGIT] [core/efl] master 03/11: wayland_shm: move buffer release callback to top of file

2017-11-08 Thread Derek Foreman
derekf pushed a commit to branch master.

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

commit 381bb0e7988a6d59f4527b971574ab044f052a51
Author: Derek Foreman 
Date:   Mon Nov 6 17:00:46 2017 -0600

wayland_shm: move buffer release callback to top of file

Code motion with no functional changes.
---
 src/modules/evas/engines/wayland_shm/evas_dmabuf.c | 28 +++---
 1 file changed, 14 insertions(+), 14 deletions(-)

diff --git a/src/modules/evas/engines/wayland_shm/evas_dmabuf.c 
b/src/modules/evas/engines/wayland_shm/evas_dmabuf.c
index 5f9de0e7e4..a956b6a2d1 100644
--- a/src/modules/evas/engines/wayland_shm/evas_dmabuf.c
+++ b/src/modules/evas/engines/wayland_shm/evas_dmabuf.c
@@ -101,6 +101,20 @@ static void (*sym_exynos_device_destroy)(struct 
exynos_device *) = NULL;
 
 static struct wl_buffer * _evas_dmabuf_wl_buffer_from_dmabuf(Ecore_Wl2_Display 
*disp, Dmabuf_Buffer *db);
 
+static void
+buffer_release(void *data, struct wl_buffer *buffer EINA_UNUSED)
+{
+   Dmabuf_Buffer *b = data;
+
+   b->busy = EINA_FALSE;
+   if (b->orphaned) _evas_dmabuf_buffer_destroy(b);
+}
+
+static const struct wl_buffer_listener buffer_listener =
+{
+   buffer_release
+};
+
 static Buffer_Handle *
 _intel_alloc(Buffer_Manager *self, const char *name, int w, int h, unsigned 
long *stride, int32_t *fd)
 {
@@ -411,20 +425,6 @@ _buffer_manager_discard(Dmabuf_Buffer *buf)
 }
 
 static void
-buffer_release(void *data, struct wl_buffer *buffer EINA_UNUSED)
-{
-   Dmabuf_Buffer *b = data;
-
-   b->busy = EINA_FALSE;
-   if (b->orphaned) _evas_dmabuf_buffer_destroy(b);
-}
-
-static const struct wl_buffer_listener buffer_listener =
-{
-   buffer_release
-};
-
-static void
 _fallback(Dmabuf_Surface *s, int w, int h)
 {
Dmabuf_Buffer *b;

-- 




[EGIT] [core/efl] master 10/11: wayland_shm: Return oldest buffer for new renders

2017-11-08 Thread Derek Foreman
derekf pushed a commit to branch master.

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

commit a5c7fbd006b5e4e578e2a938a609c2aa79315fc2
Author: Derek Foreman 
Date:   Wed Nov 8 14:15:52 2017 -0600

wayland_shm: Return oldest buffer for new renders

This is what the old shm code has been doing, and it's probably better
than what the dmabuf code was doing.

We currently allocate 3 buffers.  The usual case has us swapping between
two of those buffers and saving that third buffer for emergencies - if
we ever need that third buffer it'll require a full redraw.

If we return the oldest available buffer the usual case requires a little
more damage but we should never hit the full redraw case, which can cause
a frame drop on slow hardware.
---
 src/modules/evas/engines/wayland_shm/evas_dmabuf.c | 28 +++---
 1 file changed, 9 insertions(+), 19 deletions(-)

diff --git a/src/modules/evas/engines/wayland_shm/evas_dmabuf.c 
b/src/modules/evas/engines/wayland_shm/evas_dmabuf.c
index 2d263de0c1..77849a4e46 100644
--- a/src/modules/evas/engines/wayland_shm/evas_dmabuf.c
+++ b/src/modules/evas/engines/wayland_shm/evas_dmabuf.c
@@ -600,29 +600,19 @@ _evas_dmabuf_surface_data_get(Surface *s, int *w, int *h)
 static Dmabuf_Buffer *
 _evas_dmabuf_surface_wait(Dmabuf_Surface *s)
 {
-   int iterations = 0, i;
-   struct wl_display *disp;
+   int i = 0, best = -1, best_age = -1;
 
-   disp = ecore_wl2_display_get(s->surface->info->info.wl2_display);
-
-   while (iterations++ < 10)
+   for (i = 0; i < s->nbuf; i++)
  {
-for (i = 0; i < s->nbuf; i++)
-  if (!s->buffer[i]->locked &&
-  !s->buffer[i]->busy)
-return s->buffer[i];
-
-wl_display_dispatch_pending(disp);
+if (s->buffer[i]->locked || s->buffer[i]->busy) continue;
+if (s->buffer[i]->age > best_age)
+  {
+ best = i;
+ best_age = s->buffer[i]->age;
+  }
  }
 
-   /* May be we have a possible render target that just hasn't been
-* given a wl_buffer yet - draw there and let the success handler
-* figure it out.
-*/
-   for (i = 0; i < s->nbuf; i++)
- if (!s->buffer[i]->locked && !s->buffer[i]->busy)
-   return s->buffer[i];
-
+   if (best >= 0) return s->buffer[best];
return NULL;
 }
 

-- 




[EGIT] [core/efl] master 02/11: wayland_shm: make creating a wayland buffer back end specific

2017-11-08 Thread Derek Foreman
derekf pushed a commit to branch master.

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

commit ef1279465fb61a01ff39a474c5d0cb47ba9475a3
Author: Derek Foreman 
Date:   Mon Nov 6 13:31:25 2017 -0600

wayland_shm: make creating a wayland buffer back end specific

This way we can have shm and dmabuf share the same framework.
---
 src/modules/evas/engines/wayland_shm/evas_dmabuf.c | 12 ++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/src/modules/evas/engines/wayland_shm/evas_dmabuf.c 
b/src/modules/evas/engines/wayland_shm/evas_dmabuf.c
index 0194b62133..5f9de0e7e4 100644
--- a/src/modules/evas/engines/wayland_shm/evas_dmabuf.c
+++ b/src/modules/evas/engines/wayland_shm/evas_dmabuf.c
@@ -36,6 +36,7 @@ typedef struct _Buffer_Manager Buffer_Manager;
 struct _Buffer_Manager
 {
Buffer_Handle *(*alloc)(Buffer_Manager *self, const char *name, int w, int 
h, unsigned long *stride, int32_t *fd);
+   struct wl_buffer *(*to_buffer)(Ecore_Wl2_Display *ewd, Dmabuf_Buffer *db);
void *(*map)(Dmabuf_Buffer *buf);
void (*unmap)(Dmabuf_Buffer *buf);
void (*discard)(Dmabuf_Buffer *buf);
@@ -187,6 +188,7 @@ _intel_buffer_manager_setup(int fd)
if (!buffer_manager->priv) goto err;
 
buffer_manager->alloc = _intel_alloc;
+   buffer_manager->to_buffer = _evas_dmabuf_wl_buffer_from_dmabuf;
buffer_manager->map = _intel_map;
buffer_manager->unmap = _intel_unmap;
buffer_manager->discard = _intel_discard;
@@ -292,6 +294,7 @@ _exynos_buffer_manager_setup(int fd)
sym_exynos_bo_destroy(bo);
 
buffer_manager->alloc = _exynos_alloc;
+   buffer_manager->to_buffer = _evas_dmabuf_wl_buffer_from_dmabuf;
buffer_manager->map = _exynos_map;
buffer_manager->unmap = _exynos_unmap;
buffer_manager->discard = _exynos_discard;
@@ -377,6 +380,12 @@ _buffer_manager_alloc(const char *name, int w, int h, 
unsigned long *stride, int
return out;
 }
 
+static struct wl_buffer *
+_buffer_manager_buf_to_wl_buffer(Ecore_Wl2_Display *ewd, Dmabuf_Buffer *buf)
+{
+   return buffer_manager->to_buffer(ewd, buf);
+}
+
 static void *
 _buffer_manager_map(Dmabuf_Buffer *buf)
 {
@@ -686,8 +695,7 @@ _evas_dmabuf_buffer_init(Dmabuf_Surface *s, int w, int h)
out->w = w;
out->h = h;
 
-   out->wl_buffer = _evas_dmabuf_wl_buffer_from_dmabuf(s->surface->ob->ewd,
-   out);
+   out->wl_buffer = _buffer_manager_buf_to_wl_buffer(s->surface->ob->ewd, out);
 
ecore_wl2_display_flush(s->surface->info->info.wl2_display);
return out;

-- 




[EGIT] [core/efl] master 11/11: wayland_shm: Remove old shm code

2017-11-08 Thread Derek Foreman
derekf pushed a commit to branch master.

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

commit c2fe37a46dfacdf7f03477ecfe55722f93d93719
Author: Derek Foreman 
Date:   Wed Nov 8 14:33:31 2017 -0600

wayland_shm: Remove old shm code

The new shm code should be equally capable - minus one surface resize
optimization that probably didn't buy us much performance at the cost
of memory.
---
 src/Makefile_Evas.am|   1 -
 src/modules/evas/engines/wayland_shm/evas_shm.c | 599 
 2 files changed, 600 deletions(-)

diff --git a/src/Makefile_Evas.am b/src/Makefile_Evas.am
index e5c3dba46b..f1d0148667 100644
--- a/src/Makefile_Evas.am
+++ b/src/Makefile_Evas.am
@@ -1318,7 +1318,6 @@ WAYLAND_SHM_SOURCES = \
 modules/evas/engines/wayland_common/Evas_Engine_Wayland.h \
 modules/evas/engines/wayland_shm/evas_engine.c \
 modules/evas/engines/wayland_shm/evas_engine.h \
-modules/evas/engines/wayland_shm/evas_shm.c \
 modules/evas/engines/wayland_shm/evas_dmabuf.c \
 modules/evas/engines/wayland_shm/evas_outbuf.c \
 static_libs/libdrm/drm_fourcc.h \
diff --git a/src/modules/evas/engines/wayland_shm/evas_shm.c 
b/src/modules/evas/engines/wayland_shm/evas_shm.c
deleted file mode 100644
index a2ab42ccf3..00
--- a/src/modules/evas/engines/wayland_shm/evas_shm.c
+++ /dev/null
@@ -1,599 +0,0 @@
-/* Portions of this code have been derived from Weston
- *
- * Copyright © 2008-2012 Kristian Høgsberg
- * Copyright © 2010-2012 Intel Corporation
- * Copyright © 2010-2011 Benjamin Franzke
- * Copyright © 2011-2012 Collabora, Ltd.
- * Copyright © 2010 Red Hat 
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-
-#include "evas_common_private.h"
-#include "evas_private.h"
-#include "evas_engine.h"
-#include 
-
-typedef struct _Shm_Pool Shm_Pool;
-struct _Shm_Pool
-{
-   struct wl_shm_pool *pool;
-   size_t size, used;
-   void *data;
-};
-
-typedef struct _Shm_Data Shm_Data;
-struct _Shm_Data
-{
-   struct wl_buffer *buffer;
-   Shm_Pool *pool;
-   void *map;
-};
-
-typedef struct _Shm_Leaf Shm_Leaf;
-struct _Shm_Leaf
-{
-   int w, h, busy, age;
-   Shm_Data *data;
-   Shm_Pool *resize_pool;
-   Eina_Bool valid : 1;
-   Eina_Bool reconfigure : 1;
-   Eina_Bool drawn : 1;
-};
-
-typedef struct _Shm_Surface Shm_Surface;
-struct _Shm_Surface
-{
-   int w, h;
-   int num_buff;
-   int compositor_version;
-
-   Shm_Leaf leaf[MAX_BUFFERS];
-   Shm_Leaf *current;
-
-   Eina_Bool alpha : 1;
-};
-
-static Eina_Bool _shm_leaf_create(Surface *s, Shm_Leaf *leaf, int w, int h);
-static void _shm_leaf_release(Shm_Leaf *leaf);
-static void _shm_leaf_destroy(Shm_Leaf *leaf);
-
-static struct wl_shm_pool *
-_shm_pool_make(struct wl_shm *shm, int size, void **data)
-{
-   struct wl_shm_pool *pool;
-   int fd = 0;
-   Eina_Tmpstr *fullname;
-   Efl_Vpath_File *file_obj;
-
-   LOGFN(__FILE__, __LINE__, __FUNCTION__);
-
-   /* check for valid wl_shm */
-   if (!shm) return NULL;
-
-   /* create tmp file name */
-   file_obj = efl_vpath_manager_fetch(EFL_VPATH_MANAGER_CLASS,
-  "(:run:)/evas-wayland_shm-XX");
-   fd = eina_file_mkstemp(efl_vpath_file_result_get(file_obj), &fullname);
-   efl_del(file_obj);
-
-   if (fd < 0)
-   /* try to create tmp file */
-   /* if ((fd = mkstemp(name)) < 0) */
- {
-ERR("Could not create temporary file: %m");
-return NULL;
- }
-
-   unlink(fullname);
-   eina_tmpstr_del(fullname);
-
-   /* try to truncate file to size */
-   if (ftruncate(fd, size) < 0)
- {
-ERR("Could not truncate temporary file: %m");
-goto fd_err;
- }
-
-   /* try to mmap the file */
-   *data = mmap(NULL, size, (PROT_READ | PROT_WRITE), MAP_SHARED, fd, 0);
-   if (*data == MAP_FAILED)
- {
-ERR("Could not mmap temporary file: %m");
-goto fd_err;
- }
-
-   /* NB

[EGIT] [core/efl] master 09/11: wayland_shm: Simplify surface commits

2017-11-08 Thread Derek Foreman
derekf pushed a commit to branch master.

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

commit 4adf87ae91e56a97fa85694855d90e08c41b83e2
Author: Derek Foreman 
Date:   Wed Nov 8 13:58:07 2017 -0600

wayland_shm: Simplify surface commits

We no longer have the concept of a "pre" buffer (allocated but not yet
registered as a wayland buffer)
---
 src/modules/evas/engines/wayland_shm/evas_dmabuf.c | 13 -
 1 file changed, 13 deletions(-)

diff --git a/src/modules/evas/engines/wayland_shm/evas_dmabuf.c 
b/src/modules/evas/engines/wayland_shm/evas_dmabuf.c
index ffa65e9ff2..2d263de0c1 100644
--- a/src/modules/evas/engines/wayland_shm/evas_dmabuf.c
+++ b/src/modules/evas/engines/wayland_shm/evas_dmabuf.c
@@ -74,7 +74,6 @@ struct _Dmabuf_Surface
int compositor_version;
 
Dmabuf_Buffer *current;
-   Dmabuf_Buffer *pre;
Dmabuf_Buffer **buffer;
int nbuf;
 
@@ -667,18 +666,6 @@ _evas_dmabuf_surface_post(Surface *s, Eina_Rectangle 
*rects, unsigned int count)
b->used = EINA_TRUE;
b->age = 0;
 
-   /* If we don't yet have a buffer assignement we need to track the
-* most recently filled unassigned buffer and make sure it gets
-* displayed.
-*/
-   if (surface->pre) surface->pre->busy = EINA_FALSE;
-   if (!b->wl_buffer)
- {
-surface->pre = b;
-return;
- }
-   surface->pre = NULL;
-
win = s->info->info.wl2_win;
wls = ecore_wl2_window_surface_get(win);
 

-- 




[EGIT] [core/efl] master 06/11: wayland_shm: Make EVAS_WAYLAND_SHM_DISABLE_DMABUF use new code

2017-11-08 Thread Derek Foreman
derekf pushed a commit to branch master.

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

commit 73bddb4471235de4bc61cd44117a2963e5af1620
Author: Derek Foreman 
Date:   Wed Nov 8 10:37:06 2017 -0600

wayland_shm: Make EVAS_WAYLAND_SHM_DISABLE_DMABUF use new code

Use the new wl_shm allocation functions making the old wl_shm code
unreachable even with the use of the disable env var.
---
 src/modules/evas/engines/wayland_shm/evas_dmabuf.c | 7 +--
 src/modules/evas/engines/wayland_shm/evas_outbuf.c | 7 +--
 2 files changed, 6 insertions(+), 8 deletions(-)

diff --git a/src/modules/evas/engines/wayland_shm/evas_dmabuf.c 
b/src/modules/evas/engines/wayland_shm/evas_dmabuf.c
index 9947cb5e51..de1c3fc124 100644
--- a/src/modules/evas/engines/wayland_shm/evas_dmabuf.c
+++ b/src/modules/evas/engines/wayland_shm/evas_dmabuf.c
@@ -423,8 +423,11 @@ _buffer_manager_get(void)
fd = open("/dev/dri/renderD128", O_RDWR | O_CLOEXEC);
if (fd < 0) goto err_drm;
 
-   success = _intel_buffer_manager_setup(fd);
-   if (!success) success = _exynos_buffer_manager_setup(fd);
+   if (!getenv("EVAS_WAYLAND_SHM_DISABLE_DMABUF"))
+ {
+success = _intel_buffer_manager_setup(fd);
+if (!success) success = _exynos_buffer_manager_setup(fd);
+ }
if (!success) success = _wl_shm_buffer_manager_setup(fd);
if (!success) goto err_bm;
 
diff --git a/src/modules/evas/engines/wayland_shm/evas_outbuf.c 
b/src/modules/evas/engines/wayland_shm/evas_outbuf.c
index d5a6b7e2bc..c962e37905 100644
--- a/src/modules/evas/engines/wayland_shm/evas_outbuf.c
+++ b/src/modules/evas/engines/wayland_shm/evas_outbuf.c
@@ -12,12 +12,7 @@
 Eina_Bool
 _evas_surface_init(Surface *s, int w, int h, int num_buf)
 {
-   if (!getenv("EVAS_WAYLAND_SHM_DISABLE_DMABUF"))
- if (_evas_dmabuf_surface_create(s, w, h, num_buf)) return EINA_TRUE;
-
-   if (_evas_shm_surface_create(s, w, h, num_buf)) return EINA_TRUE;
-
-   return EINA_FALSE;
+   return _evas_dmabuf_surface_create(s, w, h, num_buf);
 }
 
 static Surface *

-- 




[EGIT] [website/www-content] master 01/01: Wiki page arrays.md changed with summary [created] by Paul

2017-11-08 Thread Paul
WWW-www.enlightenment.org pushed a commit to branch master.

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

commit b9d86a7dcc4dda13af185c0b66ca0e1322d0f9e1
Author: Paul 
Date:   Wed Nov 8 14:59:16 2017 -0800

Wiki page arrays.md changed with summary [created] by Paul
---
 pages/eina-programming-guide/arrays.md.txt | 870 +
 1 file changed, 870 insertions(+)

diff --git a/pages/eina-programming-guide/arrays.md.txt 
b/pages/eina-programming-guide/arrays.md.txt
new file mode 100644
index ..39f6696a
--- /dev/null
+++ b/pages/eina-programming-guide/arrays.md.txt
@@ -0,0 +1,870 @@
+---
+~~Title: Arrays~~
+---
+
+# Arrays #
+
+An array is a data type which describes an ordered collection of values. The
+values are accessed by their index.
+
+|INDEX |VALUE |
+|--|--|
+|0 |value0|
+|1 |value1|
+|2 |value2|
+|3 |value3|
+|4 |value4|
+|5 |value5|
+|6 |value6|
+|7 |value7|
+
+Eina provides 2 array types: the classic array and an inline array.
+
+## Creating and Destroying a Classic Array ##
+
+The ``eina_array_new()`` function creates a new array. You can store strings or
+objects in the created array. The function returns a new array, or if memory
+allocation fails, ``NULL``.
+
+The first parameter of the ``eina_array_new()`` function defines the size of
+the array allocation step. For example, if you set it to 4, the function
+returns an array of 4 elements and the next time you grow the array it grows
+by 4 elements. Unless you have pushed 4 elements inside, it does not grow. But
+once you add the 5th element, it grows again and becomes an array of 8
+elements.  The allocation step feature is very useful for optimizing
+performance, and it also reduces memory fragmentation by having a size that
+fits the array usage.  If you set the step to 0, the function sets a default
+safe value.
+
+### To create an array to store strings ###
+
+__**1**__. Create the array:
+
+
+```c
+[...]
+
+// Strings to store in the array
+const char* strings[] =
+{
+   "helo", "hera", "starbuck", "kat", "boomer",
+   "hotdog", "longshot", "jammer", "crashdown", "hardball",
+   "duck", "racetrack", "apolo", "husker", "freaker",
+   "skulls", "bulldog", "flat top", "hammerhead", "gonzo"
+};
+// Declaring the array (type Eina_Array)
+Eina_Array *array;
+unsigned int i;
+
+// Creating the array
+array = eina_array_new(20);
+
+// Inserting elements in the array
+for (i = 0; i < 20; i++)
+   eina_array_push(array, strdup(strings[i]));
+
+[...]
+```
+
+__**2**__. To change the allocation step, use the ``eina_array_step_set()`` 
function:
+  * The first parameter is the array you want to change.
+  * The second parameter is the size of that specific array (retrieved with 
the ``sizeof()`` function).
+  * The last parameter is the new step size.
+
+In this example, the array step changes from 20 to 30.
+
+```c
+[...]
+
+eina_array_step_set(array, sizeof(*array), 30);
+
+[...]
+```
+
+__**3**__. When no longer used, use the ``eina_array_free()`` function to free 
the array. It first calls the ``eina_array_flush()`` function and frees the 
memory of the pointer. It does not free the memory allocated for the elements 
of the array. To free them, use a ``while`` statement with the 
``eina_array_pop`` function.
+
+
+```c
+[...]
+
+// Freeing the array elements
+while (eina_array_count(array))
+   free(eina_array_pop(array));
+
+// Freeing the array itself
+eina_array_free(array);
+
+[...]
+```
+
+## Modifying Classic Array Content ##
+
+### To set the data of an element ###
+Use the ``eina_array_data_set()`` function. The first parameter is the array,
+the second is the index of the element you want to set, and the last one is
+the data. You must first get the related pointer if you need to free it, as
+this function replaces the previously held data. Be careful, as there is no
+array or index check. If the value is ``NULL`` or invalid, the application can
+crash.
+
+
+```c
+[...]
+
+free(eina_array_data_get(array, 0));
+eina_array_data_set(array, 0, strdup(strings[3]);
+
+[...]
+```
+
+### To add elements to the end of the array ###
+Use the ``eina_array_push()`` function.  The function returns ``EINA_TRUE`` on
+success, and ``EINA_FALSE`` on failure. The first parameter is the array to
+store the element, the second one is the data you want to store. If you store
+strings, remember to allocate the memory first. The example uses the
+``strdup`` function to duplicate the string contained in ``strings[]``. This
+function allocates the memory of the returned string, so you do not have to do
+it yourself.
+
+
+```c
+[...]
+
+for (i = 0; i < 20; i++)
+   eina_array_push(array, strdup(strings[i]));
+
+[...]
+```
+
+### To remove the last element of an array ###
+Use the ``eina_array_pop()`` function. It takes the array as a parameter, and
+if the operation is successful, returns a pointer to the data of the removed
+elemen

[EGIT] [core/efl] master 01/01: elm_code_widget: keep track of visibility.

2017-11-08 Thread Al Poole
netstar pushed a commit to branch master.

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

commit e63e2d7e21df13520cca1b05437e556b3fd6624f
Author: Al Poole 
Date:   Thu Nov 9 00:38:51 2017 +

elm_code_widget: keep track of visibility.

Keep track of visibility and ensure the cursor can never be
filled when hidden. This should finally end any issue with the
cursor and visibility with the new focus system. Didn't see this
previously until working on Edi's bottom panes which caused redraw
on resize of the widgets.

@fix
---
 src/lib/elementary/elm_code_widget.c | 4 +++-
 src/lib/elementary/elm_code_widget_private.h | 2 +-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/lib/elementary/elm_code_widget.c 
b/src/lib/elementary/elm_code_widget.c
index 1ce0ffa99c..fc20eac6ec 100644
--- a/src/lib/elementary/elm_code_widget.c
+++ b/src/lib/elementary/elm_code_widget.c
@@ -270,7 +270,7 @@ _elm_code_widget_fill_cursor(Elm_Code_Widget *widget, 
unsigned int number, int g
 
pd = efl_data_scope_get(widget, ELM_CODE_WIDGET_CLASS);
 
-   if (pd->editable && pd->focussed && pd->cursor_line == number)
+   if (pd->visible && pd->editable && pd->focussed && pd->cursor_line == 
number)
  {
 if (pd->cursor_col + gutter - 1 >= (unsigned int) w)
   return;
@@ -564,6 +564,7 @@ _elm_code_widget_show_cb(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_
 
pd = efl_data_scope_get(widget, ELM_CODE_WIDGET_CLASS);
 
+   pd->visible = EINA_TRUE;
if (pd->cursor_rect)
  evas_object_show(pd->cursor_rect);
 }
@@ -577,6 +578,7 @@ _elm_code_widget_hidden_cb(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EIN
 
pd = efl_data_scope_get(widget, ELM_CODE_WIDGET_CLASS);
 
+   pd->visible = EINA_FALSE;
if (pd->cursor_rect)
  evas_object_hide(pd->cursor_rect);
 }
diff --git a/src/lib/elementary/elm_code_widget_private.h 
b/src/lib/elementary/elm_code_widget_private.h
index d9e071c246..4e050a799b 100644
--- a/src/lib/elementary/elm_code_widget_private.h
+++ b/src/lib/elementary/elm_code_widget_private.h
@@ -24,7 +24,7 @@ typedef struct
unsigned int cursor_line, cursor_col;
Evas_Object *cursor_rect;
 
-   Eina_Bool editable, focussed;
+   Eina_Bool visible, editable, focussed;
Eina_Bool show_line_numbers;
unsigned int line_width_marker, tabstop;
Eina_Bool show_whitespace, tab_inserts_spaces;

-- 




[EGIT] [website/www-content] master 01/01: Wiki page e0.21.11_release changed with summary [created] by Simon

2017-11-08 Thread Simon
WWW-www.enlightenment.org pushed a commit to branch master.

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

commit ddd679d2c9a9bc4a260b0bff457afa9da78b3b5f
Author: Simon 
Date:   Wed Nov 8 17:52:03 2017 -0800

Wiki page e0.21.11_release changed with summary [created] by Simon
---
 pages/news/e0.21.11_release.txt | 116 
 1 file changed, 116 insertions(+)

diff --git a/pages/news/e0.21.11_release.txt b/pages/news/e0.21.11_release.txt
new file mode 100644
index ..3fc8d8d2
--- /dev/null
+++ b/pages/news/e0.21.11_release.txt
@@ -0,0 +1,116 @@
+=== Enlightenment DR 0.21.11 Release ===
+  * //2017-11-09 by Simon Lees//
+
+This is the last general bugfix and stability release for the Enlightenment 21 
Release series, we recommend users move to the Enlightenment 22 Release series.
+
+
+== Tickets Addressed ==
+| [[ https://phab.enlightenment.org/T3649|T3649 ]] |"Suspend even if AC" not 
working |
+| [[ https://phab.enlightenment.org/T4510|T4510 ]] |Edge Bindings - left click 
action seem to override other button |
+| [[ https://phab.enlightenment.org/T4648|T4648 ]] |Lock screen gadget issues. 
|
+| [[ https://phab.enlightenment.org/T4988|T4988 ]] |The Everything crash |
+| [[ https://phab.enlightenment.org/T5076|T5076 ]] |Incorrect desktop files |
+| [[ https://phab.enlightenment.org/T5593|T5593 ]] |Xwayland |
+| [[ https://phab.enlightenment.org/T5953|T5953 ]] |Alternative to prepending 
E_BIN_DIR to PATH |
+| [[ https://phab.enlightenment.org/T5974|T5974 ]] |Cannot resize bryce 
(ALT+Scrolling thing) |
+| [[ https://phab.enlightenment.org/T5998|T5998 ]] |Bryce: Resizing SEGV |
+| [[ https://phab.enlightenment.org/T6006|T6006 ]] |Shaded window state broken 
on E restart |
+| [[ https://phab.enlightenment.org/T6023|T6023 ]] |Crash on resize across 
multiple monitors with tiling enabled |
+| [[ https://phab.enlightenment.org/T6024|T6024 ]] |Win appears on the wrong 
VD with remebers |
+| [[ https://phab.enlightenment.org/T6071|T6071 ]] |E wayland mode - launching 
apps like terminology always leads to ibar icon being "disabled/busy starting" |
+| [[ https://phab.enlightenment.org/T6122|T6122 ]] |Xwayland startup apps 
crash on E start |
+| [[ https://phab.enlightenment.org/T6125|T6125 ]] |Issues with the lock 
screen. |
+| [[ https://phab.enlightenment.org/T6151|T6151 ]] |Enlightenment 22 crashing 
after some tim |
+| [[ https://phab.enlightenment.org/T6157|T6157 ]] |e cursors broken in x |
+| [[ https://phab.enlightenment.org/T6197|T6197 ]] |enlightenment is 
nonresponsive after entering password on lock screen |
+| [[ https://phab.enlightenment.org/T6242|T6242 ]] |Selecting text in 
Terminology crashes E. |
+
+== Changes ==
+Carsten Haitzler (6):
+  * fix up window+screen positioning fixup so it doesnt catch other clients
+  * e start - fix path prepend/append if already in path assuming clue
+  * tiling - ensure notification struct is 0'd before use
+  * battery modules - actually set ac power flag based on ac presence
+  * e main - xdg runtime dir fixup - dont overwrite same buffer
+  * nvidia driver workaround atexit handlers for pam auth
+
+Chidambar Zinnoury (2):
+  * e remote: Fix script’s execution rights.
+  * e menu: Fix missing realize when using key-activation to the right.
+
+Derek Foreman (4):
+  * Fix crash when processing a wayland client cursor set after death
+  * Fix xwayland related crash when mousing out of a window
+  * Clear stored root window id when shutting down X
+  * Fix crash on wayland logout if xwayland hasn't started yet
+
+Mike Blumenkrantz (46):
+  * use animator del function to delete comp object animators
+  * handle shade <-> unshade toggling in same frame
+  * resolve desktop spec issues with emixer.desktop
+  * use EC_CHANGED when setting changed flag in client idler
+  * hide clients again after show in idler if clients are on hidden desk
+  * block recursive mouse eventing in bryce action handlers
+  * handle unmovable gadgets in gadget move action
+  * flag zone/edge mouse binding activation with ON_HOLD
+  * fix clickable edge binding activation with other mouse buttons
+  * remove fdo interfaces from music control dbus xml
+  * don't perform zone updates on client resize
+  * remove input-only client fastpath to resize crashes
+  * use client geometry for visibility effect geometry, not comp object 
geometry
+  * emit E_EVENT_EXEC_NEW_CLIENT with phony exes
+  * don't show xwayland clients unconditionally on commit
+  * defer wl startup apps until after xwayland init completes
+  * do ecore-x shutdown on xwayland shutdown
+  * redo bryce eventing
+  * deduplicate global gadget handler variables
+  * block gadget configuration unconditionally while desklock is active
+  * set comp object alpha state when applying native surface
+  * add max size input rects for wl clients on creation
+  * handle x11 shaped input under xwayland
+  * set default cursor on root windo

[EGIT] [core/efl] master 01/01: Efl.Ui.Slider: fix documentations

2017-11-08 Thread Amitesh Singh
ami pushed a commit to branch master.

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

commit 6c444bebcbb8858364c88f9aba4b217b23b28a07
Author: Amitesh Singh 
Date:   Thu Nov 9 11:02:29 2017 +0900

Efl.Ui.Slider: fix documentations
---
 src/lib/elementary/elm_slider_legacy.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/lib/elementary/elm_slider_legacy.h 
b/src/lib/elementary/elm_slider_legacy.h
index 89df6f1bcc..a98324fa7a 100644
--- a/src/lib/elementary/elm_slider_legacy.h
+++ b/src/lib/elementary/elm_slider_legacy.h
@@ -176,7 +176,7 @@ EAPI void elm_slider_units_format_function_set(Evas_Object 
*obj, slider_func_typ
  * @param[in] min The minimum value.
  * @param[in] max The maximum value.
  *
- * @ingroup Efl_Ui_Slider
+ * @ingroup Elm_Slider
  */
 EAPI void elm_slider_min_max_set(Evas_Object *obj, double min, double max);
 
@@ -189,7 +189,7 @@ EAPI void elm_slider_min_max_set(Evas_Object *obj, double 
min, double max);
  * @param[out] min The minimum value.
  * @param[out] max The maximum value.
  *
- * @ingroup Efl_Ui_Slider
+ * @ingroup Elm_Slider
  */
 EAPI void elm_slider_min_max_get(const Evas_Object *obj, double *min, double 
*max);
 

-- 




[EGIT] [core/enlightenment] enlightenment-0.21 01/02: 21.11 Release

2017-11-08 Thread Simon Lees
simotek pushed a commit to branch enlightenment-0.21.

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

commit 28f8fc84096a8e27cb7313c30174a7156840
Author: Simon Lees 
Date:   Fri Nov 3 13:14:29 2017 +1030

21.11 Release
---
 configure.ac | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/configure.ac b/configure.ac
index 463e77f96..e9b183e09 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,11 +2,11 @@
 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
 m4_define([v_maj], [0])
 m4_define([v_min], [21])
-m4_define([v_mic], [10])
+m4_define([v_mic], [11])
 m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 
0) | tr -d '\n']))dnl
 ##--   When released, remove the dnl on the below line
 m4_undefine([v_rev])
-m4_define([relname], [0.21.10])
+m4_define([relname], [0.21.11])
 ##--   When doing snapshots - change soname. remove dnl on below line
 m4_define([relname], [ver-0.21])
 dnl m4_define([v_rel], [-release relname])

-- 




[EGIT] [core/enlightenment] annotated tag v0.21.11 created (now 084ce7c1e)

2017-11-08 Thread Enlightenment Git
This is an automated email from the git hooks/post-receive script.

simotek pushed a change to annotated tag v0.21.11
in repository core/enlightenment.

at  084ce7c1e (tag)
   tagging  973b16091d4fe275fcaa1bde9b84643d3c3a0fd1 (commit)
  replaces  v0.21.10
 tagged by  Simon Lees
on  Fri Nov 3 13:14:56 2017 +1030

- Log -
21.11 Release

Carsten Haitzler (6):
  fix up window+screen positioning fixup so it doesnt catch other clients
  e start - fix path prepend/append if already in path assuming clue
  tiling - ensure notification struct is 0'd before use
  battery modules - actually set ac power flag based on ac presence
  e main - xdg runtime dir fixup - dont overwrite same buffer
  nvidia driver workaround atexit handlers for pam auth

Chidambar Zinnoury (2):
  e remote: Fix script’s execution rights.
  e menu: Fix missing realize when using key-activation to the right.

Derek Foreman (4):
  Fix crash when processing a wayland client cursor set after death
  Fix xwayland related crash when mousing out of a window
  Clear stored root window id when shutting down X
  Fix crash on wayland logout if xwayland hasn't started yet

Mike Blumenkrantz (47):
  use animator del function to delete comp object animators
  handle shade <-> unshade toggling in same frame
  resolve desktop spec issues with emixer.desktop
  use EC_CHANGED when setting changed flag in client idler
  hide clients again after show in idler if clients are on hidden desk
  block recursive mouse eventing in bryce action handlers
  handle unmovable gadgets in gadget move action
  flag zone/edge mouse binding activation with ON_HOLD
  fix clickable edge binding activation with other mouse buttons
  remove fdo interfaces from music control dbus xml
  don't perform zone updates on client resize
  remove input-only client fastpath to resize crashes
  use client geometry for visibility effect geometry, not comp object 
geometry
  emit E_EVENT_EXEC_NEW_CLIENT with phony exes
  don't show xwayland clients unconditionally on commit
  defer wl startup apps until after xwayland init completes
  do ecore-x shutdown on xwayland shutdown
  redo bryce eventing
  deduplicate global gadget handler variables
  block gadget configuration unconditionally while desklock is active
  set comp object alpha state when applying native surface
  add max size input rects for wl clients on creation
  handle x11 shaped input under xwayland
  set default cursor on root window for xwl pointer
  Revert "disable option for mouse to use Application theme if we are 
running in Wayland"
  move 'show cursor' option in mouse settings inside frame
  do not show cursor theme options in wayland compositor mode
  move cursor theme options into separate frame
  check for non-wl compositor when forcing application cursors onto pointers
  always use e cursor theme for canvas pointers
  recreate x11 root pointer when changing application<->enlightenment theme
  add render update when showing clients if damages exist
  add client refs for the nocomp client
  do not unqueue render when deleting a client's render update
  ignore set_input_region requests for wl surfaces which are cursors or 
drags
  set null input regions for surfaces upon calling set_cursor or start_drag
  null wl clipboard+selection source pointers when destroying clipboard 
source
  cancel wl selections after removing destroy listener
  move x11 compositor cleanup into shutdown function
  unset client's mouse-in state on mouse out even while fullscreen or 
deleted
  send wl pointer leave for deleted clients if viable
  unset xwayland client changes.pos flag during xwl->wl switch if client is 
unplaced
  block wl modal window destructor from intercepting xwl modal windows
  handle more mouse buttons under wayland
  explicitly free client animation agent object during fullscreen operation
  Revert "handle x11 shaped input under xwayland"
  add event for xwayland init

Simon Lees (2):
  21.11 Release
  21.11 NEWS

Stephen 'Okra' Houston (1):
  E Exe: Semi revert 2082bb51d3abffd991b4d791ace2567888e2e9fb. The ref 
count was off to begin with.

---

This annotated tag includes the following new commits:

   new  28f8fc840 21.11 Release
   new  973b16091 21.11 NEWS

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.


-- 




[EGIT] [core/enlightenment] enlightenment-0.21 02/02: 21.11 NEWS

2017-11-08 Thread Simon Lees
simotek pushed a commit to branch enlightenment-0.21.

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

commit 973b16091d4fe275fcaa1bde9b84643d3c3a0fd1
Author: Simon Lees 
Date:   Fri Nov 3 13:14:49 2017 +1030

21.11 NEWS
---
 NEWS | 71 
 1 file changed, 71 insertions(+)

diff --git a/NEWS b/NEWS
index 4664c04ae..9cd954705 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,74 @@
+Release 0.21.11:
+-
+Carsten Haitzler (6):
+  fix up window+screen positioning fixup so it doesnt catch other clients
+  e start - fix path prepend/append if already in path assuming clue
+  tiling - ensure notification struct is 0'd before use
+  battery modules - actually set ac power flag based on ac presence
+  e main - xdg runtime dir fixup - dont overwrite same buffer
+  nvidia driver workaround atexit handlers for pam auth
+
+Chidambar Zinnoury (2):
+  e remote: Fix script’s execution rights.
+  e menu: Fix missing realize when using key-activation to the right.
+
+Derek Foreman (4):
+  Fix crash when processing a wayland client cursor set after death
+  Fix xwayland related crash when mousing out of a window
+  Clear stored root window id when shutting down X
+  Fix crash on wayland logout if xwayland hasn't started yet
+
+Mike Blumenkrantz (46):
+  use animator del function to delete comp object animators
+  handle shade <-> unshade toggling in same frame
+  resolve desktop spec issues with emixer.desktop
+  use EC_CHANGED when setting changed flag in client idler
+  hide clients again after show in idler if clients are on hidden desk
+  block recursive mouse eventing in bryce action handlers
+  handle unmovable gadgets in gadget move action
+  flag zone/edge mouse binding activation with ON_HOLD
+  fix clickable edge binding activation with other mouse buttons
+  remove fdo interfaces from music control dbus xml
+  don't perform zone updates on client resize
+  remove input-only client fastpath to resize crashes
+  use client geometry for visibility effect geometry, not comp object 
geometry
+  emit E_EVENT_EXEC_NEW_CLIENT with phony exes
+  don't show xwayland clients unconditionally on commit
+  defer wl startup apps until after xwayland init completes
+  do ecore-x shutdown on xwayland shutdown
+  redo bryce eventing
+  deduplicate global gadget handler variables
+  block gadget configuration unconditionally while desklock is active
+  set comp object alpha state when applying native surface
+  add max size input rects for wl clients on creation
+  handle x11 shaped input under xwayland
+  set default cursor on root window for xwl pointer
+  Revert "disable option for mouse to use Application theme if we are 
running in Wayland"
+  move 'show cursor' option in mouse settings inside frame
+  do not show cursor theme options in wayland compositor mode
+  move cursor theme options into separate frame
+  check for non-wl compositor when forcing application cursors onto 
pointers
+  always use e cursor theme for canvas pointers
+  recreate x11 root pointer when changing application<->enlightenment theme
+  add render update when showing clients if damages exist
+  add client refs for the nocomp client
+  do not unqueue render when deleting a client's render update
+  ignore set_input_region requests for wl surfaces which are cursors or 
drags
+  set null input regions for surfaces upon calling set_cursor or start_drag
+  null wl clipboard+selection source pointers when destroying clipboard 
source
+  cancel wl selections after removing destroy listener
+  move x11 compositor cleanup into shutdown function
+  unset client's mouse-in state on mouse out even while fullscreen or 
deleted
+  send wl pointer leave for deleted clients if viable
+  unset xwayland client changes.pos flag during xwl->wl switch if client 
is unplaced
+  block wl modal window destructor from intercepting xwl modal windows
+  handle more mouse buttons under wayland
+  explicitly free client animation agent object during fullscreen operation
+  Revert "handle x11 shaped input under xwayland"
+
+Stephen 'Okra' Houston (1):
+  E Exe: Semi revert 2082bb51d3abffd991b4d791ace2567888e2e9fb. The ref 
count was off to begin with.
+
 Release 0.21.10:
 -
 Al Poole (1):

-- 




[EGIT] [core/efl] master 01/01: elput - ref device that is in the event queue

2017-11-08 Thread Carsten Haitzler
raster pushed a commit to branch master.

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

commit 1e83d963d905447588a91e1beafd382631d447bd
Author: Carsten Haitzler (Rasterman) 
Date:   Thu Nov 9 11:38:35 2017 +0900

elput - ref device that is in the event queue
---
 src/lib/elput/elput_evdev.c | 12 +++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/src/lib/elput/elput_evdev.c b/src/lib/elput/elput_evdev.c
index afa42df68c..b41fbe508b 100644
--- a/src/lib/elput/elput_evdev.c
+++ b/src/lib/elput/elput_evdev.c
@@ -1596,6 +1596,15 @@ _tablet_tool_tip(struct libinput_device *idev, struct 
libinput_event_tablet_tool
 }
 
 static void
+_switch_event_free(void *data EINA_UNUSED, void *event)
+{
+   Elput_Event_Switch *ev = event;
+
+   _evdev_device_destroy(ev->device);
+   free(ev);
+}
+
+static void
 _switch_toggle(struct libinput_device *idev, struct libinput_event_switch 
*event)
 {
Elput_Event_Switch *ev;
@@ -1603,10 +1612,11 @@ _switch_toggle(struct libinput_device *idev, struct 
libinput_event_switch *event
ev = calloc(1, sizeof(Elput_Event_Switch));
if (!ev) return;
ev->device = libinput_device_get_user_data(idev);
+   ev->device->refs++;
ev->time_usec = libinput_event_switch_get_time_usec(event);
ev->type = (Elput_Switch_Type)libinput_event_switch_get_switch(event);
ev->state = 
(Elput_Switch_State)libinput_event_switch_get_switch_state(event);
-   ecore_event_add(ELPUT_EVENT_SWITCH, ev, NULL, NULL);
+   ecore_event_add(ELPUT_EVENT_SWITCH, ev, _switch_event_free, NULL);
 }
 
 int

--