[EGIT] [core/efl] master 01/01: elm/genlist: use correct type of list when iterating

2018-08-02 Thread Mike Blumenkrantz
bu5hm4n pushed a commit to branch master.

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

commit ab1fd96363b630df1f5b3cb145eade3466b74b75
Author: Mike Blumenkrantz 
Date:   Thu Aug 2 16:42:56 2018 -0400

elm/genlist: use correct type of list when iterating

itb-items is Eina_List, not Eina_Inlist. this crashes due to wrong type
use

ref D6720
fix T7246

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

diff --git a/src/lib/elementary/elm_genlist.c b/src/lib/elementary/elm_genlist.c
index 9523017b35..854d3e569c 100644
--- a/src/lib/elementary/elm_genlist.c
+++ b/src/lib/elementary/elm_genlist.c
@@ -4362,12 +4362,13 @@ _update_block_registration(Item_Block *itb, 
Elm_Gen_Item *element)
 {
Elm_Gen_Item *it = NULL;
Eina_List *order = NULL;
+   const Eina_List *l;
 
if (!itb->realized) return;
 
efl_ui_focus_manager_calc_register_logical(itb->sd->obj, EO_OBJ(element), 
itb->adapter, NULL);
 
-   EINA_INLIST_FOREACH(itb->items, it)
+   EINA_LIST_FOREACH(itb->items, l, it)
  {
 order = eina_list_append(order, EO_OBJ(it));
  }

-- 




[EGIT] [website/www-content] master 01/01: Wiki page sandbox_gadgets.md changed with summary [] by Stephen M Houston

2018-08-02 Thread Stephen M Houston
WWW-www.enlightenment.org pushed a commit to branch master.

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

commit e66b4f203d7b5cf69b32b3d1edaff79d9ccbeb45
Author: Stephen M Houston 
Date:   Thu Aug 2 07:40:12 2018 -0700

Wiki page sandbox_gadgets.md changed with summary [] by Stephen M Houston
---
 pages/develop/e/sandbox_gadgets.md.txt | 1 +
 1 file changed, 1 insertion(+)

diff --git a/pages/develop/e/sandbox_gadgets.md.txt 
b/pages/develop/e/sandbox_gadgets.md.txt
index c8baf06d9..2c58f4908 100644
--- a/pages/develop/e/sandbox_gadgets.md.txt
+++ b/pages/develop/e/sandbox_gadgets.md.txt
@@ -3,6 +3,7 @@
 ---
 
 # Creating Enlightenment Gadgets #
+**The code blocks in this guide are not intended to be compiled separately or 
work individually.  They are meant to be used as a visual reference of the 
changes that need to be made to make an EFL application a gadget.  The final 
code block, along with the accompanying .desktop file and meson.build at the 
end of this page are the intended files to use if you would like to compile and 
install this example as a gadget.**
  
 *Gadgets* are standalone applications that Enlightenment can use as extensions 
to its desktop. They are similar to modules in that they can be placed in 
containers, called *gadget sites*; they differ in that they are not internal to 
Enlightenment and do not run in the same process.
 

-- 




[EGIT] [website/www-content] master 01/01: Wiki page sandbox_gadgets.md changed with summary [] by Stephen M Houston

2018-08-02 Thread Stephen M Houston
WWW-www.enlightenment.org pushed a commit to branch master.

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

commit a10c3ad16e1266d64a5213cb9a830519669b2cbf
Author: Stephen M Houston 
Date:   Thu Aug 2 07:36:17 2018 -0700

Wiki page sandbox_gadgets.md changed with summary [] by Stephen M Houston
---
 pages/develop/e/sandbox_gadgets.md.txt | 4 
 1 file changed, 4 deletions(-)

diff --git a/pages/develop/e/sandbox_gadgets.md.txt 
b/pages/develop/e/sandbox_gadgets.md.txt
index 5d6554d88..c8baf06d9 100644
--- a/pages/develop/e/sandbox_gadgets.md.txt
+++ b/pages/develop/e/sandbox_gadgets.md.txt
@@ -81,10 +81,6 @@ elm_main(int argc, char **argv)
 }
 ```
 
-Compile it (and other examples on this page) with:
-
-  cc example.c -o example `pkg-config --cflags --libs 
enlightenment`
-
 The variable ``gadget`` is used to determine if the application is running as 
a gadget or as a standalone application. The variable ``id_num`` is used to 
identify the ID of the gadget, if the application is indeed running as a 
gadget. If the application is running as a gadget, the window is set to alpha 
so that the background of the window does not show up. This is for aesthetics 
purposes so that gadgets on gadget sites don't all have a background.
 
 If the id of the gadget is ``-1`` the application is being run in the "Add 
Gadget" popup. In this case the application displays an icon. If the ID of the 
gadget is not ``-1`` the application is being run as a gadget in a gadget site 
and the ID will be unique to this gadget. This is important for complex gadgets 
where the application would like to save settings or configurations and have 
them loaded after restarts. This unique ID is how the application will identify 
which settings to load.

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 20/30: input method conf dialog - fix filtering of imc's to search path

2018-08-02 Thread Carsten Haitzler
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit 2c52afb6f4d8dc2a99d03d144b755346a710e25f
Author: Carsten Haitzler (Rasterman) 
Date:   Tue May 15 15:36:45 2018 +0900

input method conf dialog - fix filtering of imc's to search path

if exe is not a full path it'd be filtered out... so fix and do a path
search to show imc's that can work.

@fix
---
 src/modules/conf_intl/e_int_config_imc.c | 39 +---
 1 file changed, 36 insertions(+), 3 deletions(-)

diff --git a/src/modules/conf_intl/e_int_config_imc.c 
b/src/modules/conf_intl/e_int_config_imc.c
index 64aa15a66..d49159a12 100644
--- a/src/modules/conf_intl/e_int_config_imc.c
+++ b/src/modules/conf_intl/e_int_config_imc.c
@@ -347,10 +347,43 @@ _basic_create_widgets(E_Config_Dialog *cfd EINA_UNUSED, 
Evas *evas, E_Config_Dia
 {
Efreet_Desktop *desktop;
 
-   if (!ecore_file_exists(imc->e_im_setup_exec))
+   if (imc->e_im_setup_exec[0] == '/')
  {
-e_intl_input_method_config_free(imc);
-goto out;
+if (!ecore_file_exists(imc->e_im_setup_exec))
+  {
+ e_intl_input_method_config_free(imc);
+ goto out;
+  }
+ }
+   else
+ {
+const char *env = getenv("PATH");
+char **split, buf[PATH_MAX];
+Eina_Bool exec_found = EINA_FALSE;
+
+if (!env)
+  {
+ e_intl_input_method_config_free(imc);
+ goto out;
+  }
+split = eina_str_split(env, ":", 0);
+for (i = 0; split[i] != NULL; i++)
+  {
+ snprintf(buf, sizeof(buf), "%s/%s", split[i], 
imc->e_im_setup_exec);
+
+ if (ecore_file_exists(buf) && 
ecore_file_can_exec(buf))
+   {
+  exec_found = EINA_TRUE;
+  break;
+   }
+  }
+free(split[0]);
+free(split);
+if (!exec_found)
+  {
+ e_intl_input_method_config_free(imc);
+ goto out;
+  }
  }
desktop = 
efreet_util_desktop_exec_find(imc->e_im_setup_exec);
if (desktop)

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 27/30: e randr screen setup - fix disabling of scale checkbox

2018-08-02 Thread Carsten Haitzler
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit f968b37095576ffa45272bef013739d5fbc39013
Author: Carsten Haitzler (Rasterman) 
Date:   Wed Jul 25 00:05:50 2018 +0900

e randr screen setup - fix disabling of scale checkbox
---
 src/modules/conf_randr/e_int_config_randr2.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/modules/conf_randr/e_int_config_randr2.c 
b/src/modules/conf_randr/e_int_config_randr2.c
index e30cf08b8..5c3bdd109 100644
--- a/src/modules/conf_randr/e_int_config_randr2.c
+++ b/src/modules/conf_randr/e_int_config_randr2.c
@@ -466,6 +466,7 @@ _basic_screen_info_fill(E_Config_Dialog_Data *cfdata, 
E_Config_Randr2_Screen *cs
  {
 elm_check_state_set(cfdata->use_profile_obj, EINA_TRUE);
 elm_object_disabled_set(cfdata->profile_list_obj, EINA_FALSE);
+elm_object_disabled_set(cfdata->scale_custom_obj, EINA_FALSE);
 
 _basic_profile_list_fill(cfdata, cs->profile);
 

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 17/30: compile against stable EFL again

2018-08-02 Thread Derek Foreman
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit e047ed2638ec73aa72364e6ea9319a87b8f1cf33
Author: Derek Foreman 
Date:   Wed Apr 25 11:06:12 2018 -0500

compile against stable EFL again

E should probably continue to build against released EFL older than
the current interface name changes.
---
 src/modules/wl_drm/e_mod_main.c | 15 +++
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/src/modules/wl_drm/e_mod_main.c b/src/modules/wl_drm/e_mod_main.c
index 68d6593f9..d51293c1d 100644
--- a/src/modules/wl_drm/e_mod_main.c
+++ b/src/modules/wl_drm/e_mod_main.c
@@ -779,14 +779,13 @@ _drm_device_del(void *data EINA_UNUSED, const Efl_Event 
*event)
  ecore_evas_cursor_device_unset(e_comp->ee, event->info);
 }
 
-EFL_CALLBACKS_ARRAY_DEFINE(_drm_device_del_cb,
-   { EFL_CANVAS_SCENE_EVENT_DEVICE_REMOVED, 
_drm_device_del });
-
 E_API void *
 e_modapi_init(E_Module *m)
 {
int w = 0, h = 0;
 
+   static Efl_Callback_Array_Item arr[2] = { { 0, _drm_device_del } };
+
printf("LOAD WL_DRM MODULE\n");
 
/* try to init ecore_drm */
@@ -832,6 +831,14 @@ e_modapi_init(E_Module *m)
ecore_evas_screen_geometry_get(e_comp->ee, NULL, NULL, , );
if (!e_comp_canvas_init(w, h)) return NULL;
 
+#ifdef EFL_VERSION_1_21
+   arr[0].desc = EFL_CANVAS_SCENE_EVENT_DEVICE_REMOVED;
+#else
+   if (E_EFL_VERSION_MINIMUM(1, 20, 99))
+ arr[0].desc = dlsym(NULL, "_EFL_CANVAS_SCENE_EVENT_DEVICE_REMOVED");
+   if (!arr[0].desc)
+ arr[0].desc = dlsym(NULL, "_EFL_CANVAS_EVENT_DEVICE_REMOVED");
+#endif
ecore_evas_pointer_xy_get(e_comp->ee, _comp_wl->ptr.x,
  _comp_wl->ptr.y);
evas_event_feed_mouse_in(e_comp->evas, 0, NULL);
@@ -855,7 +862,7 @@ e_modapi_init(E_Module *m)
  ecore_event_handler_add(ELPUT_EVENT_POINTER_MOTION,
  (Ecore_Event_Handler_Cb)_pointer_motion, NULL);
 
-   efl_event_callback_array_priority_add(e_comp->evas, _drm_device_del_cb(),
+   efl_event_callback_array_priority_add(e_comp->evas, arr,
  EFL_CALLBACK_PRIORITY_BEFORE, NULL);
 
return m;

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 29/30: e pixmap - follow on from previous commit to finally fix pixmap tracking

2018-08-02 Thread Carsten Haitzler
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit ae64aabfa253a9c575d499440b175bf8229dfbdd
Author: Carsten Haitzler (Rasterman) 
Date:   Thu Jul 19 16:24:08 2018 +0900

e pixmap - follow on from previous commit to finally fix pixmap tracking

follow on form 4c7b798b45421fec9c54d95ef50ee685fdc07392 - really
remove from the alias hash. the alias id is different and should ave
been stored in the pixmap and be deleted when pixmap is freed. i had
it right to remove from the aliases hash too, but i used the wrong id
- i used the "core" pixmap id, not alias. this tracks and uses that
alias.

this means internal windows are reliable now and dont crash...

@fix.
---
 src/bin/e_pixmap.c | 37 +
 1 file changed, 25 insertions(+), 12 deletions(-)

diff --git a/src/bin/e_pixmap.c b/src/bin/e_pixmap.c
index 4c667757c..bc16e498b 100644
--- a/src/bin/e_pixmap.c
+++ b/src/bin/e_pixmap.c
@@ -31,6 +31,7 @@ struct _E_Pixmap
E_Pixmap_Type type;
 
int64_t win;
+   int64_t alias;
Ecore_Window parent;
 
int w, h;
@@ -266,7 +267,7 @@ _e_pixmap_find(E_Pixmap_Type type, va_list *l)
int64_t id;
 #endif
E_Pixmap *cp;
-   
+
if (!pixmaps[type]) return NULL;
switch (type)
  {
@@ -294,27 +295,32 @@ _e_pixmap_find(E_Pixmap_Type type, va_list *l)
 E_API int
 e_pixmap_free(E_Pixmap *cp)
 {
+#ifndef HAVE_WAYLAND_ONLY
+   Ecore_X_Window xwin = cp ? cp->win : 0;
+   Ecore_X_Window alias_xwin = cp ? cp->alias : 0;
+#endif
+#ifdef HAVE_WAYLAND
+   int64_t id = cp ? cp->win : 0;
+   int64_t alias_id = cp ? cp->alias : 0;
+#endif
+   E_Pixmap_Type type;
+
if (!cp) return 0;
if (--cp->refcount) return cp->refcount;
+   type = cp->type;
e_pixmap_image_clear(cp, EINA_FALSE);
-   switch (cp->type)
+   switch (type)
  {
   case E_PIXMAP_TYPE_X:
 #ifndef HAVE_WAYLAND_ONLY
-  {
- Ecore_X_Window xwin = cp->win;
- eina_hash_del_by_key(pixmaps[cp->type], );
- eina_hash_del_by_key(aliases[cp->type], );
-  }
+if (alias_xwin) eina_hash_del(aliases[type], _xwin, cp);
+eina_hash_del(pixmaps[type], , cp);
 #endif
 break;
   case E_PIXMAP_TYPE_WL:
 #ifdef HAVE_WAYLAND
-  {
- int64_t id = cp->win;
- eina_hash_del_by_key(pixmaps[cp->type], );
- eina_hash_del_by_key(aliases[cp->type], );
-  }
+if (alias_id) eina_hash_del(aliases[type], _id, cp);
+eina_hash_del(pixmaps[type], , cp);
 #endif
 break;
   default: break;
@@ -1095,6 +1101,7 @@ e_pixmap_image_opaque_get(E_Pixmap *cp, int *x, int *y, 
int *w, int *h)
 E_API void
 e_pixmap_alias(E_Pixmap *cp, E_Pixmap_Type type, ...)
 {
+   E_Pixmap *cp2;
va_list l;
 #ifndef HAVE_WAYLAND_ONLY
Ecore_X_Window xwin;
@@ -,6 +1118,9 @@ e_pixmap_alias(E_Pixmap *cp, E_Pixmap_Type type, ...)
 xwin = va_arg(l, uint32_t);
 if (!aliases[type])
   aliases[type] = eina_hash_int32_new(NULL);
+cp2 = eina_hash_find(aliases[type], );
+if ((cp2) && (!cp)) cp2->alias = 0;
+else if (cp) cp->alias = xwin;
 eina_hash_set(aliases[type], , cp);
 #endif
 break;
@@ -1119,6 +1129,9 @@ e_pixmap_alias(E_Pixmap *cp, E_Pixmap_Type type, ...)
 id = va_arg(l, int64_t);
 if (!aliases[type])
   aliases[type] = eina_hash_int64_new(NULL);
+cp2 = eina_hash_find(aliases[type], );
+if ((cp2) && (!cp)) cp2->alias = 0;
+else if (cp) cp->alias = id;
 eina_hash_set(aliases[type], , cp);
 #endif
 break;

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 03/30: Fix single frame broken render on wayland client opaque region change

2018-08-02 Thread Derek Foreman
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit 14c04b87774893e8a5e45f42f7be76a9de09ec04
Author: Derek Foreman 
Date:   Wed Mar 21 14:19:39 2018 -0500

Fix single frame broken render on wayland client opaque region change

Turns out this is called too late in the render pass and a single frame
can occur with the old border setting.  This can lead to nasty flicker
artifacts.
---
 src/bin/e_comp_object.c | 66 +
 1 file changed, 34 insertions(+), 32 deletions(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 0909b6d4e..b36be7a6a 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -959,7 +959,6 @@ _e_comp_object_pixels_get(void *data, Evas_Object *obj)
E_Comp_Object *cw = data;
E_Client *ec = cw->ec;
int pw, ph;
-   int bx, by, bxx, byy;
 
if ((!ec->pixmap) || (!e_pixmap_size_get(ec->pixmap, , )))
  {
@@ -967,37 +966,6 @@ _e_comp_object_pixels_get(void *data, Evas_Object *obj)
 return;
  }
//INF("PIXEL GET %p: %dx%d || %dx%d", ec, ec->w, ec->h, pw, ph);
-   e_pixmap_image_opaque_get(cw->ec->pixmap, , , , );
-   if (bxx && byy)
- {
-bxx = pw - (bx + bxx), byy = ph - (by + byy);
-evas_object_image_border_set(cw->obj, bx, bxx, by, byy);
- }
-   else
- {
-bx = by = bxx = byy = 0;
-evas_object_image_border_set(cw->obj, bx, bxx, by, byy);
-if (cw->client_inset.calc && (!cw->frame_object)) //CSD
-  {
- bx = -cw->client_inset.l + 4, by = -cw->client_inset.t + 4;
- bxx = -cw->client_inset.r, byy = -cw->client_inset.b;
-  }
- }
-   {
-  Edje_Message_Int_Set *msg;
-  Edje_Message_Int msg2;
-  Eina_Bool id = (bx || by || bxx || byy);
-
-  msg = alloca(sizeof(Edje_Message_Int_Set) + (sizeof(int) * 3));
-  msg->count = 4;
-  msg->val[0] = bx;
-  msg->val[1] = by;
-  msg->val[2] = bxx;
-  msg->val[3] = byy;
-  edje_object_message_send(cw->shobj, EDJE_MESSAGE_INT_SET, 1, msg);
-  msg2.val = id;
-  edje_object_message_send(cw->shobj, EDJE_MESSAGE_INT, 0, );
-   }
 
/* queue another render if client is still dirty; cannot refresh here. */
if (e_pixmap_dirty_get(ec->pixmap) && e_pixmap_size_get(ec->pixmap, , 
))
@@ -4077,6 +4045,7 @@ e_comp_object_dirty(Evas_Object *obj)
Evas_Object *o;
int w, h;
Eina_Bool dirty, visible, alpha;
+   int bx, by, bxx, byy;
 
API_ENTRY;
/* only actually dirty if pixmap is available */
@@ -4110,6 +4079,39 @@ e_comp_object_dirty(Evas_Object *obj)
   ERR("ERROR FETCHING PIXMAP FOR %p", cw->ec);
 return;
  }
+
+   e_pixmap_image_opaque_get(cw->ec->pixmap, , , , );
+   if (bxx && byy)
+ {
+bxx = w - (bx + bxx), byy = h - (by + byy);
+evas_object_image_border_set(cw->obj, bx, bxx, by, byy);
+ }
+   else
+ {
+bx = by = bxx = byy = 0;
+evas_object_image_border_set(cw->obj, bx, bxx, by, byy);
+if (cw->client_inset.calc && (!cw->frame_object)) //CSD
+  {
+ bx = -cw->client_inset.l + 4, by = -cw->client_inset.t + 4;
+ bxx = -cw->client_inset.r, byy = -cw->client_inset.b;
+  }
+ }
+   {
+  Edje_Message_Int_Set *msg;
+  Edje_Message_Int msg2;
+  Eina_Bool id = (bx || by || bxx || byy);
+
+  msg = alloca(sizeof(Edje_Message_Int_Set) + (sizeof(int) * 3));
+  msg->count = 4;
+  msg->val[0] = bx;
+  msg->val[1] = by;
+  msg->val[2] = bxx;
+  msg->val[3] = byy;
+  edje_object_message_send(cw->shobj, EDJE_MESSAGE_INT_SET, 1, msg);
+  msg2.val = id;
+  edje_object_message_send(cw->shobj, EDJE_MESSAGE_INT, 0, );
+   }
+
e_comp_object_native_surface_set(obj, 1);
it = eina_tiler_iterator_new(cw->updates);
EINA_ITERATOR_FOREACH(it, rect)

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 18/30: update arcconfig key:values for new phabricator api

2018-08-02 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit bd3e00d46384fa1dfc43d785f85118141a1d9899
Author: Mike Blumenkrantz 
Date:   Fri May 11 09:46:55 2018 +0200

update arcconfig key:values for new phabricator api

Summary:

https://secure.phabricator.com/book/phabricator/article/arcanist_new_project/
the previous values here are no longer valid and will fail when used
with git-phab
Depends on D6154

Reviewers: cedric, raster, bu5hm4n

Reviewed By: bu5hm4n

Subscribers: devilhorns

Tags: #enlightenment-git

Differential Revision: https://phab.enlightenment.org/D6155
---
 .arcconfig | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/.arcconfig b/.arcconfig
index 337a23b17..3dec5e39f 100644
--- a/.arcconfig
+++ b/.arcconfig
@@ -1,4 +1,6 @@
 {
-  "project_id" : "enlightenment",
-  "conduit_uri" : "https://phab.enlightenment.org/;
+  "project_id" : "enlightenment-git",
+  "projects" : "enlightenment-git",
+  "conduit_uri" : "https://phab.enlightenment.org/;,
+  "phabricator.uri" : "https://phab.enlightenment.org/;
 }

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 22/30: emxier desktop - fix categories to match well known cat names

2018-08-02 Thread Carsten Haitzler
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit a451626cc628e71f049cdae6c22156e6f3aa3756
Author: Carsten Haitzler (Rasterman) 
Date:   Fri May 18 15:40:57 2018 +0900

emxier desktop - fix categories to match well known cat names

Audio is not a well known/valid one. AudioVideo is. fixes T5076

@fix
---
 src/modules/mixer/emixer.desktop | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/modules/mixer/emixer.desktop b/src/modules/mixer/emixer.desktop
index 2ed0ee874..948746810 100644
--- a/src/modules/mixer/emixer.desktop
+++ b/src/modules/mixer/emixer.desktop
@@ -18,5 +18,5 @@ Comment[it]=Un modulo per controllare il volume dell'audio e 
degli stream.
 Comment[ms]=Modul untuk mengawal volum dan strim audio.
 Comment[sr]=Јединица за управљање јечином звука и токова.
 Comment[tr]=Ses seviyesi ve ses akışı kontrol modülü.
-Categories=Audio;System;
+Categories=AudioVideo;System;
 StartupWMClass=emixer

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 12/30: startup - fix management of timer pointer for startup timeout

2018-08-02 Thread Carsten Haitzler
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit 2583e560a21c11a5446b849d4e04e9d9b80b801c
Author: Carsten Haitzler (Rasterman) 
Date:   Wed Apr 11 14:37:57 2018 +0900

startup - fix management of timer pointer for startup timeout

fixes access of invalid timer pointer value on slow systems. (was
being caught with magic/invalid eiod before)

@fix
---
 src/bin/e_startup.c | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/bin/e_startup.c b/src/bin/e_startup.c
index be9e9e595..cdfa1db25 100644
--- a/src/bin/e_startup.c
+++ b/src/bin/e_startup.c
@@ -15,7 +15,7 @@ static Eina_Bool _e_startup_time_exceeded(void *data);
 static E_Order *startup_apps = NULL;
 static int start_app_pos = -1;
 static Ecore_Event_Handler *desktop_cache_update_handler = NULL;
-static Ecore_Timer *timer;
+static Ecore_Timer *timer = NULL;
 static Eina_Bool desktop_cache_update = EINA_FALSE;
 static Eina_Bool started = EINA_FALSE;
 
@@ -43,6 +43,7 @@ e_startup_mode_set(E_Startup_Mode mode)
  ecore_event_handler_add(EFREET_EVENT_DESKTOP_CACHE_BUILD,
  _e_startup_event_cb,
  strdup(buf));
+   if (timer) ecore_timer_del(timer);
timer = ecore_timer_add(5.0, _e_startup_time_exceeded, NULL);
e_init_undone();
 }
@@ -113,7 +114,7 @@ _e_startup_event_cb(void *data, int ev_type EINA_UNUSED, 
void *ev)
char *buf;
Efreet_Event_Cache_Update *e;
 
-   ecore_timer_del(timer);
+   if (timer) ecore_timer_del(timer);
timer = NULL;
 
e = ev;
@@ -141,5 +142,6 @@ _e_startup_time_exceeded(void *data EINA_UNUSED)
fprintf(stderr, "E: efreet didn't notify about cache update\n");
_e_startup_error_dialog("E: Efreet did not update cache. "
"Please check your Efreet setup");
+   timer = NULL;
return ECORE_CALLBACK_CANCEL;
 }

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 06/30: e menus - when filtering for exe handle quotes, escapes etc.

2018-08-02 Thread Carsten Haitzler
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit 781f4eb70bd76582b334554457221302a8e3d3b0
Author: Carsten Haitzler (Rasterman) 
Date:   Tue Mar 27 18:57:44 2018 +0900

e menus - when filtering for exe handle quotes, escapes etc.

handle quotes, escapes and so on for the shell command so you can do
things like Exec="ls" and it still work. this will also allow
executables with spaces in them as well with quotes or escapes as
backslash.

this fixes T6787
@fix
---
 src/bin/e_int_menus.c | 102 +++---
 1 file changed, 88 insertions(+), 14 deletions(-)

diff --git a/src/bin/e_int_menus.c b/src/bin/e_int_menus.c
index 10110f900..8d18e2983 100644
--- a/src/bin/e_int_menus.c
+++ b/src/bin/e_int_menus.c
@@ -694,6 +694,80 @@ _e_int_menus_main_exit(void *data EINA_UNUSED, E_Menu *m 
EINA_UNUSED, E_Menu_Ite
if ((a) && (a->func.go)) a->func.go(NULL, NULL);
 }
 
+static char *
+_e_int_menus_app_exe_get(const char *exec)
+{
+   char *real, *d;
+   const char *s;
+   Eina_Bool in_quote_dbl = EINA_FALSE;
+   Eina_Bool in_quote = EINA_FALSE;
+
+   real = malloc(strlen(exec) + 1);
+   if (!real) return NULL;
+   for (d = real, s = exec; *s; s++)
+ {
+if (in_quote_dbl)
+  {
+ switch (*s)
+   {
+case '\"':
+  in_quote_dbl = EINA_FALSE;
+  break;
+case '\\':
+  s++;
+  EINA_FALLTHROUGH
+default:
+  *d = *s;
+  d++;
+  break;
+   }
+  }
+else if (in_quote)
+  {
+ switch (*s)
+   {
+case '\'':
+  in_quote = EINA_FALSE;
+  break;
+case '\\':
+  s++;
+  EINA_FALLTHROUGH
+default:
+  *d = *s;
+  d++;
+  break;
+   }
+  }
+else
+  {
+ switch (*s)
+   {
+case ' ':
+case '\t':
+case '\r':
+case '\n':
+  goto done;
+  break;
+case '\"':
+  in_quote_dbl = EINA_TRUE;
+  break;
+case '\'':
+  in_quote = EINA_TRUE;
+  break;
+case '\\':
+  s++;
+  EINA_FALLTHROUGH
+default:
+  *d = *s;
+  d++;
+  break;
+   }
+  }
+ }
+done:
+   *d = 0;
+   return real;
+}
 /*
  * This function searches $PATH for try_exec or exec
  * return true if try_exec or exec is found!
@@ -705,23 +779,31 @@ _e_int_menus_app_finder(const char *exec)
char **split, buf[PATH_MAX];
Eina_Bool exec_found = EINA_FALSE;
int i = 0;
+   char *real = NULL;
 
-   if (strchr(exec, '/'))
+   if (!exec) return EINA_FALSE;
+   real = _e_int_menus_app_exe_get(exec);
+   if (!real) return EINA_FALSE;
+   if (strchr(real, '/'))
  {
-if (ecore_file_exists(exec) && ecore_file_can_exec(exec))
-  return EINA_TRUE;
+if (ecore_file_exists(real) && ecore_file_can_exec(real))
+  {
+ free(real);
+ return EINA_TRUE;
+  }
  }
 
if (!env)
  {
 WRN("Unable to $PATH, Returning TRUE for every .desktop");
+free(real);
 return EINA_TRUE;
  }
 
split = eina_str_split(env, ":", 0);
for (i = 0; split[i] != NULL; i++)
  {
-snprintf(buf, sizeof(buf), "%s/%s", split[i], exec);
+snprintf(buf, sizeof(buf), "%s/%s", split[i], real);
 
 if (ecore_file_exists(buf) && ecore_file_can_exec(buf))
   {
@@ -735,6 +817,7 @@ _e_int_menus_app_finder(const char *exec)
if (!exec_found)
  WRN("Unable to find: [%s] I searched $PATH=%s", exec, env);
 
+   free(real);
return exec_found;
 }
 
@@ -795,16 +878,7 @@ _e_int_menus_app_config_append(Efreet_Desktop *desktop)
  }
else if (cma->exec)
  {
-if (!strchr(cma->exec, ' '))
-  cma->exec_valid = _e_int_menus_app_finder(cma->exec);
-else
-  {
- char **split;
- split = eina_str_split(cma->exec, " ", 0);
- cma->exec_valid = _e_int_menus_app_finder(split[0]);
- free(split[0]);
- free(split);
-  }
+cma->exec_valid = _e_int_menus_app_finder(cma->exec);
  }
 
e_config->menu_applications = eina_list_append(e_config->menu_applications, 
cma);

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 13/30: efm - dont add null icons to list ... fixes segv

2018-08-02 Thread Carsten Haitzler
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit 65039f9c4c4f69fcdb83018721f89e4277f59565
Author: Carsten Haitzler (Rasterman) 
Date:   Wed Apr 11 14:38:55 2018 +0900

efm - dont add null icons to list ... fixes segv

as per title. dont store null icons in the list - not intended to be
that way.

@fix
---
 src/bin/e_fm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/e_fm.c b/src/bin/e_fm.c
index 1dd3ffaca..1ef171c9f 100644
--- a/src/bin/e_fm.c
+++ b/src/bin/e_fm.c
@@ -4561,7 +4561,7 @@ _e_fm2_uri_selected_icon_list_get(Eina_List *uri)
  if (eina_list_data_find(ic->sd->selected_icons, ic)) break;
  ic = NULL;
   }
-icons = eina_list_append(icons, ic);
+if (ic) icons = eina_list_append(icons, ic);
  }
return icons;
 }

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 25/30: avoid adding render updates for deleted clients after animation completes

2018-08-02 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit 894dddfcfd8af64223c864c42234cdb457e61d27
Author: Mike Blumenkrantz 
Date:   Mon Jun 25 06:54:46 2018 -0400

avoid adding render updates for deleted clients after animation completes

Summary:
in the case where deletion is deferred to preserve a window animation this
codepath may be triggered by a deleted client, at which point no render 
update
should occur in order to avoid compositor errors

ref f78eb3c108fbbb84edcb4c62fc499b4be558169a
fix T5203

Reviewers: ManMower, devilhorns

Reviewed By: devilhorns

Subscribers: netstar, cedric

Tags: #enlightenment-git

Maniphest Tasks: T5203

Differential Revision: https://phab.enlightenment.org/D6367
---
 src/bin/e_comp_object.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 6bab7d507..f212a164b 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -825,7 +825,7 @@ _e_comp_object_done_defer(void *data, Evas_Object *obj 
EINA_UNUSED, const char *
/* hide only after animation finishes to guarantee a full run of the 
animation */
if (cw->defer_hide && ((!strcmp(emission, "e,action,hide,done")) || 
(!strcmp(emission, "e,action,done"
  evas_object_hide(cw->smart_obj);
-   else
+   else if (!cw->deleted)
  {
 e_comp_shape_queue();
 if (cw->visible && cw->updates_exist)

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 02/30: Move alpha set for mirrors out of pixels_get callback

2018-08-02 Thread Derek Foreman
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit b88d080742976031a24f3c30b3473668ec5099fd
Author: Derek Foreman 
Date:   Wed Mar 21 14:16:44 2018 -0500

Move alpha set for mirrors out of pixels_get callback

the pixels_get callback fires too late for this to work properly, so
set it in e_comp_object_dirty() instead.
---
 src/bin/e_comp_object.c | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index dce688289..0909b6d4e 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -948,7 +948,6 @@ _e_comp_object_mirror_pixels_get(void *data, Evas_Object 
*obj)
if (cw->native) return;
 
evas_object_image_data_set(obj, e_pixmap_image_data_get(cw->ec->pixmap));
-   evas_object_image_alpha_set(obj, evas_object_image_alpha_get(cw->obj));
 }
 
 /
@@ -4077,7 +4076,7 @@ e_comp_object_dirty(Evas_Object *obj)
Eina_List *ll;
Evas_Object *o;
int w, h;
-   Eina_Bool dirty, visible;
+   Eina_Bool dirty, visible, alpha;
 
API_ENTRY;
/* only actually dirty if pixmap is available */
@@ -4092,11 +4091,14 @@ e_comp_object_dirty(Evas_Object *obj)
RENDER_DEBUG("SIZE [%p]: %dx%d", cw->ec, w, h);
if (cw->pending_updates)
  eina_tiler_area_size_set(cw->pending_updates, w, h);
+
+   alpha = evas_object_image_alpha_get(cw->obj);
EINA_LIST_FOREACH(cw->obj_mirror, ll, o)
  {
 //evas_object_image_border_set(o, bx, by, bxx, byy);
 //evas_object_image_border_center_fill_set(o, EVAS_BORDER_FILL_SOLID);
 evas_object_image_pixels_dirty_set(o, dirty);
+evas_object_image_alpha_set(obj, alpha);
 if (!dirty)
   evas_object_image_data_set(o, NULL);
 evas_object_image_size_set(o, w, h);

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 15/30: e thumb - be consistent and use safe run for restarting thumbnailer

2018-08-02 Thread Carsten Haitzler
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit ff17200996ce18a741fc41195d2187865b000b40
Author: Carsten Haitzler (Rasterman) 
Date:   Thu Apr 12 20:56:46 2018 +0900

e thumb - be consistent and use safe run for restarting thumbnailer

fix inconsistency in using ecore_exe_run and the e_util wrapper...

@fix
---
 src/bin/e_thumb.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/e_thumb.c b/src/bin/e_thumb.c
index 2fed2c9b8..a22ed3e0d 100644
--- a/src/bin/e_thumb.c
+++ b/src/bin/e_thumb.c
@@ -516,7 +516,7 @@ _e_thumb_cb_exe_event_del(void *data EINA_UNUSED, int type 
EINA_UNUSED, void *ev
 
  snprintf(buf, sizeof(buf), 
"%s/enlightenment/utils/enlightenment_thumb --nice=%d", e_prefix_lib_get(),
   e_config->thumb_nice);
- exe_thumb = ecore_exe_run(buf, NULL);
+ exe_thumb = e_util_exe_safe_run(buf, NULL);
  _thumbnailers_exe = eina_list_append(_thumbnailers_exe, 
exe_thumb);
   }
  }

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 11/30: efm - fill in some media icon blanks which lead to generic icons

2018-08-02 Thread Carsten Haitzler
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit 8b129bab79a57ec25583495948c61896bca7bee3
Author: Carsten Haitzler (Rasterman) 
Date:   Tue Apr 10 17:50:57 2018 +0900

efm - fill in some media icon blanks which lead to generic icons

i found a thumbdrive i got a generic "whatever" file icon for...
because efm media type matching didnt find an icon name for it. fix
that.
---
 src/bin/e_fm_device.c | 5 +
 1 file changed, 5 insertions(+)

diff --git a/src/bin/e_fm_device.c b/src/bin/e_fm_device.c
index ed9d1b656..d3af98ace 100644
--- a/src/bin/e_fm_device.c
+++ b/src/bin/e_fm_device.c
@@ -100,12 +100,17 @@ _e_fm2_device_volume_setup(E_Volume *v)
   icon = "media-floppy";
 else if (!strcmp(v->storage->drive_type, "tape"))
   icon = "media-tape";
+else if (!strcmp(v->storage->drive_type, "thumb"))
+  // XXX: maybe a spcial type?
+  icon = "drive-removable-media";
 else if (!strcmp(v->storage->drive_type, "compact_flash")
  || !strcmp(v->storage->drive_type, "memory_stick")
  || !strcmp(v->storage->drive_type, "smart_media")
  || !strcmp(v->storage->drive_type, "sd_mmc")
  || !strncmp(v->storage->drive_type, "flash", 5))
   icon = "media-flash";
+else // XXX: fallback if we don't know
+  icon = "media-floppy";
  }
if (icon) eina_stringshare_replace(>icon, icon);
 

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 28/30: e wl - fix e pixmap tracking to remove from both aliases and pixmaps

2018-08-02 Thread Carsten Haitzler
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit 600a739f9134eb3541e19c2e4c35a86848c7b8eb
Author: Carsten Haitzler (Rasterman) 
Date:   Thu Jul 19 01:58:00 2018 +0900

e wl - fix e pixmap tracking to remove from both aliases and pixmaps

on pixmap free only the pixmaps entry was deleted not the pixmaps hash
one. this led to lookup of stale pixmaps in the aliases hash... and
then a crash.

also use the correct local type with the correct byte order as well.
this has probably been an issue for a while but now internal windows
should work much better without crashes.

@fix
---
 src/bin/e_pixmap.c | 23 ++-
 1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_pixmap.c b/src/bin/e_pixmap.c
index 346b2726a..4c667757c 100644
--- a/src/bin/e_pixmap.c
+++ b/src/bin/e_pixmap.c
@@ -297,7 +297,28 @@ e_pixmap_free(E_Pixmap *cp)
if (!cp) return 0;
if (--cp->refcount) return cp->refcount;
e_pixmap_image_clear(cp, EINA_FALSE);
-   eina_hash_del_by_key(pixmaps[cp->type], >win);
+   switch (cp->type)
+ {
+  case E_PIXMAP_TYPE_X:
+#ifndef HAVE_WAYLAND_ONLY
+  {
+ Ecore_X_Window xwin = cp->win;
+ eina_hash_del_by_key(pixmaps[cp->type], );
+ eina_hash_del_by_key(aliases[cp->type], );
+  }
+#endif
+break;
+  case E_PIXMAP_TYPE_WL:
+#ifdef HAVE_WAYLAND
+  {
+ int64_t id = cp->win;
+ eina_hash_del_by_key(pixmaps[cp->type], );
+ eina_hash_del_by_key(aliases[cp->type], );
+  }
+#endif
+break;
+  default: break;
+ }
return 0;
 }
 

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 23/30: mixer - fix exe handler del and handle to stop crashes after mixer run

2018-08-02 Thread Carsten Haitzler
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit 57b2988e7a0fd82993a35ce023aa00b13940206f
Author: Carsten Haitzler (Rasterman) 
Date:   Sat May 19 00:58:03 2018 +0900

mixer - fix exe handler del and handle to stop crashes after mixer run

running emixer from the mixer module popup was resulting in crashes.
it was this exe event handler handle and leaving a dangling garbage
ptr after it was deleted.

@fix
---
 src/modules/mixer/e_mod_main.c | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/modules/mixer/e_mod_main.c b/src/modules/mixer/e_mod_main.c
index d2ae88b3a..fe8988c8a 100644
--- a/src/modules/mixer/e_mod_main.c
+++ b/src/modules/mixer/e_mod_main.c
@@ -432,8 +432,10 @@ _emixer_del_cb(void *data EINA_UNUSED, int type 
EINA_UNUSED,
 {
mixer_context->emixer = NULL;
if (mixer_context->emix_event_handler)
-  ecore_event_handler_del(mixer_context->emix_event_handler);
-
+ {
+ecore_event_handler_del(mixer_context->emix_event_handler);
+mixer_context->emix_event_handler = NULL;
+ }
return EINA_TRUE;
 }
 

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 30/30: enlightenment: Ensure we have a valid menu comp object before calling

2018-08-02 Thread Christopher Michael
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit 5af9485c4f5d4aa97def122d651bc6d29fb0b149
Author: Chris Michael 
Date:   Wed Jul 25 14:59:36 2018 -0400

enlightenment: Ensure we have a valid menu comp object before calling

Summary:
evas functions

This fixes an issue when quickly mousing through menus can cause a
segfault in Enlightenment due to menu->comp_object being NULL

ref T7030

Reviewers: zmike

Reviewed By: zmike

Subscribers: cedric

Tags: #efl, #enlightenment22

Maniphest Tasks: T7030

Differential Revision: https://phab.enlightenment.org/D6641
---
 src/bin/e_menu.c | 10 +++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/bin/e_menu.c b/src/bin/e_menu.c
index bbcb0a10f..7d2c458b4 100644
--- a/src/bin/e_menu.c
+++ b/src/bin/e_menu.c
@@ -1175,10 +1175,14 @@ e_menu_idler_before(void)
/* phase 4. de-activate... */
EINA_LIST_REVERSE_FOREACH(_e_active_menus, l, m)
  {
-if ((!m->active) && (!evas_object_visible_get(m->comp_object)))
+if (!m->active)
   {
- _e_menu_unrealize(m);
- removals = eina_list_append(removals, m);
+ if ((m->realized) &&
+ (!evas_object_visible_get(m->comp_object)))
+   {
+  _e_menu_unrealize(m);
+  removals = eina_list_append(removals, m);
+   }
   }
  }
EINA_LIST_FREE(removals, m)

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 16/30: compile again after efl change interface names...

2018-08-02 Thread Carsten Haitzler
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit 5155856566df843d0dfa997ee2456f73ac5d226b
Author: Carsten Haitzler (Rasterman) 
Date:   Wed Apr 25 14:37:49 2018 +0900

compile again after efl change interface names...
---
 src/modules/wl_drm/e_mod_main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/modules/wl_drm/e_mod_main.c b/src/modules/wl_drm/e_mod_main.c
index 51ea01280..68d6593f9 100644
--- a/src/modules/wl_drm/e_mod_main.c
+++ b/src/modules/wl_drm/e_mod_main.c
@@ -780,7 +780,7 @@ _drm_device_del(void *data EINA_UNUSED, const Efl_Event 
*event)
 }
 
 EFL_CALLBACKS_ARRAY_DEFINE(_drm_device_del_cb,
-   { EFL_CANVAS_EVENT_DEVICE_REMOVED, _drm_device_del 
});
+   { EFL_CANVAS_SCENE_EVENT_DEVICE_REMOVED, 
_drm_device_del });
 
 E_API void *
 e_modapi_init(E_Module *m)

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 19/30: move config/ to data/config/

2018-08-02 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit 5cb6e1e8fafca16f27a3311c36a917cf88b4032d
Author: Mike Blumenkrantz 
Date:   Tue May 15 15:30:14 2018 +0200

move config/ to data/config/

Summary:
this is part of the datadir distribution, it should not be in a different
directory than the rest of the datadir distribution

the gnu coding standards 
(https://www.gnu.org/prep/standards/html_node/Directory-Variables.html)
define 'datadir' as:

The directory for installing idiosyncratic read-only 
architecture-independent
data files for this program. This is usually the same place as 
‘datarootdir’,
but we use the two separate variables so that you can move these 
program-specific
files without altering the location for Info files, man pages, etc.

This should normally be /usr/local/share, but write it as $(datarootdir).
(If you are using Autoconf, write it as ‘@datadir@’.)

The definition of ‘datadir’ is the same for all packages, so you should 
install your
data in a subdirectory thereof. Most packages install their data under 
$(datadir)/package-name/.

while this text has no clear requirement or suggestion for a corresponding
repository layout, projects typically employ a certain consistency in their
repository layout both for ease of maintenance and ease of learning for new
contributors.

this project has both a data/ directory, which contains the datadir 
distribution,
as well as the config/ directory, which also contains the datadir 
distribution.
this complicates matters both for active maintainers/developers who must
remember that the repository and build tree layouts have this exception,
and for new contributors who will initially be confused by this exception

other well-organized open source projects, such as wayland, have chosen to 
not
use a data/ directory. these projects have the datadir distribution in the 
base
directory of the repositor, which is a fine practice as it maintains 
consistency
for the project since all the files for the datadir distribution are in the 
same
directory.

by applying this patch, the project will move towards a more easily 
readable and
learnable layout. current and future developers will no longer need to 
wonder why
this directory is outside of the data/ directory, and anyone attempting to 
reference
these files from the source/build trees will be able to do so more easily

ref D6013

Reviewers: cedric, raster, bu5hm4n

Reviewed By: raster

Subscribers: devilhorns

Tags: #enlightenment-git

Differential Revision: https://phab.enlightenment.org/D6154
---
 {config => data/config}/default/e.src   |   0
 {config => data/config}/default/e_bindings.src  |   0
 {config => data/config}/default/enlightenment-default.png   | Bin
 {config => data/config}/default/meson.build |   0
 {config => data/config}/default/profile.desktop |   0
 {config => data/config}/meson.build |   0
 {config => data/config}/mobile/e.src|   0
 {config => data/config}/mobile/e_bindings.src   |   0
 {config => data/config}/mobile/enlightenment-mobile.png | Bin
 {config => data/config}/mobile/meson.build  |   0
 {config => data/config}/mobile/module.battery.src   |   0
 {config => data/config}/mobile/module.conf.src  |   0
 {config => data/config}/mobile/profile.desktop  |   0
 {config => data/config}/profile.src |   0
 {config => data/config}/standard/e.src  |   0
 {config => data/config}/standard/e_bindings.src |   0
 {config => data/config}/standard/enlightenment-standard.png | Bin
 {config => data/config}/standard/meson.build|   0
 {config => data/config}/standard/module.battery.src |   0
 {config => data/config}/standard/module.conf.src|   0
 {config => data/config}/standard/module.cpufreq.src |   0
 {config => data/config}/standard/module.fileman.src |   0
 {config => data/config}/standard/module.ibar.src|   0
 {config => data/config}/standard/module.ibox.src|   0
 {config => data/config}/standard/module.pager.src   |   0
 {config => data/config}/standard/module.temperature.src |   0
 {config => data/config}/standard/profile.desktop|   0
 {config => data/config}/tiling/e.src|   0
 {config => data/config}/tiling/e_bindings.src   |   0
 {config => data/config}/tiling/enlightenment-tiling.png | Bin
 {config => data/config}/tiling/meson.build  |   0
 {config => 

[EGIT] [core/enlightenment] enlightenment-0.22 09/30: edge flip while dragging with alt - fix to work again

2018-08-02 Thread Carsten Haitzler
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit 5e07f6815c989f44da85cc9bbc8a5d3272844a38
Author: Carsten Haitzler (Rasterman) 
Date:   Sun Apr 1 14:29:38 2018 +0900

edge flip while dragging with alt - fix to work again

this fixes when you drag a wqindow to screen edge and it flips if you
use alt+drag as opposed to just dragging titlebar around without alt.
it fixes it by updating your config to allow "any modifier" for edge
flips which is actually correct.

@fix
---
 src/bin/e_config.c | 20 
 src/bin/e_config.h |  2 +-
 2 files changed, 21 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_config.c b/src/bin/e_config.c
index 5b7d9ddb0..1feb31bbc 100644
--- a/src/bin/e_config.c
+++ b/src/bin/e_config.c
@@ -1505,6 +1505,26 @@ e_config_load(void)
if (!elm_config_profile_exists(_e_config_profile))
  elm_config_profile_save(_e_config_profile);
 }
+  CONFIG_VERSION_CHECK(25)
+{
+   Eina_List *l;
+   E_Config_Binding_Edge *ebe;
+
+   EINA_LIST_FOREACH(e_bindings->edge_bindings, l, ebe)
+ {
+if ((ebe->context == E_BINDING_CONTEXT_ZONE) &&
+(ebe->modifiers == 0) &&
+(ebe->edge >= 1) && (ebe->edge <= 4) &&
+(!ebe->any_mod) &&
+(ebe->action) &&
+(!strcmp(ebe->action, "desk_flip_in_direction")))
+  {
+ ebe->any_mod = 1;
+  }
+ }
+   CONFIG_VERSION_UPDATE_INFO(25);
+   e_config_save_queue();
+}
  }
elm_config_profile_set(_e_config_profile);
if (!e_config->remember_internal_fm_windows)
diff --git a/src/bin/e_config.h b/src/bin/e_config.h
index 3ed61b004..a4af30c5c 100644
--- a/src/bin/e_config.h
+++ b/src/bin/e_config.h
@@ -46,7 +46,7 @@ typedef enum
 /* increment this whenever a new set of config values are added but the users
  * config doesn't need to be wiped - simply new values need to be put in
  */
-#define E_CONFIG_FILE_GENERATION 24
+#define E_CONFIG_FILE_GENERATION 25
 #define E_CONFIG_FILE_VERSION((E_CONFIG_FILE_EPOCH * 100) + 
E_CONFIG_FILE_GENERATION)
 
 #define E_CONFIG_BINDINGS_VERSION 0 // DO NOT INCREMENT UNLESS YOU WANT TO 
WIPE ALL BINDINGS!

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 26/30: e randr - fix crash when no zones found

2018-08-02 Thread Carsten Haitzler
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit 5347935700586f05a0a5558cfbf47c13c4212c6c
Author: Carsten Haitzler (Rasterman) 
Date:   Wed Jul 18 02:19:12 2018 +0900

e randr - fix crash when no zones found
---
 src/bin/e_randr2.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_randr2.c b/src/bin/e_randr2.c
index fc0375a8c..1f1f490a7 100644
--- a/src/bin/e_randr2.c
+++ b/src/bin/e_randr2.c
@@ -432,7 +432,8 @@ _config_update(E_Randr2 *r, E_Config_Randr2 *cfg, Eina_Bool 
update_only)
 {
/* find right-most screen */
E_Zone *zone = eina_list_last_data_get(e_comp->zones);
-   eina_stringshare_replace(>rel_to, zone->randr2_id);
+   if (zone)
+ eina_stringshare_replace(>rel_to, 
zone->randr2_id);
 }
   cs->rel_align = 0;
}

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 24/30: Battery: fix the battery status when some battery devices are not valid

2018-08-02 Thread Daniel Zaoui
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit 74c372c0ffbaa1f2ba019eae9ada186989002f00
Author: Daniel Zaoui 
Date:   Tue Jun 5 00:19:59 2018 +0300

Battery: fix the battery status when some battery devices are not valid

It happens that some devices are considered as batteries, even if they
cannot be charged or used as a power supply for the laptop.
The ELAN device deals with the touchpad and is a "battery". When looking
at the udev info, it appears that there is no technology present as
well as the basic battery info (energy levels).

P: 
/devices/pci:00/:00:15.0/i2c_designware.0/i2c-0/i2c-ELAN24CC:00/0018:04F3:24CC.0003/power_supply/hid-0018:04F3:24CC.0003-battery
E: 
DEVPATH=/devices/pci:00/:00:15.0/i2c_designware.0/i2c-0/i2c-ELAN24CC:00/0018:04F3:24CC.0003/power_supply/hid-0018:04F3:24CC.0003-battery
E: POWER_SUPPLY_CAPACITY=1
E: POWER_SUPPLY_MODEL_NAME=ELAN24CC:00 04F3:24CC
E: POWER_SUPPLY_NAME=hid-0018:04F3:24CC.0003-battery
E: POWER_SUPPLY_ONLINE=1
E: POWER_SUPPLY_PRESENT=1
E: POWER_SUPPLY_SCOPE=Device
E: POWER_SUPPLY_STATUS=Discharging
E: SUBSYSTEM=power_supply

The issue with that kind of devices is that it confuses the battery
gadget. Since two batteries are present, the total capacity is divided
by 2, resulting in the gadget displaying only 50% when the battery is
fully charged.
To avoid this, we check that the battery technology is known.

@fix
---
 src/modules/battery/e_mod_main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/modules/battery/e_mod_main.c b/src/modules/battery/e_mod_main.c
index 24af2d8bc..691889cda 100644
--- a/src/modules/battery/e_mod_main.c
+++ b/src/modules/battery/e_mod_main.c
@@ -299,7 +299,7 @@ _battery_device_update(void)
 
EINA_LIST_FOREACH(device_batteries, l, bat)
  {
-if (!bat->got_prop)
+if ((!bat->got_prop) || (!bat->technology))
   continue;
 have_battery = 1;
 batnum++;

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 07/30: e mouse bindings - fix wheel conflict check to check only dir 0

2018-08-02 Thread Carsten Haitzler
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit eb2bdeb4438fb4ea75114d9069e39ff961365c77
Author: Carsten Haitzler (Rasterman) 
Date:   Wed Mar 28 18:23:20 2018 +0900

e mouse bindings - fix wheel conflict check to check only dir 0

allows ylou to bund extra wheels for desktop switching ... much
better. no conflicts with signals :)
---
 src/modules/conf_bindings/e_int_config_mousebindings.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/modules/conf_bindings/e_int_config_mousebindings.c 
b/src/modules/conf_bindings/e_int_config_mousebindings.c
index 804a1def6..1d8ef595b 100644
--- a/src/modules/conf_bindings/e_int_config_mousebindings.c
+++ b/src/modules/conf_bindings/e_int_config_mousebindings.c
@@ -236,7 +236,9 @@ _basic_apply_data(E_Config_Dialog *cfd EINA_UNUSED, 
E_Config_Dialog_Data *cfdata
 
EINA_LIST_FOREACH_SAFE(cfdata->binding.wheel, l, l2, bw)
  {
-if ((!bw->modifiers) && ((bw->context == E_BINDING_CONTEXT_WINDOW) || 
(bw->context == E_BINDING_CONTEXT_ANY)))
+if ((!bw->modifiers) && 
+(bw->direction == 0) &&
+((bw->context == E_BINDING_CONTEXT_WINDOW) || (bw->context == 
E_BINDING_CONTEXT_ANY)))
   {
  const char *msg = _("Unable to set a mouse wheel binding without 
modifiers"
   "on a window: conflict with existing edje 
signal bindings."

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 05/30: AUTHORS: use netstar's real name.

2018-08-02 Thread Al Poole
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit 04c8ec9c397037541e6d669452258940a37b130b
Author: Al Poole 
Date:   Thu Mar 22 15:38:43 2018 +

AUTHORS: use netstar's real name.
---
 AUTHORS | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/AUTHORS b/AUTHORS
index 6e7a9fe79..479cbb59a 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -60,4 +60,4 @@ Luis de Bethencourt (luisbg) 
 bu5hm4n (Marcel Hollerbach) 
 simotek (Simon Lees) 
 Derek Foreman 
-netstar (Al Poole) 
+netstar (Alastair Poole) 

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 01/30: Remove useless pixels_dirty_set from mirror_pixels_get

2018-08-02 Thread Derek Foreman
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit 34c28af7dc59e07fc81918ef994958db1b2019c3
Author: Derek Foreman 
Date:   Wed Mar 21 14:14:52 2018 -0500

Remove useless pixels_dirty_set from mirror_pixels_get

This is implicit at the end of render.
---
 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 b141e3ce4..dce688289 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -949,7 +949,6 @@ _e_comp_object_mirror_pixels_get(void *data, Evas_Object 
*obj)
 
evas_object_image_data_set(obj, e_pixmap_image_data_get(cw->ec->pixmap));
evas_object_image_alpha_set(obj, evas_object_image_alpha_get(cw->obj));
-   evas_object_image_pixels_dirty_set(obj, EINA_FALSE);
 }
 
 /

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 21/30: meson - fix dir_sysconf to be under the prefix as it was not

2018-08-02 Thread Carsten Haitzler
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit 3cb88fe76aea2e73919d66344a24727a0d722ba0
Author: Carsten Haitzler (Rasterman) 
Date:   Thu May 17 03:11:37 2018 +0900

meson - fix dir_sysconf to be under the prefix as it was not

dir_sysconf was set to "etc". not even a /.  this meant
enlightenment_sys couldnt find/load sysactions.conf as it used a
non-relocatable fixed location due to security (setuid root) reasons.
---
 meson.build | 4 
 1 file changed, 4 insertions(+)

diff --git a/meson.build b/meson.build
index a2c134ad6..4ea695a9e 100644
--- a/meson.build
+++ b/meson.build
@@ -47,6 +47,10 @@ dir_module_e  = join_paths(dir_lib, proj, 'modules')
 dir_util_e= join_paths(dir_lib, proj, 'utils')
 dir_pc= join_paths(dir_data, 'pkgconfig')
 
+if dir_sysconf == 'etc'
+  dir_sysconf = join_paths(dir_prefix, dir_sysconf)
+endif
+
 suid_exes = []
 
 pkgconfig = import('pkgconfig')

-- 




[EGIT] [core/enlightenment] enlightenment-0.22 04/30: Fix recent typo in mirror object alpha setting

2018-08-02 Thread Derek Foreman
discomfitor pushed a commit to branch enlightenment-0.22.

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

commit 768e64bd2f81556300859acc3bfc9c4c9adffb44
Author: Derek Foreman 
Date:   Wed Mar 21 15:54:12 2018 -0500

Fix recent typo in mirror object alpha setting

ref 6a04bfb0ffc0d49f64ee0fb26a4cad9cba11fe9f
---
 src/bin/e_comp_object.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index b36be7a6a..6bab7d507 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -4067,7 +4067,7 @@ e_comp_object_dirty(Evas_Object *obj)
 //evas_object_image_border_set(o, bx, by, bxx, byy);
 //evas_object_image_border_center_fill_set(o, EVAS_BORDER_FILL_SOLID);
 evas_object_image_pixels_dirty_set(o, dirty);
-evas_object_image_alpha_set(obj, alpha);
+evas_object_image_alpha_set(o, alpha);
 if (!dirty)
   evas_object_image_data_set(o, NULL);
 evas_object_image_size_set(o, w, h);

-- 




[EGIT] [core/efl] master 01/01: genlist: rework the focus model for performance

2018-08-02 Thread Marcel Hollerbach
discomfitor pushed a commit to branch master.

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

commit 0e462d5f5a2c65a25129683a0ded817c7de39902
Author: Marcel Hollerbach 
Date:   Thu Aug 2 09:42:06 2018 -0400

genlist: rework the focus model for performance

Summary:
the focus model before was more meant for simplicity and not for
performance, this now is more made for performance.

The performance boost is achived by not using composition anymore,
but rather register realized items by hand. This keeps the amount
of items bound to the size of the viewport.

Additionally item realization that is followed by unrealization
immediately is not resulting in focus calls.

This solves the performance issue from T6580 in regards of focus.

perf results after this:
http://www.enlightenment.org/ss/e-5b61b50657f3c3.82619729.png

Reviewers: ManMower, zmike

Reviewed By: zmike

Subscribers: cedric, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6720
---
 src/lib/elementary/elm_genlist.c| 99 ++---
 src/lib/elementary/elm_genlist.eo   |  3 +-
 src/lib/elementary/elm_widget_genlist.h |  1 +
 3 files changed, 80 insertions(+), 23 deletions(-)

diff --git a/src/lib/elementary/elm_genlist.c b/src/lib/elementary/elm_genlist.c
index ced92b59f2..9523017b35 100644
--- a/src/lib/elementary/elm_genlist.c
+++ b/src/lib/elementary/elm_genlist.c
@@ -400,7 +400,8 @@ _item_content_realize(Elm_Gen_Item *it,
   Evas_Object *target,
   Eina_List **contents,
   const char *src,
-  const char *parts)
+  const char *parts,
+  Eina_Bool calc)
 {
Evas_Object *content;
char buf[256];
@@ -469,7 +470,8 @@ _item_content_realize(Elm_Gen_Item *it,
 
  if (elm_widget_is(content))
{
-  _elm_widget_full_eval(content);
+  if (!calc)
+_elm_widget_full_eval(content);
}
   }
 *contents = eina_list_append(*contents, content);
@@ -739,8 +741,19 @@ _item_block_unrealize(Item_Block *itb)
  }
if (!dragging)
  {
+Eina_List *n;
+
 itb->realized = EINA_FALSE;
 itb->want_unrealize = EINA_TRUE;
+
+efl_ui_focus_manager_calc_unregister(itb->sd->obj, itb->adapter);
+efl_del(itb->adapter);
+itb->adapter = NULL;
+
+EINA_LIST_FOREACH(itb->items, n, it)
+  {
+efl_ui_focus_manager_calc_unregister(itb->sd->obj, EO_OBJ(it));
+  }
  }
else
  itb->want_unrealize = EINA_FALSE;
@@ -1339,11 +1352,11 @@ _elm_genlist_item_state_update(Elm_Gen_Item *it)
 }
 
 static void
-_view_inflate(Evas_Object *view, Elm_Gen_Item *it, Eina_List **sources, 
Eina_List **contents)
+_view_inflate(Evas_Object *view, Elm_Gen_Item *it, Eina_List **sources, 
Eina_List **contents, Eina_Bool calc)
 {
if (!view) return;
if (sources) _item_text_realize(it, view, sources, NULL);
-   if (contents) _item_content_realize(it, view, contents, "contents", NULL);
+   if (contents) _item_content_realize(it, view, contents, "contents", NULL, 
calc);
_item_state_realize(it, view, NULL);
 }
 
@@ -1432,7 +1445,7 @@ _decorate_all_item_realize(Elm_Gen_Item *it,
if (it->flipped)
  edje_object_signal_emit
(it->deco_all_view, SIGNAL_FLIP_ENABLED, "elm");
-   _view_inflate(it->deco_all_view, it, NULL, &(it->item->deco_all_contents));
+   _view_inflate(it->deco_all_view, it, NULL, &(it->item->deco_all_contents), 
EINA_FALSE);
edje_object_part_swallow
  (it->deco_all_view, "elm.swallow.decorate.content", VIEW(it));
 
@@ -1898,7 +1911,7 @@ _item_realize(Elm_Gen_Item *it, const int index, 
Eina_Bool calc)
   ERR_ABORT("If you see this error, please notify us and we"
 "will fix it");
 
-_view_inflate(VIEW(it), it, >texts, >contents);
+_view_inflate(VIEW(it), it, >texts, >contents, calc);
 if (it->has_contents != (!!it->contents))
   it->item->mincalcd = EINA_FALSE;
 it->has_contents = !!it->contents;
@@ -1906,7 +1919,7 @@ _item_realize(Elm_Gen_Item *it, const int index, 
Eina_Bool calc)
   {
  edje_object_signal_emit(VIEW(it), SIGNAL_FLIP_ENABLED, "elm");
  _item_content_realize(it, VIEW(it), >item->flip_contents,
-   "flips", NULL);
+   "flips", NULL, EINA_FALSE);
   }
 
 /* access: unregister item which have no text and content */
@@ -2496,13 +2509,43 @@ _item_block_position(Item_Block *itb, const int blk_idx)
evas_event_thaw_eval(evas_object_evas_get((itb->sd)->obj));
 }
 
+static inline void
+_flush_block_order(Elm_Genlist_Data *sd)
+{
+   

[EGIT] [core/efl] master 01/01: elementary image: apply lazy calculation and guarantee retained method.

2018-08-02 Thread Hermet Park
discomfitor pushed a commit to branch master.

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

commit 868e3308b12c6279a9ea46d3a5670375251c796e
Author: Hermet Park 
Date:   Thu Aug 2 09:22:59 2018 -0400

elementary image: apply lazy calculation and guarantee retained method.

Summary:
Image couldn't gurantee retained concept status.
This patch change to setting up image object on the request time,
recovering image status, removing unencessary jobs.

Reviewers: #committers

Subscribers: cedric, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6726
---
 src/lib/elementary/efl_ui_image.c| 104 +++
 src/lib/elementary/efl_ui_widget_image.h |   2 +
 2 files changed, 53 insertions(+), 53 deletions(-)

diff --git a/src/lib/elementary/efl_ui_image.c 
b/src/lib/elementary/efl_ui_image.c
index 9d83ce37f8..ca1dbb0ec5 100644
--- a/src/lib/elementary/efl_ui_image.c
+++ b/src/lib/elementary/efl_ui_image.c
@@ -77,6 +77,19 @@ _prev_img_del(Efl_Ui_Image_Data *sd)
 }
 
 static void
+_recover_status(Eo *obj, Efl_Ui_Image_Data *sd)
+{
+   int r, g, b, a;
+   Evas_Object *pclip = efl_canvas_object_clip_get(obj);
+   if (pclip) efl_canvas_object_clip_set(sd->img, pclip);
+
+   efl_gfx_color_get(obj, , , , );
+   efl_gfx_color_set(sd->img, r, g, b, a);
+
+   efl_gfx_entity_visible_set(sd->img, sd->show);
+}
+
+static void
 _on_image_preloaded(void *data,
 Evas *e EINA_UNUSED,
 Evas_Object *obj,
@@ -143,7 +156,6 @@ _img_new(Evas_Object *obj)
evas_object_image_scale_hint_set(img, EVAS_IMAGE_SCALE_HINT_STATIC);
evas_object_event_callback_add
  (img, EVAS_CALLBACK_IMAGE_PRELOADED, _on_image_preloaded, sd);
-
evas_object_smart_member_add(img, obj);
elm_widget_sub_object_add(obj, img);
 
@@ -170,7 +182,6 @@ _image_sizing_eval(Efl_Ui_Image_Data *sd, Evas_Object *img)
 
 //1. Get the original image size (iw x ih)
 evas_object_image_size_get(img, , );
-
 iw = ((double)iw) * sd->scale;
 ih = ((double)ih) * sd->scale;
 
@@ -275,14 +286,6 @@ done:
evas_object_resize(sd->hit_rect, w, h);
 }
 
-static void
-_efl_ui_image_internal_sizing_eval(Evas_Object *obj EINA_UNUSED, 
Efl_Ui_Image_Data *sd)
-{
-   if (!sd->img) return;
-   _image_sizing_eval(sd, sd->img);
-   if (sd->prev_img) _image_sizing_eval(sd, sd->prev_img);
-}
-
 static inline void
 _async_open_data_free(Async_Open_Data *data)
 {
@@ -472,27 +475,23 @@ _efl_ui_image_edje_file_set(Evas_Object *obj,
  const Eina_File *f,
  const char *group)
 {
-   Evas_Object *pclip;
-
EFL_UI_IMAGE_DATA_GET(obj, sd);
 
_prev_img_del(sd);
 
if (!sd->edje)
  {
-pclip = evas_object_clip_get(sd->img);
 evas_object_del(sd->img);
 
 /* Edje object instead */
 sd->img = edje_object_add(evas_object_evas_get(obj));
+_recover_status(obj, sd);
+sd->edje = EINA_TRUE;
 evas_object_smart_member_add(sd->img, obj);
-if (sd->show) evas_object_show(sd->img);
-evas_object_clip_set(sd->img, pclip);
  }
 
_async_cancel(sd);
 
-   sd->edje = EINA_TRUE;
if (!sd->async_enable)
  {
 if (f)
@@ -572,9 +571,6 @@ _efl_ui_image_efl_canvas_group_group_add(Eo *obj, 
Efl_Ui_Image_Data *priv)
evas_object_event_callback_add
   (priv->hit_rect, EVAS_CALLBACK_MOUSE_UP, _on_mouse_up, obj);
 
-   /* starts as an Evas image. may switch to an Edje object */
-   priv->img = _img_new(obj);
-
priv->smooth = EINA_TRUE;
priv->fill_inside = EINA_TRUE;
priv->aspect_fixed = EINA_TRUE;
@@ -586,8 +582,6 @@ _efl_ui_image_efl_canvas_group_group_add(Eo *obj, 
Efl_Ui_Image_Data *priv)
priv->align_y = 0.5;
 
elm_widget_can_focus_set(obj, EINA_FALSE);
-
-   _efl_ui_image_sizing_eval(obj);
 }
 
 EOLIAN static void
@@ -596,6 +590,7 @@ _efl_ui_image_efl_canvas_group_group_del(Eo *obj, 
Efl_Ui_Image_Data *sd)
if (elm_widget_is_legacy(obj))
  efl_event_callback_del(obj, EFL_GFX_ENTITY_EVENT_CHANGE_SIZE_HINTS,
 _on_size_hints_changed, sd);
+   ecore_job_del(sd->sizing_job);
ecore_timer_del(sd->anim_timer);
evas_object_del(sd->img);
_prev_img_del(sd);
@@ -657,7 +652,7 @@ _efl_ui_image_show(Eo *obj, Efl_Ui_Image_Data *sd)
efl_gfx_entity_visible_set(efl_super(obj, MY_CLASS), EINA_TRUE);
 
if (sd->preload_status == EFL_UI_IMAGE_PRELOADING) return;
-   efl_gfx_entity_visible_set(sd->img, EINA_TRUE);
+   if (sd->img) efl_gfx_entity_visible_set(sd->img, EINA_TRUE);
_prev_img_del(sd);
 }
 
@@ -666,7 +661,7 @@ _efl_ui_image_hide(Eo *obj, Efl_Ui_Image_Data *sd)
 {
sd->show = EINA_FALSE;
efl_gfx_entity_visible_set(efl_super(obj, MY_CLASS), EINA_FALSE);
-   efl_gfx_entity_visible_set(sd->img, EINA_FALSE);
+   if (sd->img) 

[EGIT] [core/efl] master 01/02: Efl.Canvas.Group: use desired function

2018-08-02 Thread Shinwoo Kim
discomfitor pushed a commit to branch master.

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

commit 9666f288ae606f181f676ad1768864d830d29ee3
Author: Shinwoo Kim 
Date:   Thu Aug 2 09:10:41 2018 -0400

Efl.Canvas.Group: use desired function

Summary:
If a smart class overrides Evas_Smart_Class.move as below,
then original behavior must not be used for the smart class.

   Evas_Smart_Class sc = EVAS_SMART_CLASS_INIT_NAME_VERSION("MyClass");
   evas_object_smart_clipped_smart_set();
   sc.move = 

But current implementation makes original behavior work.
So before using the original method, this patch is checking if the original
method is changed or not.

Reviewers: zmike, devilhorns

Reviewed By: zmike

Subscribers: woohyun, jypark, cedric, raster, jpeg, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6468
---
 src/lib/evas/canvas/evas_object_smart.c | 9 -
 src/lib/evas/canvas/evas_object_smart_clipped.c | 2 +-
 src/lib/evas/include/evas_private.h | 1 +
 3 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/src/lib/evas/canvas/evas_object_smart.c 
b/src/lib/evas/canvas/evas_object_smart.c
index 37c8868479..6223792cae 100644
--- a/src/lib/evas/canvas/evas_object_smart.c
+++ b/src/lib/evas/canvas/evas_object_smart.c
@@ -888,10 +888,17 @@ _efl_canvas_group_efl_gfx_entity_visible_set(Eo *eo_obj, 
Evas_Smart_Data *o, Ein
 EOLIAN static void
 _efl_canvas_group_efl_gfx_entity_position_set(Eo *eo_obj, Evas_Smart_Data *o, 
Eina_Position2D pos)
 {
+   Eina_Bool is_overridden;
+   Evas_Object_Protected_Data *obj = EVAS_OBJ_GET_OR_RETURN(eo_obj);
+
if (_evas_object_intercept_call(eo_obj, EVAS_OBJECT_INTERCEPT_CB_MOVE, 0, 
pos.x, pos.y))
  return;
 
-   if (o->clipped)
+   is_overridden = (obj->is_smart && obj->smart.smart &&
+obj->smart.smart->smart_class->move !=
+(void *)evas_object_smart_clipped_smart_move);
+
+   if (o->clipped && !is_overridden)
  _evas_object_smart_clipped_smart_move_internal(eo_obj, pos.x, pos.y);
efl_gfx_entity_position_set(efl_super(eo_obj, MY_CLASS), pos);
 }
diff --git a/src/lib/evas/canvas/evas_object_smart_clipped.c 
b/src/lib/evas/canvas/evas_object_smart_clipped.c
index 60cdc78e7d..a904479c01 100644
--- a/src/lib/evas/canvas/evas_object_smart_clipped.c
+++ b/src/lib/evas/canvas/evas_object_smart_clipped.c
@@ -33,7 +33,7 @@ evas_object_smart_clipped_smart_del(Evas_Object *eo_obj)
cso->clipper = NULL;
 }
 
-static void
+void
 evas_object_smart_clipped_smart_move(Evas_Object *eo_obj, Evas_Coord x, 
Evas_Coord y)
 {
if (!efl_isa(eo_obj, EFL_CANVAS_GROUP_CLASS)) return;
diff --git a/src/lib/evas/include/evas_private.h 
b/src/lib/evas/include/evas_private.h
index a63194df3f..b149c0b19e 100644
--- a/src/lib/evas/include/evas_private.h
+++ b/src/lib/evas/include/evas_private.h
@@ -1633,6 +1633,7 @@ const Eina_List 
*evas_object_event_grabber_members_list(const Eo *eo_obj);
 const Eina_Inlist *evas_object_smart_members_get_direct(const Evas_Object 
*obj);
 void _efl_canvas_group_group_members_all_del(Evas_Object *eo_obj);
 void _evas_object_smart_clipped_init(Evas_Object *eo_obj);
+void evas_object_smart_clipped_smart_move(Evas_Object *eo_obj, Evas_Coord x, 
Evas_Coord y);
 void _evas_object_smart_clipped_smart_move_internal(Evas_Object *eo_obj, 
Evas_Coord x, Evas_Coord y);
 void evas_call_smarts_calculate(Evas *e);
 void evas_object_smart_bounding_box_update(Evas_Object_Protected_Data *obj);

-- 




[EGIT] [core/efl] master 02/02: ecore: fix that timers are not called in the order they were registered.

2018-08-02 Thread Hosang Kim
discomfitor pushed a commit to branch master.

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

commit a92274f81184cd06b398a0930110f2a4bee49e76
Author: Hosang Kim 
Date:   Thu Aug 2 09:14:15 2018 -0400

ecore: fix that timers are not called in the order they were registered.

Summary:
Timers are not called in the order they were registered.
Because when current timer is deleted, getting next timer is called twice.

Test Plan:

Timer1 expired after 0.001 seconds.
Timer3 expired after 0.001 seconds.
Timer5 expired after 0.001 seconds.
Timer7 expired after 0.001 seconds.
Timer2 expired after 0.001 seconds.
Timer6 expired after 0.001 seconds.
Timer4 expired after 0.001 seconds.
Timer8 expired after 0.001 seconds.

Timer1 expired after 0.001 seconds.
Timer2 expired after 0.001 seconds.
Timer3 expired after 0.001 seconds.
Timer4 expired after 0.001 seconds.
Timer5 expired after 0.001 seconds.
Timer6 expired after 0.001 seconds.
Timer7 expired after 0.001 seconds.
Timer8 expired after 0.001 seconds.|

{F3268233}

Reviewers: Hermet, Jaehyun_Cho, zmike, SanghyeonLee

Reviewed By: zmike

Subscribers: cedric, #committers, zmike

Tags: #efl_tests

Differential Revision: https://phab.enlightenment.org/D6700
---
 src/lib/ecore/ecore_timer.c| 13 +++--
 src/tests/ecore/ecore_test_timer.c | 37 +
 2 files changed, 48 insertions(+), 2 deletions(-)

diff --git a/src/lib/ecore/ecore_timer.c b/src/lib/ecore/ecore_timer.c
index 1ebce1f3df..776848875c 100644
--- a/src/lib/ecore/ecore_timer.c
+++ b/src/lib/ecore/ecore_timer.c
@@ -461,11 +461,20 @@ _efl_loop_timer_util_delay(Efl_Loop_Timer_Data *timer, 
double add)
 EOLIAN static void
 _efl_loop_timer_efl_object_parent_set(Eo *obj, Efl_Loop_Timer_Data *pd, 
Efl_Object *parent)
 {
+   Eina_Inlist *first;
+
efl_parent_set(efl_super(obj, EFL_LOOP_TIMER_CLASS), parent);
 
if ((!pd->constructed) || (!pd->finalized)) return;
 
-   _efl_loop_timer_util_loop_clear(pd);
+   // Remove the timer from all possible pending list
+   first = eina_inlist_first(EINA_INLIST_GET(pd));
+   if (first == pd->loop_data->timers)
+ pd->loop_data->timers = eina_inlist_remove
+   (pd->loop_data->timers, EINA_INLIST_GET(pd));
+   else if (first == pd->loop_data->suspended)
+ pd->loop_data->suspended = eina_inlist_remove
+   (pd->loop_data->suspended, EINA_INLIST_GET(pd));
 
if (efl_invalidated_get(obj)) return;
 
@@ -555,7 +564,7 @@ _efl_loop_timer_next_get(Eo *obj, Efl_Loop_Data *pd)
 static inline void
 _efl_loop_timer_reschedule(Efl_Loop_Timer_Data *timer, double when)
 {
-   if (timer->frozen) return;
+   if (timer->frozen || efl_invalidated_get(timer->object)) return;
 
if (timer->loop_data &&
(EINA_INLIST_GET(timer)->next || EINA_INLIST_GET(timer)->prev))
diff --git a/src/tests/ecore/ecore_test_timer.c 
b/src/tests/ecore/ecore_test_timer.c
index 7b41b8bc1b..222c4151c5 100644
--- a/src/tests/ecore/ecore_test_timer.c
+++ b/src/tests/ecore/ecore_test_timer.c
@@ -252,10 +252,47 @@ EFL_START_TEST(ecore_test_ecore_main_loop_timer)
 }
 EFL_END_TEST
 
+static int count = 0;
+
+static Eina_Bool
+_timer_cb(void *data)
+{
+   count++;
+   int num = (intptr_t) data;
+   fail_if (num != count, "Error timer is called out of order");
+   if (count == 8) ecore_main_loop_quit();
+   return ECORE_CALLBACK_CANCEL;
+}
+
+EFL_START_TEST(ecore_test_timer_in_order)
+{
+   Ecore_Timer *timer;
+   timer = ecore_timer_add(0.001, _timer_cb, (void *) 1);
+   fail_if(timer == NULL);
+   timer = ecore_timer_add(0.001, _timer_cb, (void *) 2);
+   fail_if(timer == NULL);
+   timer = ecore_timer_add(0.001, _timer_cb, (void *) 3);
+   fail_if(timer == NULL);
+   timer = ecore_timer_add(0.001, _timer_cb, (void *) 4);
+   fail_if(timer == NULL);
+   timer = ecore_timer_add(0.001, _timer_cb, (void *) 5);
+   fail_if(timer == NULL);
+   timer = ecore_timer_add(0.001, _timer_cb, (void *) 6);
+   fail_if(timer == NULL);
+   timer = ecore_timer_add(0.001, _timer_cb, (void *) 7);
+   fail_if(timer == NULL);
+   timer = ecore_timer_add(0.001, _timer_cb, (void *) 8);
+   fail_if(timer == NULL);
+
+   ecore_main_loop_begin();
+}
+EFL_END_TEST
+
 void ecore_test_timer(TCase *tc)
 {
   tcase_add_test(tc, ecore_test_timers);
   tcase_add_test(tc, ecore_test_timer_inside_call);
   tcase_add_test(tc, ecore_test_timer_valid_callbackfunc);
   tcase_add_test(tc, ecore_test_ecore_main_loop_timer);
+  tcase_add_test(tc, ecore_test_timer_in_order);
 }

-- 




[EGIT] [core/efl] master 01/01: elementary bg: fix to guarantee compatibility.

2018-08-02 Thread Hermet Park
discomfitor pushed a commit to branch master.

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

commit 24f7285c391056b29dbbd506884fd6579fae3768
Author: Hermet Park 
Date:   Thu Aug 2 09:08:43 2018 -0400

elementary bg: fix to guarantee compatibility.

Summary: This is additional fix to b9b209f60f040d0afbccc1db0c96c8e36d14e682.

Reviewers: #committers, zmike

Reviewed By: #committers, zmike

Subscribers: cedric, #committers, zmike

Tags: #efl

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

diff --git a/src/lib/elementary/efl_ui_bg_widget.c 
b/src/lib/elementary/efl_ui_bg_widget.c
index 8662516ad2..cd05d060a7 100644
--- a/src/lib/elementary/efl_ui_bg_widget.c
+++ b/src/lib/elementary/efl_ui_bg_widget.c
@@ -152,14 +152,14 @@ elm_bg_color_set(Evas_Object *obj,
  int b)
 {
int a = 255;
-   EFL_UI_BG_WIDGET_CHECK(obj);
+   EFL_UI_BG_WIDGET_DATA_GET_OR_RETURN(obj, sd);
 
// reset color
if ((r == -1) && (g == -1) && (b == -1))
{
   r = g = b = a = 0;
}
-   efl_gfx_color_set(obj, r, g, b, a);
+   efl_gfx_color_set(sd->rect, r, g, b, a);
 }
 
 EOLIAN static void

-- 




[EGIT] [core/efl] master 01/01: elm/genlist: remove conditional in _calc_job for verifying show_item code

2018-08-02 Thread Mike Blumenkrantz
bu5hm4n pushed a commit to branch master.

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

commit 1a75537ab8cb56f205632290a89fe2d89f4646d4
Author: Mike Blumenkrantz 
Date:   Wed Jun 27 16:53:55 2018 -0400

elm/genlist: remove conditional in _calc_job for verifying show_item code

I think at some point in the past this was necessary to avoid weird show
mechanics, but now things have changed and it's best to always attempt to
scroll and let the scroller internals figure things out

this resolves the case where attempting to scroll to an item during a 
genlist's
calc (ie. the item was not present in a full layout calc) would fail to 
scroll
to the item if the scroll method was TOP and the item was too close to the
bottom of the list

fix T6368
@fix

Differential Revision: https://phab.enlightenment.org/D6466
---
 src/lib/elementary/elm_genlist.c | 28 ++--
 1 file changed, 2 insertions(+), 26 deletions(-)

diff --git a/src/lib/elementary/elm_genlist.c b/src/lib/elementary/elm_genlist.c
index d9525d9449..ced92b59f2 100644
--- a/src/lib/elementary/elm_genlist.c
+++ b/src/lib/elementary/elm_genlist.c
@@ -764,11 +764,10 @@ _calc_job(void *data)
 {
int in = 0;
Item_Block *itb, *chb = NULL;
-   Evas_Coord pan_w = 0, pan_h = 0;
ELM_GENLIST_DATA_GET(data, sd);
Eina_Bool minw_change = EINA_FALSE;
Eina_Bool did_must_recalc = EINA_FALSE;
-   Evas_Coord minw = -1, minh = 0, y = 0, ow, dy = 0, vw = 0;
+   Evas_Coord minw = -1, minh = 0, y = 0, ow = 0, vw = 0;
 
evas_object_geometry_get(sd->pan_obj, NULL, NULL, , >h);
if (sd->mode == ELM_LIST_COMPRESS)
@@ -880,34 +879,11 @@ _calc_job(void *data)
if (!sd->show_item) sd->check_scroll = EINA_FALSE;
if (sd->check_scroll)
  {
-elm_obj_pan_content_size_get(sd->pan_obj, _w, _h);
 if (EINA_INLIST_GET(sd->show_item) == sd->items->last)
   sd->scroll_to_type = ELM_GENLIST_ITEM_SCROLLTO_IN;
 
-switch (sd->scroll_to_type)
-  {
-   case ELM_GENLIST_ITEM_SCROLLTO_TOP:
- dy = sd->h;
- break;
-
-   case ELM_GENLIST_ITEM_SCROLLTO_MIDDLE:
- dy = sd->h / 2;
- break;
-
-   case ELM_GENLIST_ITEM_SCROLLTO_IN:
-   default:
- dy = 0;
- break;
-  }
 if ((sd->show_item) && (sd->show_item->item->block))
-  {
- if ((pan_w > (sd->show_item->x + sd->show_item->item->block->x))
- && (pan_h > (sd->show_item->y + sd->show_item->item->block->y
-  + dy)))
-   {
-  _item_scroll(sd);
-   }
-  }
+  _item_scroll(sd);
  }
 
sd->calc_job = NULL;

-- 




[EGIT] [core/efl] master 01/01: evas_events: Fix to set mouse_in state to all pointers in the seat.

2018-08-02 Thread Jaehyun Cho
jaehyun pushed a commit to branch master.

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

commit 0b27fd8dfddd5c305d6d186dda8cef0dc6b8c172
Author: Jaehyun Cho 
Date:   Thu Aug 2 18:16:46 2018 +0900

evas_events: Fix to set mouse_in state to all pointers in the seat.

Summary:
mouse coordinate is set by seat.
Therefore, mouse_in state should be set based on seat.
As a result, mouse_in state of all pointers in the seat should be
updated at the same time.

Reviewers: eagleeye, devilhorns, zmike

Reviewed By: eagleeye, devilhorns, zmike

Subscribers: devilhorns, Hermet, kimcinoo, cedric, iscaro, zmike, 
#committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6699
---
 src/lib/evas/canvas/evas_events.c | 45 +++
 1 file changed, 31 insertions(+), 14 deletions(-)

diff --git a/src/lib/evas/canvas/evas_events.c 
b/src/lib/evas/canvas/evas_events.c
index 3a27cf5b65..b670c60e02 100644
--- a/src/lib/evas/canvas/evas_events.c
+++ b/src/lib/evas/canvas/evas_events.c
@@ -555,6 +555,23 @@ _evas_event_source_mouse_down_events(Evas_Object *eo_obj, 
Evas *eo_e,
 }
 
 static void
+_evas_event_mouse_in_set(Evas_Pointer_Seat *pseat,
+ Evas_Object_Protected_Data *obj, Eina_Bool mouse_in)
+{
+   Evas_Pointer_Data *pdata;
+   Evas_Object_Pointer_Data *obj_pdata;
+
+   if ((!pseat) || (!obj)) return;
+
+   EINA_INLIST_FOREACH(pseat->pointers, pdata)
+ {
+obj_pdata = _evas_object_pointer_data_get(pdata, obj);
+if (obj_pdata)
+  obj_pdata->mouse_in = mouse_in;
+ }
+}
+
+static void
 _evas_event_source_mouse_move_events(Evas_Object *eo_obj, Evas *eo_e,
  Efl_Input_Pointer *parent_ev,
  Evas_Pointer_Data *pdata,
@@ -639,7 +656,7 @@ _evas_event_source_mouse_move_events(Evas_Object *eo_obj, 
Evas *eo_e,
  if ((obj_pdata->mouse_grabbed == 0) && (!e->delete_me))
{
   if (obj_pdata->mouse_in) continue; /* FIXME: dubious logic! 
*/
-  obj_pdata->mouse_in = 0;
+  _evas_event_mouse_in_set(pdata->seat, child, 0);
   if (e->is_frozen) continue;
   ev->cur = curpt_real;
   _evas_event_havemap_adjust_f(eo_child, child, >cur, 
obj_pdata->mouse_grabbed);
@@ -702,7 +719,7 @@ _evas_event_source_mouse_move_events(Evas_Object *eo_obj, 
Evas *eo_e,
}
  else if (obj_pdata->mouse_in)
{
-  obj_pdata->mouse_in = 0;
+  _evas_event_mouse_in_set(pdata->seat, child, 0);
   if (e->is_frozen) continue;
   ev->cur = curpt;
   _evas_event_havemap_adjust_f(eo_child, child, >cur, 
obj_pdata->mouse_grabbed);
@@ -731,7 +748,7 @@ _evas_event_source_mouse_move_events(Evas_Object *eo_obj, 
Evas *eo_e,
 {
if (!obj_pdata->mouse_in)
  {
-obj_pdata->mouse_in = 1;
+_evas_event_mouse_in_set(pdata->seat, child, 1);
 if (e->is_frozen) continue;
 ev->cur = curpt;
 _evas_event_havemap_adjust_f(eo_child, child, 
>cur, obj_pdata->mouse_grabbed);
@@ -1222,7 +1239,7 @@ _evas_event_source_mouse_in_events(Evas_Object *eo_obj, 
Evas *eo_e,
 if (!eina_list_data_find(src->proxy->src_event_in, eo_child))
   {
  if (obj_pdata->mouse_in) continue;
- obj_pdata->mouse_in = 1;
+ _evas_event_mouse_in_set(pdata->seat, child, 1);
  ev->cur = point;
  _evas_event_havemap_adjust_f(eo_child, child, >cur, 
obj_pdata->mouse_grabbed);
  ev->action = EFL_POINTER_ACTION_IN;
@@ -1292,7 +1309,7 @@ _evas_event_source_mouse_out_events(Evas_Object *eo_obj, 
Evas *eo_e,
   }
 
 if (!obj_pdata->mouse_in) continue;
-obj_pdata->mouse_in = 0;
+_evas_event_mouse_in_set(pdata->seat, child, 0);
 if (child->delete_me) continue;
 
 ev->cur = point;
@@ -1620,7 +1637,7 @@ _post_up_handle(Evas_Public_Data *e, Efl_Input_Pointer 
*parent_ev,
   continue;
}
  if (!obj_pdata->mouse_in) continue;
- obj_pdata->mouse_in = 0;
+ _evas_event_mouse_in_set(pdata->seat, obj, 0);
  if (!e->is_frozen)
{
   ev->cur.x = pdata->seat->x;
@@ -1658,7 +1675,7 @@ _post_up_handle(Evas_Public_Data *e, Efl_Input_Pointer 
*parent_ev,
continue;
 }
   if (obj_pdata->mouse_in) continue;
-  obj_pdata->mouse_in = 1;
+  _evas_event_mouse_in_set(pdata->seat, obj_itr, 1);
   if (e->is_frozen) 

[EGIT] [core/efl] master 01/01: edje: add back function prototype for edje_object_color_class_description_get

2018-08-02 Thread Mike Blumenkrantz
stefan pushed a commit to branch master.

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

commit dbc2c880a8bb2c4457ec018ed7184362f5ff6e2e
Author: Mike Blumenkrantz 
Date:   Mon Jul 30 07:12:31 2018 -0400

edje: add back function prototype for 
edje_object_color_class_description_get

this was removed in D4403

Differential Revision: https://phab.enlightenment.org/D6694
---
 src/lib/edje/Edje_Legacy.h | 14 ++
 1 file changed, 14 insertions(+)

diff --git a/src/lib/edje/Edje_Legacy.h b/src/lib/edje/Edje_Legacy.h
index 581e2f9eb9..dcf7067563 100644
--- a/src/lib/edje/Edje_Legacy.h
+++ b/src/lib/edje/Edje_Legacy.h
@@ -3130,6 +3130,20 @@ EAPI const Edje_Perspective 
*edje_object_perspective_get(const Evas_Object *obj)
  */
 EAPI void edje_object_item_provider_set(Edje_Object *obj, 
Edje_Item_Provider_Cb func, void *data);
 
+
+/**
+ * @brief Gets the description of an object color class.
+ *
+ * This function gets the description of a color class in use by an object.
+ *
+ * @param[in] color_class Color class description
+ *
+ * @return The description of the target color class or @c null if not found
+ *
+ * @ingroup Edje_Object
+ */
+EAPI const char *edje_object_color_class_description_get(const Edje_Object 
*obj, const char * color_class);
+
 typedef Efl_Canvas_Layout_Part_Type Edje_Part_Type;
 #define EDJE_PART_TYPE_NONEEFL_CANVAS_LAYOUT_PART_TYPE_NONE
 #define EDJE_PART_TYPE_RECTANGLE   EFL_CANVAS_LAYOUT_PART_TYPE_RECTANGLE

--