[EGIT] [core/enlightenment] master 03/03: e module - remove duplicate modules at load all time from config

2016-12-15 Thread Carsten Haitzler
raster pushed a commit to branch master.

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

commit 6540eddb9671b22bbe73bf2117c25deb69a87a5b
Author: Carsten Haitzler (Rasterman) 
Date:   Thu Dec 15 16:31:56 2016 +0900

e module - remove duplicate modules at load all time from config

ALSO dont remove dups from e_module_new as we may be walking at the
time. instead refuse to load a module alread loaded bu name. this
should solve things better.

@fix
---
 src/bin/e_module.c | 51 ---
 1 file changed, 32 insertions(+), 19 deletions(-)

diff --git a/src/bin/e_module.c b/src/bin/e_module.c
index 9bfc317..3cb794c 100644
--- a/src/bin/e_module.c
+++ b/src/bin/e_module.c
@@ -13,6 +13,7 @@ static void  _e_module_dialog_disable_create(const char 
*title, const char *
 static void  _e_module_cb_dialog_disable(void *data, E_Dialog *dia);
 static void  _e_module_event_update_free(void *data, void *event);
 static Eina_Bool _e_module_cb_idler(void *data);
+static int   _e_module_sort_name(const void *d1, const void *d2);
 static int   _e_module_sort_priority(const void *d1, const void *d2);
 static void  _e_module_whitelist_check(void);
 static Eina_Bool _e_module_desktop_list_cb(const Eina_Hash *hash EINA_UNUSED, 
const void *key, void *data, void *fdata);
@@ -264,12 +265,28 @@ E_API void
 e_module_all_load(void)
 {
Eina_List *l, *ll;
-   E_Config_Module *em;
+   E_Config_Module *em, *em2;
char buf[128];
 
_e_modules_initting = EINA_TRUE;
if (_e_module_path_lists) return;
 
+   // remove duplicate modules in load
+   e_config->modules =
+ eina_list_sort(e_config->modules, 0, _e_module_sort_name);
+   EINA_LIST_FOREACH_SAFE(e_config->modules, l, ll, em)
+ {
+if ((!em) || (!ll)) continue;
+em2 = ll->data;
+if (!em2) continue;
+
+if (!strcmp(em->name, em2->name))
+  {
+ eina_stringshare_del(em->name);
+ e_config->modules = eina_list_remove_list(e_config->modules, l);
+ free(em);
+  }
+ }
e_config->modules =
  eina_list_sort(e_config->modules, 0, _e_module_sort_priority);
 
@@ -332,11 +349,11 @@ e_module_new(const char *name)
char body[4096], title[1024];
const char *modpath = NULL;
char *s;
-   Eina_List *l, *ll;
-   E_Config_Module *em;
int in_list = 0;
 
if (!name) return NULL;
+   if (eina_hash_find(_e_modules_hash, name)) return NULL;
+
m = E_OBJECT_ALLOC(E_Module, E_MODULE_TYPE, _e_module_free);
if (name[0] != '/')
  {
@@ -461,22 +478,6 @@ init_done:
}
   }
  }
-   EINA_LIST_FOREACH_SAFE(e_config->modules, l, ll, em)
- {
-if (!em) continue;
-if (em->name == m->name)
-  {
- if (in_list)
-   {
-  /* duplicate module config */
-  e_config->modules = eina_list_remove_list(e_config->modules, 
l);
-  eina_stringshare_del(em->name);
-  free(em);
-   }
- else
-   in_list = 1;
-  }
- }
if (!in_list)
  {
 E_Config_Module *module;
@@ -891,6 +892,18 @@ _e_module_cb_idler(void *data EINA_UNUSED)
 }
 
 static int
+_e_module_sort_name(const void *d1, const void *d2)
+{
+   const E_Config_Module *m1, *m2;
+
+   m1 = d1;
+   if (!m1->name) return -1;
+   m2 = d2;
+   if (!m2->name) return 1;
+   return strcmp(m1->name, m2->name);
+}
+
+static int
 _e_module_sort_priority(const void *d1, const void *d2)
 {
const E_Config_Module *m1, *m2;

-- 




[EGIT] [core/efl] master 02/06: ecore-x - add e stack type atom and api's to set and get it

2016-12-15 Thread Carsten Haitzler
raster pushed a commit to branch master.

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

commit 90be06df9efa3371a8c4f82b59f43656b65a1596
Author: Carsten Haitzler (Rasterman) 
Date:   Thu Dec 8 18:42:34 2016 +0900

ecore-x - add e stack type atom and api's to set and get it
---
 src/lib/ecore_x/Ecore_X.h| 10 ++
 src/lib/ecore_x/Ecore_X_Atoms.h  |  3 +++
 src/lib/ecore_x/ecore_x_atoms_decl.h |  5 +
 src/lib/ecore_x/ecore_x_e.c  | 31 +++
 4 files changed, 49 insertions(+)

diff --git a/src/lib/ecore_x/Ecore_X.h b/src/lib/ecore_x/Ecore_X.h
index e732fb9..6654d78 100644
--- a/src/lib/ecore_x/Ecore_X.h
+++ b/src/lib/ecore_x/Ecore_X.h
@@ -1379,6 +1379,13 @@ typedef enum _Ecore_X_Illume_Window_State
ECORE_X_ILLUME_WINDOW_STATE_FLOATING
 } Ecore_X_Illume_Window_State;
 
+typedef enum _Ecore_X_Stack_Type
+{
+   ECORE_X_STACK_NONE = 0,
+   ECORE_X_STACK_STANDARD = 1,
+   ECORE_X_STACK_LAST
+} Ecore_X_Stack_Type;
+
 /* Window layer constants */
 #define ECORE_X_WINDOW_LAYER_BELOW  2
 #define ECORE_X_WINDOW_LAYER_NORMAL 4
@@ -2739,6 +2746,9 @@ EAPI Eina_Bool 
ecore_x_window_keygrab_unset(Ecore_X_
 EAPI void  
ecore_x_e_keyrouter_set(Ecore_X_Window root, Eina_Bool on); /**< @since 1.15 */ 
//Key router set keyrouter flag using this
 EAPI Eina_Bool 
ecore_x_e_keyrouter_get(Ecore_X_Window root); /**< @since 1.15 */ //Client 
check the existance of keyrouter using this
 
+EAPI void  
ecore_x_e_stack_type_set(Ecore_X_Window win, Ecore_X_Stack_Type stack_type);
+EAPI Ecore_X_Stack_Type
ecore_x_e_stack_type_get(Ecore_X_Window win);
+
 #include 
 #include 
 
diff --git a/src/lib/ecore_x/Ecore_X_Atoms.h b/src/lib/ecore_x/Ecore_X_Atoms.h
index 69d7f0d..014a241 100644
--- a/src/lib/ecore_x/Ecore_X_Atoms.h
+++ b/src/lib/ecore_x/Ecore_X_Atoms.h
@@ -311,6 +311,9 @@ EAPI extern Ecore_X_Atom 
ECORE_X_ATOM_E_WINDOW_PROFILE_CHANGE_DONE;
 EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_STATE;
 EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_GEOMETRY;
 
+/* for window stacks */
+EAPI extern Ecore_X_Atom ECORE_X_ATOM_E_STACK_TYPE;
+
 /* for SDB(Samsung Debug Bridge) */
 EAPI extern Ecore_X_Atom ECORE_X_ATOM_SDB_SERVER_CONNECT;
 EAPI extern Ecore_X_Atom ECORE_X_ATOM_SDB_SERVER_DISCONNECT;
diff --git a/src/lib/ecore_x/ecore_x_atoms_decl.h 
b/src/lib/ecore_x/ecore_x_atoms_decl.h
index 4e95f2c..37da8f2 100644
--- a/src/lib/ecore_x/ecore_x_atoms_decl.h
+++ b/src/lib/ecore_x/ecore_x_atoms_decl.h
@@ -327,6 +327,9 @@ EAPI Ecore_X_Atom ECORE_X_ATOM_E_VIDEO_POSITION = 0;
 EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_STATE = 0;
 EAPI Ecore_X_Atom ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_GEOMETRY = 0;
 
+/* for window stacks */
+EAPI Ecore_X_Atom ECORE_X_ATOM_E_STACK_TYPE = 0;
+
 /* for SDB(Samsung Debug Bridge) */
 EAPI Ecore_X_Atom ECORE_X_ATOM_SDB_SERVER_CONNECT = 0;
 EAPI Ecore_X_Atom ECORE_X_ATOM_SDB_SERVER_DISCONNECT = 0;
@@ -685,6 +688,8 @@ const Atom_Item atom_items[] =
{ "_E_WINDOW_PROFILE_CHANGE_REQUEST", 
_X_ATOM_E_WINDOW_PROFILE_CHANGE_REQUEST },
{ "_E_WINDOW_PROFILE_CHANGE_DONE", 
_X_ATOM_E_WINDOW_PROFILE_CHANGE_DONE },
 
+   { "_E_STACK_TYPE", _X_ATOM_E_STACK_TYPE },
+
{ "_E_DEICONIFY_APPROVE", _X_ATOM_E_DEICONIFY_APPROVE },
 
{ "_E_WINDOW_ROTATION_SUPPORTED", _X_ATOM_E_WINDOW_ROTATION_SUPPORTED 
},
diff --git a/src/lib/ecore_x/ecore_x_e.c b/src/lib/ecore_x/ecore_x_e.c
index 742d9d6..a7c5b60 100644
--- a/src/lib/ecore_x/ecore_x_e.c
+++ b/src/lib/ecore_x/ecore_x_e.c
@@ -2399,3 +2399,34 @@ ecore_x_e_keyrouter_get(Ecore_X_Window win EINA_UNUSED)
 
return val == 1 ? EINA_TRUE : EINA_FALSE;
 }
+
+EAPI void
+ecore_x_e_stack_type_set(Ecore_X_Window win,
+ Ecore_X_Stack_Type stack_type)
+{
+   LOGFN(__FILE__, __LINE__, __FUNCTION__);
+
+   EINA_SAFETY_ON_NULL_RETURN(_ecore_x_disp);
+
+   if (stack_type == ECORE_X_STACK_NONE)
+ ecore_x_window_prop_property_del(win, ECORE_X_ATOM_E_STACK_TYPE);
+   else
+ ecore_x_window_prop_card32_set(win, ECORE_X_ATOM_E_STACK_TYPE,
+_type, 1);
+}
+
+EAPI Ecore_X_Stack_Type
+ecore_x_e_stack_type_get(Ecore_X_Window win)
+{
+   int ret;
+   unsigned int val;
+   LOGFN(__FILE__, __LINE__, __FUNCTION__);
+
+   EINA_SAFETY_ON_NULL_RETURN_VAL(_ecore_x_disp, ECORE_X_STACK_NONE);
+
+   ret = ecore_x_window_prop_card32_get(win, ECORE_X_ATOM_E_STACK_TYPE,
+, 1);
+   if (ret != 1) return ECORE_X_STACK_NONE;
+   if (val >= ECORE_X_STACK_LAST) val = ECORE_X_STACK_STANDARD;
+   return (Ecore_X_Stack_Type)val;
+}

-- 




[EGIT] [core/efl] master 01/06: efl_ui_win - add window "view stack" api's and ability

2016-12-15 Thread Carsten Haitzler
raster pushed a commit to branch master.

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

commit 48ac4747b1bba858036807c5f3bdacffd147d10e
Author: Carsten Haitzler (Rasterman) 
Date:   Thu Dec 8 17:49:23 2016 +0900

efl_ui_win - add window "view stack" api's and ability

this adds the a stack of windows (view stack, something like naviframe
but using multiple windows instead) to elementary allowing windows to
be put into a stack and treated as one "application" when ijn such a
stack with the newest window on top being the active/focused one (or
should be). this allows for special show/hide animations as well as
possibly special sizing policies and placement policies.

@feature
---
 src/lib/elementary/efl_ui_win.c  | 60 +++-
 src/lib/elementary/efl_ui_win.eo | 59 +++
 2 files changed, 112 insertions(+), 7 deletions(-)

diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c
index 720a125..3c2833e 100644
--- a/src/lib/elementary/efl_ui_win.c
+++ b/src/lib/elementary/efl_ui_win.c
@@ -155,6 +155,8 @@ struct _Efl_Ui_Win_Data
const char  *title;
const char  *icon_name;
const char  *role;
+   const char  *stack_id;
+   const char  *stack_master_id;
Eina_Stringshare *name;
Eina_Stringshare *accel_pref;
 
@@ -256,6 +258,7 @@ struct _Efl_Ui_Win_Data
Eina_Boolapplication_alpha : 1; /**< alpha value set by an 
elm_win_alpha_set() api. this has lower priority than theme_alpha */
Eina_Booltmp_updating_hints : 1;
Eina_Boolsingle_edje_content: 1; /* hack for E */
+   Eina_Boolshown : 1;
 };
 
 struct _Input_Pointer_Iterator
@@ -2213,6 +2216,7 @@ _efl_ui_win_show(Eo *obj, Efl_Ui_Win_Data *sd)
 {
Eina_Bool do_eval = EINA_FALSE;
 
+   sd->shown = EINA_TRUE;
if (sd->modal_count)
  {
 /* FIXME FIXME FIXME
@@ -2794,6 +2798,8 @@ _efl_ui_win_efl_canvas_group_group_del(Eo *obj, 
Efl_Ui_Win_Data *sd)
eina_stringshare_del(sd->role);
eina_stringshare_del(sd->name);
eina_stringshare_del(sd->accel_pref);
+   eina_stringshare_del(sd->stack_id);
+   eina_stringshare_del(sd->stack_master_id);
evas_object_del(sd->icon);
evas_object_del(sd->main_menu);
 
@@ -3138,18 +3144,24 @@ _elm_win_xwin_update(Efl_Ui_Win_Data *sd)
 
if (sd->type == ELM_WIN_FAKE) return;
_internal_elm_win_xwindow_get(sd);
-   if (sd->parent)
+
+   if (!sd->x.xwin) return;  /* nothing more to do */
+
+   if (sd->stack_master_id)
+ {
+Ecore_X_Window win = atoi(sd->stack_master_id);
+if (win) ecore_x_icccm_transient_for_set(sd->x.xwin, win);
+// XXX: set property saying we are a stack window
+ }
+   else
  {
-ELM_WIN_DATA_GET(sd->parent, sdp);
-if (sdp)
+if (sd->parent)
   {
- if (sd->x.xwin)
-   ecore_x_icccm_transient_for_set(sd->x.xwin, sdp->x.xwin);
+ ELM_WIN_DATA_GET(sd->parent, sdp);
+ if (sdp) ecore_x_icccm_transient_for_set(sd->x.xwin, sdp->x.xwin);
   }
  }
 
-   if (!sd->x.xwin) return;  /* nothing more to do */
-
s = sd->title;
if (!s) s = _elm_appname;
if (!s) s = "";
@@ -6117,6 +6129,40 @@ _efl_ui_win_focus_highlight_animate_get(Eo *obj 
EINA_UNUSED, Efl_Ui_Win_Data *sd
return sd->focus_highlight.animate;
 }
 
+EOLIAN static const char *
+_efl_ui_win_stack_id_get(Eo *obj EINA_UNUSED, Efl_Ui_Win_Data *sd)
+{
+   return sd->stack_id;
+}
+
+EOLIAN static void
+_efl_ui_win_stack_master_id_set(Eo *obj EINA_UNUSED, Efl_Ui_Win_Data *sd, 
const char *id)
+{
+   if (sd->shown) return;
+   eina_stringshare_replace(&(sd->stack_master_id), id);
+#ifdef HAVE_ELEMENTARY_X
+   _elm_win_xwin_update(sd);
+#endif
+}
+
+EOLIAN static const char *
+_efl_ui_win_stack_master_id_get(Eo *obj EINA_UNUSED, Efl_Ui_Win_Data *sd)
+{
+   return sd->stack_master_id;
+}
+
+EOLIAN static void
+_efl_ui_win_stack_pop_to_id(Eo *obj EINA_UNUSED, Efl_Ui_Win_Data *sd 
EINA_UNUSED, const char *id EINA_UNUSED)
+{
+   // if in e (x11+wl), ask e to nuke all windows in stack above this
+   //   or
+   // in x11 - find all windows in the window tree with a transient
+   // for that have the SAME stack master as this one and that are
+   // stacked above this window, and delete them from bottom to top
+   // 
+   // win32/osx ?
+}
+
 EOLIAN static Eina_Bool
 _efl_ui_win_socket_listen(Eo *obj EINA_UNUSED, Efl_Ui_Win_Data *sd, const char 
*svcname, int svcnum, Eina_Bool svcsys)
 {
diff --git a/src/lib/elementary/efl_ui_win.eo b/src/lib/elementary/efl_ui_win.eo
index 2623067..aea05dc 100644
--- a/src/lib/elementary/efl_ui_win.eo
+++ b/src/lib/elementary/efl_ui_win.eo
@@ -729,6 +729,65 @@ class Efl.Ui.Win (Elm.Widget, Efl.Canvas, 
Elm.Interface.Atspi.Window,
$false otherwise.]]
  }
   }
+  @property stack_id {
+ get {
+

[EGIT] [core/efl] master 06/06: elm - add test for efl ui win stacking api

2016-12-15 Thread Carsten Haitzler
raster pushed a commit to branch master.

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

commit 0bf269d966d98512464127a3f528ca6c3455ffd5
Author: Carsten Haitzler (Rasterman) 
Date:   Fri Dec 9 15:27:55 2016 +0900

elm - add test for efl ui win stacking api
---
 src/Makefile_Elementary.am  |   1 +
 src/bin/elementary/test.c   |   2 +
 src/bin/elementary/test_win_stack.c | 100 
 3 files changed, 103 insertions(+)

diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am
index 14dd674..a50cc8b 100644
--- a/src/Makefile_Elementary.am
+++ b/src/Makefile_Elementary.am
@@ -841,6 +841,7 @@ bin/elementary/test_win_wm_rotation.c \
 bin/elementary/test_win_dialog.c \
 bin/elementary/test_win_modal.c \
 bin/elementary/test_efl_ui_text.c \
+bin/elementary/test_win_stack.c \
 bin/elementary/test.h
 
 bin_elementary_elementary_test_LDADD = @USE_ELEMENTARY_LIBS@
diff --git a/src/bin/elementary/test.c b/src/bin/elementary/test.c
index 224e01e..2f53a10 100644
--- a/src/bin/elementary/test.c
+++ b/src/bin/elementary/test.c
@@ -161,6 +161,7 @@ void test_gengrid_disabled_item_focus(void *data, 
Evas_Object *obj, void *event_
 void test_gengrid_item_custom_size(void *data, Evas_Object *obj, void 
*event_info);
 void test_win_state(void *data, Evas_Object *obj, void *event_info);
 void test_win_state2(void *data, Evas_Object *obj, void *event_info);
+void test_win_stack(void *data, Evas_Object *obj, void *event_info);
 void test_progressbar(void *data, Evas_Object *obj, void *event_info);
 void test_progressbar2(void *data, Evas_Object *obj, void *event_info);
 void test_fileselector(void *data, Evas_Object *obj, void *event_info);
@@ -647,6 +648,7 @@ add_tests:
ADD_TEST(NULL, "Window / Background", "Window Standard/Dialog", 
test_win_dialog);
ADD_TEST(NULL, "Window / Background", "Window Keygrab Set", 
test_win_keygrab);
ADD_TEST(NULL, "Window / Background", "Window Modal", test_win_modal);
+   ADD_TEST(NULL, "Window / Background", "Window Stack", test_win_stack);
 
//--//
ADD_TEST(NULL, "Images", "Icon", test_icon);
diff --git a/src/bin/elementary/test_win_stack.c 
b/src/bin/elementary/test_win_stack.c
new file mode 100644
index 000..2273c7a
--- /dev/null
+++ b/src/bin/elementary/test_win_stack.c
@@ -0,0 +1,100 @@
+#ifdef HAVE_CONFIG_H
+# include "elementary_config.h"
+#endif
+#include 
+
+static int level = 0;
+
+static void _bt_pressed(void *data, Evas_Object *obj, void *event_info);
+
+static Evas_Object *
+_win_new(Evas_Object *stack_top, const char *title)
+{
+   Evas_Object *bg, *bx, *bt, *lb, *win;
+
+   if (level >= 3)
+ win = elm_win_add(NULL, "window-stack", ELM_WIN_DIALOG_BASIC);
+   else
+ win = elm_win_add(NULL, "window-stack", ELM_WIN_BASIC);
+   elm_win_title_set(win, title);
+   elm_win_autodel_set(win, EINA_TRUE);
+
+   bg = elm_bg_add(win);
+   evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   elm_win_resize_object_add(win, bg);
+   evas_object_show(bg);
+
+   bx = elm_box_add(win);
+   evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   elm_win_resize_object_add(win, bx);
+   evas_object_show(bx);
+
+   lb = elm_label_add(win);
+   elm_object_text_set(lb, "Press below to push another window on the stack");
+   evas_object_size_hint_weight_set(lb, 1.0, 1.0);
+   evas_object_size_hint_align_set(lb, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   elm_box_pack_end(bx, lb);
+   evas_object_show(lb);
+
+   bt = elm_button_add(win);
+   elm_object_text_set(bt, "Push");
+   evas_object_smart_callback_add(bt, "clicked", _bt_pressed, stack_top);
+   evas_object_size_hint_fill_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   evas_object_size_hint_weight_set(bt, EVAS_HINT_EXPAND, 0.0);
+   elm_box_pack_end(bx, bt);
+   evas_object_show(bt);
+
+   evas_object_resize(win, 280, 400);
+   return win;
+}
+
+static void
+_bt_pressed(void *data, Evas_Object *obj EINA_UNUSED, void *event_info 
EINA_UNUSED)
+{
+   Evas_Object *win;
+   char buf[100];
+
+   level++;
+   snprintf(buf, sizeof(buf), "Level %i", level);
+   win = _win_new(data, buf);
+   elm_win_stack_master_id_set(win, elm_win_stack_id_get(data));
+   evas_object_show(win);
+}
+
+void
+test_win_stack(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void 
*event_info EINA_UNUSED)
+{
+   Evas_Object *bg, *bx, *bt, *lb, *win;
+
+   win = elm_win_add(NULL, "window-stack", ELM_WIN_BASIC);
+   elm_win_title_set(win, "Window Stack");
+   elm_win_autodel_set(win, EINA_TRUE);
+
+   bg = elm_bg_add(win);
+   evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   elm_win_resize_object_add(win, bg);
+   evas_object_show(bg);
+
+   bx = elm_box_add(win);
+   evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   elm_win_resize_object_add(win, bx);
+   evas_object_show(bx);
+
+   lb = 

[EGIT] [core/enlightenment] master 01/03: client handling - add support for window stacks needed for views/manager

2016-12-15 Thread Carsten Haitzler
raster pushed a commit to branch master.

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

commit 5c38609e0ee6990ecfa3dab2af2c5c050638c4bd
Author: Carsten Haitzler (Rasterman) 
Date:   Mon Dec 12 12:20:26 2016 +0900

client handling - add support for window stacks needed for views/manager

this adds core basic handling for window stacks where windows behave
correctly as a single unified stack something like what naviframe does
but out-of-window so you can including multiple processes. only on x11
right now as it's being supported/worked on.

as we dont plan to kepe naviframe in future, this is the way to go.
naviframe "pages" will be windows in a stack. the wm should do the
nice thing. in e this will be very nice. for now elsewhere we use
transient_for so a wm would treat this like a bunch of dialogs with a
single parent window. i guess in a desktop thats probably what you
might expect. e will be a little more "finesse" filled.

need to make ibar, tasks,m win menu and winlist (alt-tab) respect this
and only show the top member of a stack.

need to send messages to clients when they are "top" or "middle" or
"bottom" or "alone" in the stack or something so decorations can change.

should add soem new border signals in theme (for both SSD and CSD) to
make this look nice. will need some config additions for that and
ability for e comp to do the right thing

but this is a solid start
---
 src/bin/e_client.c  | 511 +---
 src/bin/e_client.h  |  18 +-
 src/bin/e_comp_object.c |  54 +++--
 src/bin/e_comp_wl.c |  25 ++-
 src/bin/e_comp_x.c  |  17 ++
 src/bin/e_desk.c|   3 +-
 6 files changed, 536 insertions(+), 92 deletions(-)

diff --git a/src/bin/e_client.c b/src/bin/e_client.c
index 74a781b..9561cdf 100644
--- a/src/bin/e_client.c
+++ b/src/bin/e_client.c
@@ -430,14 +430,34 @@ _e_client_revert_focus(E_Client *ec)
E_Desk *desk;
 
if (stopping) return;
+
if (!ec->focused) return;
if (!ec->zone) return;
+
desk = e_desk_current_get(ec->zone);
if (ec->desk == desk)
  evas_object_focus_set(ec->frame, 0);
 
-   if ((ec->parent) &&
-   (ec->parent->desk == desk) && (ec->parent->modal == ec))
+   if (ec->stack.prev)
+ {
+ec->stack.focus_skip = 1;
+pec = e_client_stack_active_adjust(ec);
+ec->stack.focus_skip = 0;
+if ((pec != ec) && (!pec->iconic))
+  evas_object_focus_set(pec->frame, 1);
+else
+  {
+ if ((e_object_is_del(E_OBJECT(ec))) || (ec->iconic))
+   {
+  Eina_Bool unlock = ec->lock_focus_out;
+  ec->lock_focus_out = 1;
+  pec = e_desk_last_focused_focus(desk);
+  ec->lock_focus_out = unlock;
+   }
+  }
+ }
+   else if ((ec->parent) &&
+(ec->parent->desk == desk) && (ec->parent->modal == ec))
  {
 evas_object_focus_set(ec->parent->frame, 1);
 if (e_config->raise_on_revert_focus)
@@ -447,7 +467,7 @@ _e_client_revert_focus(E_Client *ec)
  {
 Eina_Bool unlock = ec->lock_focus_out;
 ec->lock_focus_out = 1;
-e_desk_last_focused_focus(desk);
+pec = e_desk_last_focused_focus(desk);
 ec->lock_focus_out = unlock;
  }
else if (e_config->focus_policy == E_FOCUS_MOUSE)
@@ -567,6 +587,9 @@ _e_client_free(E_Client *ec)
 ec->e.state.profile.wait_desk_delfn = NULL;
 e_object_unref(E_OBJECT(ec->e.state.profile.wait_desk));
  }
+   if (ec->stack.prev) ec->stack.prev->stack.next = ec->stack.next;
+   if (ec->stack.next) ec->stack.next->stack.prev = ec->stack.prev;
+
ec->e.state.profile.wait_desk = NULL;
evas_object_del(ec->frame);
E_OBJECT(ec)->references--;
@@ -580,6 +603,8 @@ _e_client_del(E_Client *ec)
E_Client *child;
E_Client_Volume_Sink *sink;
 
+   for (child = ec->stack.next; child; child = child->stack.next)
+ e_client_act_close_begin(child);
ec->changed = 0;
focus_stack = eina_list_remove(focus_stack, ec);
raise_stack = eina_list_remove(raise_stack, ec);
@@ -1390,6 +1415,78 @@ _e_client_zone_update(E_Client *ec)
 
 
 
+E_API Eina_List *
+e_client_stack_list_prepare(E_Client *ec)
+{
+   E_Client *ec2;
+   Eina_List *list = NULL;
+
+   for (ec2 = ec->stack.prev; ec2; ec2 = ec2->stack.prev)
+ {
+ec2->stack.ignore++;
+list = eina_list_prepend(list, ec2);
+ }
+   ec->stack.ignore++;
+   list = eina_list_append(list, ec);
+   for (ec2 = ec->stack.next; ec2; ec2 = ec2->stack.next)
+ {
+ec2->stack.ignore++;
+list = eina_list_append(list, ec2);
+ }
+   return list;
+}
+
+E_API void
+e_client_stack_list_finish(Eina_List *list)
+{
+   E_Client *ec;
+
+   

[EGIT] [core/efl] master 05/06: efl_ui_win - use ecore_x window stack api to set up property in x11

2016-12-15 Thread Carsten Haitzler
raster pushed a commit to branch master.

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

commit 4b9673844307c4b73aac37ecf7f96632ee38a18e
Author: Carsten Haitzler (Rasterman) 
Date:   Fri Dec 9 15:27:10 2016 +0900

efl_ui_win - use ecore_x window stack api to set up property in x11
---
 src/lib/elementary/efl_ui_win.c | 13 ++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c
index b335375..4365017 100644
--- a/src/lib/elementary/efl_ui_win.c
+++ b/src/lib/elementary/efl_ui_win.c
@@ -3147,9 +3147,12 @@ _elm_win_xwin_update(Efl_Ui_Win_Data *sd)
 
if (sd->stack_master_id)
  {
-Ecore_X_Window win = atoi(sd->stack_master_id);
-if (win) ecore_x_icccm_transient_for_set(sd->x.xwin, win);
-// XXX: set property saying we are a stack window
+Ecore_X_Window win = strtol(sd->stack_master_id, NULL, 16);
+if (win)
+  {
+ ecore_x_icccm_transient_for_set(sd->x.xwin, win);
+ ecore_x_e_stack_type_set(sd->x.xwin, ECORE_X_STACK_STANDARD);
+  }
  }
else
  {
@@ -4911,7 +4914,11 @@ _elm_win_finalize_internal(Eo *obj, Efl_Ui_Win_Data *sd, 
const char *name, Elm_W
_internal_elm_win_xwindow_get(sd);
if (sd->x.xwin)
  {
+char buf[128];
+
 ecore_x_io_error_handler_set(_elm_x_io_err, NULL);
+snprintf(buf, sizeof(buf), "%x", sd->x.xwin);
+sd->stack_id = eina_stringshare_add(buf);
  }
 #endif
 

-- 




[EGIT] [core/efl] master 03/06: ecore-x - add missing atom fetches!

2016-12-15 Thread Carsten Haitzler
raster pushed a commit to branch master.

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

commit 56b0b6490d801fbb7afd65f382d9d9f90903ac8a
Author: Carsten Haitzler (Rasterman) 
Date:   Thu Dec 8 18:48:05 2016 +0900

ecore-x - add missing atom fetches!

ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_STATE
ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_GEOMETRY
ECORE_X_ATOM_E_KEYROUTER_SUPPORTED
ECORE_X_ATOM_E_KEYROUTER_WINDOW_KEYTABLE

all had no atom fetches! fix..

@fix
---
 src/lib/ecore_x/ecore_x_atoms_decl.h | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/src/lib/ecore_x/ecore_x_atoms_decl.h 
b/src/lib/ecore_x/ecore_x_atoms_decl.h
index 37da8f2..7f1a51a 100644
--- a/src/lib/ecore_x/ecore_x_atoms_decl.h
+++ b/src/lib/ecore_x/ecore_x_atoms_decl.h
@@ -668,6 +668,10 @@ const Atom_Item atom_items[] =
/* Abi compat fix */
{ "_E_ILLUME_ACCESS_ENABLE", _X_ATOM_E_ILLUME_ACCESS_ENABLE },
{ "_E_ILLUME_ACCESS_DISABLE", _X_ATOM_E_ILLUME_ACCESS_DISABLE },
+
+   { "_E_ILLUME_SLIDING_WIN_STATE", _X_ATOM_E_ILLUME_SLIDING_WIN_STATE },
+   { "_E_ILLUME_SLIDING_WIN_GEOMETRY", 
_X_ATOM_E_ILLUME_SLIDING_WIN_GEOMETRY },
+
/* End of Abi compat fix */
{ "_E_COMP_SYNC_COUNTER", _X_ATOM_E_COMP_SYNC_COUNTER },
{ "_E_COMP_SYNC_DRAW_DONE", _X_ATOM_E_COMP_SYNC_DRAW_DONE },
@@ -706,6 +710,9 @@ const Atom_Item atom_items[] =
{ "_E_WINDOW_AUX_HINT", _X_ATOM_E_WINDOW_AUX_HINT },
{ "_E_WINDOW_AUX_HINT_ALLOWED", _X_ATOM_E_WINDOW_AUX_HINT_ALLOWED },
 
+   { "_E_WINDOW_KEYROUTER_SUPPORTED", _X_ATOM_E_KEYROUTER_SUPPORTED },
+   { "_E_WINDOW_KEYROUTER_WINDOW_KEYTABLE", 
_X_ATOM_E_KEYROUTER_WINDOW_KEYTABLE },
+
{ "_TEAMWORK_PROP", _X_ATOM_TEAMWORK_PROPERTY },
{ "_TEAMWORK_PRELOAD", _X_ATOM_TEAMWORK_PRELOAD },
{ "_TEAMWORK_ACTIVATE", _X_ATOM_TEAMWORK_ACTIVATE },

-- 




[EGIT] [core/enlightenment] master 02/03: e config - don't keep adding lunchers until you burst. only if not found

2016-12-15 Thread Carsten Haitzler
raster pushed a commit to branch master.

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

commit aead4d96b43606454c274107a1bfecba52458562
Author: Carsten Haitzler (Rasterman) 
Date:   Thu Dec 15 16:30:41 2016 +0900

e config - don't keep adding lunchers until you burst. only if not found

so e config would add lunhcers forevert. i spotted 13 of them. no.
just one. also make them delayed because thats pretty much what we
always want. same with other config added modules. should be delayed
generally.
---
 src/bin/e_config.c | 13 -
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/src/bin/e_config.c b/src/bin/e_config.c
index 0e7b75d..06eceef 100644
--- a/src/bin/e_config.c
+++ b/src/bin/e_config.c
@@ -1431,6 +1431,7 @@ e_config_load(void)
module = E_NEW(E_Config_Module, 1);
module->name = eina_stringshare_add("wireless");
module->enabled = 1;
+   module->delayed = 1;
e_config->modules = eina_list_append(e_config->modules, 
module);
 }
   else if (eina_streq(em->name, "clock"))
@@ -1438,6 +1439,7 @@ e_config_load(void)
module = E_NEW(E_Config_Module, 1);
module->name = eina_stringshare_add("time");
module->enabled = 1;
+   module->delayed = 1;
e_config->modules = eina_list_append(e_config->modules, 
module);
 }
}
@@ -1460,18 +1462,19 @@ e_config_load(void)
CONFIG_VERSION_UPDATE_INFO(22);
 
EINA_LIST_FOREACH(e_config->modules, l, em)
-   {
-  if (!em->enabled) continue;
-  if (eina_streq(em->name, "ibar"))
+ {
+if (!em->enabled) continue;
+if (eina_streq(em->name, "ibar"))
 ibar_en = EINA_TRUE;
-  else if (eina_streq(em->name, "luncher"))
+else if (eina_streq(em->name, "luncher"))
 luncher_en = EINA_TRUE;
-   }
+ }
if (ibar_en && !luncher_en)
  {
 module = E_NEW(E_Config_Module, 1);
 module->name = eina_stringshare_add("luncher");
 module->enabled = 1;
+module->delayed = 1;
 e_config->modules = eina_list_append(e_config->modules, 
module);
  }
 }

-- 




[EGIT] [core/efl] master 04/06: efl_ui_win - teamwork really has issues and i think needs deprecation

2016-12-15 Thread Carsten Haitzler
raster pushed a commit to branch master.

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

commit 75a429328ab97dcdaf652a46329266ed4acf30e0
Author: Carsten Haitzler (Rasterman) 
Date:   Thu Dec 8 19:14:32 2016 +0900

efl_ui_win - teamwork really has issues and i think needs deprecation

teamwork api in elm win (efl_ui_win) has a few issues:

1. it directly ddigs into ecore_wl2 and uses internal headers to use
zwp_* api's directly... which effectively tied elementary directly to
libwayland and thats not a good thing - thats why ecore_wl2 exists -
to act as a layer in between
2. the only thing that supports it is e and only wiht a module and
there is no fallback code in elm to work outside this environment, so
it's kind of broken by design and will not actually reliably work
3. from a stability and security point of view, and api and protocol
that allow a client to ask your wm/compositor to open ANY url - go
make a network request possibly to a hostile url/site is bad. needing
to handle so so so so many protocols, file types etc. etc. is going to
lead to issues that SHOULD at least be isolated in the app, but now it
spreads into your wm/compositor too. :(
4. there is ZERO benefit to asking the wm to do this. the app is
using efl already. it already has all the same abilities with the same
libraries to download/display etc. so why doesnt the app do it itself?
5. doesnt work in windows, osx, framebuffer (fbcon or drm)... only in
x11 and wayland. (and then only with e + module)
6. there is no way to detect if it's going to work and write your own
fallback (which shouldnt be needed/done anyway).

nice work and enthusiasm on making teamwork but it just isn't the right
thing - not in its current form and not by design (security reasons) :(

@deprecate
---
 src/lib/elementary/efl_ui_win.c  | 129 ---
 src/lib/elementary/efl_ui_win.eo |  37 ---
 src/lib/elementary/elm_removed.h |  54 
 3 files changed, 78 insertions(+), 142 deletions(-)

diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c
index 3c2833e..b335375 100644
--- a/src/lib/elementary/efl_ui_win.c
+++ b/src/lib/elementary/efl_ui_win.c
@@ -99,7 +99,6 @@ struct _Efl_Ui_Win_Data
   Ecore_Win32_Window *win;
} win32;
 #endif
-   Eina_Stringshare *teamwork_uri;
 
Efl_Ui_Win_Type   type;
Efl_Ui_Win_Keyboard_Mode  kbdmode;
@@ -2763,7 +2762,6 @@ _efl_ui_win_efl_canvas_group_group_del(Eo *obj, 
Efl_Ui_Win_Data *sd)
 
eina_stringshare_del(sd->shot.info);
ecore_timer_del(sd->shot.timer);
-   eina_stringshare_replace(>teamwork_uri, NULL);
 
 #ifdef HAVE_ELEMENTARY_X
ecore_event_handler_del(sd->x.client_message_handler);
@@ -6659,109 +6657,6 @@ ELM_PART_IMPLEMENT_CONTENT_UNSET(efl_ui_win, 
EFL_UI_WIN, Efl_Ui_Win_Data, Elm_Pa
 
 /* Efl.Part end */
 
-#ifndef EFL_TEAMWORK_VERSION
-# define EFL_TEAMWORK_VERSION 2
-#endif
-
-static EOLIAN void
-_efl_ui_win_teamwork_uri_preload(Eo *obj EINA_UNUSED, Efl_Ui_Win_Data *sd, 
const char *uri)
-{
-#ifdef HAVE_ELEMENTARY_X
-   if (sd->x.xwin)
- {
-ecore_x_window_prop_string_set(sd->x.xwin, 
ECORE_X_ATOM_TEAMWORK_PROPERTY, uri);
-ecore_x_client_message32_send(sd->x.xwin, 
ECORE_X_ATOM_TEAMWORK_PRELOAD,
-  ECORE_X_EVENT_MASK_WINDOW_MANAGE | 
ECORE_X_EVENT_MASK_WINDOW_CHILD_CONFIGURE, EFL_TEAMWORK_VERSION, 0, 0, 0, 0);
- }
-#endif
-#ifdef HAVE_ELEMENTARY_WL2
-   if (sd->wl.win)
- {
-Ecore_Wl2_Display *ewd = ecore_wl2_window_display_get(sd->wl.win);
-if (ewd->wl.teamwork)
-  zwp_teamwork_preload_uri(ewd->wl.teamwork, 
ecore_wl2_window_surface_get(sd->wl.win), uri);
- }
-#endif
-   eina_stringshare_replace(>teamwork_uri, uri);
-}
-
-static EOLIAN void
-_efl_ui_win_teamwork_uri_show(Eo *obj EINA_UNUSED, Efl_Ui_Win_Data *sd, const 
char *uri)
-{
-   int x, y;
-
-   EINA_SAFETY_ON_NULL_RETURN(uri);
-   if (eina_streq(uri, sd->teamwork_uri)) return;
-
-   evas_pointer_canvas_xy_get(sd->evas, , );
-#ifdef HAVE_ELEMENTARY_X
-   if (sd->x.xwin)
- {
-ecore_x_window_prop_string_set(sd->x.xwin, 
ECORE_X_ATOM_TEAMWORK_PROPERTY, uri);
-ecore_x_client_message32_send(sd->x.xwin, 
ECORE_X_ATOM_TEAMWORK_ACTIVATE,
-  ECORE_X_EVENT_MASK_WINDOW_MANAGE | 
ECORE_X_EVENT_MASK_WINDOW_CHILD_CONFIGURE, EFL_TEAMWORK_VERSION, x, y, 0, 0);
- }
-#endif
-#ifdef HAVE_ELEMENTARY_WL2
-   if (sd->wl.win)
- {
-Ecore_Wl2_Display *ewd = ecore_wl2_window_display_get(sd->wl.win);
-if (ewd->wl.teamwork)
-  zwp_teamwork_activate_uri(ewd->wl.teamwork, 
ecore_wl2_window_surface_get(sd->wl.win),
-uri, wl_fixed_from_int(x), wl_fixed_from_int(y));
- }
-#endif
-   eina_stringshare_replace(>teamwork_uri, uri);
-}
-
-static EOLIAN 

[EGIT] [core/efl] master 01/13: evas: Add source_region property to proxy objects

2016-12-15 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit 4e110a34bffe09abe4dd793f9ecf1cf3884ccf22
Author: Jean-Philippe Andre 
Date:   Tue Dec 13 17:41:49 2016 +0900

evas: Add source_region property to proxy objects

This will allow partially rendering a proxy in a smaller image,
limited to the specified region. At the moment, this will allow
apps to create proxies of very large objects and let them deal
with the geometry & clipping.

This is not directly solving the issues with adding a filter
to textblock or the infinite page scrollers.

@feature
---
 src/lib/evas/canvas/efl_canvas_proxy.c   | 51 +++-
 src/lib/evas/canvas/efl_canvas_proxy.eo  | 25 +++-
 src/lib/evas/canvas/evas_image_private.h |  6 
 src/lib/evas/canvas/evas_object_image.c  | 19 ++--
 src/lib/evas/canvas/evas_render.c| 30 ++-
 src/lib/evas/filters/evas_filter.c   |  3 +-
 src/lib/evas/include/evas_private.h  |  4 +--
 7 files changed, 115 insertions(+), 23 deletions(-)

diff --git a/src/lib/evas/canvas/efl_canvas_proxy.c 
b/src/lib/evas/canvas/efl_canvas_proxy.c
index 2e5af8d..2b18482 100644
--- a/src/lib/evas/canvas/efl_canvas_proxy.c
+++ b/src/lib/evas/canvas/efl_canvas_proxy.c
@@ -3,6 +3,18 @@
 
 #define MY_CLASS EFL_CANVAS_PROXY_CLASS
 
+EOLIAN static Efl_Object *
+_efl_canvas_proxy_efl_object_constructor(Eo *eo_obj, Efl_Canvas_Proxy_Data *pd 
EINA_UNUSED)
+{
+   Evas_Image_Data *o;
+
+   eo_obj = efl_constructor(efl_super(eo_obj, MY_CLASS));
+   o = efl_data_scope_get(eo_obj, EFL_CANVAS_IMAGE_INTERNAL_CLASS);
+   if (o) o->efl_canvas_proxy = EINA_TRUE;
+
+   return eo_obj;
+}
+
 Eina_Bool
 _evas_image_proxy_source_set(Eo *eo_obj, Evas_Object *eo_src)
 {
@@ -57,7 +69,7 @@ _evas_image_proxy_source_set(Eo *eo_obj, Evas_Object *eo_src)
 }
 
 EOLIAN static Eina_Bool
-_efl_canvas_proxy_source_set(Eo *eo_obj, void *_pd EINA_UNUSED, Evas_Object 
*eo_src)
+_efl_canvas_proxy_source_set(Eo *eo_obj, Efl_Canvas_Proxy_Data *pd 
EINA_UNUSED, Evas_Object *eo_src)
 {
return _evas_image_proxy_source_set(eo_obj, eo_src);
 }
@@ -70,7 +82,7 @@ _evas_image_proxy_source_get(const Eo *eo_obj)
 }
 
 EOLIAN static Evas_Object *
-_efl_canvas_proxy_source_get(Eo *eo_obj, void *_pd EINA_UNUSED)
+_efl_canvas_proxy_source_get(Eo *eo_obj, Efl_Canvas_Proxy_Data *pd EINA_UNUSED)
 {
return _evas_image_proxy_source_get(eo_obj);
 }
@@ -94,7 +106,7 @@ _evas_image_proxy_source_clip_set(Eo *eo_obj, Eina_Bool 
source_clip)
 }
 
 EOLIAN static void
-_efl_canvas_proxy_source_clip_set(Eo *eo_obj, void *_pd EINA_UNUSED, Eina_Bool 
source_clip)
+_efl_canvas_proxy_source_clip_set(Eo *eo_obj, Efl_Canvas_Proxy_Data *pd 
EINA_UNUSED, Eina_Bool source_clip)
 {
return _evas_image_proxy_source_clip_set(eo_obj, source_clip);
 }
@@ -107,7 +119,7 @@ _evas_image_proxy_source_clip_get(const Eo *eo_obj)
 }
 
 EOLIAN static Eina_Bool
-_efl_canvas_proxy_source_clip_get(Eo *eo_obj, void *_pd EINA_UNUSED)
+_efl_canvas_proxy_source_clip_get(Eo *eo_obj, Efl_Canvas_Proxy_Data *pd 
EINA_UNUSED)
 {
return _evas_image_proxy_source_clip_get(eo_obj);
 }
@@ -131,7 +143,7 @@ _evas_image_proxy_source_events_set(Eo *eo_obj, Eina_Bool 
source_events)
 }
 
 EOLIAN static void
-_efl_canvas_proxy_source_events_set(Eo *eo_obj, void *_pd EINA_UNUSED, 
Eina_Bool repeat)
+_efl_canvas_proxy_source_events_set(Eo *eo_obj, Efl_Canvas_Proxy_Data *pd 
EINA_UNUSED, Eina_Bool repeat)
 {
return _evas_image_proxy_source_events_set(eo_obj, repeat);
 }
@@ -144,7 +156,7 @@ _evas_image_proxy_source_events_get(const Eo *eo_obj)
 }
 
 EOLIAN static Eina_Bool
-_efl_canvas_proxy_source_events_get(Eo *eo_obj, void *_pd EINA_UNUSED)
+_efl_canvas_proxy_source_events_get(Eo *eo_obj, Efl_Canvas_Proxy_Data *pd 
EINA_UNUSED)
 {
return _evas_image_proxy_source_events_get(eo_obj);
 }
@@ -260,7 +272,7 @@ _proxy_image_get(Evas_Image_Data *o)
 }
 
 EOLIAN static Eina_Bool
-_efl_canvas_proxy_efl_gfx_buffer_buffer_map(Eo *eo_obj, void *_pd EINA_UNUSED,
+_efl_canvas_proxy_efl_gfx_buffer_buffer_map(Eo *eo_obj, Efl_Canvas_Proxy_Data 
*pd EINA_UNUSED,
 Eina_Rw_Slice *slice,
 Efl_Gfx_Buffer_Access_Mode mode,
 int x, int y, int w, int h,
@@ -329,7 +341,7 @@ end:
 }
 
 EOLIAN static Eina_Bool
-_efl_canvas_proxy_efl_gfx_buffer_buffer_unmap(Eo *eo_obj, void *_pd 
EINA_UNUSED,
+_efl_canvas_proxy_efl_gfx_buffer_buffer_unmap(Eo *eo_obj, 
Efl_Canvas_Proxy_Data *pd EINA_UNUSED,
   const Eina_Rw_Slice *slice)
 {
Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, 
EFL_CANVAS_OBJECT_CLASS);
@@ -344,6 +356,29 @@ _efl_canvas_proxy_efl_gfx_buffer_buffer_unmap(Eo *eo_obj, 
void *_pd EINA_UNUSED,
return EINA_TRUE;
 }
 

[EGIT] [core/efl] master 08/13: evas: Remove flag use_mapped_ctx and add do_async

2016-12-15 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit 1c21cdfdbb782d389818871d1697ece1098e85c2
Author: Jean-Philippe Andre 
Date:   Fri Dec 16 10:55:47 2016 +0900

evas: Remove flag use_mapped_ctx and add do_async

Always assume use_mapped_ctx as true, the caller of evas_render_mapped
must ensure that the context is suitable (so either clean or contains
the appropriate clip info).

Also pass do_async to mask_subrender. For now it will always be reset
to false as the SW engine requires sync render to convert from RGBA
to Alpha (not great). The upcoming GL async engine should be able to
render masks asynchronously without any problem.
---
 src/lib/evas/canvas/evas_canvas3d_texture.c |  2 +-
 src/lib/evas/canvas/evas_render.c   | 59 +
 src/lib/evas/include/evas_private.h |  4 +-
 3 files changed, 30 insertions(+), 35 deletions(-)

diff --git a/src/lib/evas/canvas/evas_canvas3d_texture.c 
b/src/lib/evas/canvas/evas_canvas3d_texture.c
index 0e152e7..1ad5e97 100644
--- a/src/lib/evas/canvas/evas_canvas3d_texture.c
+++ b/src/lib/evas/canvas/evas_canvas3d_texture.c
@@ -145,7 +145,7 @@ _texture_proxy_subrender(Evas_Canvas3D_Texture *obj)
 -source->cur->geometry.x,
 -source->cur->geometry.y,
 2, 0, 0, e->output.w, e->output.h,
-_render_data, 1, EINA_FALSE, EINA_FALSE);
+_render_data, 1, EINA_FALSE);
   }
 
 e->engine.func->context_free(e->engine.data.output, ctx);
diff --git a/src/lib/evas/canvas/evas_render.c 
b/src/lib/evas/canvas/evas_render.c
index 4b51c1f..d7766f7 100644
--- a/src/lib/evas/canvas/evas_render.c
+++ b/src/lib/evas/canvas/evas_render.c
@@ -1655,7 +1655,7 @@ evas_render_mapped(Evas_Public_Data *evas, Evas_Object 
*eo_obj,
void *surface, int off_x, int off_y, int mapped, int ecx,
int ecy, int ecw, int ech,
Evas_Proxy_Render_Data *proxy_render_data, int level,
-   Eina_Bool use_mapped_ctx, Eina_Bool do_async)
+   Eina_Bool do_async)
 {
Evas_Object_Protected_Data *obj2;
Eina_Bool clean_them = EINA_FALSE;
@@ -1682,8 +1682,8 @@ evas_render_mapped(Evas_Public_Data *evas, Evas_Object 
*eo_obj,
RD(level, "{\n");
RD(level, "  evas_render_mapped(evas:%p, obj:%p", evas->evas, obj->object);
IFRD(obj->name, 0, " '%s'", obj->name);
-   RD(0, ", ctx:%p, sfc:%p, offset:%i,%i, %s, use_mapped_ctx:%d, %s)\n", 
context, surface, off_x, off_y,
-  mapped ? "mapped" : "normal", use_mapped_ctx, do_async ? "async" : 
"sync");
+   RD(0, ", ctx:%p, sfc:%p, offset:%i,%i, %s, %s)\n", context, surface, off_x, 
off_y,
+  mapped ? "mapped" : "normal", do_async ? "async" : "sync");
RD(level, "  obj: '%s' %s", obj->type, obj->is_smart ? "(smart) " : "");
if (obj->is_frame) RD(0, "(frame) ");
if (obj->name) RD(0, "'%s'\n", obj->name);
@@ -1723,7 +1723,7 @@ evas_render_mapped(Evas_Public_Data *evas, Evas_Object 
*eo_obj,
 if (_evas_render_object_is_mask(obj))
   {
  RD(level, "  is mask: redraw:%d sfc:%p\n", obj->mask->redraw, 
obj->mask->surface);
- if (!use_mapped_ctx || (surface != obj->mask->surface))
+ if (surface != obj->mask->surface)
{
   RD(level, "  not rendering mask surface\n");
   RD(level, "}\n");
@@ -1780,7 +1780,7 @@ evas_render_mapped(Evas_Public_Data *evas, Evas_Object 
*eo_obj,
  eina_evlog("-render_object", eo_obj, 0.0, NULL);
  return clean_them;
   }
-else if (obj->no_render && (!use_mapped_ctx || (surface != 
obj->proxy->surface)))
+else if (obj->no_render && (surface != obj->proxy->surface))
   {
  RD(level, "  no_render\n");
  RD(level, "}\n");
@@ -1900,9 +1900,7 @@ evas_render_mapped(Evas_Public_Data *evas, Evas_Object 
*eo_obj,
off_x2, off_y2, 1,
ecx, ecy, ecw, ech,
proxy_render_data,
-   level + 1,
-   EINA_FALSE,
-   do_async);
+   level + 1, 
do_async);
   /* We aren't sure this object will be rendered by
  normal(not proxy) drawing after, we reset this
  only in case of normal drawing. For optmizing,
@@ -1986,7 +1984,7 @@ evas_render_mapped(Evas_Public_Data 

[EGIT] [core/efl] master 09/13: evas: "fix" masks of masks inside a proxy

2016-12-15 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit 2bed30b3984b4e73d64b99fe05d6574001173497
Author: Jean-Philippe Andre 
Date:   Fri Dec 16 11:19:17 2016 +0900

evas: "fix" masks of masks inside a proxy

Here's the situation:

1. A container (genlist) has a mask, M0.
2. An item I0 inside this container uses a proxy P0 as render object
   rather than the item directly (eg. for zooming in/out).
3. An element E0 inside this item has another mask, M1.

Theory:
1. The proxy surface for P0 is rendered, and M1 is applied to
   the element E0.
2. The proxy P0 is rendered on the canvas, with M0 applied.

Practice:
1. The element E0 is prepared for rendering, this triggers
   a mask subrender for M1.
2. M1 is rendered with M0 as a prev mask, then kept in cache and
   not redrawn (no geometry change, etc...)
3. When P0's surface is rendered, M1's surface is the result of M1+M0.
4. When P0 is drawn on screen, we can see the effect of M1+M0 as
   P0's geometry might be different from the item's I0.

Solution:
Discard prev masks and force a mask redraw when we're inside a
proxy. Ideally we should detect if the prev mask belongs to the
insides of the proxy or not.

Problems:
_mask_apply_inside_proxy() is definitely not correct, but it's
not easy to test it. Anyway I believe that in order to properly
implement all of this, we need to rethink evas_render and
the draw context. Non-primary render surfaces (maps, proxies,
masks, filters, ...) should be rendered with a clean context
and clipping, masking, etc should be computed appropriately.
---
 src/lib/evas/canvas/evas_render.c | 99 +--
 1 file changed, 65 insertions(+), 34 deletions(-)

diff --git a/src/lib/evas/canvas/evas_render.c 
b/src/lib/evas/canvas/evas_render.c
index d7766f7..85acd3f 100644
--- a/src/lib/evas/canvas/evas_render.c
+++ b/src/lib/evas/canvas/evas_render.c
@@ -1608,6 +1608,22 @@ _proxy_context_clip(Evas_Public_Data *evas, void *ctx, 
Evas_Proxy_Render_Data *p
   -proxy_render_data->src_obj->cur->geometry.y);
 }
 
+static Eina_Bool
+_mask_apply_inside_proxy(Evas_Proxy_Render_Data *proxy_render_data,
+ Evas_Object_Protected_Data *mask)
+{
+   // Trying to find out if the mask should be applied inside the proxy or not.
+   if (!proxy_render_data || proxy_render_data->source_clip) return EINA_TRUE;
+   if (!proxy_render_data->src_obj->cur->clipper) return EINA_FALSE;
+   if (!mask) return EINA_FALSE;
+
+   // FIXME: Need to implement a logic similar to _proxy_context_clip
+   return EINA_FALSE;
+
+   //if (mask == proxy_render_data->src_obj->cur->clipper) return EINA_TRUE;
+   //return _mask_apply_inside_proxy(proxy_render_data, mask->cur->clipper);
+}
+
 static void
 _evas_render_mapped_context_clip_set(Evas_Public_Data *evas, Evas_Object 
*eo_obj, Evas_Object_Protected_Data *obj, void *ctx, Evas_Proxy_Render_Data 
*proxy_render_data, int off_x, int off_y)
 {
@@ -1952,6 +1968,7 @@ evas_render_mapped(Evas_Public_Data *evas, Evas_Object 
*eo_obj,
   }
 
 /* duplicate context and reset clip */
+// FIXME: Shouldn't we use a new, clean context?
 ctx = ENFN->context_dup(ENDT, context);
 ENFN->context_clip_unset(ENDT, ctx);
 //ENFN->context_multiplier_unset(ENDT, ctx); // this probably should 
be here, too
@@ -1980,11 +1997,20 @@ evas_render_mapped(Evas_Public_Data *evas, Evas_Object 
*eo_obj,
   if (mask)
 {
// This path can be hit when we're multiplying masks on 
top of each other...
-   RD(level, "  has mask: [%p%s%s] redraw:%d sfc:%p\n",
-  mask, mask->name?":":"", mask->name?mask->name:"",
-  mask->mask->redraw, mask->mask->surface);
-   if (mask->mask->redraw || !mask->mask->surface)
- evas_render_mask_subrender(evas, mask, 
obj->clip.prev_mask, level + 1, do_async);
+   Evas_Object_Protected_Data *prev_mask = 
obj->clip.prev_mask;
+   Eina_Bool redraw = mask->mask->redraw || 
!mask->mask->surface;
+
+   RD(level, "  has mask: [%p%s%s] redraw:%d sfc:%p 
prev_mask:%p\n",
+  mask->object, mask->name?":":"", 
mask->name?mask->name:"",
+  mask->mask->redraw, mask->mask->surface, prev_mask);
+   if (prev_mask && 
!_mask_apply_inside_proxy(proxy_render_data, prev_mask))
+ {
+RD(level, "  discard prev mask and redraw (guessed 
outside proxy)\n");
+prev_mask = NULL;
+redraw = 

[EGIT] [core/efl] master 03/13: evas: Use ENFN, ENDT in evas_render

2016-12-15 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit 4f78aba9bf5726bb6b6fe963e4a2db441158f6ff
Author: Jean-Philippe Andre 
Date:   Thu Dec 15 15:25:43 2016 +0900

evas: Use ENFN, ENDT in evas_render

This makes code shorter and easier to read (imo).
Also introduce ENCTX for the engine context. It's used in a couple
places and I believe it's just wrong - but works because the engine
context and the current context are the same.
---
 src/lib/evas/canvas/evas_render.c | 462 +-
 1 file changed, 205 insertions(+), 257 deletions(-)

diff --git a/src/lib/evas/canvas/evas_render.c 
b/src/lib/evas/canvas/evas_render.c
index 075cb10..42cb32f 100644
--- a/src/lib/evas/canvas/evas_render.c
+++ b/src/lib/evas/canvas/evas_render.c
@@ -74,6 +74,7 @@ rend_dbg(const char *txt)
 /* save typing */
 #define ENFN evas->engine.func
 #define ENDT evas->engine.data.output
+#define ENCTX evas->engine.data.context
 
 typedef struct _Render_Updates Render_Updates;
 struct _Render_Updates
@@ -265,18 +266,18 @@ _evas_render_can_render(Evas_Object *eo_obj, 
Evas_Object_Protected_Data *obj)
 }
 
 static void
-_evas_render_prev_cur_clip_cache_add(Evas_Public_Data *e, 
Evas_Object_Protected_Data *obj)
+_evas_render_prev_cur_clip_cache_add(Evas_Public_Data *evas, 
Evas_Object_Protected_Data *obj)
 {
-   e->engine.func->output_redraws_rect_add(e->engine.data.output,
-   obj->prev->cache.clip.x + 
e->framespace.x,
-   obj->prev->cache.clip.y + 
e->framespace.y,
-   obj->prev->cache.clip.w,
-   obj->prev->cache.clip.h);
-   e->engine.func->output_redraws_rect_add(e->engine.data.output,
-   obj->cur->cache.clip.x + 
e->framespace.x,
-   obj->cur->cache.clip.y + 
e->framespace.y,
-   obj->cur->cache.clip.w,
-   obj->cur->cache.clip.h);
+   ENFN->output_redraws_rect_add(ENDT,
+ obj->prev->cache.clip.x + evas->framespace.x,
+ obj->prev->cache.clip.y + evas->framespace.y,
+ obj->prev->cache.clip.w,
+ obj->prev->cache.clip.h);
+   ENFN->output_redraws_rect_add(ENDT,
+ obj->cur->cache.clip.x + evas->framespace.x,
+ obj->cur->cache.clip.y + evas->framespace.y,
+ obj->cur->cache.clip.w,
+ obj->cur->cache.clip.h);
 }
 
 static void
@@ -488,90 +489,81 @@ _evas_render_phase1_direct(Evas_Public_Data *e,
 }
 
 static void
-_evas_render_object_map_change_update(Evas_Public_Data *e, Evas_Object *eo_obj 
EINA_UNUSED,
+_evas_render_object_map_change_update(Evas_Public_Data *evas,
   Evas_Object_Protected_Data *obj,
   Eina_Bool map, Eina_Bool hmap,
   int *redraw_all)
 {
+   Evas_Coord x = 0, y = 0, w = 0, h = 0;
+   const int fx = evas->framespace.x;
+   const int fy = evas->framespace.y;
+
if (map == hmap) return;
 
-   if (obj->map)
+   if (!obj->map)
  {
-Evas_Coord x = 0, y = 0, w = 0, h = 0;
+*redraw_all = 1;
+return;
+ }
 
-if (map)
+   if (map)
+ {
+x = obj->prev->cache.clip.x;
+y = obj->prev->cache.clip.y;
+w = obj->prev->cache.clip.w;
+h = obj->prev->cache.clip.h;
+if (obj->prev->clipper)
   {
- x = obj->prev->cache.clip.x;
- y = obj->prev->cache.clip.y;
- w = obj->prev->cache.clip.w;
- h = obj->prev->cache.clip.h;
- if (obj->prev->clipper)
-   {
-  RECTS_CLIP_TO_RECT(x, y, w, h,
- obj->prev->clipper->prev->cache.clip.x,
- obj->prev->clipper->prev->cache.clip.y,
- obj->prev->clipper->prev->cache.clip.w,
- obj->prev->clipper->prev->cache.clip.h);
-   }
- e->engine.func->output_redraws_rect_add(e->engine.data.output,
- x + e->framespace.x,
- y + e->framespace.y,
- w, h);
- x = obj->map->cur.map->normal_geometry.x;
- y = obj->map->cur.map->normal_geometry.y;
- w = obj->map->cur.map->normal_geometry.w;
- h = obj->map->cur.map->normal_geometry.h;
- if 

[EGIT] [core/efl] master 05/13: evas: Remove context from some engine function

2016-12-15 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit 581505791a2b87f8bfe5a7d6870f6becc409c04e
Author: Jean-Philippe Andre 
Date:   Fri Dec 16 10:40:55 2016 +0900

evas: Remove context from some engine function

This is for canvas_alpha_get. context is never used.
---
 src/lib/evas/canvas/evas_render.c   | 2 +-
 src/lib/evas/canvas/render2/evas_render2_old.c  | 3 +--
 src/lib/evas/include/evas_private.h | 2 +-
 src/modules/evas/engines/buffer/evas_engine.c   | 2 +-
 src/modules/evas/engines/eglfs/evas_engine.c| 2 +-
 src/modules/evas/engines/fb/evas_engine.c   | 2 +-
 src/modules/evas/engines/gl_cocoa/evas_engine.c | 2 +-
 src/modules/evas/engines/gl_drm/evas_engine.c   | 2 +-
 src/modules/evas/engines/gl_sdl/evas_engine.c   | 2 +-
 src/modules/evas/engines/gl_x11/evas_engine.c   | 2 +-
 src/modules/evas/engines/psl1ght/evas_engine.c  | 2 +-
 src/modules/evas/engines/software_ddraw/evas_engine.c   | 2 +-
 src/modules/evas/engines/software_gdi/evas_engine.c | 2 +-
 src/modules/evas/engines/software_generic/evas_engine.c | 2 +-
 src/modules/evas/engines/software_x11/evas_engine.c | 2 +-
 src/modules/evas/engines/wayland_egl/evas_engine.c  | 2 +-
 16 files changed, 16 insertions(+), 17 deletions(-)

diff --git a/src/lib/evas/canvas/evas_render.c 
b/src/lib/evas/canvas/evas_render.c
index 42cb32f..73682f3 100644
--- a/src/lib/evas/canvas/evas_render.c
+++ b/src/lib/evas/canvas/evas_render.c
@@ -2959,7 +2959,7 @@ evas_render_updates_internal(Evas *eo_e,
  }
 
/* phase 1.5. check if the video should be inlined or stay in their overlay 
*/
-   alpha = ENFN->canvas_alpha_get(ENDT, ENCTX);
+   alpha = ENFN->canvas_alpha_get(ENDT);
 
EINA_LIST_FOREACH(e->video_objects, ll, eo_obj)
  {
diff --git a/src/lib/evas/canvas/render2/evas_render2_old.c 
b/src/lib/evas/canvas/render2/evas_render2_old.c
index d57d31d..b486bae 100644
--- a/src/lib/evas/canvas/render2/evas_render2_old.c
+++ b/src/lib/evas/canvas/render2/evas_render2_old.c
@@ -274,8 +274,7 @@ _evas_render2_stage_render_do(Evas_Public_Data *e, 
Eina_Bool do_async EINA_UNUSE
// XXX: actually render now (either in thread or in mainloop)
// XXX:
printf(" _evas_render2_stage_render_do %p\n", e);
-   alpha = e->engine.func->canvas_alpha_get(e->engine.data.output,
-e->engine.data.context);
+   alpha = e->engine.func->canvas_alpha_get(e->engine.data.output);
while ((uinf.surface =
e->engine.func->output_redraws_next_update_get
(e->engine.data.output,
diff --git a/src/lib/evas/include/evas_private.h 
b/src/lib/evas/include/evas_private.h
index 356c3c3..9fe56df 100644
--- a/src/lib/evas/include/evas_private.h
+++ b/src/lib/evas/include/evas_private.h
@@ -1363,7 +1363,7 @@ struct _Evas_Func
 
void *(*context_new)(void *data);
void *(*context_dup)(void *data, void *context);
-   Eina_Bool (*canvas_alpha_get)   (void *data, void *context);
+   Eina_Bool (*canvas_alpha_get)   (void *data);
void (*context_free)(void *data, void *context);
void (*context_clip_set)(void *data, void *context, int x, 
int y, int w, int h);
void (*context_clip_image_set)  (void *data, void *context, void 
*surface, int x, int y, Evas_Public_Data *evas, Eina_Bool do_async);
diff --git a/src/modules/evas/engines/buffer/evas_engine.c 
b/src/modules/evas/engines/buffer/evas_engine.c
index b838d99..5d2efdf 100644
--- a/src/modules/evas/engines/buffer/evas_engine.c
+++ b/src/modules/evas/engines/buffer/evas_engine.c
@@ -165,7 +165,7 @@ eng_output_free(void *data)
 }
 
 static Eina_Bool
-eng_canvas_alpha_get(void *data, void *context EINA_UNUSED)
+eng_canvas_alpha_get(void *data)
 {
Render_Engine *re;
 
diff --git a/src/modules/evas/engines/eglfs/evas_engine.c 
b/src/modules/evas/engines/eglfs/evas_engine.c
index 3e5b7ee..b7fa945 100644
--- a/src/modules/evas/engines/eglfs/evas_engine.c
+++ b/src/modules/evas/engines/eglfs/evas_engine.c
@@ -864,7 +864,7 @@ eng_output_free(void *data)
 }
 
 static Eina_Bool
-eng_canvas_alpha_get(void *data, void *info EINA_UNUSED)
+eng_canvas_alpha_get(void *data)
 {
Render_Engine *re;
 
diff --git a/src/modules/evas/engines/fb/evas_engine.c 
b/src/modules/evas/engines/fb/evas_engine.c
index b144c8a..b87a7aa 100644
--- a/src/modules/evas/engines/fb/evas_engine.c
+++ b/src/modules/evas/engines/fb/evas_engine.c
@@ -185,7 +185,7 @@ eng_output_free(void *data)
 }
 
 static Eina_Bool
-eng_canvas_alpha_get(void *data, void *context EINA_UNUSED)
+eng_canvas_alpha_get(void *data)
 {
Render_Engine *re;
 
diff --git a/src/modules/evas/engines/gl_cocoa/evas_engine.c 

[EGIT] [core/efl] master 04/13: evas: Remove context from polygon internal functions

2016-12-15 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit 260d838d221703ee8478c10bfa373ee1374f65d3
Author: Jean-Philippe Andre 
Date:   Fri Dec 16 10:37:54 2016 +0900

evas: Remove context from polygon internal functions

It's not used
---
 src/lib/evas/canvas/evas_main.c | 1 -
 src/lib/evas/canvas/evas_object_polygon.c   | 3 ---
 src/lib/evas/include/evas_private.h | 4 ++--
 src/modules/evas/engines/gl_generic/evas_engine.c   | 4 ++--
 src/modules/evas/engines/software_generic/evas_engine.c | 4 ++--
 5 files changed, 6 insertions(+), 10 deletions(-)

diff --git a/src/lib/evas/canvas/evas_main.c b/src/lib/evas/canvas/evas_main.c
index c419631..5f7698f 100644
--- a/src/lib/evas/canvas/evas_main.c
+++ b/src/lib/evas/canvas/evas_main.c
@@ -856,7 +856,6 @@ _image_data_unset(Evas_Object_Protected_Data *obj, 
Eina_List **list)
else CHECK(EFL_CANVAS_POLYGON_CLASS, Efl_Canvas_Polygon_Data,
 data->engine_data =
   
obj->layer->evas->engine.func->polygon_points_clear(obj->layer->evas->engine.data.output,
-  
obj->layer->evas->engine.data.context,
   
data->engine_data))
else CHECK(EVAS_CANVAS3D_TEXTURE_CLASS, Evas_Canvas3D_Texture_Data,
 if (obj->layer->evas->engine.func->texture_free)
diff --git a/src/lib/evas/canvas/evas_object_polygon.c 
b/src/lib/evas/canvas/evas_object_polygon.c
index 29f7ca1..45cb103 100644
--- a/src/lib/evas/canvas/evas_object_polygon.c
+++ b/src/lib/evas/canvas/evas_object_polygon.c
@@ -263,7 +263,6 @@ evas_object_polygon_free(Evas_Object *eo_obj EINA_UNUSED,
 free(list_data);
  }
o->engine_data = 
obj->layer->evas->engine.func->polygon_points_clear(obj->layer->evas->engine.data.output,
-
obj->layer->evas->engine.data.context,
 
o->engine_data);
 }
 
@@ -291,14 +290,12 @@ evas_object_polygon_render(Evas_Object *eo_obj 
EINA_UNUSED,
if (o->changed)
  {
 o->engine_data = 
obj->layer->evas->engine.func->polygon_points_clear(obj->layer->evas->engine.data.output,
- 
obj->layer->evas->engine.data.context,
  
o->engine_data);
 EINA_LIST_FOREACH(o->points, l, p)
   {
  //px = evas_coord_world_x_to_screen(obj->layer->evas, p->x);
  //py = evas_coord_world_y_to_screen(obj->layer->evas, p->y);
  o->engine_data = 
obj->layer->evas->engine.func->polygon_point_add(obj->layer->evas->engine.data.output,
-   
obj->layer->evas->engine.data.context,

o->engine_data,

p->x, p->y);
   }
diff --git a/src/lib/evas/include/evas_private.h 
b/src/lib/evas/include/evas_private.h
index 329c724..356c3c3 100644
--- a/src/lib/evas/include/evas_private.h
+++ b/src/lib/evas/include/evas_private.h
@@ -1390,8 +1390,8 @@ struct _Evas_Func
 
void (*line_draw)   (void *data, void *context, void 
*surface, int x1, int y1, int x2, int y2, Eina_Bool do_async);
 
-   void *(*polygon_point_add)  (void *data, void *context, void 
*polygon, int x, int y);
-   void *(*polygon_points_clear)   (void *data, void *context, void 
*polygon);
+   void *(*polygon_point_add)  (void *data, void *polygon, int x, 
int y);
+   void *(*polygon_points_clear)   (void *data, void *polygon);
void (*polygon_draw)(void *data, void *context, void 
*surface, void *polygon, int x, int y, Eina_Bool do_async);
 
void *(*image_load) (void *data, const char *file, 
const char *key, int *error, Evas_Image_Load_Opts *lo);
diff --git a/src/modules/evas/engines/gl_generic/evas_engine.c 
b/src/modules/evas/engines/gl_generic/evas_engine.c
index 77372c7..b0f467f 100644
--- a/src/modules/evas/engines/gl_generic/evas_engine.c
+++ b/src/modules/evas/engines/gl_generic/evas_engine.c
@@ -136,13 +136,13 @@ eng_line_draw(void *data, void *context, void *surface, 
int p1x, int p1y, int p2
 }
 
 static void *
-eng_polygon_point_add(void *data EINA_UNUSED, void *context EINA_UNUSED, void 
*polygon, int x, int y)
+eng_polygon_point_add(void *data EINA_UNUSED, void *polygon, int x, int y)
 {
return evas_gl_common_poly_point_add(polygon, x, y);
 }
 
 static void *
-eng_polygon_points_clear(void *data EINA_UNUSED, void *context 

[EGIT] [core/efl] master 11/13: evas: Change int into a single bit

2016-12-15 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit e3b8bcc7710e489021b10374c7e877212749
Author: Jean-Philippe Andre 
Date:   Fri Dec 16 14:35:52 2016 +0900

evas: Change int into a single bit

clean_layer is a bool
---
 src/lib/evas/canvas/evas_callbacks.c   | 6 +++---
 src/lib/evas/canvas/evas_layer.c   | 2 +-
 src/lib/evas/canvas/evas_object_main.c | 4 ++--
 src/lib/evas/canvas/evas_render.c  | 2 +-
 src/lib/evas/include/evas_private.h| 8 +++-
 5 files changed, 10 insertions(+), 12 deletions(-)

diff --git a/src/lib/evas/canvas/evas_callbacks.c 
b/src/lib/evas/canvas/evas_callbacks.c
index 3487543..f67b0c2 100644
--- a/src/lib/evas/canvas/evas_callbacks.c
+++ b/src/lib/evas/canvas/evas_callbacks.c
@@ -324,9 +324,9 @@ evas_object_event_callback_call(Evas_Object *eo_obj, 
Evas_Object_Protected_Data
 
if (!obj) return;
if ((obj->delete_me) || (!obj->layer)) return;
-   if ((obj->last_event == event_id) &&
+   if ((obj->last_event_id == event_id) &&
(obj->last_event_type == type)) return;
-   if (obj->last_event > event_id)
+   if (obj->last_event_id > event_id)
  {
 if ((obj->last_event_type == EVAS_CALLBACK_MOUSE_OUT) &&
 ((type >= EVAS_CALLBACK_MOUSE_DOWN) &&
@@ -335,7 +335,7 @@ evas_object_event_callback_call(Evas_Object *eo_obj, 
Evas_Object_Protected_Data
  return;
   }
  }
-   obj->last_event = event_id;
+   obj->last_event_id = event_id;
obj->last_event_type = type;
if (!(e = obj->layer->evas)) return;
 
diff --git a/src/lib/evas/canvas/evas_layer.c b/src/lib/evas/canvas/evas_layer.c
index 3c0a23e..7d29a58 100644
--- a/src/lib/evas/canvas/evas_layer.c
+++ b/src/lib/evas/canvas/evas_layer.c
@@ -116,7 +116,7 @@ evas_layer_free_objects(Evas_Layer *lay)
 
EINA_INLIST_FREE(lay->objects, obj)
  {
-evas_object_free(obj->object, 0);
+evas_object_free(obj->object, EINA_FALSE);
  }
 }
 
diff --git a/src/lib/evas/canvas/evas_object_main.c 
b/src/lib/evas/canvas/evas_object_main.c
index 795ac3f..a030505 100644
--- a/src/lib/evas/canvas/evas_object_main.c
+++ b/src/lib/evas/canvas/evas_object_main.c
@@ -404,11 +404,11 @@ evas_object_cur_prev(Evas_Object *eo_obj)
 }
 
 void
-evas_object_free(Evas_Object *eo_obj, int clean_layer)
+evas_object_free(Evas_Object *eo_obj, Eina_Bool clean_layer)
 {
Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, MY_CLASS);
if (!obj) return;
-   obj->clean_layer = clean_layer;
+   obj->clean_layer = !!clean_layer;
 
int was_smart_child = 0;
 
diff --git a/src/lib/evas/canvas/evas_render.c 
b/src/lib/evas/canvas/evas_render.c
index a3b4a14..e49bbbd 100644
--- a/src/lib/evas/canvas/evas_render.c
+++ b/src/lib/evas/canvas/evas_render.c
@@ -3368,7 +3368,7 @@ evas_render_updates_internal(Evas *eo_e,
for (i = 0; i < e->delete_objects.count; ++i)
  {
 obj = eina_array_data_get(>delete_objects, i);
-evas_object_free(obj->object, 1);
+evas_object_free(obj->object, EINA_TRUE);
  }
eina_array_clean(>delete_objects);
/* if we deleted no objects this frame or we deleted a lot (> 1024) then
diff --git a/src/lib/evas/include/evas_private.h 
b/src/lib/evas/include/evas_private.h
index 2d8bd34..25e7a7d 100644
--- a/src/lib/evas/include/evas_private.h
+++ b/src/lib/evas/include/evas_private.h
@@ -1154,10 +1154,7 @@ struct _Evas_Object_Protected_Data
 
int last_mouse_down_counter;
int last_mouse_up_counter;
-
-   // Daniel: Added because the destructor can't take parameters, at least for 
the moment
-   int clean_layer;
-   int last_event;
+   int last_event_id;
Evas_Callback_Type  last_event_type;
 
struct {
@@ -1204,6 +1201,7 @@ struct _Evas_Object_Protected_Data
Eina_Bool   efl_del_called : 1;
Eina_Bool   no_render : 1; // since 1.15
Eina_Bool   legacy : 1; // used legacy constructor
+   Eina_Bool   clean_layer : 1; // destructor option
 
struct  {
   Eina_Boolpass_events : 1;
@@ -1586,7 +1584,7 @@ Evas_Object *evas_object_new(Evas *e);
 void evas_object_change_reset(Evas_Object *obj);
 void evas_object_clip_recalc(Evas_Object_Protected_Data *obj);
 void evas_object_cur_prev(Evas_Object *obj);
-void evas_object_free(Evas_Object *obj, int clean_layer);
+void evas_object_free(Evas_Object *obj, Eina_Bool clean_layer);
 void evas_object_update_bounding_box(Evas_Object *obj, 
Evas_Object_Protected_Data *pd, Evas_Smart_Data *s);
 void evas_object_inject(Evas_Object *obj, Evas_Object_Protected_Data *pd, Evas 
*e);
 void evas_object_release(Evas_Object *obj, Evas_Object_Protected_Data *pd, int 
clean_layer);

-- 




[EGIT] [core/efl] master 12/13: test.edc: Fix indentation of a group

2016-12-15 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit c4bceb796dca4dd90802e13739ec0d5475a0dc18
Author: Jean-Philippe Andre 
Date:   Fri Dec 16 14:55:44 2016 +0900

test.edc: Fix indentation of a group
---
 data/elementary/objects/test.edc | 120 +++
 1 file changed, 60 insertions(+), 60 deletions(-)

diff --git a/data/elementary/objects/test.edc b/data/elementary/objects/test.edc
index e58a595..9453d84 100644
--- a/data/elementary/objects/test.edc
+++ b/data/elementary/objects/test.edc
@@ -749,73 +749,73 @@ collections {
  }
   }
}
-group { name: "page_layout";
-   parts {
-  part { name: "bg";
- type: RECT;
- scale: 1;
- description { state: "default" 0.0;
-   min: 400 500;
-   max: 400 500;
-   color: 0 0 0 0;
-}
-  }
-  part { name: "page";
- type: SWALLOW;
- scale: 1;
- description { state: "default" 0.0;
-   rel1.relative: 0.1 0.1;
-   rel1.to:"bg";
-   rel2.relative: 0.9 0.9;
-   rel2.to:"bg";
- }
-  }
-  part { name: "text";
- type: TEXT;
- scale: 1;
- description { state: "default" 0.0;
-   fixed: 1 1;
-   rel1.relative: 0.5 0.5;
-   rel2.relative: 0.5 0.5;
-   text {
-  min: 1 1;
-  size: 50;
-  ellipsis: -1;
+   group { name: "page_layout";
+  parts {
+ part { name: "bg";
+type: RECT;
+scale: 1;
+description { state: "default" 0.0;
+  min: 400 500;
+  max: 400 500;
+  color: 0 0 0 0;
}
  }
-  }
-  part { name: "element1";
- type: SWALLOW;
- scale: 1;
- description { state: "default" 0.0;
-   rel1.relative: 0.4 0.2;
-   rel1.to:"bg";
-   rel2.relative: 0.6 0.4;
-   rel2.to:"bg";
+ part { name: "page";
+type: SWALLOW;
+scale: 1;
+description { state: "default" 0.0;
+  rel1.relative: 0.1 0.1;
+  rel1.to:"bg";
+  rel2.relative: 0.9 0.9;
+  rel2.to:"bg";
+}
  }
-  }
-  part { name: "element2";
- type: SWALLOW;
- scale: 1;
- description { state: "default" 0.0;
-   rel1.relative: 0.4 0.6;
-   rel1.to:"bg";
-   rel2.relative: 0.6 0.7;
-   rel2.to:"bg";
+ part { name: "text";
+type: TEXT;
+scale: 1;
+description { state: "default" 0.0;
+  fixed: 1 1;
+  rel1.relative: 0.5 0.5;
+  rel2.relative: 0.5 0.5;
+  text {
+ min: 1 1;
+ size: 50;
+ ellipsis: -1;
+  }
+}
  }
-  }
-  part { name: "element3";
- type: SWALLOW;
- scale: 1;
- description { state: "default" 0.0;
-   rel1.relative: 0.4 0.7;
-   rel1.to:"bg";
-   rel2.relative: 0.6 0.8;
-   rel2.to:"bg";
+ part { name: "element1";
+type: SWALLOW;
+scale: 1;
+description { state: "default" 0.0;
+  rel1.relative: 0.4 0.2;
+  rel1.to:"bg";
+  rel2.relative: 0.6 0.4;
+  rel2.to:"bg";
+}
+ }
+ part { name: "element2";
+type: SWALLOW;
+scale: 1;
+description { state: "default" 0.0;
+  rel1.relative: 0.4 0.6;
+  rel1.to:"bg";
+  rel2.relative: 0.6 0.7;
+  rel2.to:"bg";
+}
+ }
+ part { name: "element3";
+type: SWALLOW;
+scale: 1;
+description { state: "default" 0.0;
+  rel1.relative: 0.4 0.7;
+  rel1.to:"bg";
+  rel2.relative: 0.6 0.8;
+  rel2.to:"bg";
+}
  }
   }
}
-}
group { "layout_edje";
   parts {
  rect { "red";

-- 




[EGIT] [core/efl] master 07/13: evas: Call object render in mask_subrender

2016-12-15 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit 3e0f3822f144b254c9d541a32c0d789036453da4
Author: Jean-Philippe Andre 
Date:   Fri Dec 16 10:53:03 2016 +0900

evas: Call object render in mask_subrender

This can avoid some invalid render from evas_render_mapped in
a rare case. I'm not sure about the conditions but I know for
sure that at the moment mask_subrender should be only rendering
plain old images into a dedicated surface. So no need for
evas_render_mapped here.
---
 src/lib/evas/canvas/evas_render.c | 16 +---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/src/lib/evas/canvas/evas_render.c 
b/src/lib/evas/canvas/evas_render.c
index d956ec3..4b51c1f 100644
--- a/src/lib/evas/canvas/evas_render.c
+++ b/src/lib/evas/canvas/evas_render.c
@@ -2491,9 +2491,19 @@ evas_render_mask_subrender(Evas_Public_Data *evas,
 prev_mask->cur->geometry.y - y,
 evas, EINA_FALSE);
 }
-  evas_render_mapped(evas, mask->object, mask, ctx, mdata->surface,
- -x, -y, 2, 0, 0, evas->output.w, evas->output.h,
- NULL, level, EINA_TRUE, EINA_FALSE);
+
+  if (EINA_LIKELY(!mask->is_smart))
+{
+   mask->func->render(mask->object, mask, mask->private_data,
+  ENDT, ctx, mdata->surface, -x, -y, 
EINA_FALSE);
+}
+  else
+{
+   // Unreachable code until we implement support for smart masks
+   evas_render_mapped(evas, mask->object, mask, ctx, 
mdata->surface,
+  -x, -y, 2, 0, 0, evas->output.w, 
evas->output.h,
+  NULL, level, EINA_TRUE, EINA_FALSE);
+}
   ENFN->context_free(ENDT, ctx);
 
   /* BEGIN HACK */

-- 




[EGIT] [core/efl] master 13/13: evas: Apply clip when rendering a masked mask

2016-12-15 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit 489815457b9e7baeadb0d8050dc25434c77d0fe9
Author: Jean-Philippe Andre 
Date:   Fri Dec 16 15:21:01 2016 +0900

evas: Apply clip when rendering a masked mask

This fixes a rare crash in the SW engine when a masked mask is
to be rerendered. The clip adds more safety as the lower render
draw functions assume it is properly set.
---
 src/lib/evas/canvas/evas_render.c | 5 +
 1 file changed, 5 insertions(+)

diff --git a/src/lib/evas/canvas/evas_render.c 
b/src/lib/evas/canvas/evas_render.c
index e49bbbd..a5806bd 100644
--- a/src/lib/evas/canvas/evas_render.c
+++ b/src/lib/evas/canvas/evas_render.c
@@ -2516,6 +2516,11 @@ evas_render_mask_subrender(Evas_Public_Data *evas,
 prev_mask->cur->geometry.x - x,
 prev_mask->cur->geometry.y - y,
 evas, do_async);
+   ENFN->context_clip_set(ENDT, ctx,
+  prev_mask->cur->geometry.x - x,
+  prev_mask->cur->geometry.y - y,
+  prev_mask->cur->geometry.w,
+  prev_mask->cur->geometry.h);
 }
 
   if (EINA_LIKELY(!mask->is_smart))

-- 




[EGIT] [core/efl] master 02/13: evas: Avoid calling efl_isa in proxy_subrender

2016-12-15 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit ae69b10455f5def3416a04dd528e1c44a767a0b4
Author: Jean-Philippe Andre 
Date:   Wed Dec 14 16:28:42 2016 +0900

evas: Avoid calling efl_isa in proxy_subrender

It's not necessary.
---
 src/lib/evas/canvas/evas_object_image.c | 6 +++---
 src/lib/evas/canvas/evas_render.c   | 6 +-
 src/lib/evas/filters/evas_filter.c  | 2 +-
 src/lib/evas/include/evas_private.h | 2 +-
 4 files changed, 6 insertions(+), 10 deletions(-)

diff --git a/src/lib/evas/canvas/evas_object_image.c 
b/src/lib/evas/canvas/evas_object_image.c
index 9fd263b..2a38074 100644
--- a/src/lib/evas/canvas/evas_object_image.c
+++ b/src/lib/evas/canvas/evas_object_image.c
@@ -920,7 +920,7 @@ _efl_canvas_image_internal_efl_file_save(const Eo *eo_obj, 
Evas_Image_Data *o, c
 Eina_Rectangle region = { 0, 0, 0, 0 };
 o->proxyrendering = EINA_TRUE;
 evas_render_proxy_subrender(obj->layer->evas->evas, o->cur->source,
-(Eo *) eo_obj, obj, region, EINA_FALSE);
+(Eo *) eo_obj, obj, region, 
o->proxy_src_clip, EINA_FALSE);
 pixels = source->proxy->surface;
 imagew = source->proxy->w;
 imageh = source->proxy->h;
@@ -1935,7 +1935,7 @@ _evas_image_render(Eo *eo_obj, Evas_Object_Protected_Data 
*obj,
   }
 o->proxyrendering = EINA_TRUE;
 evas_render_proxy_subrender(obj->layer->evas->evas, o->cur->source,
-eo_obj, obj, region, EINA_FALSE);
+eo_obj, obj, region, o->proxy_src_clip, 
EINA_FALSE);
 pixels = source->proxy->surface;
 imagew = source->proxy->w;
 imageh = source->proxy->h;
@@ -2970,7 +2970,7 @@ evas_object_image_is_inside(Evas_Object *eo_obj,
   }
 o->proxyrendering = EINA_TRUE;
 evas_render_proxy_subrender(obj->layer->evas->evas, o->cur->source,
-eo_obj, obj, region, EINA_FALSE);
+eo_obj, obj, region, o->proxy_src_clip, 
EINA_FALSE);
 pixels = source->proxy->surface;
 imagew = source->proxy->w;
 imageh = source->proxy->h;
diff --git a/src/lib/evas/canvas/evas_render.c 
b/src/lib/evas/canvas/evas_render.c
index 66d82f4..075cb10 100644
--- a/src/lib/evas/canvas/evas_render.c
+++ b/src/lib/evas/canvas/evas_render.c
@@ -2255,11 +2255,10 @@ evas_render_mapped(Evas_Public_Data *evas, Evas_Object 
*eo_obj,
 void
 evas_render_proxy_subrender(Evas *eo_e, Evas_Object *eo_source, Evas_Object 
*eo_proxy,
 Evas_Object_Protected_Data *proxy_obj, 
Eina_Rectangle region,
-Eina_Bool do_async)
+Eina_Bool source_clip, Eina_Bool do_async)
 {
Evas_Public_Data *evas = efl_data_scope_get(eo_e, EVAS_CANVAS_CLASS);
Evas_Object_Protected_Data *source;
-   Eina_Bool source_clip = EINA_FALSE;
int level = 1;
void *ctx;
int x, y, w, h, W, H;
@@ -2323,9 +2322,6 @@ evas_render_proxy_subrender(Evas *eo_e, Evas_Object 
*eo_source, Evas_Object *eo_
 ENFN->context_free(ENDT, ctx);
 eina_evlog("-proxy_fill", eo_proxy, 0.0, NULL);
 
-if (efl_isa(eo_proxy, EFL_CANVAS_IMAGE_INTERNAL_CLASS))
-  source_clip = _evas_image_proxy_source_clip_get(eo_proxy);
-
 Evas_Proxy_Render_Data proxy_render_data = {
  .eo_proxy = eo_proxy,
  .proxy_obj = proxy_obj,
diff --git a/src/lib/evas/filters/evas_filter.c 
b/src/lib/evas/filters/evas_filter.c
index 0f799a5..eaec9a7 100644
--- a/src/lib/evas/filters/evas_filter.c
+++ b/src/lib/evas/filters/evas_filter.c
@@ -125,7 +125,7 @@ evas_filter_context_proxy_render_all(Evas_Filter_Context 
*ctx, Eo *eo_obj,
XDBG("Source needs to be rendered: '%s' of type '%s' (%s)",
fb->source_name, 
efl_class_name_get(efl_class_get(fb->source)),
source->proxy->redraw ? "redraw" : "no surface");
-   evas_render_proxy_subrender(ctx->evas->evas, fb->source, 
eo_obj, obj, region, do_async);
+   evas_render_proxy_subrender(ctx->evas->evas, fb->source, 
eo_obj, obj, region, EINA_FALSE, do_async);
 }
   _filter_buffer_backing_free(fb);
   XDBG("Source #%d '%s' has dimensions %dx%d", fb->id, 
fb->source_name, fb->w, fb->h);
diff --git a/src/lib/evas/include/evas_private.h 
b/src/lib/evas/include/evas_private.h
index 8f8f63b..329c724 100644
--- a/src/lib/evas/include/evas_private.h
+++ b/src/lib/evas/include/evas_private.h
@@ -1984,7 +1984,7 @@ Eina_Bool evas_render_mapped(Evas_Public_Data *e, 
Evas_Object *obj,
  int level, Eina_Bool use_mapped_ctx, Eina_Bool 
do_async);
 void evas_render_invalidate(Evas *e);
 void 

[EGIT] [core/efl] master 06/13: evas: Remove context from the evas public data

2016-12-15 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit 70676a4179e20ed9e9735ede9d72cd6a8be78103
Author: Jean-Philippe Andre 
Date:   Fri Dec 16 10:44:47 2016 +0900

evas: Remove context from the evas public data

It was never used, except in dubious situations (most likely a typo).
A clean context is now used in the top-most call to
evas_render_updates_internal_loop.
---
 src/lib/evas/canvas/evas_main.c |  5 -
 src/lib/evas/canvas/evas_render.c   | 13 -
 src/lib/evas/include/evas_private.h |  2 --
 3 files changed, 8 insertions(+), 12 deletions(-)

diff --git a/src/lib/evas/canvas/evas_main.c b/src/lib/evas/canvas/evas_main.c
index 5f7698f..912760c 100644
--- a/src/lib/evas/canvas/evas_main.c
+++ b/src/lib/evas/canvas/evas_main.c
@@ -349,8 +349,6 @@ _evas_canvas_efl_object_destructor(Eo *eo_e, 
Evas_Public_Data *e)
  {
 e->engine.func->ector_destroy(e->engine.data.output,
   e->engine.ector);
-e->engine.func->context_free(e->engine.data.output,
- e->engine.data.context);
 e->engine.func->output_free(e->engine.data.output);
 e->engine.func->info_free(eo_e, e->engine.info);
  }
@@ -454,9 +452,6 @@ _evas_canvas_engine_info_set(Eo *eo_e EINA_UNUSED, 
Evas_Public_Data *e, Evas_Eng
 e->engine.data.output = e->engine.func->setup(info, e->output.w, 
e->output.h);
  }
 
-   if (!e->engine.data.context)
- e->engine.data.context = 
e->engine.func->context_new(e->engine.data.output);
-
return !!e->engine.data.output;
 }
 
diff --git a/src/lib/evas/canvas/evas_render.c 
b/src/lib/evas/canvas/evas_render.c
index 73682f3..d956ec3 100644
--- a/src/lib/evas/canvas/evas_render.c
+++ b/src/lib/evas/canvas/evas_render.c
@@ -74,7 +74,6 @@ rend_dbg(const char *txt)
 /* save typing */
 #define ENFN evas->engine.func
 #define ENDT evas->engine.data.output
-#define ENCTX evas->engine.data.context
 
 typedef struct _Render_Updates Render_Updates;
 struct _Render_Updates
@@ -2729,7 +2728,7 @@ evas_render_updates_internal_loop(Evas *eo_e, 
Evas_Public_Data *evas,
if (alpha)
  {
 ENFN->context_color_set(ENDT, context, 0, 0, 0, 0);
-ENFN->context_multiplier_unset(ENDT, ENCTX); // XXX: Why not 
'context'???
+ENFN->context_multiplier_unset(ENDT, context);
 ENFN->context_render_op_set(ENDT, context, EVAS_RENDER_COPY);
 ENFN->rectangle_draw(ENDT, context, surface, cx, cy, cw, ch, do_async);
 ENFN->context_cutout_clear(ENDT, context);
@@ -3113,6 +3112,8 @@ evas_render_updates_internal(Evas *eo_e,
  , , , ,
  , , , )))
   {
+ void *ctx;
+
  haveup = EINA_TRUE;
 
  /* phase 6.1 render every snapshot that needs to be updated
@@ -3133,7 +3134,6 @@ evas_render_updates_internal(Evas *eo_e,
 
   if (eina_rectangle_intersection(, ))
 {
-   void *ctx;
void *pseudo_canvas;
unsigned int restore_offset = offset;
 
@@ -3176,13 +3176,16 @@ evas_render_updates_internal(Evas *eo_e,
   eina_spinlock_release(&(e->render.lock));
}
 
- clean_them |= evas_render_updates_internal_loop(eo_e, e, surface, 
ENCTX,
- NULL,
+ ctx = ENFN->context_new(ENDT);
+ clean_them |= evas_render_updates_internal_loop(eo_e, e, surface,
+ ctx, NULL,
  ux, uy, uw, uh,
  cx, cy, cw, ch,
  fx, fy, alpha,
  do_async,
  , 0);
+ ENFN->context_free(ENDT, ctx);
+
  eina_evlog("-render_update", eo_e, 0.0, NULL);
  if (!do_async)
{
diff --git a/src/lib/evas/include/evas_private.h 
b/src/lib/evas/include/evas_private.h
index 9fe56df..cdbf15b 100644
--- a/src/lib/evas/include/evas_private.h
+++ b/src/lib/evas/include/evas_private.h
@@ -864,8 +864,6 @@ struct _Evas_Public_Data
   Ector_Surface *ector;
   struct {
  void *output;
-
- void *context;
   } data;
 
   void *info;

-- 




[EGIT] [core/efl] master 10/13: evas: Fix masks of masks

2016-12-15 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

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

commit b0c67adb101d7cab029be0b3c3a400c8d95a4aae
Author: Jean-Philippe Andre 
Date:   Fri Dec 16 12:16:01 2016 +0900

evas: Fix masks of masks

Don't ask. This is a world of magic.
---
 src/lib/evas/canvas/evas_object_main.c |  1 +
 src/lib/evas/canvas/evas_render.c  | 21 +++--
 src/lib/evas/include/evas_inline.x |  2 ++
 3 files changed, 10 insertions(+), 14 deletions(-)

diff --git a/src/lib/evas/canvas/evas_object_main.c 
b/src/lib/evas/canvas/evas_object_main.c
index a4b67d8..795ac3f 100644
--- a/src/lib/evas/canvas/evas_object_main.c
+++ b/src/lib/evas/canvas/evas_object_main.c
@@ -298,6 +298,7 @@ evas_object_clip_recalc(Evas_Object_Protected_Data *obj)
{
   Evas_Object_Protected_Data *parent =
 efl_data_scope_get(obj->smart.parent, 
EFL_CANVAS_OBJECT_CLASS);
+  evas_object_clip_recalc(parent);
   if (parent->clip.mask)
 {
if (parent->clip.mask != obj->clip.mask)
diff --git a/src/lib/evas/canvas/evas_render.c 
b/src/lib/evas/canvas/evas_render.c
index 85acd3f..a3b4a14 100644
--- a/src/lib/evas/canvas/evas_render.c
+++ b/src/lib/evas/canvas/evas_render.c
@@ -894,10 +894,8 @@ _evas_render_phase1_object_changed_normal(Phase1_Context 
*p1ctx,
  RD(level, "  skip - not smart, not active or clippees or not 
relevant\n");
   }
  }
-   else if (is_active &&
-_evas_render_object_is_mask(obj) &&
-(evas_object_is_visible(eo_obj, obj) ||
- evas_object_was_visible(eo_obj, obj)))
+   else if (is_active && _evas_render_object_is_mask(obj) &&
+(obj->cur->visible || obj->prev->visible))
  {
 if (EINA_UNLIKELY(obj->restack))
   OBJ_ARRAY_PUSH(p1ctx->restack_objects, obj);
@@ -1137,7 +1135,7 @@ _evas_render_phase1_object_process(Phase1_Context *p1ctx,
   }
 else if (EINA_UNLIKELY(is_active &&
_evas_render_object_is_mask(obj) &&
-   evas_object_is_visible(eo_obj, obj)))
+   obj->cur->visible))
   {
  RD(level, "  visible clipper image\n");
  OBJ_ARRAY_PUSH(p1ctx->render_objects, obj);
@@ -2812,8 +2810,7 @@ evas_render_updates_internal_loop(Evas *eo_e, 
Evas_Public_Data *evas,
  x = cx; y = cy; w = cw; h = ch;
  if (((w > 0) && (h > 0)) || (obj->is_smart))
{
-  Evas_Object_Protected_Data *prev_mask = NULL;
-  Evas_Object_Protected_Data *mask = NULL;
+  Evas_Object_Protected_Data *mask;
 
   if (!obj->is_smart)
 {
@@ -2835,15 +2832,11 @@ evas_render_updates_internal_loop(Evas *eo_e, 
Evas_Public_Data *evas,
 
   ENFN->context_clip_set(ENDT, context, x, y, w, h);
 
-  /* Clipper masks */
-  if (_evas_render_object_is_mask(obj->cur->clipper))
-mask = obj->cur->clipper; // main object clipped by this 
mask
-  else if (obj->clip.mask)
-mask = obj->clip.mask; // propagated clip
-  prev_mask = obj->clip.prev_mask;
-
+  mask = obj->clip.mask;
   if (mask)
 {
+   Evas_Object_Protected_Data *prev_mask = 
obj->clip.prev_mask;
+
if (mask->mask->redraw || !mask->mask->surface)
  evas_render_mask_subrender(obj->layer->evas, mask, 
prev_mask, 4, do_async);
 
diff --git a/src/lib/evas/include/evas_inline.x 
b/src/lib/evas/include/evas_inline.x
index d56d365..fdf91dd 100644
--- a/src/lib/evas/include/evas_inline.x
+++ b/src/lib/evas/include/evas_inline.x
@@ -245,6 +245,8 @@ evas_object_is_active(Evas_Object *eo_obj, 
Evas_Object_Protected_Data *obj)
   need to be smarter and only do that when really needed. */
if (obj->proxy->proxies && obj->changed)
  return 1;
+   if (obj->mask->is_mask && obj->clip.clipees)
+ return 1;
return 0;
 }
 

-- 




Re: [E-devel] [EGIT] [tools/eflete] master 01/01: Shortcuts: Use Alt+F4 combination for close Eflete in Tizen mode.

2016-12-15 Thread The Rasterman
On Thu, 15 Dec 2016 11:27:10 +0200 Mykyta Biliavskyi 
said:

> Hi,
> 
> this is requirements. And I haven't power to change it right now. 
> In "classic" Eflete version - any shortcuts will not changed.

that's not true. just don't follow requirements then. :) you do have the power.
ultimate power rests with the person doing the work. :) this is why it is
important for those giving direction to get the buy-in of those doing the
work... :)

> On Thu, 2016-12-15 at 10:10 +0100, Vincent Torri wrote:
> > hey
> > 
> > why not also allowing Ctrl-q for Tizen ?
> > 
> > Vincent
> > 
> > ---
> > ---
> > Check out the vibrant tech community on one of the world's most 
> > engaging tech sites, SlashDot.org! http://sdm.link/slashdot
> > ___
> > enlightenment-devel mailing list
> > enlightenment-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> > 
> > 
> 
> 
> --
> Check out the vibrant tech community on one of the world's most 
> engaging tech sites, SlashDot.org! http://sdm.link/slashdot
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


-- 
- Codito, ergo sum - "I code, therefore I am" --
The Rasterman (Carsten Haitzler)ras...@rasterman.com


--
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [EGIT] [core/enlightenment] master 01/01: Fix wayland frame callback times

2016-12-15 Thread The Rasterman
On Thu, 15 Dec 2016 10:21:51 -0600 Derek Foreman  said:

> On 14/12/16 06:58 PM, Carsten Haitzler (The Rasterman) wrote:
> > On Tue, 13 Dec 2016 11:54:32 -0800 Derek Foreman 
> > said:
> >
> > just a note. i know the original code was wrong and used unix time... unix
> > time is gettimeofday and thus can go forward and back (eg ntp changes) and
> > also thus its a huge number rather than ecore_time_get(). still it'll wrap
> > at about 49.7 days...
> 
> Ahh, I just assumed the original code used an apropriate efl time 
> function. :/
> 
> I've updated to use ecore_time_get() - I still get a base time at the 
> first use of a wayland pixmap because I notice ecore_time_get()'s start 
> time is undefined.
> 
> Thanks!
> 
> > why not just keep a global serial # and ++ it each time? at least it'll wrap
> > only after 4 billion or so pixmap frees (that's going to be an exceedingly
> > long time i would guess vs using ms)? isn't this just meant to be some
> > unique serial number not a timestamp? technically this also means multiple
> > pixmap frees in a row there will get the same serial...
> 
> The wayland spec for surface.frame states:
> "The callback_data passed in the callback is the current time, in 
> milliseconds, with an undefined base."
> 
> I'm actually pinging a few people about this since I'm pretty sure 
> that's not what anyone meant, but it appears to be what we've implemented.
> 
> Surely this should be the time that a frame submitted immediately will 
> actually hit scanout (this can be checked with an asynchronous vblank 
> wait ioctl).
> 
> Will try to sort this out today, need to confer with some other wayland 
> devs and maybe have the spec text clarified.

hmm ok. because "current time" since some undefined point i dont see as
particularly useful... the time it hits scanout makes sense. but now what it
currently is or even after stopping being unix time and being monotonic...

> Thanks,
> Derek
> 
> >> derekf pushed a commit to branch master.
> >>
> >> http://git.enlightenment.org/core/enlightenment.git/commit/?id=0493abf457331fc604e2aa64eb51448fada09913
> >>
> >> commit 0493abf457331fc604e2aa64eb51448fada09913
> >> Author: Derek Foreman 
> >> Date:   Tue Dec 13 13:53:18 2016 -0600
> >>
> >> Fix wayland frame callback times
> >>
> >> ecore_time_unix_get() * 1000 is too big to fit in a uint32, so take the
> >> time we instantiate the wayland pixmap hash and use that as a base.
> >> ---
> >>  src/bin/e_pixmap.c | 10 --
> >>  1 file changed, 8 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/src/bin/e_pixmap.c b/src/bin/e_pixmap.c
> >> index f46a994..8e072a0 100644
> >> --- a/src/bin/e_pixmap.c
> >> +++ b/src/bin/e_pixmap.c
> >> @@ -64,6 +64,8 @@ struct _E_Pixmap
> >>
> >>  #ifdef HAVE_WAYLAND
> >>
> >> +double wayland_time_base;
> >> +
> >>  static void
> >>  _e_pixmap_cb_deferred_buffer_destroy(struct wl_listener *listener, void
> >> *data EINA_UNUSED) {
> >> @@ -342,7 +344,10 @@ e_pixmap_new(E_Pixmap_Type type, ...)
> >> }
> >>}
> >>  else
> >> -  pixmaps[type] = eina_hash_int64_new
> >> ((Eina_Free_Cb)_e_pixmap_free);
> >> +  {
> >> + pixmaps[type] = eina_hash_int64_new
> >> ((Eina_Free_Cb)_e_pixmap_free);
> >> + wayland_time_base = ecore_time_unix_get();
> >> +  }
> >>  cp = _e_pixmap_new(type);
> >>  cp->win = id;
> >>  eina_hash_add(pixmaps[type], , cp);
> >> @@ -798,7 +803,8 @@ e_pixmap_image_clear(E_Pixmap *cp, Eina_Bool cache)
> >>   cd->frames = NULL;
> >>   EINA_LIST_FREE(free_list, cb)
> >> {
> >> -  wl_callback_send_done(cb, ecore_time_unix_get() * 1000);
> >> +  double t = ecore_time_unix_get() - wayland_time_base;
> >> +  wl_callback_send_done(cb, t * 1000);
> >>wl_resource_destroy(cb);
> >> }
> >>}
> >>
> >> --
> >>
> >>
> >
> >
> 


-- 
- Codito, ergo sum - "I code, therefore I am" --
The Rasterman (Carsten Haitzler)ras...@rasterman.com


--
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 01/01: emile: refactor color convertion/copy logic in jpeg data decoder.

2016-12-15 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit 0ca1d0eef2ffc04c59fa194ad5c2e827614e95bc
Author: Cedric BAIL 
Date:   Thu Dec 15 16:45:10 2016 -0800

emile: refactor color convertion/copy logic in jpeg data decoder.
---
 src/lib/emile/emile_image.c | 277 +++-
 1 file changed, 148 insertions(+), 129 deletions(-)

diff --git a/src/lib/emile/emile_image.c b/src/lib/emile/emile_image.c
index da17464..4ea9cd2 100644
--- a/src/lib/emile/emile_image.c
+++ b/src/lib/emile/emile_image.c
@@ -1618,6 +1618,129 @@ _emile_jpeg_head(Emile_Image *image,
return EINA_TRUE;
 }
 
+static inline void
+_jpeg_convert_copy(volatile uint32_t **dst, uint8_t **src, unsigned int w, 
Eina_Bool adobe_marker)
+{
+   uint32_t *ptr2 = (uint32_t*) *dst;
+   uint8_t *ptr = *src;
+   unsigned int x;
+
+   if (adobe_marker)
+ {
+for (x = 0; x < w; x++)
+  {
+ /* According to libjpeg doc, Photoshop inverse the values of C, 
M, Y and K, */
+ /* that is C is replaces by 255 - C, etc... */
+ /* See the comment below for the computation of RGB values from 
CMYK ones. */
+ *ptr2 = (0xff00) |
+   ((ptr[0] * ptr[3] / 255) << 16) |
+   ((ptr[1] * ptr[3] / 255) << 8) |
+   ((ptr[2] * ptr[3] / 255));
+ ptr += 4;
+ ptr2++;
+  }
+ }
+   else
+ {
+for (x = 0; x < w; x++)
+  {
+ /* Conversion from CMYK to RGB is done in 2 steps: */
+ /* CMYK => CMY => RGB (see 
http://www.easyrgb.com/index.php?X=MATH) */
+ /* after computation, if C, M, Y and K are between 0 and 1, we 
have: */
+ /* R = (1 - C) * (1 - K) * 255 */
+ /* G = (1 - M) * (1 - K) * 255 */
+ /* B = (1 - Y) * (1 - K) * 255 */
+ /* libjpeg stores CMYK values between 0 and 255, */
+ /* so we replace C by C * 255 / 255, etc... and we obtain: */
+ /* R = (255 - C) * (255 - K) / 255 */
+ /* G = (255 - M) * (255 - K) / 255 */
+ /* B = (255 - Y) * (255 - K) / 255 */
+ /* with C, M, Y and K between 0 and 255. */
+ *ptr2 = (0xff00) |
+   (((255 - ptr[0]) * (255 - ptr[3]) / 255) << 16) |
+   (((255 - ptr[1]) * (255 - ptr[3]) / 255) << 8) |
+   (((255 - ptr[2]) * (255 - ptr[3]) / 255));
+ ptr += 4;
+ ptr2++;
+  }
+ }
+
+   *dst = ptr2;
+   *src = ptr;
+}
+
+static inline void
+_jpeg_gry8_convert_copy(uint8_t **dst, uint8_t **src, unsigned int w)
+{
+   uint8_t *ptrg = (uint8_t*) *dst;
+   uint8_t *ptr = *src;
+   unsigned int x;
+
+   for (x = 0; x < w; x++)
+ {
+*ptrg = ptr[0];
+ptrg++;
+ptr++;
+ }
+
+   *dst = ptrg;
+   *src = ptr;
+}
+
+static inline void
+_jpeg_agry88_convert_copy(uint16_t **dst, uint8_t **src, unsigned int w)
+{
+   uint16_t *ptrag = (uint16_t*) *dst;
+   uint8_t *ptr = *src;
+   unsigned int x;
+
+   for (x = 0; x < w; x++)
+ {
+*ptrag = 0xFF00 | ptr[0];
+ptrag++;
+ptr++;
+ }
+
+   *dst = ptrag;
+   *src = ptr;
+}
+
+static inline void
+_jpeg_argb_convert_copy(volatile uint32_t **dst, uint8_t **src, unsigned 
int w)
+{
+   uint32_t *ptr2 = (uint32_t*) *dst;
+   uint8_t *ptr = *src;
+   unsigned int x;
+
+   for (x = 0; x < w; x++)
+ {
+*ptr2 = ARGB_JOIN(0xff, ptr[0], ptr[0], ptr[0]);
+ptr2++;
+ptr++;
+ }
+
+   *dst = ptr2;
+   *src = ptr;
+}
+
+static inline void
+_jpeg_copy(volatile uint32_t **dst, uint8_t **src, unsigned int w)
+{
+   uint32_t *ptr2 = (uint32_t*) *dst;
+   uint8_t *ptr = *src;
+   unsigned int x;
+
+   for (x = 0; x < w; x++)
+ {
+*ptr2 = ARGB_JOIN(0xff, ptr[0], ptr[1], ptr[2]);
+ptr += 3;
+ptr2++;
+ }
+
+   *dst = ptr2;
+   *src = ptr;
+}
+
 static Eina_Bool
 _emile_jpeg_data(Emile_Image *image,
  Emile_Image_Property *prop,
@@ -1636,7 +1759,7 @@ _emile_jpeg_data(Emile_Image *image,
uint32_t *ptr_rotate = NULL;
uint16_t *ptrag = NULL, *ptrag_rotate = NULL;
uint8_t *ptrg = NULL, *ptrg_rotate = NULL;
-   unsigned int x, y, l, i, scans;
+   unsigned int y, l, i, scans;
volatile int region = 0;
/* rotation setting */
unsigned int ie_w = 0, ie_h = 0;
@@ -1885,47 +2008,7 @@ _emile_jpeg_data(Emile_Image *image,
{
   for (y = 0; y < scans; y++)
 {
-   if (cinfo.saw_Adobe_marker)
- {
-for (x = 0; x < w; x++)
-  {
- /* According to libjpeg doc, Photoshop 
inverse the values of C, M, Y and K, */
- /* that is C is replaces by 255 - C, etc... */

[EGIT] [core/efl] master 02/06: autotools: lcov-baseline is a dependency of lcov-report actually.

2016-12-15 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit 6471d1a01c645a512f9a19add683fd8b650c8efd
Author: Cedric BAIL 
Date:   Thu Dec 15 14:30:57 2016 -0800

autotools: lcov-baseline is a dependency of lcov-report actually.
---
 Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Makefile.am b/Makefile.am
index 1620877..c2affd1 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -453,7 +453,7 @@ lcov-baseline:
$(MKDIR_P) $(abs_top_builddir)/coverage
lcov --capture --initial --compat-libtool --no-external --output-file 
$(abs_top_builddir)/coverage/coverage-baseline.info --directory 
$(abs_top_builddir) --config-file .lcov-config
 
-lcov-report:
+lcov-report: lcov-baseline
lcov --capture --compat-libtool --no-external --output-file 
$(abs_top_builddir)/coverage/coverage-check.info --directory 
$(abs_top_builddir) --config-file .lcov-config
lcov --no-external --compat-libtool --add-tracefile 
$(abs_top_builddir)/coverage/coverage-baseline.info --add-tracefile 
$(abs_top_builddir)/coverage/coverage-check.info --output-file 
$(abs_top_builddir)/coverage/coverage.info --config-file .lcov-config
lcov --no-external --compat-libtool --remove 
$(abs_top_builddir)/coverage/coverage.info '*.h' --output-file 
$(abs_top_builddir)/coverage/coverage.cleaned.info --config-file .lcov-config

-- 




[EGIT] [core/efl] master 03/06: eina: add test for skyline algorithm.

2016-12-15 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit 563dcd1ed957ee85e724415f84ff95580b47bf12
Author: Cedric BAIL 
Date:   Thu Dec 15 14:40:06 2016 -0800

eina: add test for skyline algorithm.
---
 src/tests/eina/eina_test_rectangle.c | 49 +++-
 1 file changed, 48 insertions(+), 1 deletion(-)

diff --git a/src/tests/eina/eina_test_rectangle.c 
b/src/tests/eina/eina_test_rectangle.c
index bf13b58..fe21bf7 100644
--- a/src/tests/eina/eina_test_rectangle.c
+++ b/src/tests/eina/eina_test_rectangle.c
@@ -73,6 +73,53 @@ START_TEST(eina_rectangle_pool)
 }
 END_TEST
 
+START_TEST(eina_rectangle_pool_skyline)
+{
+   Eina_Rectangle_Pool *pool;
+   Eina_Rectangle *rects[8][8];
+   int x;
+   int y;
+   int w;
+   int h;
+
+   fail_if(!eina_init());
+
+   pool = eina_rectangle_pool_new(256, 256);
+   fail_if(pool == NULL);
+
+   eina_rectangle_pool_packing_set(pool, 
Eina_Packing_Bottom_Left_Skyline_Improved);
+
+   eina_rectangle_pool_data_set(pool, rects);
+   fail_if(eina_rectangle_pool_data_get(pool) != rects);
+
+   fail_if(eina_rectangle_pool_request(pool, 1024, 1024) != NULL);
+
+   for (x = 0; x < 8; x++)
+  for (y = 0; y < 8; y++)
+{
+   rects[x][y] = eina_rectangle_pool_request(pool, 32, 32);
+   fail_if(rects[x][y] == NULL);
+}
+
+   fail_if(eina_rectangle_pool_count(pool) != 64);
+
+   fail_if(eina_rectangle_pool_get(rects[0][0]) != pool);
+
+   fail_if(eina_rectangle_pool_geometry_get(pool, , ) != EINA_TRUE);
+   fail_if(w != 256 || h != 256);
+
+   fail_if(eina_rectangle_pool_request(pool, 32, 32) != NULL);
+   fail_if(eina_rectangle_pool_request(pool, 1024, 1024) != NULL);
+
+   for (x = 0; x < 8; x++)
+ eina_rectangle_pool_release(rects[0][x]);
+
+   eina_rectangle_pool_free(pool);
+
+   eina_shutdown();
+}
+END_TEST
+
 START_TEST(eina_rectangle_union_intersect)
 {
Eina_Rectangle r1, r2, r3, r4, r5, r6, r7, r8, rd;
@@ -153,6 +200,6 @@ void
 eina_test_rectangle(TCase *tc)
 {
tcase_add_test(tc, eina_rectangle_pool);
+   tcase_add_test(tc, eina_rectangle_pool_skyline);
tcase_add_test(tc, eina_rectangle_union_intersect);
 }
-

-- 




[EGIT] [core/efl] master 04/06: eina: add a test for eina_stringshare_refplace.

2016-12-15 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit 0ff7bf3611d3769d2da0bc2521586dc285d5765e
Author: Cedric BAIL 
Date:   Thu Dec 15 15:00:58 2016 -0800

eina: add a test for eina_stringshare_refplace.
---
 src/tests/eina/eina_test_stringshare.c | 36 ++
 1 file changed, 36 insertions(+)

diff --git a/src/tests/eina/eina_test_stringshare.c 
b/src/tests/eina/eina_test_stringshare.c
index 02e5c81..0aa1beb 100644
--- a/src/tests/eina/eina_test_stringshare.c
+++ b/src/tests/eina/eina_test_stringshare.c
@@ -66,6 +66,41 @@ START_TEST(eina_stringshare_simple)
 }
 END_TEST
 
+START_TEST(eina_stringshare_simple_refplace)
+{
+   const char *t0;
+   const char *t1;
+   Eina_Slice slice;
+
+   eina_init();
+
+   t0 = eina_stringshare_add(TEST0);
+   t1 = eina_stringshare_add(TEST1);
+
+   fail_if(t0 == NULL);
+   fail_if(t1 == NULL);
+   fail_if(strcmp(t0, TEST0) != 0);
+   fail_if(strcmp(t1, TEST1) != 0);
+   fail_if((int)strlen(TEST0) != eina_stringshare_strlen(t0));
+   fail_if((int)strlen(TEST1) != eina_stringshare_strlen(t1));
+
+   fail_if(eina_stringshare_refplace(, t0));
+   fail_if(t0 == NULL);
+   fail_if((int)strlen(TEST0) != eina_stringshare_strlen(t0));
+
+   slice = eina_stringshare_slice_get(t0);
+   fail_if(slice.mem != t0);
+   fail_if(slice.len != strlen(TEST0));
+
+   fail_if(!eina_stringshare_refplace(, t0));
+
+   eina_stringshare_del(t0);
+   eina_stringshare_del(t1);
+
+   eina_shutdown();
+}
+END_TEST
+
 START_TEST(eina_stringshare_small)
 {
char buf[4];
@@ -245,6 +280,7 @@ void
 eina_test_stringshare(TCase *tc)
 {
tcase_add_test(tc, eina_stringshare_simple);
+   tcase_add_test(tc, eina_stringshare_simple_refplace);
tcase_add_test(tc, eina_stringshare_small);
tcase_add_test(tc, eina_stringshare_test_share);
tcase_add_test(tc, eina_stringshare_collision);

-- 




[EGIT] [core/efl] master 06/06: eet: add test for eet_alias_get.

2016-12-15 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit 3b354d6757437e27957d49381e125fb1f12ac2b8
Author: Cedric BAIL 
Date:   Thu Dec 15 15:18:54 2016 -0800

eet: add test for eet_alias_get.
---
 src/tests/eet/eet_test_file.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/tests/eet/eet_test_file.c b/src/tests/eet/eet_test_file.c
index f7926f7..fbf902b 100644
--- a/src/tests/eet/eet_test_file.c
+++ b/src/tests/eet/eet_test_file.c
@@ -94,6 +94,7 @@ START_TEST(eet_test_file_simple_write)
 
fail_if(memcmp(test, buffer, strlen(buffer) + 1) != 0);
 
+   fail_if(strcmp(eet_alias_get(ef, "keys/alias"), "keys/tests"));
test = eet_read(ef, "keys/alias2", );
fail_if(!test);
fail_if(size != (int)strlen(buffer) + 1);

-- 




[EGIT] [core/efl] master 01/06: eio: fix attr tests to process an array of string.

2016-12-15 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit b221fbc6390dc71b5800142364f2dd042e810610
Author: Cedric BAIL 
Date:   Thu Dec 15 14:30:33 2016 -0800

eio: fix attr tests to process an array of string.
---
 src/tests/eio/eio_test_manager_xattr.c | 27 ---
 1 file changed, 16 insertions(+), 11 deletions(-)

diff --git a/src/tests/eio/eio_test_manager_xattr.c 
b/src/tests/eio/eio_test_manager_xattr.c
index e70d9ef..b858de6 100644
--- a/src/tests/eio/eio_test_manager_xattr.c
+++ b/src/tests/eio/eio_test_manager_xattr.c
@@ -38,17 +38,24 @@ int total_attributes = 
sizeof(attribute)/sizeof(attribute[0]);
 static void
 _main_cb(void *data, const Efl_Event *ev)
 {
-   Efl_Future_Event_Success *success = ev->info;
-   const char* attr = success->value;
+   Efl_Future_Event_Progress *progress = ev->info;
+   const Eina_Array *attrs = progress->progress;
+   const char* attr;
int *num_of_attr = (int *)data;
-   unsigned int i;
+   unsigned int i, j;
+   Eina_Array_Iterator it;
 
-   for (i = 0; i < sizeof (attribute) / sizeof (attribute[0]); ++i)
- if (strcmp(attr, attribute[i]) == 0)
-   {
-  (*num_of_attr)++;
-  break;
-   }
+   EINA_ARRAY_ITER_NEXT(attrs, j, attr, it)
+ {
+for (i = 0; i < sizeof (attribute) / sizeof (attribute[0]); ++i)
+  {
+ if (strcmp(attr, attribute[i]) == 0)
+   {
+  (*num_of_attr)++;
+  break;
+   }
+  }
+ }
 }
 
 static void
@@ -75,8 +82,6 @@ _done_get_cb(void *data EINA_UNUSED, const Efl_Event *ev)
 fail_if(!buf);
 fail_if(strcmp((const char*) eina_binbuf_string_get(buf),
attr_data[i]) != 0);
-
-i++;
  }
 
fail_if(i != total_attributes);

-- 




[EGIT] [core/efl] master 05/06: eet: add test for eet_memopen_read.

2016-12-15 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit 20d77fda989b360e25e1ad3b5a5bdb78fd3ab67d
Author: Cedric BAIL 
Date:   Thu Dec 15 15:18:41 2016 -0800

eet: add test for eet_memopen_read.
---
 src/tests/eet/eet_test_file.c | 41 +
 1 file changed, 41 insertions(+)

diff --git a/src/tests/eet/eet_test_file.c b/src/tests/eet/eet_test_file.c
index 2c9efb6..f7926f7 100644
--- a/src/tests/eet/eet_test_file.c
+++ b/src/tests/eet/eet_test_file.c
@@ -14,9 +14,13 @@
 START_TEST(eet_test_file_simple_write)
 {
const char *buffer = "Here is a string of data to save !";
+   Eina_Iterator *it;
+   Eina_File *f;
+   Eet_Entry *entry;
Eet_File *ef;
char *test;
char *file;
+   void *m;
int size;
int tmpfd;
 
@@ -43,6 +47,43 @@ START_TEST(eet_test_file_simple_write)
 
eet_close(ef);
 
+   /* Test read from buffer */
+   f = eina_file_open(file, EINA_FALSE);
+   fail_if(!f);
+
+   m = eina_file_map_all(f, EINA_FILE_WILLNEED);
+   fail_if(!m);
+
+   ef = eet_memopen_read(m, eina_file_size_get(f));
+   fail_if(!ef);
+
+   test = eet_read(ef, "keys/tests", );
+   fail_if(!test);
+   fail_if(size != (int)strlen(buffer) + 1);
+
+   fail_if(memcmp(test, buffer, strlen(buffer) + 1) != 0);
+
+   test = eet_read(ef, "keys/alias2", );
+   fail_if(!test);
+   fail_if(size != (int)strlen(buffer) + 1);
+
+   fail_if(eet_read_direct(ef, "key/alias2", ));
+
+   fail_if(eet_mode_get(ef) != EET_FILE_MODE_READ);
+   fail_if(eet_num_entries(ef) != 3);
+
+   it = eet_list_entries(ef);
+   fail_if(!it);
+   EINA_ITERATOR_FOREACH(it, entry)
+ fail_if(strcmp(entry->name, "keys/tests") &&
+ strcmp(entry->name, "keys/alias") &&
+ strcmp(entry->name, "keys/alias2"));
+
+   eet_close(ef);
+
+   eina_file_map_free(f, m);
+   eina_file_close(f);
+
/* Test read of simple file */
ef = eet_open(file, EET_FILE_MODE_READ);
fail_if(!ef);

-- 




Re: [E-devel] [E-b0rk] Build failed in Jenkins: nightly_efl_gcc_x86_64 #1417

2016-12-15 Thread Gustavo Sverzut Barbieri
s?


1) could someone enable ipv6 on our test bot? It's essential to test
such api as ipv6 is more and more common (although this specific test
is no big deal as it's resolving ipv6 localhost)


2) does the bind() test fail? If so I'd like to commit it so it works
everywhere.

On Tue, Dec 13, 2016 at 1:42 PM, Gustavo Sverzut Barbieri
 wrote:
> On Tue, Dec 13, 2016 at 12:10 PM, Stefan Schmidt  
> wrote:
>> hello.
>>
>> On 13/12/16 12:33, Gustavo Sverzut Barbieri wrote:
>>> On Tue, Dec 13, 2016 at 9:28 AM, Stefan Schmidt  
>>> wrote:
 Hello.

 On 13/12/16 12:25, Tom Hacohen wrote:
> On 13/12/16 10:26, Stefan Schmidt wrote:
>> Hello.
>>
>> On 13/12/16 02:15, Gustavo Sverzut Barbieri wrote:
>>> Stefan,
>>>
>>> Could you check the environment where the test runs? In the log
>>> https://build.enlightenment.org/job/nightly_efl_gcc_x86_64/ws/src/test-suite.log
>>> I see:
>>>
>>> WARNING: your system miss '::1 localhost' or '::1 localhost6' in 
>>> /etc/hosts
>>> 98%: Checks: 54, Failures: 1, Errors: 0
>>> tests/ecore_con/ecore_con_test_efl_net_ip_address.c:1149:F:Efl_Net_Ip_Address:ecore_test_efl_net_ip_address_ipv6_resolve_ok:0:
>>> Expected error=0 (success), got 1073741834 (Couldn't resolve host
>>> name) resolving=[::1]
>>>
>>> maybe the machine is not IPv6-enabled? or nswitch.conf disables 
>>> something?
>>
>> Not IPv6 enabled. No entry for ::1 in /etc/hosts and no inet6 address or
>> such shown with ip a. Beber (cc'ed) is handling the systems. He would
>> know why he has IPv6 disabled on them.
>>
>> While I agree that we should have IPv6 everywhere our tests should still
>> work on systems without or do you disagree? I would expect it falls back
>> to IPv4. Something we also need to keep in mind are systems without
>> internet or even without network. But that is a generic problem for the
>> test suite and not really related to your ecore_con revamp.
>
> I think that we are at this point in life that there's no excuse to not
> having IPv6. We shouldn't handle this case in our test suite, but
> instead encourage people to start using it, or at the very least,
> prepare their systems.

 I fully agree (even have native IPv6 here) but we need to be defensive
 what we expect to be available in our test suite.
>>>
>>> well... both are easy to handle... just need to know a reliable way to
>>> check for AF_INET6 support...
>>>
>>> maybe this would do:
>>>
>>> Eina_Bool ipv6_check(void) {
>>> int fd = socket(AF_INET6, SOCK_STREAM, 0);
>>> if (fd != -1) close(fd);
>>> return fd != -1;
>>> }
>>>
>>> could someone check this in an IPv6 disabled machine?
>>
>> Not enough:
>>
>> stefan@workmachine efl (master) $ cat ipv6.c
>> #include 
>> #include 
>> #include 
>> #include 
>>
>> void main(void) {
>> int sd = socket(AF_INET6, SOCK_STREAM, 0);
>> printf("AF_INET6 socket return: %i\n", sd);
>> if (sd != -1) close(sd);
>> }
>> stefan@workmachine efl (master) $ gcc ipv6.c -o ipv6
>> stefan@workmachine efl (master) $ ./ipv6
>> AF_INET6 socket return: 3
>>
>> On the affected slave I get the same:
>> 0 06:02:15 stefan@e5-build-gentoo-x86_64-1 ~ $ ./ipv6
>> AF_INET6 socket return: 3
>>
>> The INET6 address family for sockets is still available even if no IPv6
>> is configured.
>
> what if you bind to an ephemeral port?
>
> #include 
> #include 
> #include 
> #include 
>
> static Eina_Bool
> _ipv6_enabled_check(void)
> {
>int fd, r;
>struct sockaddr_in6 a = {
>  .sin6_family = AF_INET6,
>  .sin6_addr = IN6ADDR_LOOPBACK_INIT,
>};
>
>fd = socket(AF_INET6, SOCK_STREAM, 0);
>if (fd == -1) return EINA_FALSE;
>
>r = bind(fd, (struct sockaddr *), sizeof(a));
>close(fd);
>return r != -1;
> }
>
> int main(void) {
>printf("IPv6 supported: %d\n", _ipv6_enabled_check());
>return 0;
> }
>
>
>
> --
> Gustavo Sverzut Barbieri
> --
> Mobile: +55 (16) 99354-9890



-- 
Gustavo Sverzut Barbieri
--
Mobile: +55 (16) 99354-9890

--
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [apps/terminology] master 01/04: termptyesc: handle correctly Cursor Back Tab. Ref T4992

2016-12-15 Thread Boris Faure
billiob pushed a commit to branch master.

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

commit fae0d7ccee8f6f1696cae2f83f05f3477a781228
Author: Boris Faure 
Date:   Thu Dec 15 22:57:30 2016 +0100

termptyesc: handle correctly Cursor Back Tab. Ref T4992
---
 src/bin/termpty.c|  2 ++
 src/bin/termptyesc.c | 29 -
 2 files changed, 14 insertions(+), 17 deletions(-)

diff --git a/src/bin/termpty.c b/src/bin/termpty.c
index 80e2939..f7449a8 100644
--- a/src/bin/termpty.c
+++ b/src/bin/termpty.c
@@ -1507,8 +1507,10 @@ termpty_cell_codepoint_att_fill(Termpty *ty, 
Eina_Unicode codepoint,
 
for (i = 0; i < n; i++)
  {
+int had_tabmarker = dst[i].att.tab;
 _handle_block_codepoint_overwrite(ty, dst[i].codepoint, codepoint);
 dst[i] = local;
+dst[i].att.tab = had_tabmarker;
  }
 }
 
diff --git a/src/bin/termptyesc.c b/src/bin/termptyesc.c
index 14fe55d..1188d8d 100644
--- a/src/bin/termptyesc.c
+++ b/src/bin/termptyesc.c
@@ -1077,35 +1077,30 @@ _handle_esc_csi(Termpty *ty, const Eina_Unicode *c, 
Eina_Unicode *ce)
 break;
  */
   case 'g': // clear tabulation
+/* TODO: handle correctly */
 arg = _csi_arg_get();
 DBG("Tabulation Clear (TBC): %d", arg);
 break;
-   case 'Z': // Cursor Back Tab
+   case 'Z':
{
-  int idx, size, cx = ty->cursor_state.cx, cy = ty->cursor_state.cy;
+  int cx = ty->cursor_state.cx, cy = ty->cursor_state.cy;
 
   arg = _csi_arg_get();
+  DBG("Cursor Backward Tabulation (CBT): %d", arg);
   if (arg < 1) arg = 1;
 
-  size = ty->w * cy + cx + 1;
-  for (idx = size - 1; idx >= 0; idx--)
+  for (; arg > 0; arg--)
 {
-   if (TERMPTY_SCREEN(ty, cx, cy).att.tab) arg--;
-   cx--;
-   if (cx < 0)
+   do
  {
-cx = ty->w - 1;
-cy--;
+cx--;
  }
-   if (!arg) break;
-}
-  if (!arg)
-{
-   ty->cursor_state.cx = cx;
-   TERMPTY_RESTRICT_FIELD(ty->cursor_state.cx, 0, ty->w);
-   ty->cursor_state.cy = cy;
-   TERMPTY_RESTRICT_FIELD(ty->cursor_state.cy, 0, ty->h);
+   while ((cx >= 0) &&
+  ((!TERMPTY_SCREEN(ty, cx, cy).att.tab) && (cx % 8 != 
0)));
 }
+
+  ty->cursor_state.cx = cx;
+  TERMPTY_RESTRICT_FIELD(ty->cursor_state.cx, 0, ty->w);
}
break;
   default:

-- 




[EGIT] [apps/terminology] master 03/04: termio: do nothing special when extracting text and .tab is set

2016-12-15 Thread Boris Faure
billiob pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=5af5ec084eeb717349f79e3a657873c48c423d82

commit 5af5ec084eeb717349f79e3a657873c48c423d82
Author: Boris Faure 
Date:   Thu Dec 15 23:09:32 2016 +0100

termio: do nothing special when extracting text and .tab is set
---
 src/bin/termio.c | 6 --
 1 file changed, 6 deletions(-)

diff --git a/src/bin/termio.c b/src/bin/termio.c
index 17f0b75..743b9f0 100644
--- a/src/bin/termio.c
+++ b/src/bin/termio.c
@@ -2131,12 +2131,6 @@ termio_selection_get(Evas_Object *obj, int c1x, int c1y, 
int c2x, int c2y,
 }
   break;
}
- else if (cells[x].att.tab)
-   {
-  if (ty_sb_add(, "\t", 1) < 0) goto err;
-  x = ((x + 8) / 8) * 8;
-  x--; /* counter the ++ of the for loop */
-   }
  else if (cells[x].codepoint == 0)
{
   if (last0 < 0) last0 = x;

-- 




[EGIT] [apps/terminology] master 04/04: termptyesc: handle correctly Character Tabulation Set (HTS). Ref T4992

2016-12-15 Thread Boris Faure
billiob pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=82d9ead6f2d705683a89637e354722fde50de661

commit 82d9ead6f2d705683a89637e354722fde50de661
Author: Boris Faure 
Date:   Thu Dec 15 22:58:14 2016 +0100

termptyesc: handle correctly Character Tabulation Set (HTS). Ref T4992
---
 src/bin/termptyesc.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/bin/termptyesc.c b/src/bin/termptyesc.c
index 164250b..0149b0a 100644
--- a/src/bin/termptyesc.c
+++ b/src/bin/termptyesc.c
@@ -1747,7 +1747,9 @@ _handle_esc(Termpty *ty, const Eina_Unicode *c, 
Eina_Unicode *ce)
 termpty_cursor_copy(ty, EINA_FALSE);
 return 1;
   case 'H': // set tab at current column
-DBG("Character Tabulation Set (HTS)");
+DBG("Character Tabulation Set (HTS) at x:%d y:%d",
+ty->cursor_state.cx, ty->cursor_state.cy);
+TERMPTY_SCREEN(ty, ty->cursor_state.cx, ty->cursor_state.cy).att.tab = 
1;
 return 1;
 /*
   case 'G': // query gfx mode

-- 




[EGIT] [apps/terminology] master 02/04: termptyesc: add some debug

2016-12-15 Thread Boris Faure
billiob pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=7c720058a1749e8858d0eb75bb42ec7ca5c38c89

commit 7c720058a1749e8858d0eb75bb42ec7ca5c38c89
Author: Boris Faure 
Date:   Thu Dec 15 22:59:50 2016 +0100

termptyesc: add some debug
---
 src/bin/termptyesc.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/bin/termptyesc.c b/src/bin/termptyesc.c
index 1188d8d..164250b 100644
--- a/src/bin/termptyesc.c
+++ b/src/bin/termptyesc.c
@@ -1660,16 +1660,19 @@ _handle_esc(Termpty *ty, const Eina_Unicode *c, 
Eina_Unicode *ce)
 ty->termstate.alt_kp = 0;
 return 1;
   case 'M': // move to prev line
+DBG("move to prev line");
 ty->termstate.wrapnext = 0;
 ty->cursor_state.cy--;
 termpty_text_scroll_rev_test(ty, EINA_TRUE);
 return 1;
   case 'D': // move to next line
+DBG("move to next line");
 ty->termstate.wrapnext = 0;
 ty->cursor_state.cy++;
 termpty_text_scroll_test(ty, EINA_FALSE);
 return 1;
   case 'E': // add \n\r
+DBG("add \\n\\r");
 ty->termstate.wrapnext = 0;
 ty->cursor_state.cx = 0;
 ty->cursor_state.cy++;

-- 




Re: [E-devel] [EGIT] [core/efl] master 05/11: ecore_con: reduce amount of warning related to clobbered variable.

2016-12-15 Thread Cedric BAIL
On Thu, Dec 15, 2016 at 12:49 PM, Gustavo Sverzut Barbieri
 wrote:
> I really don't get what does this mean... are these volatile hiding
> something else?

In case of setjmp or thread cancellable use, it seems that the
compiler can generate code that could lead to some value being
modified in one branch of the execution that would differ from the
other branch. Marking it to be volatile force both branch to refetch
the value from its common position on the stack and avoid having
different unsynchronized data between each execution branch. The issue
is that as the function become more and more complex, finding which
branch is causing the warning become increasingly diffficult and
resorting to volatile solve the problem in most case.

> On Thu, Dec 15, 2016 at 5:39 PM, Cedric BAIL  wrote:
>> cedric pushed a commit to branch master.
>>
>> http://git.enlightenment.org/core/efl.git/commit/?id=32da71d65d51e0bebfd0b00560e03451409cba02
>>
>> commit 32da71d65d51e0bebfd0b00560e03451409cba02
>> Author: Cedric BAIL 
>> Date:   Thu Dec 15 10:31:56 2016 -0800
>>
>> ecore_con: reduce amount of warning related to clobbered variable.
>> ---
>>  src/lib/ecore_con/ecore_con.c | 14 +++---
>>  1 file changed, 7 insertions(+), 7 deletions(-)
>>
>> diff --git a/src/lib/ecore_con/ecore_con.c b/src/lib/ecore_con/ecore_con.c
>> index 7aaeb35..53a9bda 100644
>> --- a/src/lib/ecore_con/ecore_con.c
>> +++ b/src/lib/ecore_con/ecore_con.c
>> @@ -939,7 +939,7 @@ static Eina_Error
>>  _efl_net_ip_connect(const struct addrinfo *addr, SOCKET *sockfd)
>>  {
>> SOCKET fd = INVALID_SOCKET;
>> -   Eina_Error ret = 0;
>> +   volatile Eina_Error ret = 0;
>>
>> /* always close-on-exec since it's not a point to pass an
>>  * under construction socket to a child process.
>> @@ -985,7 +985,7 @@ _efl_net_ip_resolve_and_connect(const char *host, const 
>> char *port, int type, in
>>   .ai_family = AF_UNSPEC,
>>   .ai_flags = AI_ADDRCONFIG | AI_V4MAPPED,
>> };
>> -   Eina_Error ret = EFL_NET_DIALER_ERROR_COULDNT_CONNECT;
>> +   volatile Eina_Error ret = EFL_NET_DIALER_ERROR_COULDNT_CONNECT;
>> int r;
>>
>> if (strchr(host, ':')) hints.ai_family = AF_INET6;
>> @@ -1108,7 +1108,7 @@ 
>> _efl_net_ip_connect_async_run_socks4_try(Efl_Net_Ip_Connect_Async_Data *d, 
>> const
>> socklen_t proxy_addrlen;
>> SOCKET fd;
>> Eina_Error err;
>> -   Eina_Bool ret = EINA_FALSE;
>> +   volatile Eina_Bool ret = EINA_FALSE;
>> ssize_t s;
>>
>> err = _efl_net_ip_resolve_and_connect(proxy_host, proxy_port, 
>> SOCK_STREAM, IPPROTO_TCP, , (struct sockaddr *)_addr, 
>> _addrlen);
>> @@ -1565,7 +1565,7 @@ 
>> _efl_net_ip_connect_async_run_socks5_auth_user_pass(SOCKET fd, const char 
>> *user,
>> uint8_t pass_len = pass ? strlen(pass) : 0;
>> size_t len = 1 + 1 + user_len + 1 + pass_len;
>> char *msg;
>> -   Eina_Bool ret = EINA_FALSE;
>> +   volatile Eina_Bool ret = EINA_FALSE;
>> ssize_t s;
>>
>> msg = malloc(len);
>> @@ -1630,7 +1630,7 @@ 
>> _efl_net_ip_connect_async_run_socks5_try(Efl_Net_Ip_Connect_Async_Data *d, 
>> const
>> socklen_t proxy_addrlen;
>> SOCKET fd;
>> Eina_Error err;
>> -   Eina_Bool ret = EINA_FALSE;
>> +   volatile Eina_Bool ret = EINA_FALSE;
>> ssize_t s;
>>
>> err = _efl_net_ip_resolve_and_connect(proxy_host, proxy_port, 
>> SOCK_STREAM, IPPROTO_TCP, , (struct sockaddr *)_addr, 
>> _addrlen);
>> @@ -2053,8 +2053,8 @@ _efl_net_ip_connect_async_run(void *data, Ecore_Thread 
>> *thread EINA_UNUSED)
>> const char *host, *port, *proxy;
>> char *addrcopy;
>> char **proxies = NULL;
>> -   int proxies_idx = 0;
>> -   Eina_Bool is_libproxy = EINA_FALSE;
>> +   volatile int proxies_idx = 0;
>> +   volatile Eina_Bool is_libproxy = EINA_FALSE;
>>
>> addrcopy = strdup(d->address);
>> if (!addrcopy)
>>
>> --
>>
>>
>
>
>
> --
> Gustavo Sverzut Barbieri
> --
> Mobile: +55 (16) 99354-9890
>
> --
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, SlashDot.org! http://sdm.link/slashdot
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel



-- 
Cedric BAIL

--
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [EGIT] [core/efl] master 05/11: ecore_con: reduce amount of warning related to clobbered variable.

2016-12-15 Thread Gustavo Sverzut Barbieri
I really don't get what does this mean... are these volatile hiding
something else?

On Thu, Dec 15, 2016 at 5:39 PM, Cedric BAIL  wrote:
> cedric pushed a commit to branch master.
>
> http://git.enlightenment.org/core/efl.git/commit/?id=32da71d65d51e0bebfd0b00560e03451409cba02
>
> commit 32da71d65d51e0bebfd0b00560e03451409cba02
> Author: Cedric BAIL 
> Date:   Thu Dec 15 10:31:56 2016 -0800
>
> ecore_con: reduce amount of warning related to clobbered variable.
> ---
>  src/lib/ecore_con/ecore_con.c | 14 +++---
>  1 file changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/src/lib/ecore_con/ecore_con.c b/src/lib/ecore_con/ecore_con.c
> index 7aaeb35..53a9bda 100644
> --- a/src/lib/ecore_con/ecore_con.c
> +++ b/src/lib/ecore_con/ecore_con.c
> @@ -939,7 +939,7 @@ static Eina_Error
>  _efl_net_ip_connect(const struct addrinfo *addr, SOCKET *sockfd)
>  {
> SOCKET fd = INVALID_SOCKET;
> -   Eina_Error ret = 0;
> +   volatile Eina_Error ret = 0;
>
> /* always close-on-exec since it's not a point to pass an
>  * under construction socket to a child process.
> @@ -985,7 +985,7 @@ _efl_net_ip_resolve_and_connect(const char *host, const 
> char *port, int type, in
>   .ai_family = AF_UNSPEC,
>   .ai_flags = AI_ADDRCONFIG | AI_V4MAPPED,
> };
> -   Eina_Error ret = EFL_NET_DIALER_ERROR_COULDNT_CONNECT;
> +   volatile Eina_Error ret = EFL_NET_DIALER_ERROR_COULDNT_CONNECT;
> int r;
>
> if (strchr(host, ':')) hints.ai_family = AF_INET6;
> @@ -1108,7 +1108,7 @@ 
> _efl_net_ip_connect_async_run_socks4_try(Efl_Net_Ip_Connect_Async_Data *d, 
> const
> socklen_t proxy_addrlen;
> SOCKET fd;
> Eina_Error err;
> -   Eina_Bool ret = EINA_FALSE;
> +   volatile Eina_Bool ret = EINA_FALSE;
> ssize_t s;
>
> err = _efl_net_ip_resolve_and_connect(proxy_host, proxy_port, 
> SOCK_STREAM, IPPROTO_TCP, , (struct sockaddr *)_addr, 
> _addrlen);
> @@ -1565,7 +1565,7 @@ 
> _efl_net_ip_connect_async_run_socks5_auth_user_pass(SOCKET fd, const char 
> *user,
> uint8_t pass_len = pass ? strlen(pass) : 0;
> size_t len = 1 + 1 + user_len + 1 + pass_len;
> char *msg;
> -   Eina_Bool ret = EINA_FALSE;
> +   volatile Eina_Bool ret = EINA_FALSE;
> ssize_t s;
>
> msg = malloc(len);
> @@ -1630,7 +1630,7 @@ 
> _efl_net_ip_connect_async_run_socks5_try(Efl_Net_Ip_Connect_Async_Data *d, 
> const
> socklen_t proxy_addrlen;
> SOCKET fd;
> Eina_Error err;
> -   Eina_Bool ret = EINA_FALSE;
> +   volatile Eina_Bool ret = EINA_FALSE;
> ssize_t s;
>
> err = _efl_net_ip_resolve_and_connect(proxy_host, proxy_port, 
> SOCK_STREAM, IPPROTO_TCP, , (struct sockaddr *)_addr, 
> _addrlen);
> @@ -2053,8 +2053,8 @@ _efl_net_ip_connect_async_run(void *data, Ecore_Thread 
> *thread EINA_UNUSED)
> const char *host, *port, *proxy;
> char *addrcopy;
> char **proxies = NULL;
> -   int proxies_idx = 0;
> -   Eina_Bool is_libproxy = EINA_FALSE;
> +   volatile int proxies_idx = 0;
> +   volatile Eina_Bool is_libproxy = EINA_FALSE;
>
> addrcopy = strdup(d->address);
> if (!addrcopy)
>
> --
>
>



-- 
Gustavo Sverzut Barbieri
--
Mobile: +55 (16) 99354-9890

--
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 08/11: evas: fix potential use of unitialized variable.

2016-12-15 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit e1843b2ced2f0061840c5ddfc1c6b08ca17c4fb9
Author: Cedric BAIL 
Date:   Thu Dec 15 11:27:54 2016 -0800

evas: fix potential use of unitialized variable.
---
 src/lib/evas/common/evas_image_main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/evas/common/evas_image_main.c 
b/src/lib/evas/common/evas_image_main.c
index ade4b9c..d9330f0 100644
--- a/src/lib/evas/common/evas_image_main.c
+++ b/src/lib/evas/common/evas_image_main.c
@@ -184,7 +184,7 @@ _evas_common_rgba_image_surface_size(unsigned int w, 
unsigned int h,
 EAPI Eina_Bool
 _evas_common_rgba_image_plane_get(const RGBA_Image *im, int plane, Eina_Slice 
*slice)
 {
-   unsigned char **csdata;
+   unsigned char **csdata = NULL;
Evas_Colorspace cs;
int w, h;
 

-- 




[EGIT] [core/efl] master 03/11: evas: fix comparison between unsigned and signed warning.

2016-12-15 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit cf62558402e08dcb9a33d61b28fb10dab3bf9720
Author: Cedric BAIL 
Date:   Thu Dec 15 10:01:14 2016 -0800

evas: fix comparison between unsigned and signed warning.
---
 src/tests/evas/evas_test_image.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/tests/evas/evas_test_image.c b/src/tests/evas/evas_test_image.c
index 8743e05..f5bd8c8 100644
--- a/src/tests/evas/evas_test_image.c
+++ b/src/tests/evas/evas_test_image.c
@@ -696,7 +696,7 @@ START_TEST(evas_object_image_map_unmap)
fail_if(!slice.len || !slice.mem);
fail_if(!stride);
data32 = slice.mem;
-   for (int k = 0; (k < slice.len) && (all_white || all_transparent); k++)
+   for (unsigned int k = 0; (k < slice.len) && (all_white || all_transparent); 
k++)
  {
 if (data32[k])
   all_transparent = 0;

-- 




[EGIT] [core/efl] master 06/11: eolian: silence clobbered variable warning.

2016-12-15 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit 8a57cb44b21626da0db36b434850e68ecd0ec67d
Author: Cedric BAIL 
Date:   Thu Dec 15 10:44:22 2016 -0800

eolian: silence clobbered variable warning.
---
 src/lib/eolian/eo_lexer.c | 11 ++-
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/lib/eolian/eo_lexer.c b/src/lib/eolian/eo_lexer.c
index 49b23a7..2bb72d2 100644
--- a/src/lib/eolian/eo_lexer.c
+++ b/src/lib/eolian/eo_lexer.c
@@ -1109,13 +1109,14 @@ eo_lexer_free(Eo_Lexer *ls)
 Eo_Lexer *
 eo_lexer_new(const char *source)
 {
-   Eo_Lexer   *ls = calloc(1, sizeof(Eo_Lexer));
-   if (!setjmp(ls->err_jmp))
+   volatile Eo_Lexer *ls = calloc(1, sizeof(Eo_Lexer));
+
+   if (!setjmp(((Eo_Lexer *)(ls))->err_jmp))
  {
-eo_lexer_set_input(ls, source);
-return ls;
+eo_lexer_set_input((Eo_Lexer *) ls, source);
+return (Eo_Lexer *) ls;
  }
-   eo_lexer_free(ls);
+   eo_lexer_free((Eo_Lexer *) ls);
return NULL;
 }
 

-- 




[EGIT] [core/efl] master 02/11: ecore_con: fix incompatible type warning.

2016-12-15 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit f553c92091bffdda9aed85cf08f6e2fcee43171f
Author: Cedric BAIL 
Date:   Thu Dec 15 09:59:41 2016 -0800

ecore_con: fix incompatible type warning.
---
 src/tests/ecore_con/ecore_con_test_ecore_con_eet.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/tests/ecore_con/ecore_con_test_ecore_con_eet.c 
b/src/tests/ecore_con/ecore_con_test_ecore_con_eet.c
index 962b9f3..9a054e3 100644
--- a/src/tests/ecore_con/ecore_con_test_ecore_con_eet.c
+++ b/src/tests/ecore_con/ecore_con_test_ecore_con_eet.c
@@ -80,7 +80,7 @@ _eet_data_cb(void *data EINA_UNUSED, Ecore_Con_Reply *reply, 
const char *protoco
 }
 
 static Eina_Bool
-_eet_svr_cnct_cb(void *data, Ecore_Con_Reply *reply, Ecore_Con_Client *conn 
EINA_UNUSED)
+_eet_svr_cnct_cb(void *data, Ecore_Con_Reply *reply, Ecore_Con_Server *conn 
EINA_UNUSED)
 {
int *i = data;
ECE_Test toSend = {1, CLI_MSG};
@@ -172,7 +172,7 @@ START_TEST(ecore_con_test_ecore_con_eet_svr_cl)
 END_TEST
 
 static Eina_Bool
-_eet_svr_discnct_cb(void *data EINA_UNUSED, Ecore_Con_Reply *reply 
EINA_UNUSED, Ecore_Con_Client *conn EINA_UNUSED)
+_eet_svr_discnct_cb(void *data EINA_UNUSED, Ecore_Con_Reply *reply 
EINA_UNUSED, Ecore_Con_Server *conn EINA_UNUSED)
 {
ecore_main_loop_quit();
return EINA_FALSE;

-- 




[EGIT] [core/efl] master 04/11: efl_debug: silent unused use of static variable.

2016-12-15 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit 635a2baf74d5d65d5ff20cdd0bf32b1bb0b3e6cb
Author: Cedric BAIL 
Date:   Thu Dec 15 10:08:21 2016 -0800

efl_debug: silent unused use of static variable.
---
 src/bin/efl/efl_debug.c| 5 +
 src/bin/efl/efl_debug_common.h | 2 ++
 src/bin/efl/efl_debugd.c   | 1 +
 3 files changed, 8 insertions(+)

diff --git a/src/bin/efl/efl_debug.c b/src/bin/efl/efl_debug.c
index 12b3e92..428180e 100644
--- a/src/bin/efl/efl_debug.c
+++ b/src/bin/efl/efl_debug.c
@@ -16,6 +16,7 @@
  * if not, see .
  */
 
+#define DECLARE_OPS
 #include "efl_debug_common.h"
 
 static Eo *dialer;
@@ -272,5 +273,9 @@ main(int argc, char **argv)
ecore_con_shutdown();
ecore_shutdown();
eina_shutdown();
+
+   (void) OP_HELO;
+   (void) OP_EVLG;
+
return retval;
 }
diff --git a/src/bin/efl/efl_debug_common.h b/src/bin/efl/efl_debug_common.h
index fdb9e45..b355210 100644
--- a/src/bin/efl/efl_debug_common.h
+++ b/src/bin/efl/efl_debug_common.h
@@ -48,6 +48,7 @@ int _proto_read(unsigned char **buf, unsigned int *buf_size,
 #define IS_OP(x) memcmp(op, OP_ ## x, 4) == 0
 
 #define DECLARE_OP(x) static char OP_ ## x[4] = #x
+#ifdef DECLARE_OPS
 DECLARE_OP(LIST);
 DECLARE_OP(CLST);
 DECLARE_OP(PLON);
@@ -56,6 +57,7 @@ DECLARE_OP(EVON);
 DECLARE_OP(EVOF);
 DECLARE_OP(EVLG);
 DECLARE_OP(HELO);
+#endif
 
 Eina_Bool send_data(Eo *sock, const char op[static 4], const void *data, 
unsigned int len);
 Eina_Bool received_data(Eo *sock, void (*handle)(void *data, const char 
op[static 4], const Eina_Slice payload), const void *data);
diff --git a/src/bin/efl/efl_debugd.c b/src/bin/efl/efl_debugd.c
index 5c149d0..dfe175c 100644
--- a/src/bin/efl/efl_debugd.c
+++ b/src/bin/efl/efl_debugd.c
@@ -16,6 +16,7 @@
  * if not, see .
  */
 
+#define DECLARE_OPS
 #include "efl_debug_common.h"
 
 typedef struct _Client Client;

-- 




[EGIT] [core/efl] master 05/11: ecore_con: reduce amount of warning related to clobbered variable.

2016-12-15 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit 32da71d65d51e0bebfd0b00560e03451409cba02
Author: Cedric BAIL 
Date:   Thu Dec 15 10:31:56 2016 -0800

ecore_con: reduce amount of warning related to clobbered variable.
---
 src/lib/ecore_con/ecore_con.c | 14 +++---
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/lib/ecore_con/ecore_con.c b/src/lib/ecore_con/ecore_con.c
index 7aaeb35..53a9bda 100644
--- a/src/lib/ecore_con/ecore_con.c
+++ b/src/lib/ecore_con/ecore_con.c
@@ -939,7 +939,7 @@ static Eina_Error
 _efl_net_ip_connect(const struct addrinfo *addr, SOCKET *sockfd)
 {
SOCKET fd = INVALID_SOCKET;
-   Eina_Error ret = 0;
+   volatile Eina_Error ret = 0;
 
/* always close-on-exec since it's not a point to pass an
 * under construction socket to a child process.
@@ -985,7 +985,7 @@ _efl_net_ip_resolve_and_connect(const char *host, const 
char *port, int type, in
  .ai_family = AF_UNSPEC,
  .ai_flags = AI_ADDRCONFIG | AI_V4MAPPED,
};
-   Eina_Error ret = EFL_NET_DIALER_ERROR_COULDNT_CONNECT;
+   volatile Eina_Error ret = EFL_NET_DIALER_ERROR_COULDNT_CONNECT;
int r;
 
if (strchr(host, ':')) hints.ai_family = AF_INET6;
@@ -1108,7 +1108,7 @@ 
_efl_net_ip_connect_async_run_socks4_try(Efl_Net_Ip_Connect_Async_Data *d, const
socklen_t proxy_addrlen;
SOCKET fd;
Eina_Error err;
-   Eina_Bool ret = EINA_FALSE;
+   volatile Eina_Bool ret = EINA_FALSE;
ssize_t s;
 
err = _efl_net_ip_resolve_and_connect(proxy_host, proxy_port, SOCK_STREAM, 
IPPROTO_TCP, , (struct sockaddr *)_addr, _addrlen);
@@ -1565,7 +1565,7 @@ 
_efl_net_ip_connect_async_run_socks5_auth_user_pass(SOCKET fd, const char *user,
uint8_t pass_len = pass ? strlen(pass) : 0;
size_t len = 1 + 1 + user_len + 1 + pass_len;
char *msg;
-   Eina_Bool ret = EINA_FALSE;
+   volatile Eina_Bool ret = EINA_FALSE;
ssize_t s;
 
msg = malloc(len);
@@ -1630,7 +1630,7 @@ 
_efl_net_ip_connect_async_run_socks5_try(Efl_Net_Ip_Connect_Async_Data *d, const
socklen_t proxy_addrlen;
SOCKET fd;
Eina_Error err;
-   Eina_Bool ret = EINA_FALSE;
+   volatile Eina_Bool ret = EINA_FALSE;
ssize_t s;
 
err = _efl_net_ip_resolve_and_connect(proxy_host, proxy_port, SOCK_STREAM, 
IPPROTO_TCP, , (struct sockaddr *)_addr, _addrlen);
@@ -2053,8 +2053,8 @@ _efl_net_ip_connect_async_run(void *data, Ecore_Thread 
*thread EINA_UNUSED)
const char *host, *port, *proxy;
char *addrcopy;
char **proxies = NULL;
-   int proxies_idx = 0;
-   Eina_Bool is_libproxy = EINA_FALSE;
+   volatile int proxies_idx = 0;
+   volatile Eina_Bool is_libproxy = EINA_FALSE;
 
addrcopy = strdup(d->address);
if (!addrcopy)

-- 




[EGIT] [core/efl] master 11/11: eina: pass the right size of the string to avoid unbounded access warning.

2016-12-15 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit b3cc37dd7788b2c99bd8a05da7bf9fb02972d3ab
Author: Cedric BAIL 
Date:   Thu Dec 15 11:39:16 2016 -0800

eina: pass the right size of the string to avoid unbounded access warning.
---
 src/tests/eina/eina_test_str.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/tests/eina/eina_test_str.c b/src/tests/eina/eina_test_str.c
index 9a47dcf..3ed8b1e 100644
--- a/src/tests/eina/eina_test_str.c
+++ b/src/tests/eina/eina_test_str.c
@@ -26,7 +26,7 @@
 
 #include "eina_suite.h"
 
-   START_TEST(str_simple)
+START_TEST(str_simple)
 {
size_t i;
char *str, *ret;
@@ -88,7 +88,7 @@
fail_if(eina_streq("x", "x "));
fail_if(!eina_streq("xab", "xab"));
 
-   fail_if(eina_strlen_bounded("abc", 1024) != strlen("abc"));
+   fail_if(eina_strlen_bounded("abc", 4) != strlen("abc"));
fail_if(eina_strlen_bounded("abc", 2) != (size_t)-1);
 
str = malloc(sizeof(char) * 4);

-- 




[EGIT] [core/efl] master 10/11: evas: silence warning of clobbered variable in the png saver.

2016-12-15 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit 57b5a237f2c677da375cae4cba498796bfa29d6e
Author: Cedric BAIL 
Date:   Thu Dec 15 11:31:31 2016 -0800

evas: silence warning of clobbered variable in the png saver.
---
 src/modules/evas/image_savers/png/evas_image_save_png.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/modules/evas/image_savers/png/evas_image_save_png.c 
b/src/modules/evas/image_savers/png/evas_image_save_png.c
index 771fcea..e7149be 100644
--- a/src/modules/evas/image_savers/png/evas_image_save_png.c
+++ b/src/modules/evas/image_savers/png/evas_image_save_png.c
@@ -28,7 +28,8 @@ save_image_png(RGBA_Image *im, const char *file, int 
do_compress, int interlace)
png_infop   info_ptr;
DATA32 *ptr, *data = NULL;
unsigned intx, y, j;
-   png_bytep   row_ptr, png_data = NULL;
+   png_bytep   row_ptr;
+   volatile png_bytep  png_data = NULL;
png_color_8 sig_bit;
int num_passes = 1, pass;
 

-- 




[EGIT] [core/efl] master 09/11: evas: fix use of signed and unsigned type in conditional expression warning.

2016-12-15 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit 224ba8586b3cde4ed414e5a99b4edd9f812e8429
Author: Cedric BAIL 
Date:   Thu Dec 15 11:28:17 2016 -0800

evas: fix use of signed and unsigned type in conditional expression warning.
---
 src/lib/evas/common/evas_image_main.c | 14 +++---
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/lib/evas/common/evas_image_main.c 
b/src/lib/evas/common/evas_image_main.c
index d9330f0..11588ad 100644
--- a/src/lib/evas/common/evas_image_main.c
+++ b/src/lib/evas/common/evas_image_main.c
@@ -186,7 +186,7 @@ _evas_common_rgba_image_plane_get(const RGBA_Image *im, int 
plane, Eina_Slice *s
 {
unsigned char **csdata = NULL;
Evas_Colorspace cs;
-   int w, h;
+   size_t w, h;
 
if (!im || !slice) return EINA_FALSE;
cs = im->cache_entry.space;
@@ -251,7 +251,7 @@ _evas_common_rgba_image_plane_get(const RGBA_Image *im, int 
plane, Eina_Slice *s
   case EVAS_COLORSPACE_YCBCR422601_PL:
 if (plane != 0) return EINA_FALSE;
 slice->mem = csdata[0];
-slice->len = (h > 1) ? ((size_t) (csdata[1] - csdata[0]) * h * 2) : (w 
* 2);
+slice->len = (h > 1) ? ((csdata[1] - csdata[0]) * h * 2) : (w * 2);
 return EINA_TRUE;
 
 // 2 planes
@@ -260,13 +260,13 @@ _evas_common_rgba_image_plane_get(const RGBA_Image *im, 
int plane, Eina_Slice *s
 if (plane == 0)
   {
  slice->mem = csdata[0];
- slice->len = (h > 1) ? ((size_t) (csdata[1] - csdata[0]) * h) : w;
+ slice->len = (h > 1) ? ((csdata[1] - csdata[0]) * h) : w;
  return EINA_TRUE;
   }
 else if (plane == 1)
   {
  slice->mem = csdata[h];
- slice->len = (h > 1) ? ((size_t) (csdata[h+1] - csdata[h]) * h / 
2) : w / 2;
+ slice->len = (h > 1) ? ((csdata[h+1] - csdata[h]) * h / 2) : w / 
2;
  return EINA_TRUE;
   }
 return EINA_FALSE;
@@ -277,19 +277,19 @@ _evas_common_rgba_image_plane_get(const RGBA_Image *im, 
int plane, Eina_Slice *s
 if (plane == 0)
   {
  slice->mem = csdata[0];
- slice->len = (h > 1) ? ((size_t) (csdata[1] - csdata[0]) * h) : w;
+ slice->len = (h > 1) ? ((csdata[1] - csdata[0]) * h) : w;
  return EINA_TRUE;
   }
 else if (plane == 1)
   {
  slice->mem = csdata[h];
- slice->len = (h > 1) ? ((size_t) (csdata[h+1] - csdata[h]) * h / 
2) : w / 2;
+ slice->len = (h > 1) ? ((csdata[h+1] - csdata[h]) * h / 2) : w / 
2;
  return EINA_TRUE;
   }
 else if (plane == 2)
   {
  slice->mem = csdata[h + h / 2];
- slice->len = (h > 1) ? ((size_t) (csdata[h+h/2+1] - 
csdata[h+h/2]) * h / 2) : w / 2;
+ slice->len = (h > 1) ? ((csdata[h+h/2+1] - csdata[h+h/2]) * h / 
2) : w / 2;
  return EINA_TRUE;
   }
 return EINA_FALSE;

-- 




[EGIT] [core/efl] master 01/11: ecore_con: fix misleading indentation warning.

2016-12-15 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit 59bf58829cfb8259d86fa9eca4fcb50ce4ab5b40
Author: Cedric BAIL 
Date:   Thu Dec 15 09:55:11 2016 -0800

ecore_con: fix misleading indentation warning.
---
 src/tests/ecore_con/ecore_con_test_efl_net_ip_address.c | 10 +-
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/tests/ecore_con/ecore_con_test_efl_net_ip_address.c 
b/src/tests/ecore_con/ecore_con_test_efl_net_ip_address.c
index 2ac4e4b..cd2999c 100644
--- a/src/tests/ecore_con/ecore_con_test_efl_net_ip_address.c
+++ b/src/tests/ecore_con/ecore_con_test_efl_net_ip_address.c
@@ -204,11 +204,11 @@ _assert_found_internal(const char *file, int line, const 
struct resolve_ctx *ctx
EINA_ARRAY_ITER_NEXT(ctx->results, i, o, it)
  fprintf(stderr, "result %u: %s\n", i, efl_net_ip_address_string_get(o));
 
- _ck_assert_failed(file, line, "Failed",
-   "Expected found=%hhu, got %hhu resolving=%s",
-   expected, found,
-   string,
-   NULL);
+   _ck_assert_failed(file, line, "Failed",
+ "Expected found=%hhu, got %hhu resolving=%s",
+ expected, found,
+ string,
+ NULL);
 }
 
 static void

-- 




[EGIT] [core/efl] master 07/11: emile: reduce the amount of clobbered variable.

2016-12-15 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit e12d59e21684afae6ecbffa142cd6fec446295cd
Author: Cedric BAIL 
Date:   Thu Dec 15 11:17:34 2016 -0800

emile: reduce the amount of clobbered variable.
---
 src/lib/emile/emile_image.c | 33 ++---
 1 file changed, 14 insertions(+), 19 deletions(-)

diff --git a/src/lib/emile/emile_image.c b/src/lib/emile/emile_image.c
index e04df4c..da17464 100644
--- a/src/lib/emile/emile_image.c
+++ b/src/lib/emile/emile_image.c
@@ -1380,7 +1380,7 @@ _emile_jpeg_head(Emile_Image *image,
  unsigned int property_size,
  Emile_Image_Load_Error *error)
 {
-   Emile_Image_Load_Opts *opts = NULL;
+   volatile Emile_Image_Load_Opts *opts = (image->load_opts) ? >opts : 
NULL;
const unsigned char *m;
unsigned int scalew, scaleh;
struct jpeg_decompress_struct cinfo;
@@ -1388,9 +1388,9 @@ _emile_jpeg_head(Emile_Image *image,
unsigned int length;
 
/* for rotation decoding */
-   int degree = 0;
-   Eina_Bool change_wh = EINA_FALSE;
-   unsigned int load_opts_w = 0, load_opts_h = 0;
+   volatile int degree = 0;
+   volatile Eina_Bool change_wh = EINA_FALSE;
+   volatile unsigned int load_opts_w = 0, load_opts_h = 0;
 
if (sizeof(Emile_Image_Property) != property_size)
  return EINA_FALSE;
@@ -1399,9 +1399,6 @@ _emile_jpeg_head(Emile_Image *image,
if (!m)
  return EINA_FALSE;
 
-   if (image->load_opts)
- opts = >opts;
-
memset(, 0, sizeof(cinfo));
cinfo.err = jpeg_std_error(&(jerr.pub));
cinfo.client_data = NULL;
@@ -1629,17 +1626,18 @@ _emile_jpeg_data(Emile_Image *image,
  Emile_Image_Load_Error *error)
 {
/* Handle RGB, ARGB, GRY and AGRY */
-   Emile_Image_Load_Opts *opts = NULL;
+   volatile Emile_Image_Load_Opts *opts = (image->load_opts) ? >opts : 
NULL;
unsigned int w, h;
struct jpeg_decompress_struct cinfo;
struct _JPEG_error_mgr jerr;
const unsigned char *m = NULL;
uint8_t *ptr, *line[16], *data;
-   uint32_t *ptr2 = NULL, *ptr_rotate = NULL;
+   volatile uint32_t *ptr2 = NULL;
+   uint32_t *ptr_rotate = NULL;
uint16_t *ptrag = NULL, *ptrag_rotate = NULL;
uint8_t *ptrg = NULL, *ptrg_rotate = NULL;
unsigned int x, y, l, i, scans;
-   int region = 0;
+   volatile int region = 0;
/* rotation setting */
unsigned int ie_w = 0, ie_h = 0;
struct
@@ -1648,12 +1646,12 @@ _emile_jpeg_data(Emile_Image *image,
} opts_region = {0, 0, 0, 0};
volatile int degree = 0;
volatile Eina_Bool change_wh = EINA_FALSE;
-   Eina_Bool line_done = EINA_FALSE;
-   Eina_Bool ptrg_free = EINA_FALSE;
-   Eina_Bool ptrag_free = EINA_FALSE;
-   Eina_Bool r = EINA_FALSE;
+   volatile Eina_Bool line_done = EINA_FALSE;
+   volatile Eina_Bool ptrg_free = EINA_FALSE;
+   volatile Eina_Bool ptrag_free = EINA_FALSE;
+   volatile Eina_Bool r = EINA_FALSE;
unsigned int length;
-   unsigned short count = 0;
+   volatile unsigned short count = 0;
 
if (sizeof(Emile_Image_Property) != property_size)
  return EINA_FALSE;
@@ -1662,9 +1660,6 @@ _emile_jpeg_data(Emile_Image *image,
if (!m)
  return EINA_FALSE;
 
-   if (image->load_opts)
- opts = >opts;
-
memset(, 0, sizeof(cinfo));
if (prop->rotated)
  {
@@ -1854,7 +1849,7 @@ _emile_jpeg_data(Emile_Image *image,
 else
   {
  ptr2 = malloc(w * h * sizeof(uint32_t));
- ptr_rotate = ptr2;
+ ptr_rotate = (uint32_t*) ptr2;
   }
  }
else

-- 




[EGIT] [core/efl] master 01/01: ecore-x: fix Mode_switch key mapping

2016-12-15 Thread Hannes Janetzek
discomfitor pushed a commit to branch master.

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

commit 1b0690dd9a9e58365601ba6aeda4988998647b1c
Author: Hannes Janetzek 
Date:   Thu Dec 15 05:18:39 2016 +0100

ecore-x: fix Mode_switch key mapping

- remove redundant XKeysymToString when sym == sym2

@fix
---
 src/lib/ecore_x/ecore_x_events.c | 13 +++--
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/src/lib/ecore_x/ecore_x_events.c b/src/lib/ecore_x/ecore_x_events.c
index 0049fca..b19d60a 100644
--- a/src/lib/ecore_x/ecore_x_events.c
+++ b/src/lib/ecore_x/ecore_x_events.c
@@ -344,7 +344,7 @@ _ecore_key_press(int event,
char *compose = NULL;
char *tmp = NULL;
char *keyname;
-   char *key;
+   char *key = NULL;
char keyname_buffer[256];
char compose_buffer[256];
KeySym sym, sym2 = 0;
@@ -372,6 +372,12 @@ _ecore_key_press(int event,
sizeof(compose_buffer),
,
);
+
+   if (sym != sym2)
+ key = XKeysymToString(sym2);
+   if (!key)
+ key = keyname;
+
if (val > 0)
  {
 compose_buffer[val] = 0;
@@ -381,13 +387,8 @@ _ecore_key_press(int event,
   ERR("Ecore_X cannot convert input key string '%s' to UTF-8. "
   "Is Eina built with iconv support?", compose_buffer);
 tmp = compose;
-sym = sym2;
  }
 
-   key = XKeysymToString(sym);
-   if (!key)
- key = keyname;
-
key_len = strlen(key);
keyname_len = strlen(keyname);
compose_len = (compose) ? strlen(compose) : 0;

-- 




Re: [E-devel] [EGIT] [core/enlightenment] master 01/01: Fix wayland frame callback times

2016-12-15 Thread Derek Foreman
On 14/12/16 06:58 PM, Carsten Haitzler (The Rasterman) wrote:
> On Tue, 13 Dec 2016 11:54:32 -0800 Derek Foreman  
> said:
>
> just a note. i know the original code was wrong and used unix time... unix 
> time
> is gettimeofday and thus can go forward and back (eg ntp changes) and also 
> thus
> its a huge number rather than ecore_time_get(). still it'll wrap at about 49.7
> days...

Ahh, I just assumed the original code used an apropriate efl time 
function. :/

I've updated to use ecore_time_get() - I still get a base time at the 
first use of a wayland pixmap because I notice ecore_time_get()'s start 
time is undefined.

Thanks!

> why not just keep a global serial # and ++ it each time? at least it'll wrap
> only after 4 billion or so pixmap frees (that's going to be an exceedingly 
> long
> time i would guess vs using ms)? isn't this just meant to be some unique 
> serial
> number not a timestamp? technically this also means multiple pixmap frees in a
> row there will get the same serial...

The wayland spec for surface.frame states:
"The callback_data passed in the callback is the current time, in 
milliseconds, with an undefined base."

I'm actually pinging a few people about this since I'm pretty sure 
that's not what anyone meant, but it appears to be what we've implemented.

Surely this should be the time that a frame submitted immediately will 
actually hit scanout (this can be checked with an asynchronous vblank 
wait ioctl).

Will try to sort this out today, need to confer with some other wayland 
devs and maybe have the spec text clarified.

Thanks,
Derek

>> derekf pushed a commit to branch master.
>>
>> http://git.enlightenment.org/core/enlightenment.git/commit/?id=0493abf457331fc604e2aa64eb51448fada09913
>>
>> commit 0493abf457331fc604e2aa64eb51448fada09913
>> Author: Derek Foreman 
>> Date:   Tue Dec 13 13:53:18 2016 -0600
>>
>> Fix wayland frame callback times
>>
>> ecore_time_unix_get() * 1000 is too big to fit in a uint32, so take the
>> time we instantiate the wayland pixmap hash and use that as a base.
>> ---
>>  src/bin/e_pixmap.c | 10 --
>>  1 file changed, 8 insertions(+), 2 deletions(-)
>>
>> diff --git a/src/bin/e_pixmap.c b/src/bin/e_pixmap.c
>> index f46a994..8e072a0 100644
>> --- a/src/bin/e_pixmap.c
>> +++ b/src/bin/e_pixmap.c
>> @@ -64,6 +64,8 @@ struct _E_Pixmap
>>
>>  #ifdef HAVE_WAYLAND
>>
>> +double wayland_time_base;
>> +
>>  static void
>>  _e_pixmap_cb_deferred_buffer_destroy(struct wl_listener *listener, void
>> *data EINA_UNUSED) {
>> @@ -342,7 +344,10 @@ e_pixmap_new(E_Pixmap_Type type, ...)
>> }
>>}
>>  else
>> -  pixmaps[type] = eina_hash_int64_new((Eina_Free_Cb)_e_pixmap_free);
>> +  {
>> + pixmaps[type] = eina_hash_int64_new
>> ((Eina_Free_Cb)_e_pixmap_free);
>> + wayland_time_base = ecore_time_unix_get();
>> +  }
>>  cp = _e_pixmap_new(type);
>>  cp->win = id;
>>  eina_hash_add(pixmaps[type], , cp);
>> @@ -798,7 +803,8 @@ e_pixmap_image_clear(E_Pixmap *cp, Eina_Bool cache)
>>   cd->frames = NULL;
>>   EINA_LIST_FREE(free_list, cb)
>> {
>> -  wl_callback_send_done(cb, ecore_time_unix_get() * 1000);
>> +  double t = ecore_time_unix_get() - wayland_time_base;
>> +  wl_callback_send_done(cb, t * 1000);
>>wl_resource_destroy(cb);
>> }
>>}
>>
>> --
>>
>>
>
>


--
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/enlightenment] master 01/01: Use a monotonic clock for frame callback times

2016-12-15 Thread Derek Foreman
derekf pushed a commit to branch master.

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

commit d83e8856733773e535b912d96bc4957ad5c04552
Author: Derek Foreman 
Date:   Thu Dec 15 09:59:21 2016 -0600

Use a monotonic clock for frame callback times
---
 src/bin/e_pixmap.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/bin/e_pixmap.c b/src/bin/e_pixmap.c
index 8e072a0..bbc82fa 100644
--- a/src/bin/e_pixmap.c
+++ b/src/bin/e_pixmap.c
@@ -346,7 +346,7 @@ e_pixmap_new(E_Pixmap_Type type, ...)
 else
   {
  pixmaps[type] = eina_hash_int64_new((Eina_Free_Cb)_e_pixmap_free);
- wayland_time_base = ecore_time_unix_get();
+ wayland_time_base = ecore_time_get();
   }
 cp = _e_pixmap_new(type);
 cp->win = id;
@@ -803,7 +803,7 @@ e_pixmap_image_clear(E_Pixmap *cp, Eina_Bool cache)
  cd->frames = NULL;
  EINA_LIST_FREE(free_list, cb)
{
-  double t = ecore_time_unix_get() - wayland_time_base;
+  double t = ecore_time_get() - wayland_time_base;
   wl_callback_send_done(cb, t * 1000);
   wl_resource_destroy(cb);
}

-- 




[EGIT] [core/enlightenment] master 02/02: fix comparison between signed and unsigned int expressions in xkbswitch module

2016-12-15 Thread Christopher Michael
devilhorns pushed a commit to branch master.

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

commit 72a2758b5ae1107565c053661bcb9c2401ebe7fa
Author: Chris Michael 
Date:   Thu Dec 15 10:19:57 2016 -0500

fix comparison between signed and unsigned int expressions in
xkbswitch module

Signed-off-by: Chris Michael 
---
 src/modules/xkbswitch/e_mod_parse.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/modules/xkbswitch/e_mod_parse.c 
b/src/modules/xkbswitch/e_mod_parse.c
index 914f2df..af673df 100644
--- a/src/modules/xkbswitch/e_mod_parse.c
+++ b/src/modules/xkbswitch/e_mod_parse.c
@@ -104,7 +104,7 @@ parse_rules(void)
E_XKB_Option *option = NULL;
E_XKB_Variant *variant = NULL;
FILE *f;
-   int i;
+   unsigned int i;
 
if (!rules_file) return 0;
 

-- 




[EGIT] [core/enlightenment] master 01/02: fix formatting

2016-12-15 Thread Christopher Michael
devilhorns pushed a commit to branch master.

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

commit a11492784d5158521e2fa2255a7aa655c4725bd3
Author: Chris Michael 
Date:   Thu Dec 15 10:19:21 2016 -0500

fix formatting

NB: No functional changes

Signed-off-by: Chris Michael 
---
 src/modules/xkbswitch/e_mod_parse.c | 82 ++---
 1 file changed, 41 insertions(+), 41 deletions(-)

diff --git a/src/modules/xkbswitch/e_mod_parse.c 
b/src/modules/xkbswitch/e_mod_parse.c
index e309e45..914f2df 100644
--- a/src/modules/xkbswitch/e_mod_parse.c
+++ b/src/modules/xkbswitch/e_mod_parse.c
@@ -30,26 +30,27 @@ Eina_List *optsolaris = NULL;
 Eina_List *optterminate = NULL;
 Eina_List *optmisc = NULL;
 
-static Config_Parse_Label grplabels[] = {
-{ "grp_led",  },
-{ "grp",  },
-{ "lv3",  },
-{ "ctrl",  },
-{ "keypad",  },
-{ "kpdl",  },
-{ "caps",  },
-{ "altwin",  },
-{ "compose",  },
-{ "currencysign",  },
-{ "eurosign",  },
-{ "rupeesign",  },
-{ "lv5",  },
-{ "nbsp",  },
-{ "jap",  },
-{ "korean",  },
-{ "esperanto",  },
-{ "solaris",  },
-{ "terminate",  }
+static Config_Parse_Label grplabels[] =
+{
+   { "grp_led",  },
+   { "grp",  },
+   { "lv3",  },
+   { "ctrl",  },
+   { "keypad",  },
+   { "kpdl",  },
+   { "caps",  },
+   { "altwin",  },
+   { "compose",  },
+   { "currencysign",  },
+   { "eurosign",  },
+   { "rupeesign",  },
+   { "lv5",  },
+   { "nbsp",  },
+   { "jap",  },
+   { "korean",  },
+   { "esperanto",  },
+   { "solaris",  },
+   { "terminate",  }
 };
 
 static const char *rules_file = NULL;
@@ -60,26 +61,27 @@ void
 find_rules(void)
 {
int i = 0;
-   const char *lstfiles[] = {
+   const char *lstfiles[] =
+ {
 #ifdef XKB_BASE
-  XKB_BASE "/rules/xorg.lst",
-  XKB_BASE "/rules/xfree86.lst",
+XKB_BASE "/rules/xorg.lst",
+XKB_BASE "/rules/xfree86.lst",
 #endif
 #if defined __NetBSD__
-  "/usr/X11R7/lib/X11/xkb/rules/xorg.lst",
+"/usr/X11R7/lib/X11/xkb/rules/xorg.lst",
 #elif defined __OpenBSD__
-  "/usr/X11R6/share/X11/xkb/rules/base.lst",
+"/usr/X11R6/share/X11/xkb/rules/base.lst",
 #endif
-  "/usr/share/X11/xkb/rules/xorg.lst",
-  "/usr/share/X11/xkb/rules/xfree86.lst",
-  "/usr/local/share/X11/xkb/rules/xorg.lst",
-  "/usr/local/share/X11/xkb/rules/xfree86.lst",
-  "/usr/X11R6/lib/X11/xkb/rules/xorg.lst",
-  "/usr/X11R6/lib/X11/xkb/rules/xfree86.lst",
-  "/usr/local/X11R6/lib/X11/xkb/rules/xorg.lst",
-  "/usr/local/X11R6/lib/X11/xkb/rules/xfree86.lst",
-  NULL
-   };
+"/usr/share/X11/xkb/rules/xorg.lst",
+"/usr/share/X11/xkb/rules/xfree86.lst",
+"/usr/local/share/X11/xkb/rules/xorg.lst",
+"/usr/local/share/X11/xkb/rules/xfree86.lst",
+"/usr/X11R6/lib/X11/xkb/rules/xorg.lst",
+"/usr/X11R6/lib/X11/xkb/rules/xfree86.lst",
+"/usr/local/X11R6/lib/X11/xkb/rules/xorg.lst",
+"/usr/local/X11R6/lib/X11/xkb/rules/xfree86.lst",
+NULL
+ };
 
for (; lstfiles[i]; i++)
  {
@@ -129,7 +131,7 @@ parse_rules(void)
models = eina_list_append(models, model);
 
/* read models here */
-   for (;; )
+   for (;;)
  {
 if (fgets(buf, sizeof(buf), f))
   {
@@ -167,7 +169,7 @@ parse_rules(void)
if (!fgets(buf, sizeof(buf), f)) goto err;
 
/* read layouts here */
-   for (;; )
+   for (;;)
  {
 if (fgets(buf, sizeof(buf), f))
   {
@@ -209,7 +211,7 @@ parse_rules(void)
if (!fgets(buf, sizeof(buf), f)) goto err;
 
/* read variants here */
-   for (;; )
+   for (;;)
  {
 if (fgets(buf, sizeof(buf), f))
   {
@@ -254,7 +256,7 @@ parse_rules(void)
if (!fgets(buf, sizeof(buf), f)) goto err;
 
/* read options here */
-   for (;; )
+   for (;;)
  {
 if (fgets(buf, sizeof(buf), f))
   {
@@ -317,8 +319,6 @@ _free_option(E_XKB_Option *o)
E_FREE(o);
 }
 
-
-
 void
 clear_rules(void)
 {

-- 




[EGIT] [core/enlightenment] master 01/01: add missing EINA_UNUSED for unused function parameters

2016-12-15 Thread Christopher Michael
devilhorns pushed a commit to branch master.

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

commit 3a714c6e04b2f112c59eb74803dfad522864e6b2
Author: Chris Michael 
Date:   Thu Dec 15 10:17:19 2016 -0500

add missing EINA_UNUSED for unused function parameters

Signed-off-by: Chris Michael 
---
 src/modules/xkbswitch/e_mod_config.c | 44 ++--
 1 file changed, 22 insertions(+), 22 deletions(-)

diff --git a/src/modules/xkbswitch/e_mod_config.c 
b/src/modules/xkbswitch/e_mod_config.c
index e7fa898..9eb7b17 100644
--- a/src/modules/xkbswitch/e_mod_config.c
+++ b/src/modules/xkbswitch/e_mod_config.c
@@ -456,7 +456,7 @@ _list_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED, void *e
 }
 
 static void
-_option_del(void *data, Evas_Object *obj, void *event)
+_option_del(void *data, Evas_Object *obj, void *event EINA_UNUSED)
 {
Eina_List **list;
Eina_List *l;
@@ -930,7 +930,7 @@ _popup_item_clicked(void *data, Evas_Object *obj, void 
*event_info EINA_UNUSED)
 }
 
 static Evas_Object *
-_popup_item_tooltip(void *data, Evas_Object *obj, Evas_Object *tooltip, void 
*item)
+_popup_item_tooltip(void *data, Evas_Object *obj EINA_UNUSED, Evas_Object 
*tooltip, void *item EINA_UNUSED)
 {
E_XKB_Option *option;
Evas_Object *o;
@@ -944,7 +944,7 @@ _popup_item_tooltip(void *data, Evas_Object *obj, 
Evas_Object *tooltip, void *it
 }
 
 static void
-_popup_add(const char *title, E_Config_Dialog_Data *cfdata, Eina_List *opts, 
Eina_List **cfg_opts, Evas_Object *list_objects)
+_popup_add(const char *title, E_Config_Dialog_Data *cfdata, Eina_List *opts, 
Eina_List **cfg_opts, Evas_Object *list_objects EINA_UNUSED)
 {
Evas_Object *popup, *fr, *vbx, *bx, *list, *o;
E_XKB_Option *option, *op;
@@ -1015,7 +1015,7 @@ _popup_add(const char *title, E_Config_Dialog_Data 
*cfdata, Eina_List *opts, Ein
 }
 
 static void
-_cb_compose_up(void *data, Evas_Object *obj, void *event)
+_cb_compose_up(void *data, Evas_Object *obj EINA_UNUSED, void *event 
EINA_UNUSED)
 {
E_Config_Dialog_Data *cfdata;
 
@@ -1026,7 +1026,7 @@ _cb_compose_up(void *data, Evas_Object *obj, void *event)
 }
 
 static void
-_cb_lv3_up(void *data, Evas_Object *obj, void *event)
+_cb_lv3_up(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
 {
E_Config_Dialog_Data *cfdata;
 
@@ -1037,7 +1037,7 @@ _cb_lv3_up(void *data, Evas_Object *obj, void *event)
 }
 
 static void
-_cb_switch_up(void *data, Evas_Object *obj, void *event)
+_cb_switch_up(void *data, Evas_Object *obj EINA_UNUSED, void *event 
EINA_UNUSED)
 {
E_Config_Dialog_Data *cfdata;
 
@@ -1048,7 +1048,7 @@ _cb_switch_up(void *data, Evas_Object *obj, void *event)
 }
 
 static void
-_cb_led_up(void *data, Evas_Object *obj, void *event)
+_cb_led_up(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
 {
E_Config_Dialog_Data *cfdata;
 
@@ -1060,7 +1060,7 @@ _cb_led_up(void *data, Evas_Object *obj, void *event)
 
 
 static void
-_cb_ctrl_up(void *data, Evas_Object *obj, void *event)
+_cb_ctrl_up(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
 {
E_Config_Dialog_Data *cfdata;
 
@@ -1071,7 +1071,7 @@ _cb_ctrl_up(void *data, Evas_Object *obj, void *event)
 }
 
 static void
-_cb_keypad_up(void *data, Evas_Object *obj, void *event)
+_cb_keypad_up(void *data, Evas_Object *obj EINA_UNUSED, void *event 
EINA_UNUSED)
 {
E_Config_Dialog_Data *cfdata;
 
@@ -1083,7 +1083,7 @@ _cb_keypad_up(void *data, Evas_Object *obj, void *event)
 
 
 static void
-_cb_delkeypad_up(void *data, Evas_Object *obj, void *event)
+_cb_delkeypad_up(void *data, Evas_Object *obj EINA_UNUSED, void *event 
EINA_UNUSED)
 {
E_Config_Dialog_Data *cfdata;
 
@@ -1094,7 +1094,7 @@ _cb_delkeypad_up(void *data, Evas_Object *obj, void 
*event)
 }
 
 static void
-_cb_capslock_up(void *data, Evas_Object *obj, void *event)
+_cb_capslock_up(void *data, Evas_Object *obj EINA_UNUSED, void *event 
EINA_UNUSED)
 {
E_Config_Dialog_Data *cfdata;
 
@@ -1105,7 +1105,7 @@ _cb_capslock_up(void *data, Evas_Object *obj, void *event)
 }
 
 static void
-_cb_altwin_up(void *data, Evas_Object *obj, void *event)
+_cb_altwin_up(void *data, Evas_Object *obj EINA_UNUSED, void *event 
EINA_UNUSED)
 {
E_Config_Dialog_Data *cfdata;
 
@@ -1116,7 +1116,7 @@ _cb_altwin_up(void *data, Evas_Object *obj, void *event)
 }
 
 static void
-_cb_currency_up(void *data, Evas_Object *obj, void *event)
+_cb_currency_up(void *data, Evas_Object *obj EINA_UNUSED, void *event 
EINA_UNUSED)
 {
E_Config_Dialog_Data *cfdata;
 
@@ -1127,7 +1127,7 @@ _cb_currency_up(void *data, Evas_Object *obj, void *event)
 }
 
 static void
-_cb_lv5_up(void *data, Evas_Object *obj, void *event)
+_cb_lv5_up(void *data, Evas_Object *obj EINA_UNUSED, void *event EINA_UNUSED)
 {
E_Config_Dialog_Data *cfdata;
 
@@ -1138,7 +1138,7 @@ _cb_lv5_up(void *data, 

[EGIT] [core/enlightenment] master 01/01: E_Config: Fix auto load of luncher

2016-12-15 Thread Stephen 'Okra' Houston
okra pushed a commit to branch master.

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

commit 30ba420c6dc7fea14064741a5114a49777c490b2
Author: Stephen 'Okra' Houston 
Date:   Thu Dec 15 09:00:35 2016 -0600

E_Config: Fix auto load of luncher

This fixes T5007 https://phab.enlightenment.org/T5007
---
 src/bin/e_config.c | 14 +++---
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/bin/e_config.c b/src/bin/e_config.c
index ae3ce85..0e7b75d 100644
--- a/src/bin/e_config.c
+++ b/src/bin/e_config.c
@@ -1466,14 +1466,14 @@ e_config_load(void)
 ibar_en = EINA_TRUE;
   else if (eina_streq(em->name, "luncher"))
 luncher_en = EINA_TRUE;
-  if (ibar_en && !luncher_en)
-{
-   module = E_NEW(E_Config_Module, 1);
-   module->name = eina_stringshare_add("luncher");
-   module->enabled = 1;
-   e_config->modules = eina_list_append(e_config->modules, 
module);
-}
}
+   if (ibar_en && !luncher_en)
+ {
+module = E_NEW(E_Config_Module, 1);
+module->name = eina_stringshare_add("luncher");
+module->enabled = 1;
+e_config->modules = eina_list_append(e_config->modules, 
module);
+ }
 }
  }
if (!e_config->remember_internal_fm_windows)

-- 




Re: [E-devel] enlightenment connman module crash e

2016-12-15 Thread Vasiliy Tolstov
2016-12-15 16:48 GMT+03:00  :
> Here is our groupware:
>
> https://phab.enlightenment.org/
>
> You need to login and click maniphest on the left, then you should see
> "Create Task" on the upper right.


Thanks, created

-- 
Vasiliy Tolstov,
e-mail: v.tols...@selfip.ru

--
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] enlightenment connman module crash e

2016-12-15 Thread marcel-hollerbach
On Thu, Dec 15, 2016 at 04:42:21PM +0300, Vasiliy Tolstov wrote:
> 2016-12-15 16:12 GMT+03:00 Mike Blumenkrantz :
> > Please stop reporting bugs on this mailing list. We have a bug tracker for
> > this purpose.
> 
> 
> I'm try, but -> Only report a bug here goes to page:
> 
> 404 Not Found

Here is our groupware:

https://phab.enlightenment.org/

You need to login and click maniphest on the left, then you should see
"Create Task" on the upper right.

> 
> Do not dwell in the past, do not dream of the future, concentrate the
> mind on the present moment.
> 
> 
> -- 
> Vasiliy Tolstov,
> e-mail: v.tols...@selfip.ru
> 
> --
> Check out the vibrant tech community on one of the world's most 
> engaging tech sites, SlashDot.org! http://sdm.link/slashdot
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

--
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] enlightenment connman module crash e

2016-12-15 Thread Vasiliy Tolstov
2016-12-15 16:12 GMT+03:00 Mike Blumenkrantz :
> Please stop reporting bugs on this mailing list. We have a bug tracker for
> this purpose.


I'm try, but -> Only report a bug here goes to page:

404 Not Found

Do not dwell in the past, do not dream of the future, concentrate the
mind on the present moment.


-- 
Vasiliy Tolstov,
e-mail: v.tols...@selfip.ru

--
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] enlightenment connman module crash e

2016-12-15 Thread Mike Blumenkrantz
Please stop reporting bugs on this mailing list. We have a bug tracker for
this purpose.

See https://www.enlightenment.org/debugging/report_bugs for more details.

On Thu, Dec 15, 2016 at 7:51 AM Vasiliy Tolstov  wrote:

> I'm build connman with openvpn support and when running enlightenment
> in terminology edit my config in /var/lib/connman-vpn/xxx.config
>
> after file saved enlightenment crashed. sorry i'm use release version
> and cant install now debug symbols. But problem i think looks clear:
>
> Thread 1 (Thread 0x7f6ff19db9c0 (LWP 1716)):
> #0  0x7f6fece45d3d in pause () from /lib64/libpthread.so.0
> No symbol table info available.
> #1  
> No symbol table info available.
> #2  0x7f6fed06fc2a in eina_inlist_append () from /lib64/libeina.so.1
> No symbol table info available.
> #3  0x7f6fda45e959 in _connman_service_new () from
>
> /usr/lib64/enlightenment/modules/wireless/linux-gnu-x86_64-ver-0.21/module.so
> No symbol table info available.
> #4  0x7f6fda45eaf7 in _connman_manager_getservices () from
>
> /usr/lib64/enlightenment/modules/wireless/linux-gnu-x86_64-ver-0.21/module.so
> No symbol table info available.
> #5  0x7f6fef4b40be in eldbus_pending_dispatch () from
> /lib64/libeldbus.so.1
> No symbol table info available.
> #6  0x7f6fe69cf392 in complete_pending_call_and_unlock () from
> /lib64/libdbus-1.so.3
> No symbol table info available.
> #7  0x7f6fe69d2cdf in dbus_connection_dispatch () from
> /lib64/libdbus-1.so.3
> No symbol table info available.
> #8  0x7f6fef4ae4b8 in eldbus_idler () from /lib64/libeldbus.so.1
> No symbol table info available.
> #9  0x7f6fed51aa0f in _ecore_factorized_idle_process () from
> /lib64/libecore.so.1
> No symbol table info available.
> #10 0x7f6fefd20b2b in _eo_base_event_callback_call () from
> /lib64/libeo.so.1
> No symbol table info available.
> #11 0x7f6fefd1f794 in eo_event_callback_call () from /lib64/libeo.so.1
> No symbol table info available.
> #12 0x7f6fed51d090 in _ecore_main_loop_spin_core () from
> /lib64/libecore.so.1
> No symbol table info available.
> #13 0x7f6fed51d42c in _ecore_main_loop_iterate_internal () from
> /lib64/libecore.so.1
> No symbol table info available.
> #14 0x7f6fed51d977 in ecore_main_loop_begin () from
> /lib64/libecore.so.1
> No symbol table info available.
> #15 0x0043fa7f in main ()
> No symbol table info available.
>
> --
> Vasiliy Tolstov,
> e-mail: v.tols...@selfip.ru
>
>
> --
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, SlashDot.org! http://sdm.link/slashdot
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
>
--
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [tools/eflete] master 01/01: thumbs: replase thumbs to image special for Windows

2016-12-15 Thread Vyacheslav Reutskiy
rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=7fa341e876842c1f9190466f3b601ded375f0c4c

commit 7fa341e876842c1f9190466f3b601ded375f0c4c
Author: Vyacheslav Reutskiy 
Date:   Wed Dec 14 14:04:59 2016 +0200

thumbs: replase thumbs to image special for Windows

Thumbs does not work on windows now. We have some fixes but now fully.
Special for Windows replace thumbs to image. This is temporary
solution, it's make posible to work with image resource on Windows.
Yes, if edj project consist many images, Image manager in Eflete will be
open very slow, but it work nad user can see images.

After fix ethumb on Windows this commit should be revert.

Change-Id: If3f161e76b34544ecaf47a2ec0bbf8386613f76a
---
 src/bin/ui/image_manager.c | 19 +++
 src/bin/ui/popup.c |  9 -
 2 files changed, 27 insertions(+), 1 deletion(-)

diff --git a/src/bin/ui/image_manager.c b/src/bin/ui/image_manager.c
index e1eed2e..5099f5d 100644
--- a/src/bin/ui/image_manager.c
+++ b/src/bin/ui/image_manager.c
@@ -85,6 +85,7 @@ _image_manager_image_setup(Evas_Object *image,
assert(image != NULL);
assert(it != NULL);
 
+#ifndef _WIN32
if (it->comp_type == EDJE_EDIT_IMAGE_COMP_USER)
  {
 if (ecore_file_exists(it->source))
@@ -96,6 +97,20 @@ _image_manager_image_setup(Evas_Object *image,
  {
 elm_thumb_file_set(image, it->source, NULL);
  }
+#else
+   TODO("Remove this urgly hack when we fix thumbs on Windows")
+   if (it->comp_type == EDJE_EDIT_IMAGE_COMP_USER)
+ {
+if (ecore_file_exists(it->source))
+  elm_image_file_set(image, it->source, NULL);
+else
+  elm_image_file_set(image, ap.path.theme_edj, 
"elm/image/icon/attention");
+ }
+   else
+ {
+elm_image_file_set(image, it->source, NULL);
+ }
+#endif /* _WIN32 */
 }
 
 static inline Evas_Object *
@@ -126,7 +141,11 @@ _grid_content_get(void *data,
 
if (!strcmp(part, "elm.swallow.icon"))
  {
+#ifndef _WIN32
 image_obj = elm_thumb_add(grid);
+#else
+image_obj = elm_image_add(grid);
+#endif /* _win32 */
 elm_object_style_set(image_obj, "noframe");
 _image_manager_image_setup(image_obj, it);
 evas_object_show(image_obj);
diff --git a/src/bin/ui/popup.c b/src/bin/ui/popup.c
index a90b43f..29809e2 100644
--- a/src/bin/ui/popup.c
+++ b/src/bin/ui/popup.c
@@ -784,10 +784,17 @@ _grid_content_get(void *data,
 
if (!strcmp(part, "elm.swallow.icon"))
  {
+#ifndef _WIN32
 image_obj = elm_thumb_add(grid);
-elm_object_style_set(image_obj, "noframe");
 if (strcmp(it->image_name, EFLETE_DUMMY_IMAGE_NAME) != 0)
   elm_thumb_file_set(image_obj, it->source, NULL);
+#else
+TODO("Remove this urgly hack when we fix thumbs on Windows")
+image_obj = elm_image_add(grid);
+if (strcmp(it->image_name, EFLETE_DUMMY_IMAGE_NAME) != 0)
+  elm_image_file_set(image_obj, it->source, NULL);
+#endif /* _WIN32 */
+elm_object_style_set(image_obj, "noframe");
 evas_object_show(image_obj);
  }
else if ((!strcmp(part, "elm.swallow.end") && (strcmp(it->image_name, 
EFLETE_DUMMY_IMAGE_NAME) != 0)))

-- 




[E-devel] enlightenment connman module crash e

2016-12-15 Thread Vasiliy Tolstov
I'm build connman with openvpn support and when running enlightenment
in terminology edit my config in /var/lib/connman-vpn/xxx.config

after file saved enlightenment crashed. sorry i'm use release version
and cant install now debug symbols. But problem i think looks clear:

Thread 1 (Thread 0x7f6ff19db9c0 (LWP 1716)):
#0  0x7f6fece45d3d in pause () from /lib64/libpthread.so.0
No symbol table info available.
#1  
No symbol table info available.
#2  0x7f6fed06fc2a in eina_inlist_append () from /lib64/libeina.so.1
No symbol table info available.
#3  0x7f6fda45e959 in _connman_service_new () from
/usr/lib64/enlightenment/modules/wireless/linux-gnu-x86_64-ver-0.21/module.so
No symbol table info available.
#4  0x7f6fda45eaf7 in _connman_manager_getservices () from
/usr/lib64/enlightenment/modules/wireless/linux-gnu-x86_64-ver-0.21/module.so
No symbol table info available.
#5  0x7f6fef4b40be in eldbus_pending_dispatch () from /lib64/libeldbus.so.1
No symbol table info available.
#6  0x7f6fe69cf392 in complete_pending_call_and_unlock () from
/lib64/libdbus-1.so.3
No symbol table info available.
#7  0x7f6fe69d2cdf in dbus_connection_dispatch () from /lib64/libdbus-1.so.3
No symbol table info available.
#8  0x7f6fef4ae4b8 in eldbus_idler () from /lib64/libeldbus.so.1
No symbol table info available.
#9  0x7f6fed51aa0f in _ecore_factorized_idle_process () from
/lib64/libecore.so.1
No symbol table info available.
#10 0x7f6fefd20b2b in _eo_base_event_callback_call () from /lib64/libeo.so.1
No symbol table info available.
#11 0x7f6fefd1f794 in eo_event_callback_call () from /lib64/libeo.so.1
No symbol table info available.
#12 0x7f6fed51d090 in _ecore_main_loop_spin_core () from
/lib64/libecore.so.1
No symbol table info available.
#13 0x7f6fed51d42c in _ecore_main_loop_iterate_internal () from
/lib64/libecore.so.1
No symbol table info available.
#14 0x7f6fed51d977 in ecore_main_loop_begin () from /lib64/libecore.so.1
No symbol table info available.
#15 0x0043fa7f in main ()
No symbol table info available.

-- 
Vasiliy Tolstov,
e-mail: v.tols...@selfip.ru

--
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [core/efl] master 01/01: eolian: enable typechecked expression validation

2016-12-15 Thread Daniel Kolesa
q66 pushed a commit to branch master.

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

commit 3dfb7a6ba86dc91810a451b45b148d57f2e0a928
Author: Daniel Kolesa 
Date:   Thu Dec 15 13:31:35 2016 +0100

eolian: enable typechecked expression validation

This code was formerly disabled, but it's safe now.
---
 src/lib/eolian/database_validate.c | 12 ++--
 1 file changed, 2 insertions(+), 10 deletions(-)

diff --git a/src/lib/eolian/database_validate.c 
b/src/lib/eolian/database_validate.c
index 76c96d7..67cae44 100644
--- a/src/lib/eolian/database_validate.c
+++ b/src/lib/eolian/database_validate.c
@@ -156,7 +156,6 @@ _validate_type(const Eolian_Type *tp)
 {
if (!eolian_type_class_get(tp))
  {
-/* for now only warn */
 char buf[256];
 snprintf(buf, sizeof(buf), "undefined class %s "
  "(likely wrong namespacing)", tp->full_name);
@@ -175,17 +174,10 @@ _validate_expr(const Eolian_Expression *expr,
const Eolian_Type *tp, Eolian_Expression_Mask msk)
 {
Eolian_Value val;
-   /* TODO: enable later, for now we can't (unfinished interfaces */
if (tp)
- {
-#if 0
-val = eolian_expression_eval_type(expr, tp);
-#else
-return EINA_TRUE;
-#endif
- }
+ val = eolian_expression_eval_type(expr, tp);
else
-  val = eolian_expression_eval(expr, msk);
+ val = eolian_expression_eval(expr, msk);
return (val.type != EOLIAN_EXPR_UNKNOWN);
 }
 

-- 




[EGIT] [core/efl] master 01/01: Eo: remove unreachable code in isa.

2016-12-15 Thread Tom Hacohen
tasn pushed a commit to branch master.

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

commit 78bbd29720ea21cda59ec96ddba9aa1f165ccba0
Author: Tom Hacohen 
Date:   Thu Dec 15 11:18:24 2016 +

Eo: remove unreachable code in isa.

This condition can never be true. It can't be NULL here. A NULL here
would have caused a crash earlier, though it can only be NULL if an
allocation fails, which is something that we don't really handle
for smallish allocations.

CID1366823
---
 src/lib/eo/eo.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/lib/eo/eo.c b/src/lib/eo/eo.c
index 9cf10d9..9cb8a67 100644
--- a/src/lib/eo/eo.c
+++ b/src/lib/eo/eo.c
@@ -1662,7 +1662,6 @@ err_obj:
return EINA_FALSE;
 
 err:
-   if (!data) return EINA_FALSE;
ERR("Object %p is not a valid object in this context: object domain: %d, "
"current domain: %d, local domain: %d, available domains: [%s %s %s 
%s]."
" Are you trying to access this object from another thread?",

-- 




[EGIT] [tools/eflete] master 01/01: Tabs shouldn't manage hotkeys for managers.

2016-12-15 Thread Mykyta Biliavskyi
rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=e854ca82e785399dd757f3fbd6a09282bcd5021f

commit e854ca82e785399dd757f3fbd6a09282bcd5021f
Author: Mykyta Biliavskyi 
Date:   Thu Dec 15 12:27:35 2016 +0200

Tabs shouldn't manage hotkeys for managers.

Managers are top-level windows - they are should be managed by main
window.
@fix
---
 src/bin/ui/tabs.c | 36 
 1 file changed, 36 deletions(-)

diff --git a/src/bin/ui/tabs.c b/src/bin/ui/tabs.c
index c5fc2cb..231095b 100644
--- a/src/bin/ui/tabs.c
+++ b/src/bin/ui/tabs.c
@@ -840,38 +840,6 @@ _shortcut_tab_close_cb(void *data __UNUSED__,
 }
 
 static void
-_shortcut_image_manager_cb(void *data __UNUSED__,
-   Evas_Object *obj __UNUSED__,
-   void *event_info __UNUSED__)
-{
-   image_manager_add();
-}
-
-static void
-_shortcut_sound_manager_cb(void *data __UNUSED__,
-   Evas_Object *obj __UNUSED__,
-   void *event_info __UNUSED__)
-{
-   sound_manager_add();
-}
-
-static void
-_shortcut_style_manager_cb(void *data __UNUSED__,
-   Evas_Object *obj __UNUSED__,
-   void *event_info __UNUSED__)
-{
-   style_manager_add();
-}
-
-static void
-_shortcut_color_class_manager_cb(void *data __UNUSED__,
-Evas_Object *obj __UNUSED__,
-void *event_info __UNUSED__)
-{
-   colorclass_manager_add();
-}
-
-static void
 _shortcut_mode_normal_cb(void *data __UNUSED__,
  Evas_Object *obj __UNUSED__,
  void *event_info __UNUSED__)
@@ -1092,10 +1060,6 @@ tabs_add(void)
evas_object_smart_callback_add(ap.win, signals.shortcut.tab.prev, 
_shortcut_tab_prev_cb, NULL);
evas_object_smart_callback_add(ap.win, signals.shortcut.tab.num, 
_shortcut_tab_num_cb, NULL);
evas_object_smart_callback_add(ap.win, signals.shortcut.tab.close, 
_shortcut_tab_close_cb, NULL);
-   evas_object_smart_callback_add(ap.win, signals.shortcut.manager.image, 
_shortcut_image_manager_cb, NULL);
-   evas_object_smart_callback_add(ap.win, signals.shortcut.manager.sound, 
_shortcut_sound_manager_cb, NULL);
-   evas_object_smart_callback_add(ap.win, signals.shortcut.manager.style, 
_shortcut_style_manager_cb, NULL);
-   evas_object_smart_callback_add(ap.win, 
signals.shortcut.manager.color_class, _shortcut_color_class_manager_cb, NULL);
evas_object_smart_callback_add(ap.win, 
signals.shortcut.workspace.mode.normal, _shortcut_mode_normal_cb, NULL);
 #if !HAVE_TIZEN
evas_object_smart_callback_add(ap.win, 
signals.shortcut.workspace.mode.code, _shortcut_mode_code_cb, NULL);

-- 




Re: [E-devel] [EGIT] [tools/eflete] master 01/01: Shortcuts: Use Alt+F4 combination for close Eflete in Tizen mode.

2016-12-15 Thread Mykyta Biliavskyi
Hi,

this is requirements. And I haven't power to change it right now. 
In "classic" Eflete version - any shortcuts will not changed.

On Thu, 2016-12-15 at 10:10 +0100, Vincent Torri wrote:
> hey
> 
> why not also allowing Ctrl-q for Tizen ?
> 
> Vincent
> 
> ---
> ---
> Check out the vibrant tech community on one of the world's most 
> engaging tech sites, SlashDot.org! http://sdm.link/slashdot
> ___
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> 
> 


--
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


Re: [E-devel] [EGIT] [tools/eflete] master 01/01: Shortcuts: Use Alt+F4 combination for close Eflete in Tizen mode.

2016-12-15 Thread Vincent Torri
hey

why not also allowing Ctrl-q for Tizen ?

Vincent

--
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
___
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[EGIT] [tools/eflete] master 01/01: Shortcuts: Use Alt+F4 combination for close Eflete in Tizen mode.

2016-12-15 Thread Mykyta Biliavskyi
rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=4ea9ddc5a050a55e407990785029cdff2ac54c23

commit 4ea9ddc5a050a55e407990785029cdff2ac54c23
Author: Mykyta Biliavskyi 
Date:   Thu Dec 15 08:38:55 2016 +0200

Shortcuts: Use Alt+F4 combination for close Eflete in Tizen mode.
---
 src/bin/ui/shortcuts/shortcuts.c | 14 +-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/src/bin/ui/shortcuts/shortcuts.c b/src/bin/ui/shortcuts/shortcuts.c
index 6e2ff00..d40a7f9 100644
--- a/src/bin/ui/shortcuts/shortcuts.c
+++ b/src/bin/ui/shortcuts/shortcuts.c
@@ -437,9 +437,13 @@ static void
 _default_shortcuts_add()
 {
assert(ap.shortcuts != NULL);
-
+#if HAVE_TIZEN
+   _add_shortcut(SHORTCUT_TYPE_QUIT, SHORTCUT_TYPE_NONE,
+ MOD_ALT, 70, "F4" /*q*/);
+#else
_add_shortcut(SHORTCUT_TYPE_QUIT, SHORTCUT_TYPE_NONE,
  MOD_CTRL, 24, "q" /*q*/);
+#endif
 
_add_shortcut(SHORTCUT_TYPE_UNDO, SHORTCUT_TYPE_NONE,
  MOD_CTRL, 52, "z" /*z*/);
@@ -716,11 +720,19 @@ shortcuts_shortcut_reset()
 ap.shortcuts->shortcuts = 
eina_list_remove_list(ap.shortcuts->shortcuts, l);
 switch (shortcut->type_press)
   {
+#if HAVE_TIZEN
+   case SHORTCUT_TYPE_QUIT:
+  shortcut->modifiers =  MOD_ALT;
+  shortcut->keycode = 70;
+  shortcut->keyname =  "F4";
+  break;
+#else
case SHORTCUT_TYPE_QUIT:
   shortcut->modifiers =  MOD_CTRL;
   shortcut->keycode = 24;
   shortcut->keyname =  "q";
   break;
+#endif
case SHORTCUT_TYPE_UNDO:
   shortcut->modifiers =  MOD_CTRL;
   shortcut->keycode = 52;

--