[EGIT] [website/www-content] master 01/01: Add Eflete link.

2016-03-09 Thread Mykyta Biliavskyi
nikawhite pushed a commit to branch master.

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

commit 9355dd9b78306e5827207356eaf1d15a23ff8519
Author: Mykyta Biliavskyi 
Date:   Thu Mar 10 14:04:27 2016 +0900

Add Eflete link.
---
 pages/download-latest.txt | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/pages/download-latest.txt b/pages/download-latest.txt
index 1195e2c..4bce29e 100644
--- a/pages/download-latest.txt
+++ b/pages/download-latest.txt
@@ -12,7 +12,7 @@ econnman_v= 1.1
 epour_v   = 0.6.0
 
 enventor_v= 0.8.1
-eflete_v  = 0.5.0
+eflete_v  = 0.6.0
 
 extn  = .tar.gz
 dlbase= http://download.enlightenment.org/rel/
@@ -34,5 +34,6 @@ dlbase= 
http://download.enlightenment.org/rel/
 
 ^Development Tool^Version^
 
|[[%%dlbase%%apps/enventor/enventor-%%enventor_vextn%%|Enventor]]|%%enventor_v%%|
+|[[%%dlbase%%apps/eflete/eflete-%%eflete_vextn%%|EFL Edje Theme 
Editor]]|%%eflete_v%%|
 
 Go to the [[https://phab.enlightenment.org/w/packaging_status/|package status 
of distributions]] for information on what distributions have packages and how 
up to date they are.

-- 




[EGIT] [core/elementary] master 01/01: elm_web: Remove eo generated files

2016-03-09 Thread Jean-Philippe ANDRÉ
jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=61c1d27c78c8b8a4b53c78290f920f7d2eff9019

commit 61c1d27c78c8b8a4b53c78290f920f7d2eff9019
Author: Jean-Philippe Andre 
Date:   Thu Mar 10 10:51:19 2016 +0900

elm_web: Remove eo generated files

eo.h and eo.c were added by mistake.
I couldn't quite test the build since the we still need ewekbit2
for configure to enable elm_web. @cedric has a bit of work left
here :)
---
 src/modules/web/none/elm_web_none.eo.c   | 212 ---
 src/modules/web/none/elm_web_none.eo.h   |  21 ---
 src/modules/web/webkit2/elm_web_webkit2.eo.c | 208 --
 src/modules/web/webkit2/elm_web_webkit2.eo.h |  21 ---
 4 files changed, 462 deletions(-)

diff --git a/src/modules/web/none/elm_web_none.eo.c 
b/src/modules/web/none/elm_web_none.eo.c
deleted file mode 100644
index 723bf57..000
--- a/src/modules/web/none/elm_web_none.eo.c
+++ /dev/null
@@ -1,212 +0,0 @@
-
-void _elm_web_none_evas_object_smart_add(Eo *obj, Elm_Web_None_Data *pd);
-
-
-Eina_Bool _elm_web_none_elm_widget_theme_apply(Eo *obj, Elm_Web_None_Data *pd);
-
-
-Eina_Bool _elm_web_none_elm_widget_on_focus(Eo *obj, Elm_Web_None_Data *pd, 
Elm_Widget_Item *item);
-
-
-Eina_Bool _elm_web_none_elm_widget_event(Eo *obj, Elm_Web_None_Data *pd, 
Evas_Object *source, Evas_Callback_Type type, void *event_info);
-
-
-Eina_Bool _elm_web_none_elm_web_tab_propagate_get(Eo *obj, Elm_Web_None_Data 
*pd);
-
-
-void _elm_web_none_elm_web_tab_propagate_set(Eo *obj, Elm_Web_None_Data *pd, 
Eina_Bool propagate);
-
-
-Evas_Object * _elm_web_none_elm_web_webkit_view_get(Eo *obj, Elm_Web_None_Data 
*pd);
-
-
-void _elm_web_none_elm_web_window_create_hook_set(Eo *obj, Elm_Web_None_Data 
*pd, Elm_Web_Window_Open func, void *data);
-
-
-void _elm_web_none_elm_web_dialog_alert_hook_set(Eo *obj, Elm_Web_None_Data 
*pd, Elm_Web_Dialog_Alert func, void *data);
-
-
-void _elm_web_none_elm_web_dialog_confirm_hook_set(Eo *obj, Elm_Web_None_Data 
*pd, Elm_Web_Dialog_Confirm func, void *data);
-
-
-void _elm_web_none_elm_web_dialog_prompt_hook_set(Eo *obj, Elm_Web_None_Data 
*pd, Elm_Web_Dialog_Prompt func, void *data);
-
-
-void _elm_web_none_elm_web_dialog_file_selector_hook_set(Eo *obj, 
Elm_Web_None_Data *pd, Elm_Web_Dialog_File_Selector func, void *data);
-
-
-void _elm_web_none_elm_web_console_message_hook_set(Eo *obj, Elm_Web_None_Data 
*pd, Elm_Web_Console_Message func, void *data);
-
-
-void _elm_web_none_elm_web_useragent_set(Eo *obj, Elm_Web_None_Data *pd, const 
char *user_agent);
-
-
-const char * _elm_web_none_elm_web_useragent_get(Eo *obj, Elm_Web_None_Data 
*pd);
-
-
-Eina_Bool _elm_web_none_elm_web_url_set(Eo *obj, Elm_Web_None_Data *pd, const 
char *url);
-
-
-const char * _elm_web_none_elm_web_url_get(Eo *obj, Elm_Web_None_Data *pd);
-
-
-Eina_Bool _elm_web_none_elm_web_html_string_load(Eo *obj, Elm_Web_None_Data 
*pd, const char *html, const char *base_url, const char *unreachable_url);
-
-
-const char * _elm_web_none_elm_web_title_get(Eo *obj, Elm_Web_None_Data *pd);
-
-
-void _elm_web_none_elm_web_bg_color_set(Eo *obj, Elm_Web_None_Data *pd, int r, 
int g, int b, int a);
-
-
-void _elm_web_none_elm_web_bg_color_get(Eo *obj, Elm_Web_None_Data *pd, int 
*r, int *g, int *b, int *a);
-
-
-const char * _elm_web_none_elm_web_selection_get(Eo *obj, Elm_Web_None_Data 
*pd);
-
-
-void _elm_web_none_elm_web_popup_selected_set(Eo *obj, Elm_Web_None_Data *pd, 
int idx);
-
-
-Eina_Bool _elm_web_none_elm_web_popup_destroy(Eo *obj, Elm_Web_None_Data *pd);
-
-
-Eina_Bool _elm_web_none_elm_web_text_search(const Eo *obj, Elm_Web_None_Data 
*pd, const char *string, Eina_Bool case_sensitive, Eina_Bool forward, Eina_Bool 
wrap);
-
-
-unsigned int _elm_web_none_elm_web_text_matches_mark(Eo *obj, 
Elm_Web_None_Data *pd, const char *string, Eina_Bool case_sensitive, Eina_Bool 
highlight, unsigned int limit);
-
-
-Eina_Bool _elm_web_none_elm_web_text_matches_unmark_all(Eo *obj, 
Elm_Web_None_Data *pd);
-
-
-Eina_Bool _elm_web_none_elm_web_text_matches_highlight_set(Eo *obj, 
Elm_Web_None_Data *pd, Eina_Bool highlight);
-
-
-Eina_Bool _elm_web_none_elm_web_text_matches_highlight_get(Eo *obj, 
Elm_Web_None_Data *pd);
-
-
-double _elm_web_none_elm_web_load_progress_get(Eo *obj, Elm_Web_None_Data *pd);
-
-
-Eina_Bool _elm_web_none_elm_web_stop(Eo *obj, Elm_Web_None_Data *pd);
-
-
-Eina_Bool _elm_web_none_elm_web_reload(Eo *obj, Elm_Web_None_Data *pd);
-
-
-Eina_Bool _elm_web_none_elm_web_reload_full(Eo *obj, Elm_Web_None_Data *pd);
-
-
-Eina_Bool _elm_web_none_elm_web_back(Eo *obj, Elm_Web_None_Data *pd);
-
-
-Eina_Bool _elm_web_none_elm_web_forward(Eo *obj, Elm_Web_None_Data *pd);
-
-
-Eina_Bool _elm_web_none_elm_web_navigate(Eo *obj, Elm_Web_None_Data *pd, int 
steps);
-
-
-Eina_Bool _elm_web_none_elm_web_back_possible_get(Eo *obj, Elm_Web_None_Data 
*pd);
-
-
-Eina_Bool 

[EGIT] [core/elementary] master 02/04: config: add API to configure Elm_Web backend.

2016-03-09 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit dcfa337b8a4fb942341cba126bbe076775ab2ac6
Author: Cedric BAIL 
Date:   Wed Mar 9 16:14:00 2016 -0800

config: add API to configure Elm_Web backend.
---
 src/lib/elm_config.c | 14 +-
 src/lib/elm_config.h | 27 ++-
 2 files changed, 39 insertions(+), 2 deletions(-)

diff --git a/src/lib/elm_config.c b/src/lib/elm_config.c
index bf5a3a3..2176432 100644
--- a/src/lib/elm_config.c
+++ b/src/lib/elm_config.c
@@ -4111,13 +4111,25 @@ elm_config_transition_duration_factor_set(double factor)
 
edje_transition_duration_factor_set(_elm_config->transition_duration_factor);
 }
 
-
 EAPI double
 elm_config_transition_duration_factor_get(void)
 {
 return _elm_config->transition_duration_factor;
 }
 
+EAPI void
+elm_config_web_backend_set(const char *backend)
+{
+   if (_elm_web_init(backend))
+ _elm_config->web_backend = backend;
+}
+
+EAPI const char *
+elm_config_web_backend_get(void)
+{
+   return _elm_config->web_backend;
+}
+
 void
 _elm_config_profile_set(const char *profile)
 {
diff --git a/src/lib/elm_config.h b/src/lib/elm_config.h
index 746a171..0283dfc 100644
--- a/src/lib/elm_config.h
+++ b/src/lib/elm_config.h
@@ -2079,6 +2079,31 @@ EAPI void 
elm_config_transition_duration_factor_set(double factor);
 EAPI double elm_config_transition_duration_factor_get(void);
 
 /**
- * @}
+ * Set the backend engine used by Elm_Web widget
+ *
+ * This function set the name of the external module used by
+ * elm_web to render web page.
+ *
+ * @param backend The new backend to use.
+ *
+ * @since 1.18
+ * @see elm_config_web_backend_get()
  */
+EAPI void elm_config_web_backend_set(const char *backend);
 
+/**
+ * Get the currently set backend engine used by Elm_Web widget
+ *
+ * This function get the name of the external module used by
+ * elm_web to render web page.
+ *
+ * @return The new backend to use.
+ *
+ * @since 1.18
+ * @see elm_config_web_backend_set()
+ */
+EAPI const char *elm_config_web_backend_get(void);
+
+/**
+ * @}
+ */

-- 




[EGIT] [core/elementary] master 04/04: combobox: fix borkage after eo_add change.

2016-03-09 Thread Cedric BAIL
cedric pushed a commit to branch master.

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

commit da8287fa370bb579a4a592dd280ac5c8a6a25830
Author: Cedric BAIL 
Date:   Wed Mar 9 16:57:02 2016 -0800

combobox: fix borkage after eo_add change.

toto = titi = eo_add is no longer valid.
---
 src/lib/elc_combobox.c | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/lib/elc_combobox.c b/src/lib/elc_combobox.c
index 4227cea..8f2b141 100644
--- a/src/lib/elc_combobox.c
+++ b/src/lib/elc_combobox.c
@@ -359,7 +359,8 @@ _elm_combobox_eo_base_constructor(Eo *obj, 
Elm_Combobox_Data *sd)
elm_table_pack(sd->tbl, sd->spacer, 0, 0, 1, 1);
 
// This is the genlist object that will take over the genlist call
-   sd->genlist = gl = eo_add(, ELM_GENLIST_CLASS, obj);
+   eo_add(, ELM_GENLIST_CLASS, obj);
+   sd->genlist = gl;
elm_genlist_filter_set(gl, NULL);
elm_widget_mirrored_automatic_set(gl, EINA_FALSE);
elm_widget_mirrored_set(gl, elm_widget_mirrored_get(obj));
@@ -373,7 +374,8 @@ _elm_combobox_eo_base_constructor(Eo *obj, 
Elm_Combobox_Data *sd)
elm_table_pack(sd->tbl, gl, 0, 0, 1, 1);
 
// This is the entry object that will take over the entry call
-   sd->entry = entry = eo_add(, ELM_ENTRY_CLASS, obj);
+   eo_add(, ELM_ENTRY_CLASS, obj);
+   sd->entry = entry;
elm_widget_mirrored_automatic_set(entry, EINA_FALSE);
elm_widget_mirrored_set(entry, elm_widget_mirrored_get(obj));
elm_scroller_policy_set(entry, ELM_SCROLLER_POLICY_OFF,

-- 




[EGIT] [core/elementary] master 03/04: config: add entry to set web backend.

2016-03-09 Thread Cedric BAIL
cedric pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=641c6bc7f6d24ad93c4ab854706f3632ff1d13e9

commit 641c6bc7f6d24ad93c4ab854706f3632ff1d13e9
Author: Cedric BAIL 
Date:   Wed Mar 9 16:55:09 2016 -0800

config: add entry to set web backend.

Will switch later to a combobox using eio_model.
---
 src/bin/config.c | 52 ++--
 1 file changed, 50 insertions(+), 2 deletions(-)

diff --git a/src/bin/config.c b/src/bin/config.c
index d1e5655..d63bcef 100644
--- a/src/bin/config.c
+++ b/src/bin/config.c
@@ -101,7 +101,9 @@ static int interactive = 1;
 static const char *theme_set = NULL;
 static const char *finger_size_set = NULL;
 static const char *scale_set = NULL;
+static const char *web_backend = NULL;
 static Fonts_Data fndata = {NULL, NULL, NULL, NULL, NULL, NULL, 0.0};
+static Evas_Object *web_backend_entry = NULL;
 
 static void
 _font_styles_list_sel(void *data   EINA_UNUSED,
@@ -1820,7 +1822,7 @@ static void
 _status_config_etc(Evas_Object *win,
Evas_Object *naviframe)
 {
-   Evas_Object *bx, *ck, *sl, *fr, *bx2;
+   Evas_Object *bx, *ck, *sl, *fr, *bx2, *fr2, *bx3, *en;
 
bx = elm_box_add(win);
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, 0.0);
@@ -1868,6 +1870,29 @@ _status_config_etc(Evas_Object *win,
evas_object_smart_callback_add(sl, "changed", sc_round, NULL);
evas_object_smart_callback_add(sl, "delay,changed", 
transition_duration_change, NULL);
 
+   // Web backend
+   fr2 = elm_frame_add(bx);
+   elm_object_text_set(fr2, "Elm_Web backend");
+   evas_object_size_hint_weight_set(fr2, EVAS_HINT_EXPAND, 0.0);
+   evas_object_size_hint_align_set(fr2, EVAS_HINT_FILL, 0.5);
+   elm_box_pack_end(bx, fr2);
+   evas_object_show(fr2);
+
+   bx3 = elm_box_add(fr2);
+   elm_object_content_set(fr2, bx3);
+   evas_object_show(bx3);
+
+   en = elm_entry_add(win);
+   elm_entry_editable_set(en, EINA_TRUE);
+   elm_entry_scrollable_set(en, EINA_FALSE);
+   elm_object_text_set(en, elm_config_web_backend_get());
+   evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+   evas_object_size_hint_align_set(en, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   evas_object_show(en);
+   elm_box_pack_end(bx3, en);
+
+   web_backend_entry = en;
+
evas_object_data_set(win, "etc", bx);
 
elm_naviframe_item_simple_push(naviframe, bx);
@@ -4012,6 +4037,7 @@ elm_main(intargc,
 "  -t THEME  Set theme to THEME (ELM_THEME spec)\n"
 "  -f SIZE   Set finger size to SIZE pixels\n"
 "  -s SCALE  Set scale factor to SCALE\n"
+"  -w WEB_BACKENDSet the web backend to be used\n"
 );
   }
 else if (!strcmp(argv[i], "-q"))
@@ -4037,6 +4063,12 @@ elm_main(intargc,
  scale_set = argv[i];
  interactive = 0;
   }
+else if ((!strcmp(argv[i], "-w")) && (i < argc - 1))
+  {
+ i++;
+ web_backend = argv[i];
+ interactive = 0;
+  }
  }
/* put here any init code specific to this app like parsing args, etc. */
if (!quiet)
@@ -4052,7 +4084,8 @@ elm_main(intargc,
  {
 if (theme_set) elm_theme_set(NULL, theme_set);
 if (finger_size_set) elm_config_finger_size_set(atoi(finger_size_set));
-if (scale_set)  elm_config_scale_set(atof(scale_set));
+if (scale_set) elm_config_scale_set(atof(scale_set));
+if (web_backend) elm_config_web_backend_set(web_backend);
 
 elm_config_all_flush();
 
@@ -4061,6 +4094,21 @@ elm_main(intargc,
elm_run(); /* and run the program now and handle all events, etc. */
/* if the mainloop that elm_run() runs exists, we exit the app */
/* exit code */
+
+   if (interactive)
+ {
+const char *web_backend_set = elm_config_web_backend_get();
+
+web_backend = elm_object_text_get(web_backend_entry);
+fprintf(stderr, "[%s] vs [%s]\n", web_backend, web_backend_set);
+if (strcmp(web_backend, web_backend_set))
+  {
+ elm_config_web_backend_set(web_backend);
+ fprintf(stderr, "web backend set to : [%s]\n", 
elm_config_web_backend_get());
+ elm_config_all_flush();
+  }
+ }
+
return 0;
 }
 /* All elementary apps should use this. Put it right after elm_main() */

-- 




[EGIT] [tools/edi] master 01/01: Update to latest eo syntax

2016-03-09 Thread Andy Williams
ajwillia-ms pushed a commit to branch master.

http://git.enlightenment.org/tools/edi.git/commit/?id=b3a9bd0f2ca85f8f7d228d9aa306871313a80950

commit b3a9bd0f2ca85f8f7d228d9aa306871313a80950
Author: Andy Williams 
Date:   Thu Mar 10 00:06:50 2016 +

Update to latest eo syntax

Thanks for the script Tom :)
---
 elm_code/src/bin/elm_code_test_main.c  |  36 +++
 elm_code/src/lib/elm_code.c|   2 +-
 elm_code/src/lib/elm_code_diff_widget.c|  10 +-
 elm_code/src/lib/widget/elm_code_widget.c  | 103 +
 .../src/lib/widget/elm_code_widget_selection.c |  19 ++--
 elm_code/src/tests/widget/elm_code_test_widget.c   |   2 +-
 src/bin/edi_consolepanel.c |  33 +++
 src/bin/edi_logpanel.c |  12 +--
 src/bin/editor/edi_editor.c|  11 +--
 src/bin/screens/edi_settings.c |   7 +-
 src/bin/screens/edi_settings_font.c|   9 +-
 11 files changed, 104 insertions(+), 140 deletions(-)

diff --git a/elm_code/src/bin/elm_code_test_main.c 
b/elm_code/src/bin/elm_code_test_main.c
index 97e312c..126f8a7 100644
--- a/elm_code/src/bin/elm_code_test_main.c
+++ b/elm_code/src/bin/elm_code_test_main.c
@@ -66,12 +66,10 @@ _elm_code_test_welcome_setup(Evas_Object *parent)
Elm_Code_Widget *widget;
 
code = elm_code_create();
-   widget = eo_add(ELM_CODE_WIDGET_CLASS, parent,
-   elm_obj_code_widget_code_set(code));
-   eo_do(widget,
- elm_obj_code_widget_font_set(NULL, 12),
- eo_event_callback_add(_CODE_EVENT_LINE_LOAD_DONE, 
_elm_code_test_line_done_cb, NULL);
- eo_event_callback_add(ELM_CODE_WIDGET_EVENT_LINE_CLICKED, 
_elm_code_test_line_clicked_cb, code));
+   eo_add(, ELM_CODE_WIDGET_CLASS, parent, 
elm_obj_code_widget_code_set(widget, code));
+   elm_obj_code_widget_font_set(widget, NULL, 12);
+   eo_event_callback_add(widget, _CODE_EVENT_LINE_LOAD_DONE, 
_elm_code_test_line_done_cb, NULL);
+   eo_event_callback_add(widget, ELM_CODE_WIDGET_EVENT_LINE_CLICKED, 
_elm_code_test_line_clicked_cb, code);
 
_append_line(code->file, "❤ Hello World, Elm Code! ❤");
_append_line(code->file, "");
@@ -96,13 +94,11 @@ _elm_code_test_editor_setup(Evas_Object *parent)
Elm_Code_Widget *widget;
 
code = elm_code_create();
-   widget = eo_add(ELM_CODE_WIDGET_CLASS, parent,
-   elm_obj_code_widget_code_set(code));
-   eo_do(widget,
- elm_obj_code_widget_font_set(NULL, 14),
- elm_obj_code_widget_editable_set(EINA_TRUE),
- elm_obj_code_widget_show_whitespace_set(EINA_TRUE),
- elm_obj_code_widget_line_numbers_set(EINA_TRUE));
+   eo_add(, ELM_CODE_WIDGET_CLASS, parent, 
elm_obj_code_widget_code_set(widget, code));
+   elm_obj_code_widget_font_set(widget, NULL, 14);
+   elm_obj_code_widget_editable_set(widget, EINA_TRUE);
+   elm_obj_code_widget_show_whitespace_set(widget, EINA_TRUE);
+   elm_obj_code_widget_line_numbers_set(widget, EINA_TRUE);
 
_append_line(code->file, "Edit me :)");
_append_line(code->file, "");
@@ -125,11 +121,9 @@ _elm_code_test_mirror_setup(Elm_Code *code, char 
*font_name, Evas_Object *parent
 {
Elm_Code_Widget *widget;
 
-   widget = eo_add(ELM_CODE_WIDGET_CLASS, parent,
-   elm_obj_code_widget_code_set(code));
-   eo_do(widget,
- elm_obj_code_widget_font_set(font_name, 11),
- elm_obj_code_widget_line_numbers_set(EINA_TRUE));
+   eo_add(, ELM_CODE_WIDGET_CLASS, parent, 
elm_obj_code_widget_code_set(widget, code));
+   elm_obj_code_widget_font_set(widget, font_name, 11);
+   elm_obj_code_widget_line_numbers_set(widget, EINA_TRUE);
 
evas_object_size_hint_weight_set(widget, EVAS_HINT_EXPAND, 
EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(widget, EVAS_HINT_FILL, EVAS_HINT_FILL);
@@ -150,8 +144,7 @@ _elm_code_test_diff_inline_setup(Evas_Object *parent)
code = elm_code_create();
elm_code_file_open(code, path);
 
-   diff = eo_add(ELM_CODE_WIDGET_CLASS, parent,
- elm_obj_code_widget_code_set(code));
+   eo_add(, ELM_CODE_WIDGET_CLASS, parent, 
elm_obj_code_widget_code_set(diff, code));
 
evas_object_size_hint_weight_set(diff, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(diff, EVAS_HINT_FILL, EVAS_HINT_FILL);
@@ -206,8 +199,7 @@ _elm_code_test_welcome_mirror_cb(void *data, Evas_Object 
*obj EINA_UNUSED, void
evas_object_size_hint_weight_set(screen, EVAS_HINT_EXPAND, 
EVAS_HINT_EXPAND);
 
widget = _elm_code_test_editor_setup(screen);
-   eo_do(widget,
- code = elm_obj_code_widget_code_get());
+   code = elm_obj_code_widget_code_get(widget);
elm_box_pack_end(screen, widget);
 
elm_box_pack_end(screen, _elm_code_test_mirror_setup(code, 
"Mono:style=Oblique", screen));
diff --git a/elm_code/src/lib/elm_code.c b/elm_code/src/lib/elm_code.c
index 2d326a7..782830c 100644
--- 

[EGIT] [core/efl] master 02/02: build coverage: make coverage numbers more accurate by using a baseline

2016-03-09 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit 3666d14980c1059ebb25d57756bc04abef27b7d7
Author: Stefan Schmidt 
Date:   Wed Mar 9 23:02:46 2016 +0100

build coverage: make coverage numbers more accurate by using a baseline

The lcov tool offers the functionality to have an initial run over the code 
base
before the tests are executed to make sure it catches all files, even the 
ones
that are not loaded during the test run.

This is something we missed so far. The reports have only been in relation 
to
the files that actually have been loaded during the test. We missed quite a
few files which made our numbers inaccurate. Things like
modules/emotion/gstreamer1 have no tests yet and thus never showed up in the
coverage report. While it has 103 functions and over thousand lines which 
need
to get covered. With the baseline this is handled now. Thanks goes to the 
folks
at LibreOffice who described their lcov setup here:
https://wiki.documentfoundation.org/Development/Lcov

New numbers are lower now as we count in all the files never loaded which
decreases our percentages.

Overall coverage rate:
  lines..: 30.2% (65119 of 215841 lines)
  functions..: 34.0% (6361 of 18733 functions)
  branches...: 23.6% (35627 of 151096 branches)
---
 Makefile.am | 19 +--
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index 9aecc45..8206b16 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -428,13 +428,19 @@ lcov-reset:
@find $(top_builddir) -name "*.gcda" -delete
@lcov --zerocounters --directory $(top_builddir)
 
-lcov-report:
+lcov-baseline:
$(MKDIR_P) $(top_builddir)/coverage
-   lcov --capture --compat-libtool --no-external --output-file 
$(top_builddir)/coverage/coverage.info --directory $(top_builddir) 
--config-file .lcov-config --rc lcov_branch_coverage=1
-   lcov --remove $(top_builddir)/coverage/coverage.info '*.h' 
--output-file $(top_builddir)/coverage/coverage.cleaned.info --config-file 
.lcov-config --rc lcov_branch_coverage=1
-   lcov --remove $(top_builddir)/coverage/coverage.cleaned.info 
'*/tests/*' --output-file $(top_builddir)/coverage/coverage.cleaned2.info 
--config-file .lcov-config --rc lcov_branch_coverage=1
-   lcov --remove $(top_builddir)/coverage/coverage.cleaned2.info '*NONE*' 
--output-file $(top_builddir)/coverage/coverage.cleaned3.info --config-file 
.lcov-config --rc lcov_branch_coverage=1
-   genhtml --config-file .lcov-config --legend -t "$(PACKAGE_STRING)" -o 
$(top_builddir)/coverage/html $(top_builddir)/coverage/coverage.cleaned3.info
+   lcov --capture --initial --compat-libtool --no-external --output-file 
$(top_builddir)/coverage/coverage-baseline.info --directory $(top_builddir) 
--config-file .lcov-config --rc lcov_branch_coverage=1
+
+lcov-report:
+   lcov --capture --compat-libtool --no-external --output-file 
$(top_builddir)/coverage/coverage-check.info --directory $(top_builddir) 
--config-file .lcov-config --rc lcov_branch_coverage=1
+   lcov --no-external --compat-libtool --add-tracefile 
$(top_builddir)/coverage/coverage-baseline.info --add-tracefile 
$(top_builddir)/coverage/coverage-check.info --output-file 
$(top_builddir)/coverage/coverage.info --config-file .lcov-config --rc 
lcov_branch_coverage=1
+   lcov --no-external --compat-libtool --remove 
$(top_builddir)/coverage/coverage.info '*.h' --output-file 
$(top_builddir)/coverage/coverage.cleaned.info --config-file .lcov-config --rc 
lcov_branch_coverage=1
+   lcov --no-external --compat-libtool --remove 
$(top_builddir)/coverage/coverage.cleaned.info '*/tests/*' --output-file 
$(top_builddir)/coverage/coverage.cleaned2.info --config-file .lcov-config --rc 
lcov_branch_coverage=1
+   lcov --no-external --compat-libtool --remove 
$(top_builddir)/coverage/coverage.cleaned2.info '*NONE*' --output-file 
$(top_builddir)/coverage/coverage.cleaned3.info --config-file .lcov-config --rc 
lcov_branch_coverage=1
+   lcov --no-external --compat-libtool --remove 
$(top_builddir)/coverage/coverage.cleaned3.info '*/doc/*' --output-file 
$(top_builddir)/coverage/coverage.cleaned4.info --config-file .lcov-config --rc 
lcov_branch_coverage=1
+   lcov --no-external --compat-libtool --remove 
$(top_builddir)/coverage/coverage.cleaned4.info '*usr/include*' --output-file 
$(top_builddir)/coverage/coverage.cleaned5.info --config-file .lcov-config --rc 
lcov_branch_coverage=1
+   genhtml --config-file .lcov-config --legend -t "$(PACKAGE_STRING)" -o 
$(top_builddir)/coverage/html $(top_builddir)/coverage/coverage.cleaned5.info
@echo "Coverage Report at $(top_builddir)/coverage/html"
 
 endif
@@ -444,6 +450,7 @@ if EFL_ENABLE_TESTS
 lcov-check:
 if EFL_ENABLE_COVERAGE
@$(MAKE) 

[EGIT] [core/efl] master 01/02: examples gitignore: adding four new examples to their .gitignore files

2016-03-09 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit b0c28953b327b4dd96570d6abd8d64ca939c8c32
Author: Stefan Schmidt 
Date:   Wed Mar 9 16:13:41 2016 +0100

examples gitignore: adding four new examples to their .gitignore files
---
 src/examples/edje/.gitignore  | 1 +
 src/examples/eina/.gitignore  | 1 +
 src/examples/emile/.gitignore | 1 +
 src/examples/evas/.gitignore  | 1 +
 4 files changed, 4 insertions(+)

diff --git a/src/examples/edje/.gitignore b/src/examples/edje/.gitignore
index c2bc202..923f55c 100644
--- a/src/examples/edje/.gitignore
+++ b/src/examples/edje/.gitignore
@@ -20,3 +20,4 @@
 /sigtest
 /edje-multisense
 /edje_example
+/edje-textblock-hyphenation
diff --git a/src/examples/eina/.gitignore b/src/examples/eina/.gitignore
index b35df8f..3762b13 100644
--- a/src/examples/eina/.gitignore
+++ b/src/examples/eina/.gitignore
@@ -32,6 +32,7 @@
 /eina_strbuf_01
 /eina_stringshare_01
 /eina_tiler_01
+/eina_tmpstr_01
 /eina_value_01
 /eina_value_02
 /eina_value_03
diff --git a/src/examples/emile/.gitignore b/src/examples/emile/.gitignore
new file mode 100644
index 000..2e9672e
--- /dev/null
+++ b/src/examples/emile/.gitignore
@@ -0,0 +1 @@
+/emile_base64
diff --git a/src/examples/evas/.gitignore b/src/examples/evas/.gitignore
index 1bd6362..c2f0585 100644
--- a/src/examples/evas/.gitignore
+++ b/src/examples/evas/.gitignore
@@ -60,3 +60,4 @@
 /evas_canvas3d_shadows
 /evas_canvas3d_shooter
 /evas_textblock_obstacles
+/evas_canvas3d_hull

-- 




[EGIT] [core/efl] master 01/01: eo_cxx: correct constness of basic Eo C++ wrapper functions

2016-03-09 Thread Vitor Sousa
vitorsousa pushed a commit to branch master.

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

commit 7973126165912d5239cbc1b1b9ff851fc12aac1b
Author: Vitor Sousa 
Date:   Wed Mar 9 18:51:21 2016 -0300

eo_cxx: correct constness of basic Eo C++ wrapper functions
---
 src/bindings/eo_cxx/eo_ops.hh | 20 +---
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/src/bindings/eo_cxx/eo_ops.hh b/src/bindings/eo_cxx/eo_ops.hh
index 9aecf61..653dcf3 100644
--- a/src/bindings/eo_cxx/eo_ops.hh
+++ b/src/bindings/eo_cxx/eo_ops.hh
@@ -27,14 +27,20 @@ ref(Eo *obj)
return ::eo_ref(obj);
 }
 
+inline const Eo*
+ref(const Eo *obj)
+{
+   return ::eo_ref(obj);
+}
+
 inline void
-unref(Eo *obj)
+unref(const Eo *obj)
 {
::eo_unref(obj);
 }
 
 inline int
-ref_get(Eo *obj)
+ref_get(const Eo *obj)
 {
return ::eo_ref_get(obj);
 }
@@ -46,13 +52,13 @@ del(Eo *obj)
 }
 
 inline Eina_Bool
-isa(Eo *obj, Eo_Class *klass)
+isa(const Eo *obj, const Eo_Class *klass)
 {
return eo_isa(obj, klass);
 }
 
 inline Eo*
-add(Eo_Class *klass, Eo *parent = NULL)
+add(const Eo_Class *klass, Eo *parent = NULL)
 {
Eo *eo = nullptr;
eo_add_ref(, klass, parent);
@@ -72,7 +78,7 @@ base_data_set(Eo *obj, const char *key, const void *data)
 }
 
 inline void*
-base_data_get(Eo *obj, const char *key)
+base_data_get(const Eo *obj, const char *key)
 {
void *data;
data = eo_key_data_get(obj, key);
@@ -92,7 +98,7 @@ parent_set(Eo *obj, Eo *parent)
 }
 
 inline Eo*
-parent_get(Eo *obj)
+parent_get(const Eo *obj)
 {
Eo *parent;
parent = eo_parent_get(obj);
@@ -112,7 +118,7 @@ event_thaw(Eo *obj)
 }
 
 inline int
-event_freeze_get(Eo *obj)
+event_freeze_get(const Eo *obj)
 {
int count = -1;
count = eo_event_freeze_count_get(obj);

-- 




[EGIT] [core/enlightenment] master 01/01: don't add render update during ignored damage on deleted clients

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit 2017eda0bc794c47f1f3bbfe66ba27bac212
Author: Mike Blumenkrantz 
Date:   Wed Mar 9 15:27:59 2016 -0500

don't add render update during ignored damage on deleted clients

ref 1507f815a540df8c55b9dec88fe378ed6834879f
---
 src/bin/e_comp_object.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index c538770..5db61d5 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -3336,7 +3336,8 @@ e_comp_object_damage(Evas_Object *obj, int x, int y, int 
w, int h)
if (cw->updates_full)
  {
 RENDER_DEBUG("IGNORED %p: %d,%d %dx%d", cw->ec, x, y, w, h);
-e_comp_object_render_update_add(obj);
+if (!e_object_is_del(E_OBJECT(cw->ec)))
+  e_comp_object_render_update_add(obj);
 return;
  }
/* clip rect to client surface */

-- 




[EGIT] [core/efl] master 01/01: ecore-drm: don't set DBG on log level if DBG not already set

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit 8e077745bca8ae452f13d5f35ab9678a0ac6c355
Author: Mike Blumenkrantz 
Date:   Wed Mar 9 15:36:28 2016 -0500

ecore-drm: don't set DBG on log level if DBG not already set

...
---
 src/lib/ecore_drm/ecore_drm.c | 4 
 1 file changed, 4 deletions(-)

diff --git a/src/lib/ecore_drm/ecore_drm.c b/src/lib/ecore_drm/ecore_drm.c
index 3f421ac..431ff6b 100644
--- a/src/lib/ecore_drm/ecore_drm.c
+++ b/src/lib/ecore_drm/ecore_drm.c
@@ -104,10 +104,6 @@ ecore_drm_init(void)
 goto log_err;
  }
 
-   /* set default logging level for this domain */
-   if (!eina_log_domain_level_check(_ecore_drm_log_dom, EINA_LOG_LEVEL_DBG))
- eina_log_domain_level_set("ecore_drm", EINA_LOG_LEVEL_DBG);
-
/* try to init eeze */
if (!eeze_init()) goto eeze_err;
 

-- 




[EGIT] [core/efl] master 01/01: ecore-drm: Disable default DBG log level

2016-03-09 Thread Chris Michael
devilhorns pushed a commit to branch master.

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

commit 96085feb6d378d1e5a57bee1aad4e0070770cde0
Author: Chris Michael 
Date:   Wed Mar 9 15:24:24 2016 -0500

ecore-drm: Disable default DBG log level

Simple patch to disable setting ecore-drm log level to DBG by default

@fix

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

diff --git a/src/lib/ecore_drm/ecore_drm.c b/src/lib/ecore_drm/ecore_drm.c
index 4c92e88..3f421ac 100644
--- a/src/lib/ecore_drm/ecore_drm.c
+++ b/src/lib/ecore_drm/ecore_drm.c
@@ -93,7 +93,7 @@ ecore_drm_init(void)
  }
 
/* set logging level */
-   eina_log_level_set(EINA_LOG_LEVEL_DBG);
+   /* eina_log_level_set(EINA_LOG_LEVEL_DBG); */
 
/* try to create logging domain */
_ecore_drm_log_dom = 

-- 




[EGIT] [core/enlightenment] master 01/01: remove show callback from evry win on deletion

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit fcf3bf8a5c46265d3cf92539d21540acd7c5a23e
Author: Mike Blumenkrantz 
Date:   Wed Mar 9 14:25:16 2016 -0500

remove show callback from evry win on deletion

==22088== Invalid read of size 1
==22088==at 0x2C9FE7B1: _evry_cb_show (evry.c:3046)
==22088==by 0x5BE9918: _eo_evas_object_cb (evas_callbacks.c:65)
==22088==by 0x69A16F4: _eo_base_event_callback_call 
(eo_base_class.c:715)
==22088==by 0x69A3041: eo_event_callback_call (in 
/usr/lib/libeo.so.1.17.99)
==22088==by 0x5BEA0B3: evas_object_event_callback_call 
(evas_callbacks.c:240)
==22088==by 0x5C2577C: evas_object_inform_call_show 
(evas_object_inform.c:12)
==22088==by 0x5C1ED24: _show (evas_object_main.c:1360)
==22088==by 0x5C1EADA: _evas_object_efl_gfx_base_visible_set 
(evas_object_main.c:1313)
==22088==by 0x575D80A: efl_gfx_visible_set (in 
/usr/lib/libefl.so.1.17.99)
==22088==by 0x5C1EA58: evas_object_show (evas_object_main.c:1291)
==22088==by 0x479FCF: _e_comp_intercept_show_helper 
(e_comp_object.c:1616)
==22088==by 0x47A02A: _e_comp_intercept_show (e_comp_object.c:1630)
==22088==  Address 0x17621591 is 81 bytes inside a block of size 120 free'd
==22088==at 0x4C2AE6B: free (in 
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==22088==by 0x2C9F95A8: _evry_window_free (evry.c:993)
==22088==by 0x2C9F8065: evry_hide (evry.c:366)
==22088==by 0x2C9FB9A2: _evry_cb_key_down (evry.c:1926)
==22088==by 0x8F6ED4A: _ecore_call_handler_cb (ecore_private.h:316)
==22088==by 0x8F6FC92: _ecore_event_call (ecore_events.c:518)
==22088==by 0x8F7A15A: _ecore_main_loop_iterate_internal 
(ecore_main.c:2339)
==22088==by 0x8F784A8: ecore_main_loop_begin (ecore_main.c:1284)
==22088==by 0x4403F6: main (e_main.c:1087)
==22088==  Block was alloc'd at
==22088==at 0x4C2BBD5: calloc (in 
/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==22088==by 0x2C9F8D7D: _evry_window_new (evry.c:758)
==22088==by 0x2C9F772D: evry_show (evry.c:177)
==22088==by 0x2C9F711C: _e_mod_run_defer_cb (e_mod_main.c:537)
==22088==by 0x8F75267: _ecore_call_task_cb (ecore_private.h:282)
==22088==by 0x8F7574E: _ecore_idle_enterer_call 
(ecore_idle_enterer.c:174)
==22088==by 0x8F7A05B: _ecore_main_loop_iterate_internal 
(ecore_main.c:2261)
==22088==by 0x8F784A8: ecore_main_loop_begin (ecore_main.c:1284)
==22088==by 0x4403F6: main (e_main.c:1087)
---
 src/modules/everything/evry.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/modules/everything/evry.c b/src/modules/everything/evry.c
index eed3f8c..87f1d9b 100644
--- a/src/modules/everything/evry.c
+++ b/src/modules/everything/evry.c
@@ -989,6 +989,8 @@ static void
 _evry_window_free(Evry_Window *win)
 {
evas_event_freeze(win->evas);
+   evas_object_event_callback_del(e_win_client_get(win->ewin)->frame,
+ EVAS_CALLBACK_SHOW, (Evas_Object_Event_Cb)_evry_cb_show);
evas_object_del(win->ewin);
free(win);
 }

-- 




[EGIT] [core/efl] master 01/01: cxx: Migrate C++ binding to the new eo_add syntax

2016-03-09 Thread Vitor Sousa
vitorsousa pushed a commit to branch master.

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

commit 48f62ad686d11c97ec62b1ba528262edf39cafbf
Author: Vitor Sousa 
Date:   Wed Mar 9 15:46:19 2016 -0300

cxx: Migrate C++ binding to the new eo_add syntax
---
 src/bindings/eo_cxx/eo_inherit.hh  |  3 +-
 src/bindings/eo_cxx/eo_ops.hh  |  3 +-
 .../grammar/eo_class_constructors_generator.hh |  7 +--
 src/tests/eina_cxx/eina_cxx_test_accessor.cc   | 18 
 src/tests/eina_cxx/eina_cxx_test_ptrarray.cc   | 54 --
 src/tests/eina_cxx/eina_cxx_test_ptrlist.cc| 50 +++-
 6 files changed, 76 insertions(+), 59 deletions(-)

diff --git a/src/bindings/eo_cxx/eo_inherit.hh 
b/src/bindings/eo_cxx/eo_inherit.hh
index 9639e33..1d3d312 100644
--- a/src/bindings/eo_cxx/eo_inherit.hh
+++ b/src/bindings/eo_cxx/eo_inherit.hh
@@ -83,9 +83,10 @@ struct inherit
///
template
inherit(efl::eo::parent_type _p, Args&& ... args)
+ : _eo_cls(nullptr), _eo_raw(nullptr)
{
   _eo_cls = detail::create_class 
(eina::make_index_sequence());
-  _eo_raw = eo_add_ref(_eo_cls, _p._eo_raw, 
detail::inherit_constructor(eoid, this), ::efl::eolian::call_ctors(eoid, 
args...));
+  eo_add_ref(&_eo_raw, _eo_cls, _p._eo_raw, 
detail::inherit_constructor(_eo_raw, this), ::efl::eolian::call_ctors(_eo_raw, 
args...));
   ::efl::eolian::register_ev_del_free_callback(_eo_raw, args...);
   }
 
diff --git a/src/bindings/eo_cxx/eo_ops.hh b/src/bindings/eo_cxx/eo_ops.hh
index 46a33c7..9aecf61 100644
--- a/src/bindings/eo_cxx/eo_ops.hh
+++ b/src/bindings/eo_cxx/eo_ops.hh
@@ -54,7 +54,8 @@ isa(Eo *obj, Eo_Class *klass)
 inline Eo*
 add(Eo_Class *klass, Eo *parent = NULL)
 {
-   Eo *eo = eo_add_ref(klass, parent);
+   Eo *eo = nullptr;
+   eo_add_ref(, klass, parent);
return eo;
 }
 
diff --git a/src/lib/eolian_cxx/grammar/eo_class_constructors_generator.hh 
b/src/lib/eolian_cxx/grammar/eo_class_constructors_generator.hh
index 2a7091a..9fde23a 100644
--- a/src/lib/eolian_cxx/grammar/eo_class_constructors_generator.hh
+++ b/src/lib/eolian_cxx/grammar/eo_class_constructors_generator.hh
@@ -577,13 +577,14 @@ operator<<(std::ostream& out, 
function_call_constructor_methods const& x)
 
out << ")" << endl
<< tab(1) << "{" << endl
-   << tab(2) << "Eo* _ret_eo = eo_add_ref(" << x._cls.eo_name << ", 
_p._eo_raw";
+   << tab(2) << "Eo* _ret_eo = nullptr;" << endl
+   << tab(2) << "eo_add_ref(&_ret_eo, " << x._cls.eo_name << ", 
_p._eo_raw";
for (it = first; it != last; ++it)
  {
-out << ", _c" << (it-first) << "(eoid)";
+out << ", _c" << (it-first) << "(_ret_eo)";
  }
if (!x._cls.optional_constructors.empty())
- out << ", ::efl::eolian::call_ctors(eoid, _opts...)";
+ out << ", ::efl::eolian::call_ctors(_ret_eo, _opts...)";
out << ");" << endl << endl;
 
for (it = first; it != last; ++it)
diff --git a/src/tests/eina_cxx/eina_cxx_test_accessor.cc 
b/src/tests/eina_cxx/eina_cxx_test_accessor.cc
index 9737f0d..47cb62b 100644
--- a/src/tests/eina_cxx/eina_cxx_test_accessor.cc
+++ b/src/tests/eina_cxx/eina_cxx_test_accessor.cc
@@ -43,10 +43,11 @@ START_TEST(eina_cxx_eo_accessor_indexing)
 
   efl::eina::list list;
 
-  wrapper const w1(eo_add(SIMPLE_CLASS, NULL));
-  wrapper const w2(eo_add(SIMPLE_CLASS, NULL));
-  wrapper const w3(eo_add(SIMPLE_CLASS, NULL));
-  wrapper const w4(eo_add(SIMPLE_CLASS, NULL));
+  Eo* eoptr = nullptr;
+  wrapper const w1(eo_add(, SIMPLE_CLASS, NULL));
+  wrapper const w2(eo_add(, SIMPLE_CLASS, NULL));
+  wrapper const w3(eo_add(, SIMPLE_CLASS, NULL));
+  wrapper const w4(eo_add(, SIMPLE_CLASS, NULL));
 
   list.push_back(w1);
   list.push_back(w2);
@@ -97,10 +98,11 @@ START_TEST(eina_cxx_eo_accessor_iterator)
 
   efl::eina::list list;
 
-  wrapper const w1(eo_add(SIMPLE_CLASS, NULL));
-  wrapper const w2(eo_add(SIMPLE_CLASS, NULL));
-  wrapper const w3(eo_add(SIMPLE_CLASS, NULL));
-  wrapper const w4(eo_add(SIMPLE_CLASS, NULL));
+  Eo* eoptr = nullptr;
+  wrapper const w1(eo_add(, SIMPLE_CLASS, NULL));
+  wrapper const w2(eo_add(, SIMPLE_CLASS, NULL));
+  wrapper const w3(eo_add(, SIMPLE_CLASS, NULL));
+  wrapper const w4(eo_add(, SIMPLE_CLASS, NULL));
 
   list.push_back(w1);
   list.push_back(w2);
diff --git a/src/tests/eina_cxx/eina_cxx_test_ptrarray.cc 
b/src/tests/eina_cxx/eina_cxx_test_ptrarray.cc
index 6b2f627..4b7fce3 100644
--- a/src/tests/eina_cxx/eina_cxx_test_ptrarray.cc
+++ b/src/tests/eina_cxx/eina_cxx_test_ptrarray.cc
@@ -26,9 +26,10 @@ START_TEST(eina_cxx_ptrarray_push_back)
   int result[] = {5, 10, 15};
   int rresult[] = {15, 10, 5};
 
-  wrapper const w1(eo_add(SIMPLE_CLASS, NULL));
-  wrapper const w2(eo_add(SIMPLE_CLASS, NULL));
-  wrapper const w3(eo_add(SIMPLE_CLASS, NULL));
+  Eo* eoptr = nullptr;
+  wrapper const 

[EGIT] [core/enlightenment] enlightenment-0.20 32/72: use strbuf instead of strcat in keybinding string synthesis

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 02c0612faf1b605ef67445f86031ae806cad81f5
Author: Mike Blumenkrantz 
Date:   Mon Feb 29 09:39:31 2016 -0500

use strbuf instead of strcat in keybinding string synthesis

CIDs 1039798, 1039799
---
 .../conf_bindings/e_int_config_keybindings.c   | 78 ++
 1 file changed, 36 insertions(+), 42 deletions(-)

diff --git a/src/modules/conf_bindings/e_int_config_keybindings.c 
b/src/modules/conf_bindings/e_int_config_keybindings.c
index abe50b6..705036e 100644
--- a/src/modules/conf_bindings/e_int_config_keybindings.c
+++ b/src/modules/conf_bindings/e_int_config_keybindings.c
@@ -,84 +,78 @@ _find_key_binding_action(const char *action,
  }
 }
 
-static char *
-_key_binding_header_get(int modifiers)
+static void
+_modifiers_add(Eina_Strbuf *b, int modifiers)
 {
-   char b[256] = "";
-
-   if (modifiers & E_BINDING_MODIFIER_CTRL)
- strcat(b, _("CTRL"));
-
if (modifiers & E_BINDING_MODIFIER_ALT)
  {
-if (b[0]) strcat(b, " + ");
-strcat(b, _("ALT"));
+if (eina_strbuf_length_get(b)) eina_strbuf_append(b, " + ");
+eina_strbuf_append(b, _("ALT"));
  }
 
if (modifiers & E_BINDING_MODIFIER_SHIFT)
  {
-if (b[0]) strcat(b, " + ");
-strcat(b, _("SHIFT"));
+if (eina_strbuf_length_get(b)) eina_strbuf_append(b, " + ");
+eina_strbuf_append(b, _("SHIFT"));
  }
 
if (modifiers & E_BINDING_MODIFIER_WIN)
  {
-if (b[0]) strcat(b, " + ");
-strcat(b, _("WIN"));
+if (eina_strbuf_length_get(b)) eina_strbuf_append(b, " + ");
+eina_strbuf_append(b, _("WIN"));
  }
-
-   if (!b[0]) return strdup(TEXT_NO_MODIFIER_HEADER);
-   return strdup(b);
 }
 
 static char *
-_key_binding_text_get(E_Config_Binding_Key *bi)
+_key_binding_header_get(int modifiers)
 {
-   char b[256] = "";
+   Eina_Strbuf *b;
+   char *ret;
 
-   if (!bi) return NULL;
+   b = eina_strbuf_new();
+   _modifiers_add(b, modifiers);
 
-   if (bi->modifiers & E_BINDING_MODIFIER_CTRL)
- strcat(b, _("CTRL"));
+   ret = eina_strbuf_string_steal(b);
+   eina_strbuf_free(b);
+   if (ret[0]) return ret;
+   free(ret);
+   return strdup(TEXT_NO_MODIFIER_HEADER);
+}
 
-   if (bi->modifiers & E_BINDING_MODIFIER_ALT)
- {
-if (b[0]) strcat(b, " + ");
-strcat(b, _("ALT"));
- }
+static char *
+_key_binding_text_get(E_Config_Binding_Key *bi)
+{
+   Eina_Strbuf *b;
+   char *ret;
 
-   if (bi->modifiers & E_BINDING_MODIFIER_SHIFT)
- {
-if (b[0]) strcat(b, " + ");
-strcat(b, _("SHIFT"));
- }
+   if (!bi) return NULL;
 
-   if (bi->modifiers & E_BINDING_MODIFIER_WIN)
- {
-if (b[0]) strcat(b, " + ");
-strcat(b, _("WIN"));
- }
+   b = eina_strbuf_new();
+   _modifiers_add(b, bi->modifiers);
 
if (bi->key && bi->key[0])
  {
 char *l;
-if (b[0]) strcat(b, " + ");
+if (eina_strbuf_length_get(b)) eina_strbuf_append(b, " + ");
 
 l = strdup(bi->key);
 l[0] = (char)toupper(bi->key[0]);
-strcat(b, l);
+eina_strbuf_append(b, l);
 free(l);
  }
 
/* see comment in e_bindings on numlock
   if (bi->modifiers & ECORE_X_LOCK_NUM)
   {
-if (b[0]) strcat(b, " ");
-strcat(b, _("OFF"));
+if (eina_strbuf_length_get(b)) eina_strbuf_append(b, " ");
+eina_strbuf_append(b, _("OFF"));
   }
 */
 
-   if (!b[0]) return strdup(TEXT_NONE_ACTION_KEY);
-   return strdup(b);
+   ret = eina_strbuf_string_steal(b);
+   eina_strbuf_free(b);
+   if (ret[0]) return ret;
+   free(ret);
+   return strdup(TEXT_NONE_ACTION_KEY);
 }
 

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 72/72: 20.6 NEWS updates

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 65485742b59e5dc757e23c575bdc6859f3864c52
Author: Mike Blumenkrantz 
Date:   Wed Mar 9 12:18:58 2016 -0500

20.6 NEWS updates
---
 NEWS | 82 +++-
 1 file changed, 81 insertions(+), 1 deletion(-)

diff --git a/NEWS b/NEWS
index 81935c7..93bb8b3 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,84 @@
+Release 0.20.6:
+-
+Carsten Haitzler (2):
+  e - efm: fix op registry listener add and dont use eina_error
+  e xkbswitch: don't free layouts that are just pointed to in instances
+
+Chris Michael (6):
+  update mailmap addresses
+  update mailmap addresses
+  add prototype functions for missing wl_data_offer interface
+  add prototype function for missing wl_seat interface
+  add prototype functions for missing wl_data_source interface
+  don't have to hook the ecore_evas resize callback here as that should
 be handled by elm now
+
+Derek Foreman (20):
+  Ensure wayland clients haven't been deleted when processing callbacks
+  Remove wayland frame callbacks from subsurface cache on destruction
+  Fix xdg-shell destructors
+  Protect the wayland frame callback list from corruption
+  Use eina_list_merge instead of eina_list_move for wayland lists
+  Move pixmap free to client free from client destroy
+  Bump wayland version requirement
+  Remove wayland focus timer in delete callback
+  Add a NULL check in native_surface_init under wayland
+  Render deleted objects as long as they still have a pixmap
+  Track whether objects are on the post_updates list or not
+  Take an extra reference on wayland clients
+  Don't allow deleted wayland clients to set the cursor
+  Track whether a render is in progress or not
+  Rework wayland buffer handling
+  Remove wayland buffer reference
+  Re-enable window close animations for wayland
+  Stop copying all wayland buffers
+  Don't use e_pixmap_image_data_argb_convert for wayland images
+  Remove argb_convert for wayland buffers
+
+Mike Blumenkrantz (42):
+  clamp minimum shelf size to 20px in shelf config
+  do not perform special case position adjustment for re_manage clients
+  do not clamp comp object input regions to 0,0
+  improve enforcement of shelf autohide-related window adjustment
+  reshuffle x11 comp init to cleanup on failure cases
+  pre-remove pixmap from x11 clients during del hook
+  enable comp object image data refresh if a dirty call is made with no 
damages
+  redo wayland pixmap ids to use monotonic decreasing ints with no 
collisions
+  remove some unused variables
+  make bgpreview create vdesk config dialog on mouse up instead of mouse 
down
+  do not decrement e_comp->new_clients for non-new clients during 
_e_client_eval
+  update winlist ui when using directional window selection
+  force changed when adding or removing keyboard layouts in config
+  disable emotion_shutdown during shutdown procedure
+  use strbufs instead of strcat in fwin navbars
+  do not set XCURSOR_PATH variable if re-setting existing value
+  remove security hole in e_start_main
+  remove DISPLAY usage from E_IPC_SOCKET value
+  remove multihead env var setting in e_exec
+  strcpy -> strncpy in evry files plugin
+  use strbuf instead of strcat in keybinding string synthesis
+  use strbuf instead of strcat in edgebinding string synthesis
+  use dblequal for double comparisons in edgebindings config
+  replace static buffer usage with binbuf in e_fm_ipc
+  prevent potential null deref during pager (plain) window drag
+  remove unused value in config profile saving
+  remove useless client_add handler in e_ipc
+  use uint instead of int for eina_list_count() return in cpufreq (trivial)
+  simplify static grab case statements
+  remove ipc command allowing arbitrary command execution by the compositor
+  simplify ipc socket creation
+  remove impossible null check in color dialog
+  do not add render updates during damage of deleted clients
+  don't directly use image data when creating a comp object mirror
+  Revert "send mouse out+in on desk flip end"
+  reject x11 client mouse-in events on comp object based on frame geometry
+  reverse ordering for x11 client mouse in NotifyVirtual and 
NotifyInferior details
+  only use x11 mouse out event if client has received mouse in previously
+  apply x11 mouse in event for clients using a job
+  apply x11 focus/unfocus using jobs
+  block re-unsetting of native surface for comp objects
+  always run client res changes in e_comp_canvas_update()
+
+
 Release 0.20.5:
 -
 

[EGIT] [core/enlightenment] enlightenment-0.20 11/72: Use eina_list_merge instead of eina_list_move for wayland lists

2016-03-09 Thread Derek Foreman
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit c7027d4f444dcdce34baf98787c9a2140c10
Author: Derek Foreman 
Date:   Wed Feb 17 13:34:31 2016 -0600

Use eina_list_merge instead of eina_list_move for wayland lists

We should use eina_list_merge for concatenating lists instead of
eina_list_move.
---
 src/bin/e_comp_wl.c | 11 ++-
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c
index dca2dfb..e8b307d 100644
--- a/src/bin/e_comp_wl.c
+++ b/src/bin/e_comp_wl.c
@@ -1718,8 +1718,9 @@ _e_comp_wl_subsurface_commit_to_cache(E_Client *ec)
DBG("Subsurface Commit to Cache");
 
/* move pending damage to cached */
-   EINA_LIST_FOREACH(cdata->pending.damages, l, rect)
- eina_list_move(>cached.damages, >pending.damages, rect);
+   sdata->cached.damages = eina_list_merge(sdata->cached.damages,
+   cdata->pending.damages);
+   cdata->pending.damages = NULL;
 
if (cdata->pending.new_attach)
  {
@@ -1752,9 +1753,9 @@ _e_comp_wl_subsurface_commit_to_cache(E_Client *ec)
  eina_tiler_rect_add(sdata->cached.input, rect);
eina_iterator_free(itr);
 
-   EINA_LIST_FOREACH(cdata->pending.frames, l, cb)
- eina_list_move(>cached.frames, >pending.frames, cb);
-
+   sdata->cached.frames = eina_list_merge(sdata->cached.frames,
+  cdata->pending.frames);
+   cdata->pending.frames = NULL;
sdata->cached.has_data = EINA_TRUE;
 }
 

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 23/72: update winlist ui when using directional window selection

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit d3d36092c7abc97815bd0354947573b926c4460d
Author: Mike Blumenkrantz 
Date:   Fri Feb 26 16:37:52 2016 -0500

update winlist ui when using directional window selection

fix T3152
ref b1378ce77b5e353bc422276eeef1d30d356ab9fd
---
 src/modules/winlist/e_winlist.c | 56 +++--
 1 file changed, 14 insertions(+), 42 deletions(-)

diff --git a/src/modules/winlist/e_winlist.c b/src/modules/winlist/e_winlist.c
index 2bc13cd..2706890 100644
--- a/src/modules/winlist/e_winlist.c
+++ b/src/modules/winlist/e_winlist.c
@@ -57,7 +57,6 @@ static double _scroll_align_to = 0.0;
 static double _scroll_align = 0.0;
 static Ecore_Timer *_scroll_timer = NULL;
 static Ecore_Animator *_animator = NULL;
-static E_Client *_ec_next = NULL;
 
 static Eina_Bool
 _wmclass_picked(const Eina_List *lst, const char *wmclass)
@@ -369,43 +368,6 @@ e_winlist_prev(void)
_e_winlist_activate();
 }
 
-static void
-_e_winlist_select(E_Client *ec)
-{
-   Eina_Bool focus = EINA_FALSE;
-
-   if (ec->shaded)
- {
-if (!ec->lock_user_shade)
-  e_client_unshade(ec, ec->shade_dir);
- }
-   if (ec->iconic)
- e_client_uniconify(ec);
-   if ((!ec->lock_focus_out) &&
-   (!e_config->winlist_no_warp_on_direction) &&
-   ((e_config->focus_policy != E_FOCUS_CLICK) ||
-   (e_config->winlist_warp_at_end) ||
-   (e_config->winlist_warp_while_selecting)))
- {
-   if (!e_client_pointer_warp_to_center(ec))
- focus = EINA_TRUE;
-   if (_list_object && (!_animator))
- _animator = ecore_animator_add(_e_winlist_animator, NULL);
- }
-
-   if ((!ec->lock_user_stacking) &&
-   (e_config->winlist_list_raise_while_selecting))
- {
-e_client_raise_latest_set(ec);
-evas_object_raise(ec->frame);
- }
-   if ((!ec->lock_focus_out) &&
-   (e_config->winlist_list_focus_while_selecting))
- focus = EINA_TRUE;
-   if (focus)
- evas_object_focus_set(ec->frame, 1);
-}
-
 static int
 point_line_dist(int x, int y, int lx1, int ly1, int lx2, int ly2)
 {
@@ -450,11 +412,12 @@ e_winlist_direction_select(E_Zone *zone, int dir)
E_Client *ec;
Eina_List *l;
E_Desk *desk;
-   E_Client *ec_orig;
+   E_Client *ec_orig, *ec_next = NULL;
int distance = INT_MAX;
int cx, cy;
+   E_Winlist_Win *ww;
 
-   _ec_next = NULL;
+   ec_next = NULL;
 
E_OBJECT_CHECK(zone);
E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE);
@@ -566,11 +529,20 @@ e_winlist_direction_select(E_Zone *zone, int dir)
  if (d >= distance) continue;
  break;
   }
-_ec_next = ec;
+ec_next = ec;
 distance = d;
  }
 
-   if (_ec_next) _e_winlist_select(_ec_next);
+   if (!ec_next) return;
+   _e_winlist_deactivate();
+   EINA_LIST_FOREACH(_wins, l, ww)
+ {
+if (ww->client != ec_next) continue;
+_win_selected = l;
+break;
+ }
+   _e_winlist_show_active();
+   _e_winlist_activate();
 }
 
 

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 25/72: disable emotion_shutdown during shutdown procedure

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit f546997405271ee1c4e75d34a293813b607f149f
Author: Mike Blumenkrantz 
Date:   Sat Feb 27 14:19:28 2016 -0500

disable emotion_shutdown during shutdown procedure

this manually iterates main loop and is guaranteed to trigger unexpected
behaviors and/or crashes
---
 src/bin/e_main.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_main.c b/src/bin/e_main.c
index 71bc654..20ee041 100644
--- a/src/bin/e_main.c
+++ b/src/bin/e_main.c
@@ -465,7 +465,8 @@ main(int argc, char **argv)
 _e_main_shutdown(-1);
  }
TS("Emotion Init Done");
-   _e_main_shutdown_push((void *)emotion_shutdown);
+   /* triggers event flush: do not call */
+   //_e_main_shutdown_push((void *)emotion_shutdown);
 
/* e doesn't sync to compositor - it should be one */
ecore_evas_app_comp_sync_set(0);

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 26/72: use strbufs instead of strcat in fwin navbars

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit a04a93e5ef798caccf723519ae8088cca25500ec
Author: Mike Blumenkrantz 
Date:   Mon Feb 29 07:55:37 2016 -0500

use strbufs instead of strcat in fwin navbars

CIDs 1039794, 1039795, 1039796
---
 src/modules/fileman/e_fwin_nav.c | 56 +++-
 1 file changed, 33 insertions(+), 23 deletions(-)

diff --git a/src/modules/fileman/e_fwin_nav.c b/src/modules/fileman/e_fwin_nav.c
index ea6a243..f7bf6e3 100644
--- a/src/modules/fileman/e_fwin_nav.c
+++ b/src/modules/fileman/e_fwin_nav.c
@@ -240,28 +240,39 @@ out:
_box_button_cb_dnd_leave(inst, type, NULL);
 }
 
+static Eina_Strbuf *
+_path_generate(Instance *inst, Evas_Object *break_obj)
+{
+   Nav_Item *ni;
+   Eina_Strbuf *buf;
+
+   buf = eina_strbuf_new();
+   EINA_INLIST_FOREACH(inst->l_buttons, ni)
+ {
+eina_strbuf_append(buf, edje_object_part_text_get(ni->o, 
"e.text.label"));
+if (break_obj && (ni->o == break_obj)) break;
+if (eina_strbuf_length_get(buf)) eina_strbuf_append_char(buf, '/');
+ }
+   return buf;
+}
+
 static Eina_Bool
 _box_button_cb_dnd_drop(void *data, const char *type EINA_UNUSED)
 {
Instance *inst = data;
-   Nav_Item *ni;
Eina_Bool allow;
-   char path[PATH_MAX] = {0};
+   Eina_Strbuf *buf;
 
if (!inst->dnd_obj) return EINA_FALSE;
 
-   EINA_INLIST_FOREACH(inst->l_buttons, ni)
- {
-strcat(path, edje_object_part_text_get(ni->o, "e.text.label"));
-if (ni->o == inst->dnd_obj) break;
-if (path[1]) strcat(path, "/");
- }
-   allow = ecore_file_can_write(path);
+   buf = _path_generate(inst, inst->dnd_obj);
+   allow = ecore_file_can_write(eina_strbuf_string_get(buf));
if (allow)
  {
-e_drop_xds_update(allow, path);
-inst->dnd_path = strdup(path);
+e_drop_xds_update(allow, eina_strbuf_string_get(buf));
+inst->dnd_path = eina_strbuf_string_steal(buf);
  }
+   eina_strbuf_free(buf);
return allow;
 }
 
@@ -631,15 +642,17 @@ _cb_button_click(void *data, Evas_Object *obj, const char 
*emission EINA_UNUSED,
 {
Instance *inst = data;
Nav_Item *ni;
-   char path[PATH_MAX] = "";
+   Eina_Strbuf *buf;
 
+   buf = eina_strbuf_new();
EINA_INLIST_FOREACH(inst->l_buttons, ni)
  {
-strcat(path, edje_object_part_text_get(ni->o, "e.text.label"));
+eina_strbuf_append(buf, edje_object_part_text_get(ni->o, 
"e.text.label"));
 if (ni->o == obj) break;
-strcat(path, "/");
+eina_strbuf_append_char(buf, '/');
  }
-   e_fm2_path_set(inst->o_fm, "/", path);
+   e_fm2_path_set(inst->o_fm, "/", eina_strbuf_string_get(buf));
+   eina_strbuf_free(buf);
 }
 
 static void
@@ -670,8 +683,8 @@ _box_button_append(Instance *inst, const char *label, 
Edje_Signal_Cb func)
 {
Evas_Object *o;
Evas_Coord mw = 0, mh = 0;
-   char path[PATH_MAX] = {0};
-   Nav_Item *ni, *nil;
+   Eina_Strbuf *buf;
+   Nav_Item *ni;
 
if (!inst || !label || !*label || !func)
  return;
@@ -697,15 +710,12 @@ _box_button_append(Instance *inst, const char *label, 
Edje_Signal_Cb func)
ni->o = o;
ni->inst = inst;
inst->l_buttons = eina_inlist_append(inst->l_buttons, EINA_INLIST_GET(ni));
-   EINA_INLIST_FOREACH(inst->l_buttons, nil)
- {
-strcat(path, edje_object_part_text_get(nil->o, "e.text.label"));
-if (path[1]) strcat(path, "/");
- }
-   ni->path = eina_stringshare_add(path);
+   buf = _path_generate(inst, NULL);
+   ni->path = eina_stringshare_add(eina_strbuf_string_get(buf));
ni->monitor = eio_monitor_stringshared_add(ni->path);
E_LIST_HANDLER_APPEND(ni->handlers, EIO_MONITOR_SELF_DELETED, 
_event_deleted, ni);
E_LIST_HANDLER_APPEND(ni->handlers, EIO_MONITOR_ERROR, _event_deleted, ni);
+   eina_strbuf_free(buf);
 }
 
 static void

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 18/72: e - efm: fix op registry listener add and dont use eina_error

2016-03-09 Thread Carsten Haitzler
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 361b6d84e09014a5f2829b915ac3d1cc387fc319
Author: Carsten Haitzler (Rasterman) 
Date:   Tue Feb 23 13:54:24 2016 +0900

e - efm: fix op registry listener add and dont use eina_error

eina list stopped using eina_error like... so so so so so long ago like
before 1.0 - so eina_error value may be something junk and from
somewhere else where the list append succeeded but ena error said
fail- and that is what was happening and things crashed. this fixes this

@fix
---
 src/bin/e_fm_op_registry.c | 8 
 1 file changed, 8 deletions(-)

diff --git a/src/bin/e_fm_op_registry.c b/src/bin/e_fm_op_registry.c
index 1479185..0acee62 100644
--- a/src/bin/e_fm_op_registry.c
+++ b/src/bin/e_fm_op_registry.c
@@ -341,14 +341,6 @@ 
e_fm2_op_registry_entry_listener_add(E_Fm2_Op_Registry_Entry *entry, void (*cb)(
 
e = _e_fm2_op_registry_entry_internal_get(entry);
e->listeners = eina_inlist_append(e->listeners, EINA_INLIST_GET(listener));
-   err = eina_error_get();
-   if (err)
- {
-printf("could not add listener: %s\n", eina_error_msg_get(err));
-if (free_data) free_data((void *)data);
-free(listener);
-return;
- }
 }
 
 /**

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 20/72: remove some unused variables

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit b1a5eeeb0c3fdfadfb40b8183535e054909f0f6b
Author: Mike Blumenkrantz 
Date:   Thu Feb 25 13:37:52 2016 -0500

remove some unused variables
---
 src/bin/e_comp_wl.c| 2 --
 src/bin/e_fm_op_registry.c | 1 -
 2 files changed, 3 deletions(-)

diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c
index 5e43891..2f2eb06 100644
--- a/src/bin/e_comp_wl.c
+++ b/src/bin/e_comp_wl.c
@@ -1714,8 +1714,6 @@ _e_comp_wl_subsurface_commit_to_cache(E_Client *ec)
 {
E_Comp_Client_Data *cdata;
E_Comp_Wl_Subsurf_Data *sdata;
-   struct wl_resource *cb;
-   Eina_List *l;
Eina_Iterator *itr;
Eina_Rectangle *rect;
 
diff --git a/src/bin/e_fm_op_registry.c b/src/bin/e_fm_op_registry.c
index 0acee62..fe63c85 100644
--- a/src/bin/e_fm_op_registry.c
+++ b/src/bin/e_fm_op_registry.c
@@ -321,7 +321,6 @@ 
e_fm2_op_registry_entry_listener_add(E_Fm2_Op_Registry_Entry *entry, void (*cb)(
 {
E_Fm2_Op_Registry_Entry_Internal *e;
E_Fm2_Op_Registry_Entry_Listener *listener;
-   Eina_Error err;
 
if ((!entry) || (!cb))
  {

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 21/72: make bgpreview create vdesk config dialog on mouse up instead of mouse down

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit a8ecf89bd66f2e6d5b6cdfcf43fbebb2517bcce3
Author: Mike Blumenkrantz 
Date:   Thu Feb 25 14:00:01 2016 -0500

make bgpreview create vdesk config dialog on mouse up instead of mouse down

if the option to always raise a window on click is enabled, clicking an 
internal
window in a way which creates another window will cause a race condition 
where
the clicked window is raised over the newly created window

there is no obvious policy-wide solution to this issue, but making this 
change
at least resolves the issue in question

fix T3210
---
 src/bin/e_widget_bgpreview.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/bin/e_widget_bgpreview.c b/src/bin/e_widget_bgpreview.c
index c4dbb20..0e79286 100644
--- a/src/bin/e_widget_bgpreview.c
+++ b/src/bin/e_widget_bgpreview.c
@@ -123,10 +123,10 @@ e_widget_bgpreview_desk_configurable_set(Evas_Object 
*obj, Eina_Bool enable)
enable = !!enable;
if (dd->configurable == enable) return;
if (enable)
- evas_object_event_callback_add(dd->icon, EVAS_CALLBACK_MOUSE_DOWN,
+ evas_object_event_callback_add(dd->icon, EVAS_CALLBACK_MOUSE_UP,
 _e_wid_desk_cb_config, dd);
else
- evas_object_event_callback_del_full(dd->icon, EVAS_CALLBACK_MOUSE_DOWN,
+ evas_object_event_callback_del_full(dd->icon, EVAS_CALLBACK_MOUSE_UP,
  _e_wid_desk_cb_config, dd);
dd->configurable = enable;
 }
@@ -267,7 +267,7 @@ _e_wid_reconfigure(E_Widget_Data *wd)
 
  edje_object_part_swallow(dd->icon, "e.swallow.content", dd->live);
  dd->configurable = EINA_TRUE;
- evas_object_event_callback_add(dd->icon, EVAS_CALLBACK_MOUSE_DOWN,
+ evas_object_event_callback_add(dd->icon, EVAS_CALLBACK_MOUSE_UP,
 _e_wid_desk_cb_config, dd);
  evas_object_show(dd->icon);
  evas_object_data_set(dd->icon, "desk_data", dd);

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 04/72: do not perform special case position adjustment for re_manage clients

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit f31e540140be054c0d53d16ee0f5dadc53644b4f
Author: Mike Blumenkrantz 
Date:   Mon Feb 8 14:03:31 2016 -0500

do not perform special case position adjustment for re_manage clients

this case is solely for handling clients which are created with nonzero
position, eg. an x11 window trying to display itself centered upon initial
creation. re_manage indicates a window which is re-managed after a restart 
of
enlightenment, so these windows clearly do not fall into that case

fixes an issue where windows would move up+left by the size of their frame 
during
restart

ref 95e133282ef0ae8942ae513449b31d9f7149c519
---
 src/bin/e_comp_object.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 19aa573..93b16d2 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -3189,7 +3189,8 @@ reshadow:
do
  {
 _e_comp_smart_cb_frame_recalc(cw, cw->smart_obj, NULL);
-if ((cw->x == -1) && (cw->y == -1) && cw->ec->new_client && 
(!cw->ec->placed))
+if ((cw->x == -1) && (cw->y == -1) && cw->ec->new_client &&
+(!cw->ec->placed) && (!cw->ec->re_manage))
   {
  cw->ec->x = MAX(cw->ec->zone->x, cw->ec->client.x - 
cw->client_inset.l);
  cw->ec->y = MAX(cw->ec->zone->y, cw->ec->client.y - 
cw->client_inset.t);

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 07/72: improve enforcement of shelf autohide-related window adjustment

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 0a557c8d05e60aa73bdc8241e02b7ba2b8b0176a
Author: Mike Blumenkrantz 
Date:   Wed Feb 17 11:36:30 2016 -0500

improve enforcement of shelf autohide-related window adjustment

for whatever reason, there's a global option which makes windows adjust
when a shelf autohides as well as a per-shelf option to ignore the global
option

in the case where the global option is not enabled, there is no reason to
check the per-shelf option

ref 5d63b07ca39011f4f1508c68f2d361d28584422e
---
 src/bin/e_shelf.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/e_shelf.c b/src/bin/e_shelf.c
index c1b5ca6..6479a4b 100644
--- a/src/bin/e_shelf.c
+++ b/src/bin/e_shelf.c
@@ -91,7 +91,7 @@ _e_shelf_remaximize(E_Shelf *es)
 {
E_Client *ec;
 
-   if (es->cfg->overlap && e_config->border_fix_on_shelf_toggle) return;
+   if ((!e_config->border_fix_on_shelf_toggle) || es->cfg->overlap) return;
E_CLIENT_FOREACH(ec)
  {
 E_Maximize max = ec->maximized;

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 10/72: Protect the wayland frame callback list from corruption

2016-03-09 Thread Derek Foreman
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit c9b720cccd280879c7f9a6b565ad5773c12f1efe
Author: Derek Foreman 
Date:   Wed Feb 17 13:11:04 2016 -0600

Protect the wayland frame callback list from corruption

The resource destroy callback for frame callbacks will walk the frame list
to remove itself.  When freeing that list we need to make sure the
resource destroy callback doesn't see the same list we're walking and
corrupt it.
---
 src/bin/e_comp_wl.c | 16 ++--
 src/bin/e_pixmap.c  |  9 -
 2 files changed, 22 insertions(+), 3 deletions(-)

diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c
index 802d25d..dca2dfb 100644
--- a/src/bin/e_comp_wl.c
+++ b/src/bin/e_comp_wl.c
@@ -981,8 +981,14 @@ _e_comp_wl_surface_state_finish(E_Comp_Wl_Surface_State 
*state)
 {
struct wl_resource *cb;
Eina_Rectangle *dmg;
+   Eina_List *free_list;
 
-   EINA_LIST_FREE(state->frames, cb)
+   /* The resource destroy callback will walk the state->frames list,
+* so move the list to a temporary first.
+*/
+   free_list = state->frames;
+   state->frames = NULL;
+   EINA_LIST_FREE(free_list, cb)
  wl_resource_destroy(cb);
 
EINA_LIST_FREE(state->damages, dmg)
@@ -2229,6 +2235,7 @@ _e_comp_wl_client_cb_del(void *data EINA_UNUSED, E_Client 
*ec)
/* Eina_Rectangle *dmg; */
struct wl_resource *cb;
E_Client *subc;
+   Eina_List *free_list;
 
/* make sure this is a wayland client */
if (e_pixmap_type_get(ec->pixmap) != E_PIXMAP_TYPE_WL) return;
@@ -2247,7 +2254,12 @@ _e_comp_wl_client_cb_del(void *data EINA_UNUSED, 
E_Client *ec)
 
_e_comp_wl_surface_state_finish(>comp_data->pending);
 
-   EINA_LIST_FREE(ec->comp_data->frames, cb)
+   /* The resource destroy callback will walk the state->frames list,
+* so move the list to a temporary first.
+*/
+   free_list = ec->comp_data->frames;
+   ec->comp_data->frames = NULL;
+   EINA_LIST_FREE(free_list, cb)
  wl_resource_destroy(cb);
 
if (ec->comp_data->surface)
diff --git a/src/bin/e_pixmap.c b/src/bin/e_pixmap.c
index 8837bce..7f8bccb 100644
--- a/src/bin/e_pixmap.c
+++ b/src/bin/e_pixmap.c
@@ -635,10 +635,17 @@ e_pixmap_image_clear(E_Pixmap *cp, Eina_Bool cache)
   {
  E_Comp_Wl_Client_Data *cd;
  struct wl_resource *cb;
+ Eina_List *free_list;
 
  if ((!cp->client) || (!cp->client->comp_data)) return;
  cd = (E_Comp_Wl_Client_Data *)cp->client->comp_data;
- EINA_LIST_FREE(cd->frames, cb)
+
+ /* The destroy callback will remove items from the frame list
+  * so we move the list to a temporary before walking it here
+  */
+ free_list = cd->frames;
+ cd->frames = NULL;
+ EINA_LIST_FREE(free_list, cb)
{
   wl_callback_send_done(cb, ecore_time_unix_get() * 1000);
   wl_resource_destroy(cb);

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 17/72: enable comp object image data refresh if a dirty call is made with no damages

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit d3b6e7a21910d208138437db3bb242c627d88f4f
Author: Mike Blumenkrantz 
Date:   Mon Feb 22 17:48:35 2016 -0500

enable comp object image data refresh if a dirty call is made with no 
damages

this indicates that a buffer has changed, but there is no new data to draw
---
 src/bin/e_comp_object.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 6527a35..27393af 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -3622,7 +3622,7 @@ e_comp_object_dirty(Evas_Object *obj)
if (!dirty) w = h = 1;
evas_object_image_pixels_dirty_set(cw->obj, cw->blanked ? 0 : dirty);
if (!dirty)
- evas_object_image_data_set(cw->obj, NULL);
+ evas_object_image_data_set(cw->obj, 
e_pixmap_image_data_get(cw->ec->pixmap));
evas_object_image_size_set(cw->obj, w, h);
 
RENDER_DEBUG("SIZE [%p]: %dx%d", cw->ec, w, h);

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 05/72: do not clamp comp object input regions to 0, 0

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 263774c4a1192a8c4409bb788ae34c6ea28e4823
Author: Mike Blumenkrantz 
Date:   Tue Feb 16 15:36:04 2016 -0500

do not clamp comp object input regions to 0,0

this breaks input for clients using csd which are aligned at x|y axis
---
 src/bin/e_comp_object.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 93b16d2..6527a35 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -2967,8 +2967,8 @@ e_comp_object_input_area_set(Evas_Object *obj, int x, int 
y, int w, int h)
  evas_object_smart_member_add(cw->input_obj, obj);
   }
 evas_object_geometry_set(cw->input_obj,
-  MAX(cw->ec->client.x + (!!cw->frame_object * cw->client_inset.l), 0) 
+ x,
-  MAX(cw->ec->client.y + (!!cw->frame_object * cw->client_inset.t), 0) 
+ y, w, h);
+  cw->ec->client.x + (!!cw->frame_object * cw->client_inset.l) + x,
+  cw->ec->client.y + (!!cw->frame_object * cw->client_inset.t) + y, w, 
h);
 evas_object_pass_events_set(cw->obj, 1);
 if (cw->visible) evas_object_show(cw->input_obj);
  }

-- 




[EGIT] [core/enlightenment] master 01/01: fix xwayland compile with 1.18 eo

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

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

commit 2ec02258ec58ec16292d8ef0d69ba7b61b599246
Author: Mike Blumenkrantz 
Date:   Wed Mar 9 13:13:45 2016 -0500

fix xwayland compile with 1.18 eo
---
 src/modules/xwayland/e_mod_main.c | 6 ++
 1 file changed, 6 insertions(+)

diff --git a/src/modules/xwayland/e_mod_main.c 
b/src/modules/xwayland/e_mod_main.c
index 5f28e1e..a6f0954 100644
--- a/src/modules/xwayland/e_mod_main.c
+++ b/src/modules/xwayland/e_mod_main.c
@@ -367,7 +367,13 @@ e_modapi_init(E_Module *m)
  return NULL;
 
 #ifdef HAVE_PULSE
+# ifdef EFL_VERSION_1_18
+   void *tmp;
+   eo_add(, ECORE_AUDIO_OUT_PULSE_CLASS, NULL);
+   eo_del(tmp);
+# else
eo_del(eo_add(ECORE_AUDIO_OUT_PULSE_CLASS, NULL));
+# endif
 #endif
 
/* record wayland display */

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 71/72: 20.6 release

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit c50aa176e8119f9bbd0376626e275241c81677ad
Author: Mike Blumenkrantz 
Date:   Wed Mar 9 12:18:12 2016 -0500

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

diff --git a/configure.ac b/configure.ac
index 5360d49..ef0b8de 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,11 +2,11 @@
 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
 m4_define([v_maj], [0])
 m4_define([v_min], [20])
-m4_define([v_mic], [5])
+m4_define([v_mic], [6])
 m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 
0) | tr -d '\n']))dnl
 ##--   When released, remove the dnl on the below line
 m4_undefine([v_rev])
-m4_define([relname], [0.20.5])
+m4_define([relname], [0.20.6])
 ##--   When doing snapshots - change soname. remove dnl on below line
 m4_define([relname], [ver-autocannoli-0.20])
 dnl m4_define([v_rel], [-release relname])

-- 




[EGIT] [core/enlightenment] annotated tag v0.20.6 created (now 9b22e23)

2016-03-09 Thread Enlightenment Git
This is an automated email from the git hooks/post-receive script.

discomfitor pushed a change to annotated tag v0.20.6
in repository core/enlightenment.

at  9b22e23   (tag)
   tagging  65485742b59e5dc757e23c575bdc6859f3864c52 (commit)
  replaces  v0.20.5
 tagged by  Mike Blumenkrantz
on  Wed Mar 9 13:10:18 2016 -0500

- Log -
0.20.6 release

Carsten Haitzler (2):
  e - efm: fix op registry listener add and dont use eina_error
  e xkbswitch: don't free layouts that are just pointed to in instances

Chris Michael (6):
  update mailmap addresses
  update mailmap addresses
  add prototype functions for missing wl_data_offer interface
  add prototype function for missing wl_seat interface
  add prototype functions for missing wl_data_source interface
  don't have to hook the ecore_evas resize callback here as that should

Derek Foreman (20):
  Ensure wayland clients haven't been deleted when processing callbacks
  Remove wayland frame callbacks from subsurface cache on destruction
  Fix xdg-shell destructors
  Protect the wayland frame callback list from corruption
  Use eina_list_merge instead of eina_list_move for wayland lists
  Move pixmap free to client free from client destroy
  Bump wayland version requirement
  Remove wayland focus timer in delete callback
  Add a NULL check in native_surface_init under wayland
  Render deleted objects as long as they still have a pixmap
  Track whether objects are on the post_updates list or not
  Take an extra reference on wayland clients
  Don't allow deleted wayland clients to set the cursor
  Track whether a render is in progress or not
  Rework wayland buffer handling
  Remove wayland buffer reference
  Re-enable window close animations for wayland
  Stop copying all wayland buffers
  Don't use e_pixmap_image_data_argb_convert for wayland images
  Remove argb_convert for wayland buffers

Mike Blumenkrantz (44):
  clamp minimum shelf size to 20px in shelf config
  do not perform special case position adjustment for re_manage clients
  do not clamp comp object input regions to 0,0
  improve enforcement of shelf autohide-related window adjustment
  reshuffle x11 comp init to cleanup on failure cases
  pre-remove pixmap from x11 clients during del hook
  enable comp object image data refresh if a dirty call is made with no 
damages
  redo wayland pixmap ids to use monotonic decreasing ints with no 
collisions
  remove some unused variables
  make bgpreview create vdesk config dialog on mouse up instead of mouse 
down
  do not decrement e_comp->new_clients for non-new clients during 
_e_client_eval
  update winlist ui when using directional window selection
  force changed when adding or removing keyboard layouts in config
  disable emotion_shutdown during shutdown procedure
  use strbufs instead of strcat in fwin navbars
  do not set XCURSOR_PATH variable if re-setting existing value
  remove security hole in e_start_main
  remove DISPLAY usage from E_IPC_SOCKET value
  remove multihead env var setting in e_exec
  strcpy -> strncpy in evry files plugin
  use strbuf instead of strcat in keybinding string synthesis
  use strbuf instead of strcat in edgebinding string synthesis
  use dblequal for double comparisons in edgebindings config
  replace static buffer usage with binbuf in e_fm_ipc
  prevent potential null deref during pager (plain) window drag
  remove unused value in config profile saving
  remove useless client_add handler in e_ipc
  use uint instead of int for eina_list_count() return in cpufreq (trivial)
  simplify static grab case statements
  remove ipc command allowing arbitrary command execution by the compositor
  simplify ipc socket creation
  remove impossible null check in color dialog
  do not add render updates during damage of deleted clients
  don't directly use image data when creating a comp object mirror
  Revert "send mouse out+in on desk flip end"
  reject x11 client mouse-in events on comp object based on frame geometry
  reverse ordering for x11 client mouse in NotifyVirtual and NotifyInferior 
details
  only use x11 mouse out event if client has received mouse in previously
  apply x11 mouse in event for clients using a job
  apply x11 focus/unfocus using jobs
  block re-unsetting of native surface for comp objects
  always run client res changes in e_comp_canvas_update()
  20.6 release
  20.6 NEWS updates

---

This annotated tag includes the following new commits:

   new  c272ba7   update mailmap addresses
   new  aa58760   update mailmap addresses
   new  98b1248   clamp minimum shelf size 

[EGIT] [core/enlightenment] enlightenment-0.20 60/72: Don't allow deleted wayland clients to set the cursor

2016-03-09 Thread Derek Foreman
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit d44d33495308c4aea5605c106948c6507b414a28
Author: Derek Foreman 
Date:   Mon Feb 29 12:12:35 2016 -0600

Don't allow deleted wayland clients to set the cursor
---
 src/bin/e_comp_wl_input.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/bin/e_comp_wl_input.c b/src/bin/e_comp_wl_input.c
index 47c0f7d..fc7c642 100644
--- a/src/bin/e_comp_wl_input.c
+++ b/src/bin/e_comp_wl_input.c
@@ -37,6 +37,7 @@ _e_comp_wl_input_pointer_cb_cursor_set(struct wl_client 
*client, struct wl_resou
 
E_CLIENT_FOREACH(ec)
  {
+   if (e_object_is_del(E_OBJECT(ec))) continue;
if (e_pixmap_type_get(ec->pixmap) != E_PIXMAP_TYPE_WL) continue;
if (!ec->comp_data->surface) continue;
if (client != wl_resource_get_client(ec->comp_data->surface)) continue;

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 35/72: replace static buffer usage with binbuf in e_fm_ipc

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit c24de2a210c6b2dd33ebd5e8ef9779abecc51336
Author: Mike Blumenkrantz 
Date:   Mon Feb 29 10:02:52 2016 -0500

replace static buffer usage with binbuf in e_fm_ipc

CID 1039804
---
 src/bin/e_fm/e_fm_ipc.c | 28 +---
 1 file changed, 9 insertions(+), 19 deletions(-)

diff --git a/src/bin/e_fm/e_fm_ipc.c b/src/bin/e_fm/e_fm_ipc.c
index 2e82455..09fb470 100644
--- a/src/bin/e_fm/e_fm_ipc.c
+++ b/src/bin/e_fm/e_fm_ipc.c
@@ -1016,12 +1016,10 @@ _e_fm_ipc_file_add_mod(E_Dir *ed, const char *path, 
E_Fm_Op_Type op, int listing
struct stat st;
char *lnk = NULL, *rlnk = NULL;
int broken_lnk = 0;
-   int bsz = 0;
-   unsigned char *p, buf
+   Eina_Binbuf *buf;
/* file add/change format is as follows:
 *
 * stat_info[stat size] + broken_link[1] + path[n]\0 + lnk[n]\0 + rlnk[n]\0 
*/
-   [sizeof(struct stat) + 1 + 4096 + 4096 + 4096];
 
/* FIXME: handle BACKOFF */
if ((!listing) && (op == E_FM_OP_FILE_CHANGE) && (!ed->cleaning)) /* 5 == 
mod */
@@ -1082,29 +1080,21 @@ _e_fm_ipc_file_add_mod(E_Dir *ed, const char *path, 
E_Fm_Op_Type op, int listing
if (!lnk) lnk = strdup("");
if (!rlnk) rlnk = strdup("");
 
-   p = buf;
+   buf = eina_binbuf_new();
/* NOTE: i am NOT converting this data to portable arch/os independent
 * format. i am ASSUMING e_fm_main and e are local and built together
 * and thus this will work. if this ever changes this here needs to
 * change */
-   memcpy(buf, , sizeof(struct stat));
-   p += sizeof(struct stat);
+   eina_binbuf_append_length(buf, (void*), sizeof(struct stat));
 
-   p[0] = broken_lnk;
-   p += 1;
+   eina_binbuf_append_char(buf, !!broken_lnk);
+   eina_binbuf_append_length(buf, (void*)path, strlen(path) + 1);
+   eina_binbuf_append_length(buf, (void*)lnk, strlen(lnk) + 1);
+   eina_binbuf_append_length(buf, (void*)rlnk, strlen(rlnk) + 1);
 
-   strcpy((char *)p, path);
-   p += strlen(path) + 1;
-
-   strcpy((char *)p, lnk);
-   p += strlen(lnk) + 1;
-
-   strcpy((char *)p, rlnk);
-   p += strlen(rlnk) + 1;
-
-   bsz = p - buf;
ecore_ipc_server_send(_e_fm_ipc_server, 6 /*E_IPC_DOMAIN_FM*/, op, 0, 
ed->id,
- listing, buf, bsz);
+ listing, eina_binbuf_string_get(buf), 
eina_binbuf_length_get(buf));
+   eina_binbuf_free(buf);
free(lnk);
free(rlnk);
 }

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 69/72: always run client res changes in e_comp_canvas_update()

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 4a408dfdbc94d1e11c3b37459477da032ad3c8bd
Author: Mike Blumenkrantz 
Date:   Tue Mar 8 15:59:57 2016 -0500

always run client res changes in e_comp_canvas_update()

this function is only called when screen geometry (or useful geometry) has
changed, and so all clients should have their geometries checked at this 
point
to ensure that they update for any new zone obstacle changes which have 
occurred
---
 src/bin/e_comp_canvas.c | 41 -
 1 file changed, 20 insertions(+), 21 deletions(-)

diff --git a/src/bin/e_comp_canvas.c b/src/bin/e_comp_canvas.c
index 3045282..15b361f 100644
--- a/src/bin/e_comp_canvas.c
+++ b/src/bin/e_comp_canvas.c
@@ -532,6 +532,26 @@ e_comp_canvas_update(void)
   }
  }
 
+   for (i = 0; i < 11; i++)
+ {
+Eina_List *tmp = NULL;
+E_Client *ec;
+
+if (!e_comp->layers[i].clients) continue;
+/* Make temporary list as e_client_res_change_geometry_restore
+ * rearranges the order. */
+EINA_INLIST_FOREACH(e_comp->layers[i].clients, ec)
+  {
+ if (!e_client_util_ignored_get(ec))
+   tmp = eina_list_append(tmp, ec);
+  }
+
+EINA_LIST_FREE(tmp, ec)
+  {
+ e_client_res_change_geometry_save(ec);
+ e_client_res_change_geometry_restore(ec);
+  }
+ }
if (!changed) return;
if (!starting)
  {
@@ -554,27 +574,6 @@ e_comp_canvas_update(void)
   }
 e_comp_canvas_zone_update(zone);
  }
-
-   for (i = 0; i < 11; i++)
- {
-Eina_List *tmp = NULL;
-E_Client *ec;
-
-if (!e_comp->layers[i].clients) continue;
-/* Make temporary list as e_client_res_change_geometry_restore
- * rearranges the order. */
-EINA_INLIST_FOREACH(e_comp->layers[i].clients, ec)
-  {
- if (!e_client_util_ignored_get(ec))
-   tmp = eina_list_append(tmp, ec);
-  }
-
-EINA_LIST_FREE(tmp, ec)
-  {
- e_client_res_change_geometry_save(ec);
- e_client_res_change_geometry_restore(ec);
-  }
- }
 }
 
 E_API void

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 31/72: strcpy -> strncpy in evry files plugin

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 7a7c57c2b8ca4e1f49a87b43ea1adca7d02ca412
Author: Mike Blumenkrantz 
Date:   Mon Feb 29 09:23:54 2016 -0500

strcpy -> strncpy in evry files plugin
---
 src/modules/everything/evry_plug_files.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/modules/everything/evry_plug_files.c 
b/src/modules/everything/evry_plug_files.c
index 5b1859d..f2e0f6e 100644
--- a/src/modules/everything/evry_plug_files.c
+++ b/src/modules/everything/evry_plug_files.c
@@ -692,7 +692,7 @@ _fetch(Evry_Plugin *plugin, const char *input)
{
   dir = dirname(buf);
   _folder_item_add(p, dir, prio++);
-  strcpy(buf, dir);
+  strncpy(buf, dir, sizeof(buf) - 1);
}
 
  p->command = CMD_SHOW_PARENT;

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 44/72: do not add render updates during damage of deleted clients

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 0b8cf7f959cbd10385bfa954b07ec2351369009b
Author: Mike Blumenkrantz 
Date:   Mon Feb 29 13:33:52 2016 -0500

do not add render updates during damage of deleted clients
---
 src/bin/e_comp_object.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 27393af..28f14b1 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -3350,7 +3350,8 @@ e_comp_object_damage(Evas_Object *obj, int x, int y, int 
w, int h)
 RENDER_DEBUG("DAMAGE: %d,%d %dx%d", x, y, w, h);
  }
cw->updates_exist = 1;
-   e_comp_object_render_update_add(obj);
+   if (!e_object_is_del(E_OBJECT(cw->ec)))
+ e_comp_object_render_update_add(obj);
 }
 
 E_API Eina_Bool

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 29/72: remove DISPLAY usage from E_IPC_SOCKET value

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit f9d997980095c1eb3456379635ba81739fc2ee23
Author: Mike Blumenkrantz 
Date:   Mon Feb 29 08:47:37 2016 -0500

remove DISPLAY usage from E_IPC_SOCKET value

pid should be enough here

CID 1039791
---
 src/bin/e_ipc.c | 15 +++
 1 file changed, 3 insertions(+), 12 deletions(-)

diff --git a/src/bin/e_ipc.c b/src/bin/e_ipc.c
index aca762c..17f645a 100644
--- a/src/bin/e_ipc.c
+++ b/src/bin/e_ipc.c
@@ -17,7 +17,7 @@ EINTERN int
 e_ipc_init(void)
 {
char buf[4096], buf2[128], buf3[4096];
-   char *tmp, *user, *disp, *disp2, *base;
+   char *tmp, *user, *base;
int pid, trynum = 0, id1 = 0;
struct stat st;
 
@@ -71,15 +71,6 @@ e_ipc_init(void)
   }
  }
 
-   disp = getenv("DISPLAY");
-   if (!disp) disp = ":0";
-   else
- {
-/* $DISPLAY may be a path (e.g. Xquartz), keep the basename. */
-disp2 = strrchr(disp, '/');
-if (disp2) disp = disp2 + 1;
- }
-
e_util_env_set("E_IPC_SOCKET", "");
 
pid = (int)getpid();
@@ -96,8 +87,8 @@ e_ipc_init(void)
  (S_IRWXU | S_IFDIR)))
   {
 #ifdef USE_IPC
- snprintf(buf3, sizeof(buf3), "%s/%s-%i",
-  buf, disp, pid);
+ snprintf(buf3, sizeof(buf3), "%s/%i",
+  buf, pid);
  _e_ipc_server = ecore_ipc_server_add
 (ECORE_IPC_LOCAL_SYSTEM, buf3, 0, NULL);
  if (_e_ipc_server)

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 66/72: Don't use e_pixmap_image_data_argb_convert for wayland images

2016-03-09 Thread Derek Foreman
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 6f7ed23bc9506d938d5b9bfe75666a3b736628db
Author: Derek Foreman 
Date:   Thu Feb 18 11:05:58 2016 -0600

Don't use e_pixmap_image_data_argb_convert for wayland images

All we really need for wayland is to set alpha properly, so we can
save the conversion/copy when doing XRGB.
---
 src/bin/e_comp_object.c | 13 +
 1 file changed, 13 insertions(+)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 500f70a..f7c8590 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -3697,6 +3697,19 @@ e_comp_object_render(Evas_Object *obj)
evas_object_image_pixels_dirty_set(cw->obj, EINA_FALSE);
 
RENDER_DEBUG("RENDER SIZE: %dx%d", pw, ph);
+
+   if (e_comp->comp_type == E_PIXMAP_TYPE_WL)
+ {
+Eina_Bool alpha = e_pixmap_image_is_argb(cw->ec->pixmap);
+
+it = NULL;
+pix = e_pixmap_image_data_get(cw->ec->pixmap);
+evas_object_image_data_set(cw->obj, cw->blanked ? NULL : pix);
+evas_object_image_alpha_set(cw->obj, alpha);
+ret = EINA_TRUE;
+goto end;
+ }
+
it = eina_tiler_iterator_new(cw->pending_updates);
if (e_pixmap_image_is_argb(cw->ec->pixmap))
  {

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 51/72: reverse ordering for x11 client mouse in NotifyVirtual and NotifyInferior details

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 5580a040abfec6f5bdd21464cc982cbd13591c67
Author: Mike Blumenkrantz 
Date:   Mon Mar 7 14:43:02 2016 -0500

reverse ordering for x11 client mouse in NotifyVirtual and NotifyInferior 
details

apparently I did this backwards.

ref 7b7dbbc24955f64f3d84289cc5eccd4f6bda1527
---
 src/bin/e_comp_x.c | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c
index d5ec68c..70d7971 100644
--- a/src/bin/e_comp_x.c
+++ b/src/bin/e_comp_x.c
@@ -2248,13 +2248,13 @@ _e_comp_x_mouse_in(void *data EINA_UNUSED, int type 
EINA_UNUSED, Ecore_X_Event_M
  {
 if (ev->detail == ECORE_X_EVENT_DETAIL_INFERIOR)
   {
- if (ev->win != e_client_util_win_get(ec)) return 
ECORE_CALLBACK_RENEW;
- if (ev->event_win != e_client_util_pwin_get(ec)) return 
ECORE_CALLBACK_RENEW;
+ if (ev->win != e_client_util_pwin_get(ec)) return 
ECORE_CALLBACK_RENEW;
+ if (ev->event_win != e_client_util_win_get(ec)) return 
ECORE_CALLBACK_RENEW;
   }
 if (ev->detail == ECORE_X_EVENT_DETAIL_VIRTUAL)
   {
- if (ev->win != e_client_util_pwin_get(ec)) return 
ECORE_CALLBACK_RENEW;
- if (ev->event_win != e_client_util_win_get(ec)) return 
ECORE_CALLBACK_RENEW;
+ if (ev->win != e_client_util_win_get(ec)) return 
ECORE_CALLBACK_RENEW;
+ if (ev->event_win != e_client_util_pwin_get(ec)) return 
ECORE_CALLBACK_RENEW;
   }
 if (!evas_object_visible_get(ec->frame)) return ECORE_CALLBACK_RENEW;
  }

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 50/72: reject x11 client mouse-in events on comp object based on frame geometry

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit a346c622b638b80e78dd5321d2668acd4095b4e2
Author: Mike Blumenkrantz 
Date:   Mon Mar 7 14:40:27 2016 -0500

reject x11 client mouse-in events on comp object based on frame geometry

mousing over a window for an x11 client should always yield x11 mouse events
in cases where mouse eventing is required; any events occurring on the comp
object in other cases inside the xwindow region are able to be ignored
---
 src/bin/e_comp_object.c | 8 +++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index ff356ba..43d4ed7 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -350,11 +350,17 @@ _e_comp_object_cb_signal_bind(void *data, Evas_Object 
*obj EINA_UNUSED, const ch
 
 /* handle evas mouse-in events on client object */
 static void
-_e_comp_object_cb_mouse_in(void *data, Evas *e EINA_UNUSED, Evas_Object *obj 
EINA_UNUSED, void *event_info)
+_e_comp_object_cb_mouse_in(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, 
void *event_info)
 {
Evas_Event_Mouse_In *ev = event_info;
E_Comp_Object *cw = data;
 
+   if (e_pixmap_is_x(cw->ec->pixmap))
+ {
+if (!e_comp_object_frame_allowed(obj)) return;
+if (E_INSIDE(ev->output.x, ev->output.y, cw->ec->client.x, 
cw->ec->client.y,
+cw->ec->client.w, cw->ec->client.h)) return;
+ }
e_client_mouse_in(cw->ec, ev->output.x, ev->output.y);
 }
 

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 58/72: Track whether objects are on the post_updates list or not

2016-03-09 Thread Derek Foreman
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit d38cc38b9d9f5feb292d2d8d0d0a660dd5739432
Author: Derek Foreman 
Date:   Fri Feb 19 11:50:16 2016 -0600

Track whether objects are on the post_updates list or not

Will use this to prevent accidentally adding objects to the list twice
---
 src/bin/e_client.h  | 1 +
 src/bin/e_comp_canvas.c | 1 +
 src/bin/e_comp_object.c | 2 ++
 3 files changed, 4 insertions(+)

diff --git a/src/bin/e_client.h b/src/bin/e_client.h
index 14427b9..a6b0cac 100644
--- a/src/bin/e_client.h
+++ b/src/bin/e_client.h
@@ -698,6 +698,7 @@ struct E_Client
Eina_Bool maximize_override : 1; // client is doing crazy stuff and should 
"just do it" when moving/resizing
Eina_Bool keyboard_resizing : 1;
 
+   Eina_Bool on_post_updates : 1; // client is on the post update list
 #ifdef HAVE_WAYLAND
uuid_t uuid;
 #endif
diff --git a/src/bin/e_comp_canvas.c b/src/bin/e_comp_canvas.c
index a126d05..ac30c05 100644
--- a/src/bin/e_comp_canvas.c
+++ b/src/bin/e_comp_canvas.c
@@ -53,6 +53,7 @@ _e_comp_canvas_render_post(void *data EINA_UNUSED, Evas *e 
EINA_UNUSED, void *ev
EINA_LIST_FREE(e_comp->post_updates, ec)
  {
 //INF("POST %p", ec);
+ec->on_post_updates = EINA_FALSE;
 if (!e_object_is_del(E_OBJECT(ec)))
   e_pixmap_image_clear(ec->pixmap, 1);
 UNREFD(ec, 111);
diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 887a0f8..1163674 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -900,6 +900,7 @@ _e_comp_object_pixels_get(void *data, Evas_Object *obj 
EINA_UNUSED)
if (cw->native)
  {
 E_FREE_FUNC(cw->pending_updates, eina_tiler_free);
+cw->ec->on_post_updates = EINA_TRUE;
 e_comp->post_updates = eina_list_append(e_comp->post_updates, cw->ec);
 REFD(cw->ec, 111);
 e_object_ref(E_OBJECT(cw->ec));
@@ -3787,6 +3788,7 @@ end:
E_FREE_FUNC(cw->pending_updates, eina_tiler_free);
if (ret)
  {
+cw->ec->on_post_updates = EINA_TRUE;
 e_comp->post_updates = eina_list_append(e_comp->post_updates, cw->ec);
 REFD(cw->ec, 111);
 e_object_ref(E_OBJECT(cw->ec));

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 62/72: Rework wayland buffer handling

2016-03-09 Thread Derek Foreman
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 7aef5e74fde0a3d53a0f10f30fb38f363a593ece
Author: Derek Foreman 
Date:   Tue Feb 16 13:28:10 2016 -0600

Rework wayland buffer handling

We need to keep wayland buffers around even if they'll never be written
to again.  This is part of Buffer_Reference's task in weston, but we
already have our pixmap abstraction which can serve mostly the same
purpose.

Remove the "buffer reference" stuff from e_pixmap and replace it with a
kept buffer for the last commit.

Add shared memory pool references to keep pools from going away on us.
---
 src/bin/e_comp_wl.c |   6 +-
 src/bin/e_comp_wl.h |   3 +
 src/bin/e_pixmap.c  | 155 +---
 3 files changed, 130 insertions(+), 34 deletions(-)

diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c
index 60c0a81..381c7a9 100644
--- a/src/bin/e_comp_wl.c
+++ b/src/bin/e_comp_wl.c
@@ -1699,7 +1699,6 @@ _e_comp_wl_subsurface_destroy(struct wl_resource 
*resource)
  }
 
_e_comp_wl_surface_state_finish(>cached);
-   e_comp_wl_buffer_reference(>cached_buffer_ref, NULL);
 
/* the client is getting deleted, which means the pixmap will be getting
 * freed. We need to unset the surface user data */
@@ -1746,8 +1745,9 @@ _e_comp_wl_subsurface_commit_to_cache(E_Client *ec)
 sdata->cached.new_attach = EINA_TRUE;
 _e_comp_wl_surface_state_buffer_set(>cached,
 cdata->pending.buffer);
-e_comp_wl_buffer_reference(>cached_buffer_ref,
-   cdata->pending.buffer);
+e_pixmap_resource_set(ec->pixmap, cdata->pending.buffer);
+e_pixmap_dirty(ec->pixmap);
+e_pixmap_refresh(ec->pixmap);
  }
 
sdata->cached.sx = cdata->pending.sx;
diff --git a/src/bin/e_comp_wl.h b/src/bin/e_comp_wl.h
index 48c085f..3a18920 100644
--- a/src/bin/e_comp_wl.h
+++ b/src/bin/e_comp_wl.h
@@ -56,7 +56,10 @@ struct _E_Comp_Wl_Buffer
struct wl_resource *resource;
struct wl_signal destroy_signal;
struct wl_listener destroy_listener;
+   struct wl_listener deferred_destroy_listener;
struct wl_shm_buffer *shm_buffer;
+   struct wl_shm_pool *pool;
+   E_Pixmap *discarding_pixmap;
int32_t w, h;
uint32_t busy;
 };
diff --git a/src/bin/e_pixmap.c b/src/bin/e_pixmap.c
index 80d4232..af7f852 100644
--- a/src/bin/e_pixmap.c
+++ b/src/bin/e_pixmap.c
@@ -42,11 +42,13 @@ struct _E_Pixmap
 
 #ifdef HAVE_WAYLAND
E_Comp_Wl_Buffer *buffer;
-   E_Comp_Wl_Buffer_Ref buffer_ref;
+   E_Comp_Wl_Buffer *held_buffer;
struct wl_listener buffer_destroy_listener;
+   struct wl_listener held_buffer_destroy_listener;
void *data;
Eina_Rectangle opaque;
uuid_t uuid;
+   Eina_List *free_buffers;
 #endif
 
Eina_Bool usable : 1;
@@ -55,15 +57,36 @@ struct _E_Pixmap
 };
 
 #ifdef HAVE_WAYLAND
+
+static void
+_e_pixmap_cb_deferred_buffer_destroy(struct wl_listener *listener, void *data 
EINA_UNUSED)
+{
+   E_Comp_Wl_Buffer *buffer;
+
+   buffer = container_of(listener, E_Comp_Wl_Buffer, 
deferred_destroy_listener);
+   buffer->discarding_pixmap->free_buffers = 
eina_list_remove(buffer->discarding_pixmap->free_buffers, buffer);
+   buffer->discarding_pixmap = NULL;
+}
+
 static void 
 _e_pixmap_cb_buffer_destroy(struct wl_listener *listener, void *data 
EINA_UNUSED)
 {
E_Pixmap *cp;
 
cp = container_of(listener, E_Pixmap, buffer_destroy_listener);
-   cp->data = NULL;
+   cp->buffer = NULL;
cp->buffer_destroy_listener.notify = NULL;
 }
+
+static void
+_e_pixmap_cb_held_buffer_destroy(struct wl_listener *listener, void *data 
EINA_UNUSED)
+{
+   E_Pixmap *cp;
+
+   cp = container_of(listener, E_Pixmap, held_buffer_destroy_listener);
+   cp->held_buffer = NULL;
+   cp->held_buffer_destroy_listener.notify = NULL;
+}
 #endif
 
 static void
@@ -102,6 +125,67 @@ _e_pixmap_image_clear_x(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_U
 }
 #endif
 
+#ifdef HAVE_WAYLAND
+static void
+_e_pixmap_wayland_buffer_release(E_Pixmap *cp, E_Comp_Wl_Buffer *buffer)
+{
+   if (!buffer) return;
+
+   if (e_comp->rendering)
+ {
+if (buffer->discarding_pixmap) return;
+
+buffer->discarding_pixmap = cp;
+buffer->deferred_destroy_listener.notify = 
_e_pixmap_cb_deferred_buffer_destroy;
+wl_signal_add(>destroy_signal, 
>deferred_destroy_listener);
+cp->free_buffers = eina_list_append(cp->free_buffers, buffer);
+return;
+ }
+
+   buffer->busy--;
+   if (buffer->busy) return;
+
+   wl_resource_queue_event(buffer->resource, WL_BUFFER_RELEASE);
+   wl_shm_pool_unref(buffer->pool);
+   buffer->pool = NULL;
+}
+
+static void
+_e_pixmap_wl_buffers_free(E_Pixmap *cp)
+{
+   E_Comp_Wl_Buffer *b;
+
+   if (e_comp->rendering) return;
+
+   

[EGIT] [core/enlightenment] enlightenment-0.20 46/72: add prototype function for missing wl_seat interface

2016-03-09 Thread Chris Michael
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit b7f1fa0b538bb2205aab858e19d77e64a0784fb3
Author: Chris Michael 
Date:   Tue Mar 1 10:45:21 2016 -0500

add prototype function for missing wl_seat interface

As we require wayland 1.10 now, the wl_seat_interface implementation
was missing a function pointer for the 'release' request. This patch
just implements a function placeholder until we can implement it.

Signed-off-by: Chris Michael 
---
 src/bin/e_comp_wl_input.c | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/src/bin/e_comp_wl_input.c b/src/bin/e_comp_wl_input.c
index 44ec56f..47c0f7d 100644
--- a/src/bin/e_comp_wl_input.c
+++ b/src/bin/e_comp_wl_input.c
@@ -236,11 +236,18 @@ _e_comp_wl_input_cb_touch_get(struct wl_client *client 
EINA_UNUSED, struct wl_re
   _e_comp_wl_input_cb_touch_unbind);
 }
 
+static void
+_e_comp_wl_input_cb_release(struct wl_client *client EINA_UNUSED, struct 
wl_resource *resource EINA_UNUSED)
+{
+   /* TODO: implement */
+}
+
 static const struct wl_seat_interface _e_seat_interface =
 {
_e_comp_wl_input_cb_pointer_get,
_e_comp_wl_input_cb_keyboard_get,
_e_comp_wl_input_cb_touch_get,
+   _e_comp_wl_input_cb_release,
 };
 
 static void

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 42/72: simplify ipc socket creation

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 2e819fef1762570fa3b33ffe84731c4fb1e0b49a
Author: Mike Blumenkrantz 
Date:   Mon Feb 29 10:35:26 2016 -0500

simplify ipc socket creation

in trying to be extra secure here, a security hole is created due to time
between mkdir and stat calls

CID 1039781
---
 src/bin/e_ipc.c | 9 +
 1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/src/bin/e_ipc.c b/src/bin/e_ipc.c
index 1ffb336..6058a3c 100644
--- a/src/bin/e_ipc.c
+++ b/src/bin/e_ipc.c
@@ -77,13 +77,7 @@ e_ipc_init(void)
  {
 snprintf(buf, sizeof(buf), "%s/e-%s@%x",
  base, user, id1);
-if (mkdir(buf, S_IRWXU) < 0)
-  goto retry;
-if (stat(buf, ) < 0)
-  goto retry;
-if ((st.st_uid == getuid()) &&
-((st.st_mode & (S_IFDIR | S_IRWXU | S_IRWXG | S_IRWXO)) ==
- (S_IRWXU | S_IFDIR)))
+if (!mkdir(buf, S_IRWXU))
   {
 #ifdef USE_IPC
  snprintf(buf3, sizeof(buf3), "%s/%i",
@@ -97,7 +91,6 @@ e_ipc_init(void)
   break;
}
   }
-retry:
 id1 = rand();
  }
 #ifdef USE_IPC

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 55/72: e xkbswitch: don't free layouts that are just pointed to in instances

2016-03-09 Thread Carsten Haitzler
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit bc5d9ecb03008bb98e93bd4f72197fe6411592c1
Author: Carsten Haitzler (Rasterman) 
Date:   Tue Mar 8 13:45:59 2016 +0900

e xkbswitch: don't free layouts that are just pointed to in instances

we free the instance layout even though tthis is never duplicated but
jhust set to point to the current_layout. don't free it as this causes
a double-free. this fixes a crash here.

@fix
---
 src/modules/xkbswitch/e_mod_main.c | 10 ++
 1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/src/modules/xkbswitch/e_mod_main.c 
b/src/modules/xkbswitch/e_mod_main.c
index 9df61a4..bef0181 100644
--- a/src/modules/xkbswitch/e_mod_main.c
+++ b/src/modules/xkbswitch/e_mod_main.c
@@ -141,10 +141,7 @@ _xkb_update_icon(int cur_group)
 EINA_LIST_FOREACH(instances, l, inst)
   {
  if (!e_config_xkb_layout_eq(e_config->xkb.current_layout, 
inst->layout))
-   {
-  e_config_xkb_layout_free(inst->layout);
-  inst->layout = e_config->xkb.current_layout;
-   }
+   inst->layout = e_config->xkb.current_layout;
  E_FREE_FUNC(inst->o_xkbflag, evas_object_del);
  e_theme_edje_object_set(inst->o_xkbswitch,
  "base/theme/modules/xkbswitch",
@@ -158,10 +155,7 @@ _xkb_update_icon(int cur_group)
 EINA_LIST_FOREACH(instances, l, inst)
   {
  if (!e_config_xkb_layout_eq(e_config->xkb.current_layout, 
inst->layout))
-   {
-  e_config_xkb_layout_free(inst->layout);
-  inst->layout = e_config->xkb.current_layout;
-   }
+   inst->layout = e_config->xkb.current_layout;
  if (!inst->o_xkbflag)
inst->o_xkbflag = e_icon_add(inst->gcc->gadcon->evas);
  e_theme_edje_object_set(inst->o_xkbswitch,

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 37/72: remove unused value in config profile saving

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 169727db4d57500bf92a9ddccd41759684bbf8ce
Author: Mike Blumenkrantz 
Date:   Mon Feb 29 10:09:58 2016 -0500

remove unused value in config profile saving

CID 1261287
---
 src/bin/e_config.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/e_config.c b/src/bin/e_config.c
index 011d6ea..039df33 100644
--- a/src/bin/e_config.c
+++ b/src/bin/e_config.c
@@ -1859,7 +1859,7 @@ e_config_profile_save(void)
 {
e_user_dir_snprintf(bsrc, sizeof(bsrc), 
"config/profile.cfg");
e_user_dir_snprintf(bdst, sizeof(bdst), 
"config/profile.1.cfg");
-   ret = ecore_file_mv(bsrc, bdst);
+   ecore_file_mv(bsrc, bdst);
 //   if (!ret)
 //  _e_config_mv_error(bsrc, bdst);
 }

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 39/72: use uint instead of int for eina_list_count() return in cpufreq (trivial)

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 42ff50a5840cff68c582641cb5a19a271cd3d17c
Author: Mike Blumenkrantz 
Date:   Mon Feb 29 10:13:21 2016 -0500

use uint instead of int for eina_list_count() return in cpufreq (trivial)

CID 1267212
---
 src/modules/cpufreq/e_mod_main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/modules/cpufreq/e_mod_main.c b/src/modules/cpufreq/e_mod_main.c
index 5c42a09..f6d0f1a 100644
--- a/src/modules/cpufreq/e_mod_main.c
+++ b/src/modules/cpufreq/e_mod_main.c
@@ -1038,7 +1038,7 @@ _cpufreq_face_update_available(Instance *inst)
Edje_Message_String_Set *governor_msg;
Eina_List *l;
int i;
-   int count;
+   unsigned int count;
 
count = eina_list_count(cpufreq_config->status->frequencies);
frequency_msg = malloc(sizeof(Edje_Message_Int_Set) + (count - 1) * 
sizeof(int));

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 49/72: Revert "send mouse out+in on desk flip end"

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit d83621f7e40c58d8266dea7fb4b88e20bfc9ddfe
Author: Mike Blumenkrantz 
Date:   Mon Mar 7 14:39:56 2016 -0500

Revert "send mouse out+in on desk flip end"

This reverts commit 782cf3606e4a327d1ffe0a8a1598faeed5daa994.

should be resolved in a better way with upcoming commits
---
 src/bin/e_desk.c | 5 -
 1 file changed, 5 deletions(-)

diff --git a/src/bin/e_desk.c b/src/bin/e_desk.c
index 835e4c9..77f157a 100644
--- a/src/bin/e_desk.c
+++ b/src/bin/e_desk.c
@@ -654,11 +654,6 @@ e_desk_flip_end(E_Desk *desk)
_e_desk_event_desk_after_show_free, NULL);
 
e_comp_shape_queue();
-   if (e_comp->comp_type == E_PIXMAP_TYPE_X)
- {
-evas_event_feed_mouse_out(e_comp->evas, 0, NULL);
-evas_event_feed_mouse_in(e_comp->evas, 0, NULL);
- }
if (!e_config->focus_last_focused_per_desktop) return;
if ((e_config->focus_policy == E_FOCUS_MOUSE) ||
(e_config->focus_policy == E_FOCUS_SLOPPY))

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 54/72: apply x11 focus/unfocus using jobs

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 5979808c8090406188dc115fba57bd0f2b17a5a8
Author: Mike Blumenkrantz 
Date:   Mon Mar 7 14:47:26 2016 -0500

apply x11 focus/unfocus using jobs

if multiple x11 clients receive focus during the same mainloop iteration,
an almost unbreakable cycle of window focus chaining will occur, resulting 
in
both windows being focused simultaneously--or so it appears--which results 
in
no window being able to receive input. to avoid this, ensure that only one 
x11
client can receive focus in a given loop iteration
---
 src/bin/e_comp_x.c | 36 ++--
 1 file changed, 34 insertions(+), 2 deletions(-)

diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c
index f8e0d6e..5e1e6c0 100644
--- a/src/bin/e_comp_x.c
+++ b/src/bin/e_comp_x.c
@@ -54,6 +54,10 @@ static Eina_Hash *alarm_hash = NULL;
 
 static Evas_Point mouse_in_coords = {-1, -1};
 static Ecore_Job *mouse_in_job;
+static E_Client *focus_job_client;
+static Ecore_Job *focus_job;
+static E_Client *unfocus_job_client;
+static Ecore_Job *unfocus_job;
 static Ecore_Idle_Enterer *_e_comp_x_post_client_idler = NULL;
 static Ecore_Idle_Enterer *_x_idle_flush = NULL;
 static Eina_List *post_clients = NULL;
@@ -4471,16 +4475,32 @@ _e_comp_x_hook_client_new(void *d EINA_UNUSED, E_Client 
*ec)
 }
 
 static void
-_e_comp_x_hook_client_focus_unset(void *d EINA_UNUSED, E_Client *ec)
+_e_comp_x_hook_client_focus_unset_job(void *d EINA_UNUSED)
 {
+   E_Client *ec = unfocus_job_client;
+   unfocus_job = NULL;
+   if (!unfocus_job_client) return;
+   unfocus_job_client = NULL;
E_COMP_X_PIXMAP_CHECK;
_e_comp_x_focus_setup(ec);
_e_comp_x_focus_check();
 }
 
 static void
-_e_comp_x_hook_client_focus_set(void *d EINA_UNUSED, E_Client *ec)
+_e_comp_x_hook_client_focus_unset(void *d EINA_UNUSED, E_Client *ec)
+{
+   unfocus_job_client = ec;
+   if (!unfocus_job)
+ unfocus_job = ecore_job_add(_e_comp_x_hook_client_focus_unset_job, NULL);
+}
+
+static void
+_e_comp_x_hook_client_focus_set_job(void *d EINA_UNUSED)
 {
+   E_Client *ec = focus_job_client;
+   focus_job = NULL;
+   if (!focus_job_client) return;
+   focus_job_client = NULL;
focus_time = ecore_x_current_time_get();
focus_canvas_time = 0;
if (!e_client_has_xwindow(ec))
@@ -4506,6 +4526,14 @@ _e_comp_x_hook_client_focus_set(void *d EINA_UNUSED, 
E_Client *ec)
 }
 
 static void
+_e_comp_x_hook_client_focus_set(void *d EINA_UNUSED, E_Client *ec)
+{
+   focus_job_client = ec;
+   if (!focus_job)
+ focus_job = ecore_job_add(_e_comp_x_hook_client_focus_set_job, NULL);
+}
+
+static void
 _e_comp_x_hook_client_redirect(void *d EINA_UNUSED, E_Client *ec)
 {
E_COMP_X_PIXMAP_CHECK;
@@ -4563,6 +4591,8 @@ _e_comp_x_hook_client_del(void *d EINA_UNUSED, E_Client 
*ec)
cd = _e_comp_x_client_data_get(ec);
 
if (mouse_client == ec) mouse_client = NULL;
+   if (focus_job_client == ec) focus_job_client = NULL;
+   if (unfocus_job_client == ec) unfocus_job_client = NULL;
if ((!stopping) && cd && (!cd->deleted))
  ecore_x_window_prop_card32_set(win, E_ATOM_MANAGED, , 1);
if ((!ec->already_unparented) && cd && cd->reparented)
@@ -4956,6 +4986,8 @@ _e_comp_x_del(E_Comp *c)
eina_list_free(c->x_comp_data->retry_clients);
ecore_timer_del(c->x_comp_data->retry_timer);
E_FREE_FUNC(mouse_in_job, ecore_job_del);
+   E_FREE_FUNC(focus_job, ecore_job_del);
+   E_FREE_FUNC(unfocus_job, ecore_job_del);
free(c->x_comp_data);
 }
 

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 48/72: don't directly use image data when creating a comp object mirror

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 440d9ceb81577e085c59d27f6bdcea83a104c773
Author: Mike Blumenkrantz 
Date:   Fri Mar 4 13:06:41 2016 -0500

don't directly use image data when creating a comp object mirror

in the case where pixmap image data does not yet exist, the returned
pointer will be garbage data from the internal buffer
---
 src/bin/e_comp_object.c | 10 +++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 28f14b1..ff356ba 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -3824,7 +3824,10 @@ e_comp_object_util_mirror_add(Evas_Object *obj)
evas_object_image_size_set(o, w, h);
 
if (cw->ec->shaped)
- pix = evas_object_image_data_get(cw->obj, 0);
+ {
+if (e_pixmap_image_data_get(cw->ec->pixmap))
+  pix = evas_object_image_data_get(cw->obj, 0);
+ }
else
  {
 if (cw->native)
@@ -3840,7 +3843,7 @@ e_comp_object_util_mirror_add(Evas_Object *obj)
}
   }
 else
-  pix = evas_object_image_data_get(cw->obj, EINA_FALSE);
+  pix = e_pixmap_image_data_get(cw->ec->pixmap);
  }
if (pix)
  {
@@ -3857,7 +3860,8 @@ e_comp_object_util_mirror_add(Evas_Object *obj)
   //evas_object_image_border_set(o, bx, by, bxx, byy);
   //evas_object_image_border_center_fill_set(o, EVAS_BORDER_FILL_SOLID);
   evas_object_image_data_set(o, pix);
-  evas_object_image_data_set(cw->obj, pix);
+  if (cw->ec->shaped)
+evas_object_image_data_set(cw->obj, pix);
   if (dirty)
 evas_object_image_data_update_add(o, 0, 0, w, h);
}

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 33/72: use strbuf instead of strcat in edgebinding string synthesis

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 55fc7f496152f9a23da99f8dc1ef33c328665e81
Author: Mike Blumenkrantz 
Date:   Mon Feb 29 09:52:54 2016 -0500

use strbuf instead of strcat in edgebinding string synthesis

CID 1039800
---
 .../conf_bindings/e_int_config_edgebindings.c  | 59 +++---
 1 file changed, 29 insertions(+), 30 deletions(-)

diff --git a/src/modules/conf_bindings/e_int_config_edgebindings.c 
b/src/modules/conf_bindings/e_int_config_edgebindings.c
index 3796b5b..1a08c9a 100644
--- a/src/modules/conf_bindings/e_int_config_edgebindings.c
+++ b/src/modules/conf_bindings/e_int_config_edgebindings.c
@@ -1361,65 +1361,64 @@ _find_edge_binding_action(const char *action, const 
char *params, int *g, int *a
 static char *
 _edge_binding_text_get(E_Zone_Edge edge, float delay, int mod, int drag_only)
 {
-   char b[256] = "";
-
-   if (mod & E_BINDING_MODIFIER_CTRL)
- strcat(b, _("CTRL"));
+   Eina_Strbuf *b;
+   char *ret;
 
+   b = eina_strbuf_new();
if (mod & E_BINDING_MODIFIER_ALT)
  {
-if (b[0]) strcat(b, " + ");
-strcat(b, _("ALT"));
+if (eina_strbuf_length_get(b)) eina_strbuf_append(b, " + ");
+eina_strbuf_append(b, _("ALT"));
  }
 
if (mod & E_BINDING_MODIFIER_SHIFT)
  {
-if (b[0]) strcat(b, " + ");
-strcat(b, _("SHIFT"));
+if (eina_strbuf_length_get(b)) eina_strbuf_append(b, " + ");
+eina_strbuf_append(b, _("SHIFT"));
  }
 
if (mod & E_BINDING_MODIFIER_WIN)
  {
-if (b[0]) strcat(b, " + ");
-strcat(b, _("WIN"));
+if (eina_strbuf_length_get(b)) eina_strbuf_append(b, " + ");
+eina_strbuf_append(b, _("WIN"));
  }
 
if (edge)
  {
-if (b[0]) strcat(b, " + ");
+if (eina_strbuf_length_get(b)) eina_strbuf_append(b, " + ");
 
 switch (edge)
   {
case E_ZONE_EDGE_LEFT:
- strcat(b, _("Left Edge"));
+ eina_strbuf_append(b, _("Left Edge"));
  break;
 
case E_ZONE_EDGE_TOP:
- strcat(b, _("Top Edge"));
+ eina_strbuf_append(b, _("Top Edge"));
  break;
 
case E_ZONE_EDGE_RIGHT:
- strcat(b, _("Right Edge"));
+ eina_strbuf_append(b, _("Right Edge"));
  break;
 
case E_ZONE_EDGE_BOTTOM:
- strcat(b, _("Bottom Edge"));
+ eina_strbuf_append(b, _("Bottom Edge"));
  break;
 
case E_ZONE_EDGE_TOP_LEFT:
- strcat(b, _("Top Left Edge"));
+ eina_strbuf_append(b, _("Top Left Edge"));
  break;
 
case E_ZONE_EDGE_TOP_RIGHT:
- strcat(b, _("Top Right Edge"));
+ eina_strbuf_append(b, _("Top Right Edge"));
  break;
 
case E_ZONE_EDGE_BOTTOM_RIGHT:
- strcat(b, _("Bottom Right Edge"));
+ eina_strbuf_append(b, _("Bottom Right Edge"));
  break;
 
case E_ZONE_EDGE_BOTTOM_LEFT:
- strcat(b, _("Bottom Left Edge"));
+ eina_strbuf_append(b, _("Bottom Left Edge"));
  break;
 
default:
@@ -1429,25 +1428,25 @@ _edge_binding_text_get(E_Zone_Edge edge, float delay, 
int mod, int drag_only)
 
if (delay)
  {
-char buf[20];
-
-if (b[0]) strcat(b, " ");
+if (eina_strbuf_length_get(b)) eina_strbuf_append(b, " ");
 if (delay == -1.0)
-  snprintf(buf, 20, _("(left clickable)"));
+  eina_strbuf_append(b, _("(left clickable)"));
 else if (delay < -1.0)
-  snprintf(buf, 20, _("(clickable)"));
+  eina_strbuf_append(b, _("(clickable)"));
 else
-  snprintf(buf, 20, "%.2fs", delay);
-strcat(b, buf);
+  eina_strbuf_append_printf(b, "%.2fs", delay);
  }
 
if (drag_only)
  {
-if (b[0]) strcat(b, " ");
-strcat(b, _("(drag only)"));
+if (eina_strbuf_length_get(b)) eina_strbuf_append(b, " ");
+eina_strbuf_append(b, _("(drag only)"));
  }
 
-   if (!b[0]) return strdup(TEXT_NONE_ACTION_EDGE);
-   return strdup(b);
+   ret = eina_strbuf_string_steal(b);
+   eina_strbuf_free(b);
+   if (ret[0]) return ret;
+   free(ret);
+   return strdup(TEXT_NONE_ACTION_EDGE);
 }
 

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 52/72: only use x11 mouse out event if client has received mouse in previously

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit ad873f03ab8291adc51cc5650dd584b79f72892a
Author: Mike Blumenkrantz 
Date:   Mon Mar 7 14:44:16 2016 -0500

only use x11 mouse out event if client has received mouse in previously
---
 src/bin/e_comp_x.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c
index 70d7971..e0aadce 100644
--- a/src/bin/e_comp_x.c
+++ b/src/bin/e_comp_x.c
@@ -2282,7 +2282,8 @@ _e_comp_x_mouse_out(void *data EINA_UNUSED, int type 
EINA_UNUSED, Ecore_X_Event_
if (!ec) return ECORE_CALLBACK_RENEW;
if (_e_comp_x_client_data_get(ec)->deleted) return ECORE_CALLBACK_RENEW;
if (mouse_client == ec) mouse_client = NULL;
-   e_client_mouse_out(ec, e_comp_canvas_x_root_adjust(ev->root.x), 
e_comp_canvas_x_root_adjust(ev->root.y));
+   if (ec->mouse.in)
+ e_client_mouse_out(ec, e_comp_canvas_x_root_adjust(ev->root.x), 
e_comp_canvas_x_root_adjust(ev->root.y));
return ECORE_CALLBACK_RENEW;
 }
 

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 67/72: Remove argb_convert for wayland buffers

2016-03-09 Thread Derek Foreman
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 0959e59413233e427e587e2a69dee571740630bf
Author: Derek Foreman 
Date:   Thu Feb 18 11:06:40 2016 -0600

Remove argb_convert for wayland buffers

Wayland buffers are currently either ARGB or XRGB - we don't need to
convert either of these, we just need to set alpha appropriately - which
we now do.
---
 src/bin/e_pixmap.c | 31 +--
 1 file changed, 1 insertion(+), 30 deletions(-)

diff --git a/src/bin/e_pixmap.c b/src/bin/e_pixmap.c
index af7f852..555d4e7 100644
--- a/src/bin/e_pixmap.c
+++ b/src/bin/e_pixmap.c
@@ -901,36 +901,7 @@ e_pixmap_image_data_argb_convert(E_Pixmap *cp, void *pix, 
void *ipix, Eina_Recta
 break;
   case E_PIXMAP_TYPE_WL:
 if (cp->image_argb) return EINA_TRUE;
-#ifdef HAVE_WAYLAND
-if (cp->buffer)
-  {
- struct wl_shm_buffer *shm_buffer;
- uint32_t format;
- int i, x, y;
- unsigned int *src, *dst;
-
- shm_buffer = cp->buffer->shm_buffer;
- if (!shm_buffer) return EINA_FALSE;
-
- format = wl_shm_buffer_get_format(shm_buffer);
- if (format == WL_SHM_FORMAT_XRGB)
-   {
-  dst = (unsigned int *)pix;
-  src = (unsigned int *)ipix;
-
-  for (y = 0; y < r->h; y++)
-{
-   i = (r->y + y) * stride / 4 + r->x;
-   for (x = 0; x < r->w; x++)
- dst[i+x] = 0xff00 | src[i+x];
-}
-  pix = (void *)dst;
-   }
-
- return EINA_TRUE;
-  }
-#endif
-break;
+return EINA_FALSE;
   default:
 break;
  }

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 34/72: use dblequal for double comparisons in edgebindings config

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit bd6b99bd302343a8ef393c59921527c9621f5042
Author: Mike Blumenkrantz 
Date:   Mon Feb 29 09:53:15 2016 -0500

use dblequal for double comparisons in edgebindings config
---
 src/modules/conf_bindings/e_int_config_edgebindings.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/modules/conf_bindings/e_int_config_edgebindings.c 
b/src/modules/conf_bindings/e_int_config_edgebindings.c
index 1a08c9a..f80715c 100644
--- a/src/modules/conf_bindings/e_int_config_edgebindings.c
+++ b/src/modules/conf_bindings/e_int_config_edgebindings.c
@@ -1110,7 +1110,7 @@ _edge_grab_wnd_selection_apply(E_Config_Dialog_Data 
*cfdata)
   if ((bi->modifiers == cfdata->locals.modifiers) &&
   (bi->edge == cfdata->locals.edge) &&
   (bi->drag_only == cfdata->locals.drag_only) &&
-  ((bi->delay * 1000) == (cfdata->locals.delay * 1000)))
+  (dblequal(bi->delay * 1000, cfdata->locals.delay * 1000)))
 {
found = 1;
break;
@@ -1128,7 +1128,7 @@ _edge_grab_wnd_selection_apply(E_Config_Dialog_Data 
*cfdata)
   if ((bi->modifiers == cfdata->locals.modifiers) &&
   (bi->edge == cfdata->locals.edge) &&
   (bi->drag_only == cfdata->locals.drag_only) &&
-  ((bi->delay * 1000) == (cfdata->locals.delay * 1000)))
+  (dblequal(bi->delay * 1000, cfdata->locals.delay * 
1000)))
 {
found = 1;
break;
@@ -1429,7 +1429,7 @@ _edge_binding_text_get(E_Zone_Edge edge, float delay, int 
mod, int drag_only)
if (delay)
  {
 if (eina_strbuf_length_get(b)) eina_strbuf_append(b, " ");
-if (delay == -1.0)
+if (dblequal(delay, -1.0))
   eina_strbuf_append(b, _("(left clickable)"));
 else if (delay < -1.0)
   eina_strbuf_append(b, _("(clickable)"));

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 61/72: Track whether a render is in progress or not

2016-03-09 Thread Derek Foreman
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 71433691da9894fa7d014d13e3379357c9e67249
Author: Derek Foreman 
Date:   Fri Mar 4 15:46:14 2016 -0600

Track whether a render is in progress or not

We'll need this to protect certain wayland operations.
---
 src/bin/e_comp.h| 2 ++
 src/bin/e_comp_canvas.c | 5 +
 2 files changed, 7 insertions(+)

diff --git a/src/bin/e_comp.h b/src/bin/e_comp.h
index d343036..1f4f2d5 100644
--- a/src/bin/e_comp.h
+++ b/src/bin/e_comp.h
@@ -155,6 +155,8 @@ struct _E_Comp
Eina_Bool   nocomp_want : 1;
Eina_Bool   saver : 1;
Eina_Bool   shape_queue_blocked : 1;
+
+   Eina_Bool   rendering : 1; // we've received a pre-render callback but 
no post-render yet.
 };
 
 
diff --git a/src/bin/e_comp_canvas.c b/src/bin/e_comp_canvas.c
index ac30c05..3045282 100644
--- a/src/bin/e_comp_canvas.c
+++ b/src/bin/e_comp_canvas.c
@@ -50,6 +50,9 @@ _e_comp_canvas_render_post(void *data EINA_UNUSED, Evas *e 
EINA_UNUSED, void *ev
 //EINA_LIST_FOREACH(ev->updated_area, l, r)
   //INF("POST RENDER: %d,%d %dx%d", r->x, r->y, r->w, r->h);
  //}
+
+   e_comp->rendering = EINA_FALSE;
+
EINA_LIST_FREE(e_comp->post_updates, ec)
  {
 //INF("POST %p", ec);
@@ -210,6 +213,8 @@ _e_comp_canvas_prerender(void *data EINA_UNUSED, Evas *e 
EINA_UNUSED, void *even
E_Comp_Cb cb;
Eina_List *l;
 
+   e_comp->rendering = EINA_TRUE;
+
EINA_LIST_FOREACH(e_comp->pre_render_cbs, l, cb)
  cb();
 }

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 57/72: Render deleted objects as long as they still have a pixmap

2016-03-09 Thread Derek Foreman
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 4ba7648c414cf31992cb76ac96d1862d8b4e2537
Author: Derek Foreman 
Date:   Fri Mar 4 15:08:07 2016 -0600

Render deleted objects as long as they still have a pixmap

In wayland we can be presented with a new frame before being deleted.  If
we've never displayed that frame we should (since we released all pointers
to the old frame when we got the new one)
---
 src/bin/e_comp_object.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 43d4ed7..887a0f8 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -863,7 +863,7 @@ _e_comp_object_pixels_get(void *data, Evas_Object *obj 
EINA_UNUSED)
int pw, ph;
int bx, by, bxx, byy;
 
-   if (e_object_is_del(E_OBJECT(ec))) return;
+   if (!ec->pixmap) return;
if (!e_pixmap_size_get(ec->pixmap, , )) return;
//INF("PIXEL GET %p: %dx%d || %dx%d", ec, ec->w, ec->h, pw, ph);
e_pixmap_image_opaque_get(cw->ec->pixmap, , , , );

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 38/72: remove useless client_add handler in e_ipc

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 791953e1b7ad5a7a37efe291f3e1265bd6fa3926
Author: Mike Blumenkrantz 
Date:   Mon Feb 29 10:11:38 2016 -0500

remove useless client_add handler in e_ipc

CID 1267210
---
 src/bin/e_ipc.c | 14 --
 1 file changed, 14 deletions(-)

diff --git a/src/bin/e_ipc.c b/src/bin/e_ipc.c
index 17f645a..744b971 100644
--- a/src/bin/e_ipc.c
+++ b/src/bin/e_ipc.c
@@ -4,7 +4,6 @@ EINTERN char *e_ipc_socket = NULL;
 
 #ifdef USE_IPC
 /* local subsystem functions */
-static Eina_Bool _e_ipc_cb_client_add(void *data EINA_UNUSED, int type 
EINA_UNUSED, void *event);
 static Eina_Bool _e_ipc_cb_client_del(void *data EINA_UNUSED, int type 
EINA_UNUSED, void *event);
 static Eina_Bool _e_ipc_cb_client_data(void *data EINA_UNUSED, int type 
EINA_UNUSED, void *event);
 
@@ -110,8 +109,6 @@ retry:
 
INF("E_IPC_SOCKET=%s", buf3);
e_util_env_set("E_IPC_SOCKET", buf3);
-   ecore_event_handler_add(ECORE_IPC_EVENT_CLIENT_ADD,
-   _e_ipc_cb_client_add, NULL);
ecore_event_handler_add(ECORE_IPC_EVENT_CLIENT_DEL,
_e_ipc_cb_client_del, NULL);
ecore_event_handler_add(ECORE_IPC_EVENT_CLIENT_DATA,
@@ -140,17 +137,6 @@ e_ipc_shutdown(void)
 #ifdef USE_IPC
 /* local subsystem globals */
 static Eina_Bool
-_e_ipc_cb_client_add(void *data EINA_UNUSED, int type EINA_UNUSED, void *event)
-{
-   Ecore_Ipc_Event_Client_Add *e;
-
-   e = event;
-   if (ecore_ipc_client_server_get(e->client) != _e_ipc_server)
- return ECORE_CALLBACK_PASS_ON;
-   return ECORE_CALLBACK_PASS_ON;
-}
-
-static Eina_Bool
 _e_ipc_cb_client_del(void *data EINA_UNUSED, int type EINA_UNUSED, void *event)
 {
Ecore_Ipc_Event_Client_Del *e;

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 63/72: Remove wayland buffer reference

2016-03-09 Thread Derek Foreman
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit ee43c83c7d839516fca02ab6ad6cfafd5ca67927
Author: Derek Foreman 
Date:   Tue Feb 16 13:33:25 2016 -0600

Remove wayland buffer reference

This code is similar to code in weston, but doesn't really work properly
for us in E, since this can blow up buffers behind the async renderer's
back.

The rest of the reference code has been pushed into e_pixmap, so we can
kill this all now.
---
 src/bin/e_comp_wl.c | 35 ---
 src/bin/e_comp_wl.h | 10 --
 2 files changed, 45 deletions(-)

diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c
index 381c7a9..bcf1205 100644
--- a/src/bin/e_comp_wl.c
+++ b/src/bin/e_comp_wl.c
@@ -730,16 +730,6 @@ _e_comp_wl_evas_cb_color_set(void *data, Evas_Object *obj, 
void *event EINA_UNUS
 }
 
 static void
-_e_comp_wl_buffer_reference_cb_destroy(struct wl_listener *listener, void 
*data)
-{
-   E_Comp_Wl_Buffer_Ref *ref;
-
-   ref = container_of(listener, E_Comp_Wl_Buffer_Ref, destroy_listener);
-   if ((E_Comp_Wl_Buffer *)data != ref->buffer) return;
-   ref->buffer = NULL;
-}
-
-static void
 _e_comp_wl_buffer_cb_destroy(struct wl_listener *listener, void *data 
EINA_UNUSED)
 {
E_Comp_Wl_Buffer *buffer;
@@ -1987,7 +1977,6 @@ _e_comp_wl_subsurface_create(E_Client *ec, E_Client *epc, 
uint32_t id, struct wl
_e_comp_wl_surface_state_init(>cached, ec->w, ec->h);
 
/* set subsurface data properties */
-   sdata->cached_buffer_ref.buffer = NULL;
sdata->resource = res;
sdata->synchronized = EINA_TRUE;
sdata->parent = epc;
@@ -2821,30 +2810,6 @@ e_comp_wl_subsurface_commit(E_Client *ec)
return EINA_TRUE;
 }
 
-EINTERN void
-e_comp_wl_buffer_reference(E_Comp_Wl_Buffer_Ref *ref, E_Comp_Wl_Buffer *buffer)
-{
-   if ((ref->buffer) && (buffer != ref->buffer))
- {
-ref->buffer->busy--;
-if (ref->buffer->busy == 0)
-  {
- if (!wl_resource_get_client(ref->buffer->resource)) return;
- wl_resource_queue_event(ref->buffer->resource, WL_BUFFER_RELEASE);
-  }
-wl_list_remove(>destroy_listener.link);
- }
-
-   if ((buffer) && (buffer != ref->buffer))
- {
-buffer->busy++;
-wl_signal_add(>destroy_signal, >destroy_listener);
- }
-
-   ref->buffer = buffer;
-   ref->destroy_listener.notify = _e_comp_wl_buffer_reference_cb_destroy;
-}
-
 /**
  * Get the buffer for a given resource.
  *
diff --git a/src/bin/e_comp_wl.h b/src/bin/e_comp_wl.h
index 3a18920..f28fd3f 100644
--- a/src/bin/e_comp_wl.h
+++ b/src/bin/e_comp_wl.h
@@ -43,7 +43,6 @@
})
 
 typedef struct _E_Comp_Wl_Buffer E_Comp_Wl_Buffer;
-typedef struct _E_Comp_Wl_Buffer_Ref E_Comp_Wl_Buffer_Ref;
 typedef struct _E_Comp_Wl_Subsurf_Data E_Comp_Wl_Subsurf_Data;
 typedef struct _E_Comp_Wl_Surface_State E_Comp_Wl_Surface_State;
 typedef struct _E_Comp_Wl_Client_Data E_Comp_Wl_Client_Data;
@@ -64,12 +63,6 @@ struct _E_Comp_Wl_Buffer
uint32_t busy;
 };
 
-struct _E_Comp_Wl_Buffer_Ref
-{
-   E_Comp_Wl_Buffer *buffer;
-   struct wl_listener destroy_listener;
-};
-
 struct _E_Comp_Wl_Surface_State
 {
int sx, sy;
@@ -95,7 +88,6 @@ struct _E_Comp_Wl_Subsurf_Data
  } position;
 
E_Comp_Wl_Surface_State cached;
-   E_Comp_Wl_Buffer_Ref cached_buffer_ref;
 
Eina_Bool synchronized;
 };
@@ -283,7 +275,6 @@ struct _E_Comp_Wl_Client_Data
 E_Shell_Data *data;
  } shell;
 
-   E_Comp_Wl_Buffer_Ref buffer_ref;
E_Comp_Wl_Surface_State pending;
 
Eina_List *frames;
@@ -332,7 +323,6 @@ EINTERN struct wl_resource *e_comp_wl_surface_create(struct 
wl_client *client, i
 EINTERN void e_comp_wl_surface_destroy(struct wl_resource *resource);
 EINTERN Eina_Bool e_comp_wl_surface_commit(E_Client *ec);
 EINTERN Eina_Bool e_comp_wl_subsurface_commit(E_Client *ec);
-EINTERN void e_comp_wl_buffer_reference(E_Comp_Wl_Buffer_Ref *ref, 
E_Comp_Wl_Buffer *buffer);
 E_API E_Comp_Wl_Buffer *e_comp_wl_buffer_get(struct wl_resource *resource);
 
 E_API struct wl_signal e_comp_wl_surface_create_signal_get(void);

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 56/72: Add a NULL check in native_surface_init under wayland

2016-03-09 Thread Derek Foreman
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 4e1d7e3854f5eed893bb26bb920bd9acc15d59c7
Author: Derek Foreman 
Date:   Fri Mar 4 16:24:18 2016 -0600

Add a NULL check in native_surface_init under wayland
---
 src/bin/e_pixmap.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/bin/e_pixmap.c b/src/bin/e_pixmap.c
index a7f66d5..80d4232 100644
--- a/src/bin/e_pixmap.c
+++ b/src/bin/e_pixmap.c
@@ -580,6 +580,7 @@ e_pixmap_native_surface_init(E_Pixmap *cp, 
Evas_Native_Surface *ns)
 break;
   case E_PIXMAP_TYPE_WL:
 #ifdef HAVE_WAYLAND
+if (!cp->buffer) return EINA_FALSE;
 ns->type = EVAS_NATIVE_SURFACE_WL;
 ns->version = EVAS_NATIVE_SURFACE_VERSION;
 ns->data.wl.legacy_buffer = cp->buffer->resource;

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 65/72: Stop copying all wayland buffers

2016-03-09 Thread Derek Foreman
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 388ec769c054d95c414e6be96b421dda6bba30f0
Author: Derek Foreman 
Date:   Tue Feb 16 15:48:24 2016 -0600

Stop copying all wayland buffers

The new buffer management shouldn't require this anymore.
---
 src/bin/e_comp_object.c | 11 +--
 1 file changed, 1 insertion(+), 10 deletions(-)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index ece7d2e..500f70a 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -3726,16 +3726,7 @@ e_comp_object_render(Evas_Object *obj)
   }
 else
   ret = EINA_TRUE;
-/* set pixel data */
-if (e_comp->comp_type == E_PIXMAP_TYPE_WL)
-  {
-#warning FIXME BROKEN WAYLAND SHM BUFFER PROTOCOL
- evas_object_image_data_copy_set(cw->obj, cw->blanked ? NULL : 
pix);
- pix = evas_object_image_data_get(cw->obj, 0);
- evas_object_image_data_set(cw->obj, pix);
-  }
-else
-  evas_object_image_data_set(cw->obj, cw->blanked ? NULL : pix);
+evas_object_image_data_set(cw->obj, cw->blanked ? NULL : pix);
 goto end;
  }
 

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 36/72: prevent potential null deref during pager (plain) window drag

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit dddf8c5f1e4e51a3221a809a0df43011ec664918
Author: Mike Blumenkrantz 
Date:   Mon Feb 29 10:07:32 2016 -0500

prevent potential null deref during pager (plain) window drag

CID 1237302
---
 src/modules/pager_plain/e_mod_main.c | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/modules/pager_plain/e_mod_main.c 
b/src/modules/pager_plain/e_mod_main.c
index e774109..d6cb15c 100644
--- a/src/modules/pager_plain/e_mod_main.c
+++ b/src/modules/pager_plain/e_mod_main.c
@@ -1878,10 +1878,12 @@ _pager_window_cb_mouse_move(void *data, Evas *e 
EINA_UNUSED, Evas_Object *obj EI
 (resist * resist)) return;
 
 if ((pw->desk) && (pw->desk->pager))
-  pw->desk->pager->dragging = 1;
+  {
+ pw->desk->pager->dragging = 1;
+ edje_object_signal_emit(pw->desk->o_desk, "e,action,drag,in", 
"e");
+  }
 pw->drag.start = 0;
 e_comp_object_effect_clip(pw->client->frame);
-edje_object_signal_emit(pw->desk->o_desk, "e,action,drag,in", "e");
 pw->desk->pager->active_drop_pd = pw->desk;
  }
 

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 47/72: add prototype functions for missing wl_data_source interface

2016-03-09 Thread Chris Michael
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit c97b52b02c5d75d3c38d5acb05574df6b44dff8a
Author: Chris Michael 
Date:   Tue Mar 1 10:52:50 2016 -0500

add prototype functions for missing wl_data_source interface

As we require wayland 1.10 now, there were missing functions for the
wl_data_source interface. This patch just adds placeholders for those
missing functions until we can implement them

Signed-off-by: Chris Michael 
---
 src/bin/e_comp_wl_data.c | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/src/bin/e_comp_wl_data.c b/src/bin/e_comp_wl_data.c
index 6df9d13..a26f801 100644
--- a/src/bin/e_comp_wl_data.c
+++ b/src/bin/e_comp_wl_data.c
@@ -120,6 +120,12 @@ _e_comp_wl_data_source_cb_destroy(struct wl_client *client 
EINA_UNUSED, struct w
wl_resource_destroy(resource);
 }
 
+static void
+_e_comp_wl_data_source_cb_actions_set(struct wl_client *client EINA_UNUSED, 
struct wl_resource *resource EINA_UNUSED, uint32_t actions EINA_UNUSED)
+{
+   /* TODO: implement */
+}
+
 /* called by wl_resource_destroy */
 static void
 _e_comp_wl_data_source_cb_resource_destroy(struct wl_resource *resource)
@@ -161,6 +167,7 @@ static const struct wl_data_source_interface 
_e_data_source_interface =
 {
_e_comp_wl_data_source_cb_offer,
_e_comp_wl_data_source_cb_destroy,
+   _e_comp_wl_data_source_cb_actions_set,
 };
 
 static void

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 45/72: add prototype functions for missing wl_data_offer interface

2016-03-09 Thread Chris Michael
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit b113fd96fb45ba5083c0da34998e777fb53f7c66
Author: Chris Michael 
Date:   Tue Mar 1 10:27:13 2016 -0500

add prototype functions for missing wl_data_offer interface

As we require wayland 1.10 now, there were missing functions for
wl_data_offer interface. This patch just adds placeholders for those
missing functions until we can implement them

Signed-off-by: Chris Michael 
---
 src/bin/e_comp_wl_data.c | 14 ++
 1 file changed, 14 insertions(+)

diff --git a/src/bin/e_comp_wl_data.c b/src/bin/e_comp_wl_data.c
index 54a6f70..6df9d13 100644
--- a/src/bin/e_comp_wl_data.c
+++ b/src/bin/e_comp_wl_data.c
@@ -48,6 +48,18 @@ _e_comp_wl_data_offer_cb_destroy(struct wl_client *client 
EINA_UNUSED, struct wl
wl_resource_destroy(resource);
 }
 
+static void
+_e_comp_wl_data_offer_cb_finish(struct wl_client *client EINA_UNUSED, struct 
wl_resource *resource EINA_UNUSED)
+{
+   /* TODO: implement */
+}
+
+static void
+_e_comp_wl_data_offer_cb_actions_set(struct wl_client *client EINA_UNUSED, 
struct wl_resource *resource EINA_UNUSED, uint32_t actions EINA_UNUSED, 
uint32_t preferred_action EINA_UNUSED)
+{
+   /* TODO: implement */
+}
+
 /* called by wl_resource_destroy */
 static void
 _e_comp_wl_data_offer_cb_resource_destroy(struct wl_resource *resource)
@@ -82,6 +94,8 @@ static const struct wl_data_offer_interface 
_e_data_offer_interface =
_e_comp_wl_data_offer_cb_accept,
_e_comp_wl_data_offer_cb_receive,
_e_comp_wl_data_offer_cb_destroy,
+   _e_comp_wl_data_offer_cb_finish,
+   _e_comp_wl_data_offer_cb_actions_set,
 };
 
 static void

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 43/72: remove impossible null check in color dialog

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 1c0e13c575e297c5eeece4fd9dd7d717961a6564
Author: Mike Blumenkrantz 
Date:   Mon Feb 29 10:37:45 2016 -0500

remove impossible null check in color dialog

CID 1294267
---
 src/bin/e_color_dialog.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/bin/e_color_dialog.c b/src/bin/e_color_dialog.c
index 86ab5ed..54d3c78 100644
--- a/src/bin/e_color_dialog.c
+++ b/src/bin/e_color_dialog.c
@@ -123,7 +123,7 @@ _e_color_dialog_cb_csel_change(void *data, Evas_Object 
*obj, void *ev EINA_UNUSE
re = evas_object_data_get(obj, "rect");
evas_color_argb_premul(dia->color->a, , , );
evas_object_color_set(re, r, g, b, dia->color->a);
-   if (dia->change_func && dia->color)
+   if (dia->change_func)
  dia->change_func(dia, dia->color, dia->change_data);
 }
 

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 40/72: simplify static grab case statements

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit caf795834ebcd9ddc92ed678b1725d7fe3c177f9
Author: Mike Blumenkrantz 
Date:   Mon Feb 29 10:15:37 2016 -0500

simplify static grab case statements

CID 1267213
---
 src/bin/e_static_grab.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/bin/e_static_grab.c b/src/bin/e_static_grab.c
index 8108a1d..80ebdbf 100644
--- a/src/bin/e_static_grab.c
+++ b/src/bin/e_static_grab.c
@@ -281,11 +281,11 @@ _e_static_grab_x(E_Static_Grab *grab)
  switch (*current)
{
 case 'R':
-  if (_e_static_grab_string(current, line->end, RELEASE_DATE, 
>x.release_date)) break;
+  _e_static_grab_string(current, line->end, RELEASE_DATE, 
>x.release_date);
   break;
 
 case 'B':
-  if (_e_static_grab_string(current, line->end, BUILD_DATE, 
>x.build_date)) break;
+  _e_static_grab_string(current, line->end, BUILD_DATE, 
>x.build_date);
   break;
 
 case '(':

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 70/72: don't have to hook the ecore_evas resize callback here as that should be handled by elm now

2016-03-09 Thread Chris Michael
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 32921f57f3956c9b6f2c697580e0676f87d0be3d
Author: Chris Michael 
Date:   Tue Mar 8 16:09:17 2016 -0500

don't have to hook the ecore_evas resize callback here as that should
be handled by elm now

Signed-off-by: Chris Michael 
---
 src/modules/wl_drm/e_mod_main.c | 8 
 1 file changed, 8 deletions(-)

diff --git a/src/modules/wl_drm/e_mod_main.c b/src/modules/wl_drm/e_mod_main.c
index 7a9f6aa..0a115a1 100644
--- a/src/modules/wl_drm/e_mod_main.c
+++ b/src/modules/wl_drm/e_mod_main.c
@@ -91,12 +91,6 @@ end:
return ECORE_CALLBACK_PASS_ON;
 }
 
-static void
-_e_mod_drm_cb_ee_resize(Ecore_Evas *ee EINA_UNUSED)
-{
-   e_comp_canvas_update();
-}
-
 static Ecore_Drm_Output_Mode *
 _e_mod_drm_mode_screen_find(E_Randr2_Screen *s, Ecore_Drm_Output *output)
 {
@@ -711,8 +705,6 @@ e_modapi_init(E_Module *m)
/* get the current screen geometry */
ecore_evas_screen_geometry_get(e_comp->ee, NULL, NULL, , );
 
-   ecore_evas_callback_resize_set(e_comp->ee, _e_mod_drm_cb_ee_resize);
-
e_comp->screen = 
 
if (!e_comp_wl_init()) return NULL;

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 53/72: apply x11 mouse in event for clients using a job

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 85b24335595f708a331e3877bf0fe6d6130e2ba7
Author: Mike Blumenkrantz 
Date:   Mon Mar 7 14:45:32 2016 -0500

apply x11 mouse in event for clients using a job

due to event bursts, it's possible for multiple x11 clients to receive
mouse in events on during the same main loop iteration. in this scenario,
only the last client has received an actionable mouse in, and applying this
event after the dispatch has completed ensures that multiple clients do not
all receive mouse in+out events during the same loop

this greatly improves mouse-based focus reliability in a number of cases
---
 src/bin/e_comp_x.c | 25 ++---
 1 file changed, 22 insertions(+), 3 deletions(-)

diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c
index e0aadce..f8e0d6e 100644
--- a/src/bin/e_comp_x.c
+++ b/src/bin/e_comp_x.c
@@ -52,6 +52,8 @@ static Eina_Hash *damages_hash = NULL;
 static Eina_Hash *frame_extents = NULL;
 static Eina_Hash *alarm_hash = NULL;
 
+static Evas_Point mouse_in_coords = {-1, -1};
+static Ecore_Job *mouse_in_job;
 static Ecore_Idle_Enterer *_e_comp_x_post_client_idler = NULL;
 static Ecore_Idle_Enterer *_x_idle_flush = NULL;
 static Eina_List *post_clients = NULL;
@@ -2236,6 +2238,14 @@ _e_comp_x_mapping_change(void *data EINA_UNUSED, int 
type EINA_UNUSED, Ecore_X_E
return ECORE_CALLBACK_PASS_ON;
 }
 
+static void
+_e_comp_x_mouse_in_job(void *d EINA_UNUSED)
+{
+   if (mouse_client)
+ e_client_mouse_in(mouse_client, 
e_comp_canvas_x_root_adjust(mouse_in_coords.x), 
e_comp_canvas_x_root_adjust(mouse_in_coords.y));
+   mouse_in_job = NULL;
+}
+
 static Eina_Bool
 _e_comp_x_mouse_in(void *data EINA_UNUSED, int type EINA_UNUSED, 
Ecore_X_Event_Mouse_In *ev)
 {
@@ -2260,7 +2270,10 @@ _e_comp_x_mouse_in(void *data EINA_UNUSED, int type 
EINA_UNUSED, Ecore_X_Event_M
  }
if (_e_comp_x_client_data_get(ec)->deleted) return ECORE_CALLBACK_RENEW;
mouse_client = ec;
-   e_client_mouse_in(ec, e_comp_canvas_x_root_adjust(ev->root.x), 
e_comp_canvas_x_root_adjust(ev->root.y));
+   if (!mouse_in_job)
+ mouse_in_job = ecore_job_add(_e_comp_x_mouse_in_job, NULL);
+   mouse_in_coords.x = ev->root.x;
+   mouse_in_coords.y = ev->root.y;
return ECORE_CALLBACK_RENEW;
 }
 
@@ -2281,7 +2294,11 @@ _e_comp_x_mouse_out(void *data EINA_UNUSED, int type 
EINA_UNUSED, Ecore_X_Event_
ec = _e_comp_x_client_find_by_window(ev->win);
if (!ec) return ECORE_CALLBACK_RENEW;
if (_e_comp_x_client_data_get(ec)->deleted) return ECORE_CALLBACK_RENEW;
-   if (mouse_client == ec) mouse_client = NULL;
+   if (mouse_client == ec)
+ {
+mouse_client = NULL;
+E_FREE_FUNC(mouse_in_job, ecore_job_del);
+ }
if (ec->mouse.in)
  e_client_mouse_out(ec, e_comp_canvas_x_root_adjust(ev->root.x), 
e_comp_canvas_x_root_adjust(ev->root.y));
return ECORE_CALLBACK_RENEW;
@@ -2388,7 +2405,8 @@ _e_comp_x_mouse_move(void *d EINA_UNUSED, int t 
EINA_UNUSED, Ecore_Event_Mouse_M
   if (!evas_object_visible_get(tec->frame)) continue;
   if (E_INSIDE(x, y, tec->x, tec->y, tec->w, tec->h)) return 
ECORE_CALLBACK_RENEW;
}
- e_client_mouse_in(ec, x, y);
+ if (!mouse_in_job)
+   e_client_mouse_in(ec, x, y);
   }
 return ECORE_CALLBACK_RENEW;
  }
@@ -4937,6 +4955,7 @@ _e_comp_x_del(E_Comp *c)
 
eina_list_free(c->x_comp_data->retry_clients);
ecore_timer_del(c->x_comp_data->retry_timer);
+   E_FREE_FUNC(mouse_in_job, ecore_job_del);
free(c->x_comp_data);
 }
 

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 64/72: Re-enable window close animations for wayland

2016-03-09 Thread Derek Foreman
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 20303989de20a837f6a7863f442feb9686f0408b
Author: Derek Foreman 
Date:   Tue Feb 16 13:38:31 2016 -0600

Re-enable window close animations for wayland

These should work properly with the new buffer management code.
---
 src/bin/e_client.h  |  1 -
 src/bin/e_comp_object.c | 14 --
 src/bin/e_comp_wl.c | 12 ++--
 3 files changed, 2 insertions(+), 25 deletions(-)

diff --git a/src/bin/e_client.h b/src/bin/e_client.h
index a6b0cac..13d24fd 100644
--- a/src/bin/e_client.h
+++ b/src/bin/e_client.h
@@ -636,7 +636,6 @@ struct E_Client
unsigned int   internal : 1;
unsigned int   internal_no_remember : 1;
unsigned int   internal_no_reopen : 1;
-   Eina_Bool  dead : 1;
 
Evas_Object   *internal_elm_win;
 
diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index 1163674..ece7d2e 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -2187,20 +2187,6 @@ _e_comp_smart_hide(Evas_Object *obj)
evas_object_hide(cw->clip);
if (cw->input_obj) evas_object_hide(cw->input_obj);
evas_object_hide(cw->effect_obj);
-   if (cw->ec->dead)
- {
-Evas_Object *o;
-
-evas_object_hide(cw->obj);
-EINA_LIST_FREE(cw->obj_mirror, o)
-  {
- evas_object_image_data_set(o, NULL);
- evas_object_freeze_events_set(o, 1);
- evas_object_event_callback_del_full(o, EVAS_CALLBACK_DEL, 
_e_comp_object_cb_mirror_del, cw);
- evas_object_del(o);
-  }
-if (!_e_comp_object_animating_end(cw)) return;
- }
if (stopping) return;
if (!cw->ec->input_only)
  {
diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c
index bcf1205..0e7879c 100644
--- a/src/bin/e_comp_wl.c
+++ b/src/bin/e_comp_wl.c
@@ -1441,14 +1441,6 @@ static const struct wl_surface_interface 
_e_surface_interface =
 #endif
 };
 
-static void
-_e_comp_wl_surface_render_stop(E_Client *ec)
-{
-   /* FIXME: this may be fine after e_pixmap can create textures for wl 
clients? */
-   //if ((!ec->internal) && (!e_comp_gl_get()))
- ec->dead = ec->hidden = 1;
-   evas_object_hide(ec->frame);
-}
 
 static void
 _e_comp_wl_surface_destroy(struct wl_resource *resource)
@@ -1457,7 +1449,7 @@ _e_comp_wl_surface_destroy(struct wl_resource *resource)
 
if (!(ec = wl_resource_get_user_data(resource))) return;
 
-   _e_comp_wl_surface_render_stop(ec);
+   evas_object_hide(ec->frame);
e_object_del(E_OBJECT(ec));
 }
 
@@ -2278,7 +2270,7 @@ _e_comp_wl_client_cb_del(void *data EINA_UNUSED, E_Client 
*ec)
  wl_resource_set_user_data(ec->comp_data->surface, NULL);
 
if (ec->internal_elm_win)
- _e_comp_wl_surface_render_stop(ec);
+ evas_object_hide(ec->frame);
_e_comp_wl_focus_check();
 }
 

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 41/72: remove ipc command allowing arbitrary command execution by the compositor

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 4619114ea77e32282389d5d635455c4656c20cc5
Author: Mike Blumenkrantz 
Date:   Mon Feb 29 10:32:12 2016 -0500

remove ipc command allowing arbitrary command execution by the compositor

http://i2.kym-cdn.com/photos/images/facebook/000/565/399/9c0.jpg

CID 1291836
---
 src/bin/e_ipc.c | 42 --
 src/bin/e_ipc.h |  3 ---
 2 files changed, 45 deletions(-)

diff --git a/src/bin/e_ipc.c b/src/bin/e_ipc.c
index 744b971..1ffb336 100644
--- a/src/bin/e_ipc.c
+++ b/src/bin/e_ipc.c
@@ -165,48 +165,6 @@ _e_ipc_cb_client_data(void *data EINA_UNUSED, int type 
EINA_UNUSED, void *event)
   case E_IPC_DOMAIN_REQUEST:
   case E_IPC_DOMAIN_REPLY:
   case E_IPC_DOMAIN_EVENT:
-switch (e->minor)
-  {
-   case E_IPC_OP_EXEC_ACTION:
-   {
-  E_Ipc_2Str *req = NULL;
-
-  if (e_ipc_codec_2str_dec(e->data, e->size, ))
-{
-   int len, ok = 0;
-   void *d;
-
-   E_Action *act = e_action_find(req->str1);
-
-   if ((act) && (act->func.go))
- {
-act->func.go(E_OBJECT(e_comp), req->str2);
-ok = 1;
- }
-
-   d = e_ipc_codec_int_enc(ok, );
-   if (d)
- {
-ecore_ipc_client_send(e->client,
-  E_IPC_DOMAIN_REPLY,
-  E_IPC_OP_EXEC_ACTION_REPLY,
-  0, 0, 0, d, len);
-free(d);
- }
-
-   if (req)
- {
-E_FREE(req->str1);
-E_FREE(req->str2);
-E_FREE(req);
- }
-}
-   }
-   break;
-
-   default:
- break;
-  }
 break;
 
   case E_IPC_DOMAIN_THUMB:
diff --git a/src/bin/e_ipc.h b/src/bin/e_ipc.h
index e007f8d..19b9602 100644
--- a/src/bin/e_ipc.h
+++ b/src/bin/e_ipc.h
@@ -4,9 +4,6 @@ EINTERN extern char *e_ipc_socket;
 
 #ifdef USE_IPC
 
-#define E_IPC_OP_EXEC_ACTION 386
-#define E_IPC_OP_EXEC_ACTION_REPLY 387
-
 typedef enum _E_Ipc_Domain
 {
E_IPC_DOMAIN_NONE,

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 68/72: block re-unsetting of native surface for comp objects

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 53941a7dc0f97ec490bb84eba48848f13038a906
Author: Mike Blumenkrantz 
Date:   Tue Mar 8 14:53:00 2016 -0500

block re-unsetting of native surface for comp objects

due to recent evas internals changes, this breaks software compositing
---
 src/bin/e_comp_object.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c
index f7c8590..d31c17f 100644
--- a/src/bin/e_comp_object.c
+++ b/src/bin/e_comp_object.c
@@ -3543,6 +3543,7 @@ e_comp_object_native_surface_set(Evas_Object *obj, 
Eina_Bool set)
EINA_SAFETY_ON_NULL_RETURN(cw->ec);
if (cw->ec->input_only) return;
set = !!set;
+   if ((!set) && (!cw->native)) return;
 
if (set)
  {

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 24/72: force changed when adding or removing keyboard layouts in config

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 0de37612bbb011e63a1ff83cb28eaaa9d77fad9a
Author: Mike Blumenkrantz 
Date:   Fri Feb 26 16:45:44 2016 -0500

force changed when adding or removing keyboard layouts in config

fix T3208
---
 src/modules/xkbswitch/e_mod_config.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/modules/xkbswitch/e_mod_config.c 
b/src/modules/xkbswitch/e_mod_config.c
index 4ac2eae..f0f0a4d 100644
--- a/src/modules/xkbswitch/e_mod_config.c
+++ b/src/modules/xkbswitch/e_mod_config.c
@@ -427,6 +427,7 @@ _cb_add(void *data, void *data2 EINA_UNUSED)
E_Config_Dialog_Data *cfdata;
if (!(cfdata = data)) return;
 
+   e_config_dialog_changed_set(cfdata->cfd, 1);
if (cfdata->dlg_add_new) elm_win_raise(cfdata->dlg_add_new->win);
else cfdata->dlg_add_new = _dlg_add_new(cfdata);
 }
@@ -440,6 +441,7 @@ _cb_del(void *data, void *data2 EINA_UNUSED)
if (!(cfdata = data)) return;
if ((n = e_widget_ilist_selected_get(cfdata->used_list)) < 0) return;
 
+   e_config_dialog_changed_set(cfdata->cfd, 1);
cfdata->cfg_layouts = eina_list_remove_list(cfdata->cfg_layouts, 
eina_list_nth_list(cfdata->cfg_layouts, n));
 
/* Update the list */

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 30/72: remove multihead env var setting in e_exec

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 21ab21d5513f95dcba48cf3741b73784a8ba62d9
Author: Mike Blumenkrantz 
Date:   Mon Feb 29 09:22:01 2016 -0500

remove multihead env var setting in e_exec

multihead no longer possible, no point in keeping this

CID 1039793
---
 src/bin/e_exec.c | 50 --
 1 file changed, 50 deletions(-)

diff --git a/src/bin/e_exec.c b/src/bin/e_exec.c
index 6f58491..3078f50 100644
--- a/src/bin/e_exec.c
+++ b/src/bin/e_exec.c
@@ -411,7 +411,6 @@ _e_exec_cb_exec(void *data, Efreet_Desktop *desktop, char 
*exec, int remaining)
E_Exec_Launch *launch;
Eina_List *l, *lnew;
Ecore_Exe *exe = NULL;
-   const char *penv_display;
char buf[4096];
 
launch = data;
@@ -425,53 +424,6 @@ _e_exec_cb_exec(void *data, Efreet_Desktop *desktop, char 
*exec, int remaining)
 if (startup_id < 0) startup_id = 0;
  }
if (++startup_id < 1) startup_id = 1;
-   /* save previous env vars we need to save */
-   penv_display = getenv("DISPLAY");
-   if ((penv_display) && (launch->zone))
- {
-const char *p1, *p2;
-char buf2[32];
-char *buf3 = NULL;
-int head_length;
-int penv_display_length;
-
-penv_display_length = strlen(penv_display);
-/* Check for insane length for DISPLAY env */
-if (penv_display_length + 32 > 4096)
-  {
- free(inst);
- return NULL;
-  }
-
-/* buf2 = '.%i' */
-*buf2 = '.';
-head_length = eina_convert_itoa(0, buf2 + 1) + 2;
-
-/* set env vars */
-p1 = strrchr(penv_display, ':');
-p2 = strrchr(penv_display, '.');
-if ((p1) && (p2) && (p2 > p1)) /* "blah:x.y" */
-  {
- buf3 = alloca((p2 - penv_display) + head_length + 1);
-
- memcpy(buf3, penv_display, p2 - penv_display);
- memcpy(buf3 + (p2 - penv_display), buf2, head_length);
-  }
-else if (p1) /* "blah:x */
-  {
- buf3 = alloca(penv_display_length + head_length);
-
- memcpy(buf3, penv_display, penv_display_length);
- memcpy(buf3 + penv_display_length, buf2, head_length);
-  }
-else
-  {
- buf3 = alloca(penv_display_length + 1);
- memcpy(buf3, penv_display, penv_display_length + 1);
-  }
-
-e_util_env_set("DISPLAY", buf3);
- }
snprintf(buf, sizeof(buf), "E_START|%i", startup_id);
e_util_env_set("DESKTOP_STARTUP_ID", buf);
 
@@ -565,8 +517,6 @@ _e_exec_cb_exec(void *data, Efreet_Desktop *desktop, char 
*exec, int remaining)
   exe = ecore_exe_run(exec, inst);
  }
 
-   if (penv_display)
- e_util_env_set("DISPLAY", penv_display);
if (!exe)
  {
 free(inst);

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 28/72: remove security hole in e_start_main

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit cf0d1eba9c59e0f670987f106ab9e27efa756964
Author: Mike Blumenkrantz 
Date:   Mon Feb 29 08:23:59 2016 -0500

remove security hole in e_start_main

if a file called ~/.e-mtrack existed then during startup the launcher would
read the first line of this file and set LD_PRELOAD to that value

CID 1039785
---
 src/bin/e_start_main.c | 8 
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/bin/e_start_main.c b/src/bin/e_start_main.c
index 90130b8..999693f 100644
--- a/src/bin/e_start_main.c
+++ b/src/bin/e_start_main.c
@@ -613,13 +613,13 @@ main(int argc, char **argv)
  }
putchar('\n');
 
-   /* mtrack memory tracker support */
home = getenv("HOME");
if (home)
  {
-FILE *f;
 const char *tmps;
-
+#if 0
+FILE *f;
+/* mtrack memory tracker support */
 /* if you have ~/.e-mtrack, then the tracker will be enabled
  * using the content of this file as the path to the mtrack.so
  * shared object that is the mtrack preload */
@@ -643,7 +643,7 @@ main(int argc, char **argv)
}
  fclose(f);
   }
-
+#endif
 tmps = getenv("XDG_DATA_HOME");
 if (tmps)
   snprintf(buf, sizeof(buf), "%s/Applications/.bin", tmps);

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 27/72: do not set XCURSOR_PATH variable if re-setting existing value

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 51365e879ed4b8ba804f519cf882c7a318992af8
Author: Mike Blumenkrantz 
Date:   Mon Feb 29 08:12:40 2016 -0500

do not set XCURSOR_PATH variable if re-setting existing value
---
 src/bin/e_xsettings.c | 8 +++-
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/src/bin/e_xsettings.c b/src/bin/e_xsettings.c
index 87bd062..f71f618 100644
--- a/src/bin/e_xsettings.c
+++ b/src/bin/e_xsettings.c
@@ -565,11 +565,9 @@ _e_xsettings_cursor_path_set(void)
path = getenv("XCURSOR_PATH");
if (path)
  {
-if (!strstr(path, buf))
-  {
- snprintf(env, sizeof(env), "%s:%s", buf, path);
- path = env;
-  }
+if (strstr(path, buf)) return;
+snprintf(env, sizeof(env), "%s:%s", buf, path);
+path = env;
  }
else
  {

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 22/72: do not decrement e_comp->new_clients for non-new clients during _e_client_eval

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit f009e7c75230118bf136257f5ea526eebd5ec46e
Author: Mike Blumenkrantz 
Date:   Thu Feb 25 14:16:25 2016 -0500

do not decrement e_comp->new_clients for non-new clients during 
_e_client_eval

this overflows the int!
---
 src/bin/e_client.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/bin/e_client.c b/src/bin/e_client.c
index bd490b4..3daf625 100644
--- a/src/bin/e_client.c
+++ b/src/bin/e_client.c
@@ -2198,8 +2198,9 @@ _e_client_eval(E_Client *ec)
 prop |= E_CLIENT_PROPERTY_ICON;
  }
 
+   if (ec->new_client)
+ e_comp->new_clients--;
ec->new_client = 0;
-   e_comp->new_clients--;
ec->changed = ec->changes.pos || ec->changes.size ||
  ec->changes.stack || ec->changes.prop || ec->changes.border ||
  ec->changes.reset_gravity || ec->changes.shading || 
ec->changes.shaded ||

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 14/72: Remove wayland focus timer in delete callback

2016-03-09 Thread Derek Foreman
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 5143ed69de2036f26eabe1762e2557a1e4fd7d52
Author: Derek Foreman 
Date:   Thu Feb 18 12:40:52 2016 -0600

Remove wayland focus timer in delete callback

If we don't remove it now it could fire later when the structures
it depends on are already freed.
---
 src/bin/e_comp_wl.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c
index e8b307d..328371c 100644
--- a/src/bin/e_comp_wl.c
+++ b/src/bin/e_comp_wl.c
@@ -2241,6 +2241,9 @@ _e_comp_wl_client_cb_del(void *data EINA_UNUSED, E_Client 
*ec)
/* make sure this is a wayland client */
if (e_pixmap_type_get(ec->pixmap) != E_PIXMAP_TYPE_WL) return;
 
+   /* remove focus timer */
+   E_FREE_FUNC(ec->comp_data->on_focus_timer, ecore_timer_del);
+
/* remove sub list */
EINA_LIST_FREE(ec->comp_data->sub.list, subc)
  subc->comp_data->sub.data->parent = NULL;

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 02/72: update mailmap addresses

2016-03-09 Thread Chris Michael
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit aa58760e2903ff7b8b06fc1fd3f6cef6a780e68e
Author: Chris Michael 
Date:   Tue Feb 2 15:02:12 2016 -0500

update mailmap addresses

Signed-off-by: Chris Michael 
---
 .mailmap | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/.mailmap b/.mailmap
index d055df3..0bb03a3 100644
--- a/.mailmap
+++ b/.mailmap
@@ -19,9 +19,8 @@ Tom Hacohen  Tom 
 Gustavo Sverzut Barbieri  Gustavo Sverzut Barbieri 

 Christopher Michael  Christopher Michael 

 Christopher Michael  Christopher Michael 

-Christopher Michael  Christopher Michael 

-Christopher Michael  Christopher Michael 

 Christopher Michael  Christopher Michael 

+Christopher Michael  Christopher Michael 

 Sebastian Dransfeld  Sebastian Dransfeld 

 Sebastian Dransfeld  sebastid 
 Mike Blumenkrantz  Mike Blumenkrantz 


-- 




[EGIT] [core/enlightenment] enlightenment-0.20 19/72: redo wayland pixmap ids to use monotonic decreasing ints with no collisions

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 2e692ace583ce93c3de2027f6d418b0850271c3e
Author: Mike Blumenkrantz 
Date:   Wed Feb 24 12:50:14 2016 -0500

redo wayland pixmap ids to use monotonic decreasing ints with no collisions

using pointers for this turned out to have some corner case collisions, so
now just use something totally unrelated to the surface to ensure uniqueness
---
 src/bin/e_comp_wl.c | 11 +--
 src/bin/e_pixmap.c  | 26 +-
 src/bin/e_pixmap.h  |  2 +-
 3 files changed, 23 insertions(+), 16 deletions(-)

diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c
index 328371c..5e43891 100644
--- a/src/bin/e_comp_wl.c
+++ b/src/bin/e_comp_wl.c
@@ -39,6 +39,8 @@ static void _e_comp_wl_subsurface_parent_commit(E_Client *ec, 
Eina_Bool parent_s
 static Eina_List *handlers = NULL;
 static double _last_event_time = 0.0;
 
+static int64_t surface_id = 0;
+
 /* local functions */
 static void
 _e_comp_wl_configure_send(E_Client *ec, Eina_Bool edges)
@@ -1487,10 +1489,15 @@ _e_comp_wl_compositor_cb_surface_create(struct 
wl_client *client, struct wl_reso
  ec = e_pixmap_find_client(E_PIXMAP_TYPE_WL, (uintptr_t)id);
if (!ec)
  {
-E_Pixmap *ep;
+E_Pixmap *ep = NULL;
 
 /* try to create new pixmap */
-if (!(ep = e_pixmap_new(E_PIXMAP_TYPE_WL, res)))
+do
+  {
+ if (--surface_id >= 0) surface_id = -1;
+ ep = e_pixmap_find(E_PIXMAP_TYPE_WL, surface_id);
+  } while (ep);
+if (!(ep = e_pixmap_new(E_PIXMAP_TYPE_WL, surface_id)))
   {
  ERR("Could not create new pixmap");
  wl_resource_destroy(res);
diff --git a/src/bin/e_pixmap.c b/src/bin/e_pixmap.c
index 7f8bccb..a7f66d5 100644
--- a/src/bin/e_pixmap.c
+++ b/src/bin/e_pixmap.c
@@ -26,7 +26,7 @@ struct _E_Pixmap
E_Client *client;
E_Pixmap_Type type;
 
-   uint64_t win;
+   int64_t win;
Ecore_Window parent;
 
int w, h;
@@ -79,7 +79,7 @@ _e_pixmap_clear(E_Pixmap *cp, Eina_Bool cache)
   {
  ecore_x_pixmap_free(cp->pixmap);
  cp->pixmap = 0;
- ecore_x_e_comp_pixmap_set(cp->parent ?: cp->win, 0);
+ ecore_x_e_comp_pixmap_set(cp->parent ?: (Ecore_X_Window)cp->win, 
0);
  e_pixmap_image_clear(cp, cache);
   }
 #endif
@@ -153,7 +153,7 @@ _e_pixmap_find(E_Pixmap_Type type, va_list *l)
Ecore_X_Window xwin;
 #endif
 #ifdef HAVE_WAYLAND
-   uintptr_t id;
+   intptr_t id;
 #endif
E_Pixmap *cp;

@@ -170,7 +170,7 @@ _e_pixmap_find(E_Pixmap_Type type, va_list *l)
 break;
   case E_PIXMAP_TYPE_WL:
 #ifdef HAVE_WAYLAND
-id = va_arg(*l, uintptr_t);
+id = va_arg(*l, int64_t);
 cp = eina_hash_find(aliases[type], );
 if (!cp) cp = eina_hash_find(pixmaps[type], );
 return cp;
@@ -208,7 +208,7 @@ e_pixmap_new(E_Pixmap_Type type, ...)
Ecore_X_Window xwin;
 #endif
 #ifdef HAVE_WAYLAND
-   uintptr_t id;
+   int64_t id;
 #endif
 
EINA_SAFETY_ON_TRUE_RETURN_VAL((type != E_PIXMAP_TYPE_WL) && (type != 
E_PIXMAP_TYPE_X), NULL);
@@ -236,7 +236,7 @@ e_pixmap_new(E_Pixmap_Type type, ...)
 break;
   case E_PIXMAP_TYPE_WL:
 #ifdef HAVE_WAYLAND
-id = va_arg(l, uintptr_t);
+id = va_arg(l, int64_t);
 if (pixmaps[type])
   {
  cp = eina_hash_find(pixmaps[type], );
@@ -247,7 +247,7 @@ e_pixmap_new(E_Pixmap_Type type, ...)
}
   }
 else
-  pixmaps[type] = eina_hash_pointer_new((Eina_Free_Cb)_e_pixmap_free);
+  pixmaps[type] = eina_hash_int64_new((Eina_Free_Cb)_e_pixmap_free);
 cp = _e_pixmap_new(type);
 cp->win = id;
 eina_hash_add(pixmaps[type], , cp);
@@ -372,7 +372,7 @@ e_pixmap_refresh(E_Pixmap *cp)
int pw, ph;
E_Comp_X_Client_Data *cd = NULL;
 
-   pixmap = ecore_x_composite_name_window_pixmap_get(cp->parent ?: 
cp->win);
+   pixmap = ecore_x_composite_name_window_pixmap_get(cp->parent ?: 
(Ecore_X_Window)cp->win);
if (cp->client)
  {
 cd = (E_Comp_X_Client_Data*)cp->client->comp_data;
@@ -394,7 +394,7 @@ e_pixmap_refresh(E_Pixmap *cp)
  ecore_x_pixmap_free(cp->pixmap);
  cp->pixmap = pixmap;
  cp->w = pw, cp->h = ph;
- ecore_x_e_comp_pixmap_set(cp->parent ?: cp->win, 
cp->pixmap);
+ ecore_x_e_comp_pixmap_set(cp->parent ?: 
(Ecore_X_Window)cp->win, cp->pixmap);
  e_pixmap_image_clear(cp, 0);
   }
 else
@@ -519,7 +519,7 @@ e_pixmap_find_client(E_Pixmap_Type type, ...)
return (!cp) ? NULL : cp->client;
 }
 
-E_API uint64_t
+E_API int64_t
 

[EGIT] [core/enlightenment] enlightenment-0.20 13/72: Bump wayland version requirement

2016-03-09 Thread Derek Foreman
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 2904c7a6116c3bb19eb0577ccea275ca390c0ac3
Author: Derek Foreman 
Date:   Thu Feb 18 10:14:38 2016 -0600

Bump wayland version requirement

We need 1.10 for the shm pool referencing api
---
 configure.ac | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 3cc5d48..5360d49 100644
--- a/configure.ac
+++ b/configure.ac
@@ -742,7 +742,7 @@ AC_MSG_CHECKING([whether wayland EGL support is enabled])
 AC_MSG_RESULT([${e_cv_want_wayland_egl}])
 
 if test "x${e_cv_want_wayland_only}" != "xno" ;then
-  PKG_CHECK_MODULES([WAYLAND], [ecore-wl2 wayland-server >= 1.8.0 
wayland-client >= 1.8.0 xkbcommon uuid],
+  PKG_CHECK_MODULES([WAYLAND], [ecore-wl2 wayland-server >= 1.10.0 
wayland-client >= 1.10.0 xkbcommon uuid],
 [
   have_wayland=yes
   AC_DEFINE_UNQUOTED([HAVE_WAYLAND],[1],[enable wayland support])

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 09/72: Fix xdg-shell destructors

2016-03-09 Thread Derek Foreman
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit e8c332071261f43533553c9cec07aebf404cc8e3
Author: Derek Foreman 
Date:   Wed Feb 17 19:12:52 2016 -0600

Fix xdg-shell destructors

_e_shell_surface_destroy() is already the implementation's destructor, so
it'll be called when the surface is destroyed anyway.  What we have to do
here is just call wl_resource_destroy(resource) - which will call that
function for us.

It'll also do us the favor of actually destroying the resource and
removing it from the client's resource list so we won't get a SECOND call
to _e_shell_surface_destroy() on client exit.
---
 src/modules/wl_desktop_shell/e_mod_main.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/modules/wl_desktop_shell/e_mod_main.c 
b/src/modules/wl_desktop_shell/e_mod_main.c
index a6245d8..748ba84 100644
--- a/src/modules/wl_desktop_shell/e_mod_main.c
+++ b/src/modules/wl_desktop_shell/e_mod_main.c
@@ -660,7 +660,7 @@ _e_xdg_shell_surface_configure_send(struct wl_resource 
*resource, uint32_t edges
 static void
 _e_xdg_shell_surface_cb_destroy(struct wl_client *client EINA_UNUSED, struct 
wl_resource *resource)
 {
-   _e_shell_surface_destroy(resource);
+   wl_resource_destroy(resource);
 }
 
 static void
@@ -1173,7 +1173,7 @@ _e_xdg_shell_cb_surface_get(struct wl_client *client, 
struct wl_resource *resour
 static void
 _e_xdg_shell_popup_cb_destroy(struct wl_client *client EINA_UNUSED, struct 
wl_resource *resource)
 {
-   _e_shell_surface_destroy(resource);
+   wl_resource_destroy(resource);
 }
 
 static const struct xdg_popup_interface _e_xdg_popup_interface =

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 08/72: Remove wayland frame callbacks from subsurface cache on destruction

2016-03-09 Thread Derek Foreman
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit f8be94f19eb6b675172e747cafff995dc67a18c5
Author: Derek Foreman 
Date:   Wed Feb 17 13:38:33 2016 -0600

Remove wayland frame callbacks from subsurface cache on destruction

There are 3 places a frame callback could be hiding.  frames list,
pending.frames list, or subsurface cached.frames list.  We weren't
clearing it from the subsurface cache on destruction.
---
 src/bin/e_comp_wl.c | 5 +
 1 file changed, 5 insertions(+)

diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c
index 11c8472..802d25d 100644
--- a/src/bin/e_comp_wl.c
+++ b/src/bin/e_comp_wl.c
@@ -1305,6 +1305,11 @@ _e_comp_wl_frame_cb_destroy(struct wl_resource *resource)
 
ec->comp_data->pending.frames =
  eina_list_remove(ec->comp_data->pending.frames, resource);
+
+   if (!ec->comp_data->sub.data) return;
+
+   ec->comp_data->sub.data->cached.frames =
+ eina_list_remove(ec->comp_data->sub.data->cached.frames, resource);
 }
 
 static void

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 06/72: Ensure wayland clients haven't been deleted when processing callbacks

2016-03-09 Thread Derek Foreman
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 209cf8f9d775bf272722aa419d617a5f06db3497
Author: Derek Foreman 
Date:   Tue Feb 16 16:41:03 2016 -0500

Ensure wayland clients haven't been deleted when processing callbacks

Summary:
It's apparently possible to trigger at least some of these by interacting
with a client as it's closing, so add a bunch of checks.

Reviewers: zmike

Subscribers: cedric

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

diff --git a/src/bin/e_comp_wl.c b/src/bin/e_comp_wl.c
index cd4a0c5..11c8472 100644
--- a/src/bin/e_comp_wl.c
+++ b/src/bin/e_comp_wl.c
@@ -108,7 +108,7 @@ _e_comp_wl_evas_cb_show(void *data, Evas *evas EINA_UNUSED, 
Evas_Object *obj EIN
Eina_List *l;
 
if (!(ec = data)) return;
-   if (e_object_is_del(data)) return;
+   if (e_object_is_del(E_OBJECT(ec))) return;
 
if (!ec->override) e_hints_window_visible_set(ec);
 
@@ -182,6 +182,7 @@ _e_comp_wl_evas_cb_mouse_out(void *data, Evas *evas 
EINA_UNUSED, Evas_Object *ob
uint32_t serial;
 
if (!(ec = data)) return;
+   if (e_object_is_del(E_OBJECT(ec))) return;
if (ec->cur_mouse_action) return;
/* FIXME? this is a hack to just reset the cursor whenever we mouse out. 
not sure if accurate */
{
@@ -315,6 +316,7 @@ _e_comp_wl_evas_cb_multi_down(void *data, Evas *evas 
EINA_UNUSED, Evas_Object *o
Evas_Event_Multi_Down *ev = event;
wl_fixed_t x, y;
 
+   if (e_object_is_del(E_OBJECT(ec))) return;
if (!ec->comp_data->surface) return;
 
wc = wl_resource_get_client(ec->comp_data->surface);
@@ -342,6 +344,7 @@ _e_comp_wl_evas_cb_multi_up(void *data, Evas *evas 
EINA_UNUSED, Evas_Object *obj
E_Client *ec = data;
Evas_Event_Multi_Up *ev = event;
 
+   if (e_object_is_del(E_OBJECT(ec))) return;
if (!ec->comp_data->surface) return;
 
wc = wl_resource_get_client(ec->comp_data->surface);
@@ -365,6 +368,7 @@ _e_comp_wl_evas_cb_multi_move(void *data, Evas *evas 
EINA_UNUSED, Evas_Object *o
Evas_Event_Multi_Move *ev = event;
wl_fixed_t x, y;
 
+   if (e_object_is_del(E_OBJECT(ec))) return;
if (!ec->comp_data->surface) return;
 
wc = wl_resource_get_client(ec->comp_data->surface);
@@ -504,8 +508,7 @@ _e_comp_wl_evas_cb_focus_out(void *data, Evas *evas 
EINA_UNUSED, Evas_Object *ob
double t;
 
if (!(ec = data)) return;
-
-   if (!ec->comp_data) return;
+   if (e_object_is_del(E_OBJECT(ec))) return;
 
E_FREE_FUNC(ec->comp_data->on_focus_timer, ecore_timer_del);
 
@@ -537,6 +540,7 @@ _e_comp_wl_evas_cb_restack(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EIN
E_Client *sec, *ec = data;
Eina_List *l, *ll;
 
+   if (e_object_is_del(E_OBJECT(ec))) return;
if (!ec->comp_data->sub.list) return;
EINA_LIST_FOREACH(ec->comp_data->sub.list, l, sec)
  evas_object_layer_set(sec->frame, evas_object_layer_get(ec->frame));
@@ -557,6 +561,7 @@ _e_comp_wl_evas_cb_move(void *data, Evas *e EINA_UNUSED, 
Evas_Object *obj EINA_U
E_Client *sec, *ec = data;
Eina_List *l;
 
+   if (e_object_is_del(E_OBJECT(ec))) return;
EINA_LIST_FOREACH(ec->comp_data->sub.list, l, sec)
  {
 if (!sec->comp_data->sub.data->position.set)
@@ -571,6 +576,7 @@ _e_comp_wl_evas_cb_resize(void *data, Evas_Object *obj 
EINA_UNUSED, void *event
E_Client *ec;
 
if (!(ec = data)) return;
+   if (e_object_is_del(E_OBJECT(ec))) return;
 
if ((ec->shading) || (ec->shaded)) return;
if (!ec->comp_data->shell.configure_send) return;
@@ -689,6 +695,7 @@ _e_comp_wl_evas_cb_ping(void *data, Evas_Object *obj 
EINA_UNUSED, void *event EI
E_Client *ec;
 
if (!(ec = data)) return;
+   if (e_object_is_del(E_OBJECT(ec))) return;
if (!(ec->comp_data->shell.ping)) return;
if (!(ec->comp_data->shell.surface)) return;
 

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 12/72: Move pixmap free to client free from client destroy

2016-03-09 Thread Derek Foreman
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 1a6dac4677e550b639a1d986770b5d144dcd3034
Author: Derek Foreman 
Date:   Thu Feb 11 17:07:16 2016 -0600

Move pixmap free to client free from client destroy

Under wayland we need the pixmaps to exist until after the close
animations finish, even if clients can perform new rendering.

@fix
---
 src/bin/e_client.c | 7 ---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/bin/e_client.c b/src/bin/e_client.c
index 7235374..2d2d7fb 100644
--- a/src/bin/e_client.c
+++ b/src/bin/e_client.c
@@ -462,6 +462,10 @@ _e_client_revert_focus(E_Client *ec)
 static void
 _e_client_free(E_Client *ec)
 {
+   if (e_pixmap_free(ec->pixmap))
+ e_pixmap_client_set(ec->pixmap, NULL);
+   ec->pixmap = NULL;
+
e_comp_object_redirected_set(ec->frame, 0);
e_comp_object_render_update_del(ec->frame);
 
@@ -663,9 +667,6 @@ _e_client_del(E_Client *ec)
eina_hash_del_by_key(clients_hash[e_pixmap_type_get(ec->pixmap)], 
>pixmap);
e_comp->clients = eina_list_remove(e_comp->clients, ec);
e_comp_object_render_update_del(ec->frame);
-   if (e_pixmap_free(ec->pixmap))
- e_pixmap_client_set(ec->pixmap, NULL);
-   ec->pixmap = NULL;
 }
 
 ///

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 03/72: clamp minimum shelf size to 20px in shelf config

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 98b124850e3b6f813d8c44d3cdd18c5caaabb65e
Author: Mike Blumenkrantz 
Date:   Thu Feb 4 12:57:12 2016 -0500

clamp minimum shelf size to 20px in shelf config

the majority of gadgets do not render correctly/anything under this size,
so allowing it to be set is not going to be helpful to anyone
---
 src/bin/e_int_shelf_config.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/bin/e_int_shelf_config.c b/src/bin/e_int_shelf_config.c
index 1771369..a6317df 100644
--- a/src/bin/e_int_shelf_config.c
+++ b/src/bin/e_int_shelf_config.c
@@ -92,7 +92,7 @@ _fill_data(E_Config_Dialog_Data *cfdata)
cfdata->fit_along = cfdata->escfg->fit_along;
 
/* size */
-   cfdata->size = cfdata->escfg->size;
+   cfdata->size = MAX(cfdata->escfg->size, 20);
 
/* style */
if (cfdata->escfg->style)
@@ -207,7 +207,7 @@ _basic_create(E_Config_Dialog *cfd EINA_UNUSED, Evas *evas, 
E_Config_Dialog_Data
 
/* size */
ol = e_widget_list_add(evas, 0, 0);
-   ow = e_widget_slider_add(evas, 1, 0, _("%1.0f pixels"), 4, 256, 4, 0,
+   ow = e_widget_slider_add(evas, 1, 0, _("%1.0f pixels"), 20, 256, 4, 0,
 NULL, &(cfdata->size), 100);
e_widget_list_object_append(ol, ow, 1, 1, 0.5);
ow = e_widget_check_add(evas, _("Shrink to Content Width"),

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 16/72: pre-remove pixmap from x11 clients during del hook

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 1a71696c3a6b344d75461f31ed46b50335fd158e
Author: Mike Blumenkrantz 
Date:   Fri Feb 19 17:56:26 2016 -0500

pre-remove pixmap from x11 clients during del hook

this breaks the compositor!

ref 0ca200513e4d46542192762ffdc2481a32e8db63
---
 src/bin/e_client.c | 11 +++
 src/bin/e_comp_x.c |  7 +++
 2 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/src/bin/e_client.c b/src/bin/e_client.c
index 2d2d7fb..bd490b4 100644
--- a/src/bin/e_client.c
+++ b/src/bin/e_client.c
@@ -462,9 +462,12 @@ _e_client_revert_focus(E_Client *ec)
 static void
 _e_client_free(E_Client *ec)
 {
-   if (e_pixmap_free(ec->pixmap))
- e_pixmap_client_set(ec->pixmap, NULL);
-   ec->pixmap = NULL;
+   if (ec->pixmap)
+ {
+if (e_pixmap_free(ec->pixmap))
+  e_pixmap_client_set(ec->pixmap, NULL);
+ec->pixmap = NULL;
+ }
 
e_comp_object_redirected_set(ec->frame, 0);
e_comp_object_render_update_del(ec->frame);
@@ -639,6 +642,7 @@ _e_client_del(E_Client *ec)
evas_object_focus_set(ec->frame, 0);
 
E_FREE_FUNC(ec->ping_poller, ecore_poller_del);
+   eina_hash_del_by_key(clients_hash[e_pixmap_type_get(ec->pixmap)], 
>pixmap);
/* must be called before parent/child clear */
_e_client_hook_call(E_CLIENT_HOOK_DEL, ec);
E_FREE(ec->comp_data);
@@ -664,7 +668,6 @@ _e_client_del(E_Client *ec)
EINA_LIST_FREE(ec->group, child)
  child->leader = NULL;
 
-   eina_hash_del_by_key(clients_hash[e_pixmap_type_get(ec->pixmap)], 
>pixmap);
e_comp->clients = eina_list_remove(e_comp->clients, ec);
e_comp_object_render_update_del(ec->frame);
 }
diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c
index 10d8efc..d5ec68c 100644
--- a/src/bin/e_comp_x.c
+++ b/src/bin/e_comp_x.c
@@ -4621,7 +4621,14 @@ _e_comp_x_hook_client_del(void *d EINA_UNUSED, E_Client 
*ec)
  e_pixmap_free(e_comp_x_client_pixmap_get(ec));
   }
  }
+   else
 #endif
+ {
+if (e_pixmap_free(ec->pixmap))
+  e_pixmap_client_set(ec->pixmap, NULL);
+ec->pixmap = NULL;
+ }
+
if (post_clients)
  post_clients = eina_list_remove(post_clients, ec);
 

-- 




[EGIT] [core/enlightenment] enlightenment-0.20 15/72: reshuffle x11 comp init to cleanup on failure cases

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch enlightenment-0.20.

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

commit 048eed94021f3989fda19a0a3b4ac4040793ef03
Author: Mike Blumenkrantz 
Date:   Fri Feb 19 17:05:17 2016 -0500

reshuffle x11 comp init to cleanup on failure cases

in the event of a wayland start, x11 comp init will fail, meaning that
cleanup must occur in order to avoid erroneous triggering of x11 handlers

 #TooSoon
---
 src/bin/e_comp_x.c | 74 --
 1 file changed, 39 insertions(+), 35 deletions(-)

diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c
index d9de9d2..10d8efc 100644
--- a/src/bin/e_comp_x.c
+++ b/src/bin/e_comp_x.c
@@ -5331,6 +5331,7 @@ _e_comp_x_screens_setup(void)
 E_API Eina_Bool
 e_comp_x_init(void)
 {
+   Eina_List *h = NULL;
if (!ecore_x_init(NULL))
  {
 e_error_message_show(_("Enlightenment cannot initialize Ecore_X!\n"));
@@ -5358,12 +5359,40 @@ e_comp_x_init(void)
  "or Ecore was built without XDamage support."));
 return EINA_FALSE;
  }
+   if (!e_atoms_init()) return 0;
 
clients_win_hash = eina_hash_int32_new(NULL);
damages_hash = eina_hash_int32_new(NULL);
alarm_hash = eina_hash_int32_new(NULL);
frame_extents = eina_hash_string_superfast_new(free);
 
+   h = eina_list_append(h, e_client_hook_add(E_CLIENT_HOOK_DESK_SET, 
_e_comp_x_hook_client_desk_set, NULL));
+   h = eina_list_append(h, e_client_hook_add(E_CLIENT_HOOK_RESIZE_BEGIN, 
_e_comp_x_hook_client_resize_begin, NULL));
+   h = eina_list_append(h, e_client_hook_add(E_CLIENT_HOOK_RESIZE_END, 
_e_comp_x_hook_client_resize_end, NULL));
+   h = eina_list_append(h, e_client_hook_add(E_CLIENT_HOOK_MOVE_BEGIN, 
_e_comp_x_hook_client_move_begin, NULL));
+   h = eina_list_append(h, e_client_hook_add(E_CLIENT_HOOK_MOVE_END, 
_e_comp_x_hook_client_move_end, NULL));
+   h = eina_list_append(h, e_client_hook_add(E_CLIENT_HOOK_DEL, 
_e_comp_x_hook_client_del, NULL));
+   h = eina_list_append(h, e_client_hook_add(E_CLIENT_HOOK_NEW_CLIENT, 
_e_comp_x_hook_client_new, NULL));
+   h = eina_list_append(h, e_client_hook_add(E_CLIENT_HOOK_EVAL_FETCH, 
_e_comp_x_hook_client_fetch, NULL));
+   h = eina_list_append(h, 
e_client_hook_add(E_CLIENT_HOOK_EVAL_PRE_FRAME_ASSIGN, 
_e_comp_x_hook_client_pre_frame_assign, NULL));
+   h = eina_list_append(h, e_client_hook_add(E_CLIENT_HOOK_UNREDIRECT, 
_e_comp_x_hook_client_unredirect, NULL));
+   h = eina_list_append(h, e_client_hook_add(E_CLIENT_HOOK_REDIRECT, 
_e_comp_x_hook_client_redirect, NULL));
+   h = eina_list_append(h, 
e_client_hook_add(E_CLIENT_HOOK_EVAL_POST_NEW_CLIENT, 
_e_comp_x_hook_client_post_new_client, NULL));
+   h = eina_list_append(h, e_client_hook_add(E_CLIENT_HOOK_FOCUS_SET, 
_e_comp_x_hook_client_focus_set, NULL));
+   h = eina_list_append(h, e_client_hook_add(E_CLIENT_HOOK_FOCUS_UNSET, 
_e_comp_x_hook_client_focus_unset, NULL));
+   h = eina_list_append(h, e_client_hook_add(E_CLIENT_HOOK_EVAL_END, 
_e_comp_x_hook_client_eval_end, NULL));
+
+   if (!_e_comp_x_screens_setup())
+ {
+e_atoms_shutdown();
+E_FREE_LIST(h, e_client_hook_del);
+E_FREE_FUNC(clients_win_hash, eina_hash_free);
+E_FREE_FUNC(damages_hash, eina_hash_free);
+E_FREE_FUNC(alarm_hash, eina_hash_free);
+E_FREE_FUNC(frame_extents, eina_hash_free);
+return 0;
+ }
+
E_LIST_HANDLER_APPEND(handlers, E_EVENT_COMP_OBJECT_ADD, 
_e_comp_x_object_add, NULL);
 
E_LIST_HANDLER_APPEND(handlers, ECORE_X_EVENT_WINDOW_DESTROY, 
_e_comp_x_destroy, NULL);
@@ -5425,42 +5454,8 @@ e_comp_x_init(void)
if (!backlight_atom)
  backlight_atom = ecore_x_atom_get("BACKLIGHT");
 
-   if (e_comp->comp_type != E_PIXMAP_TYPE_WL)
- {
-ecore_x_screensaver_event_listen_set(1);
-E_LIST_HANDLER_APPEND(handlers, ECORE_X_EVENT_SCREENSAVER_NOTIFY, 
_e_comp_x_screensaver_notify_cb, NULL);
-ecore_x_screensaver_custom_blanking_enable();
-
-e_screensaver_attrs_set(ecore_x_screensaver_timeout_get(),
-ecore_x_screensaver_blank_get(),
-ecore_x_screensaver_expose_get());
- }
ecore_x_passive_grab_replay_func_set(_e_comp_x_grab_replay, NULL);
 
-   e_client_hook_add(E_CLIENT_HOOK_DESK_SET, _e_comp_x_hook_client_desk_set, 
NULL);
-   e_client_hook_add(E_CLIENT_HOOK_RESIZE_BEGIN, 
_e_comp_x_hook_client_resize_begin, NULL);
-   e_client_hook_add(E_CLIENT_HOOK_RESIZE_END, 
_e_comp_x_hook_client_resize_end, NULL);
-   e_client_hook_add(E_CLIENT_HOOK_MOVE_BEGIN, 
_e_comp_x_hook_client_move_begin, NULL);
-   e_client_hook_add(E_CLIENT_HOOK_MOVE_END, _e_comp_x_hook_client_move_end, 
NULL);
-   e_client_hook_add(E_CLIENT_HOOK_DEL, _e_comp_x_hook_client_del, NULL);
-   e_client_hook_add(E_CLIENT_HOOK_NEW_CLIENT, _e_comp_x_hook_client_new, 
NULL);
-   

[EGIT] [bindings/python/python-efl] master 01/01: More Eo updates

2016-03-09 Thread Kai Huuhko
kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=77d023dfe1fecfc980968c91bd8e170b06539e15

commit 77d023dfe1fecfc980968c91bd8e170b06539e15
Author: Kai Huuhko 
Date:   Wed Mar 9 20:07:05 2016 +0200

More Eo updates
---
 efl/elementary/systray.pxi |  4 +++-
 efl/eo/efl.eo.pyx  | 10 +-
 include/efl.c_eo.pxd   |  7 +++
 3 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/efl/elementary/systray.pxi b/efl/elementary/systray.pxi
index e08cd80..4407ecc 100644
--- a/efl/elementary/systray.pxi
+++ b/efl/elementary/systray.pxi
@@ -26,7 +26,9 @@ cdef class Systray(Eo):
 """
 
 def __init__(self, Eo parent not None, *args, **kwargs):
-self._set_obj(eo_add(elm_systray_class_get(), parent.obj))
+cdef cEo *obj
+eo_add(, elm_systray_class_get(), parent.obj)
+self._set_obj(obj)
 self._set_properties_from_keyword_args(kwargs)
 
 property id:
diff --git a/efl/eo/efl.eo.pyx b/efl/eo/efl.eo.pyx
index aa5bbaf..73e905c 100644
--- a/efl/eo/efl.eo.pyx
+++ b/efl/eo/efl.eo.pyx
@@ -39,12 +39,12 @@ from efl.eina cimport Eina_Bool, \
 from efl.c_eo cimport Eo as cEo, eo_init, eo_shutdown, eo_del, \
 eo_class_name_get, eo_class_get, eo_base_class_get,\
 eo_key_data_set, eo_key_data_get, eo_key_data_del, \
-eo_event_callback_add, eo_event_callback_del, EO_EV_DEL, \
+eo_event_callback_add, eo_event_callback_del, EO_BASE_EVENT_DEL, \
 eo_parent_get, eo_parent_set, Eo_Event_Description, \
 eo_event_freeze, eo_event_thaw, eo_event_freeze_count_get, \
 eo_event_global_freeze, eo_event_global_thaw, \
 eo_event_global_freeze_count_get, EO_CALLBACK_STOP, \
-eo_children_iterator_new, Eo_Event2
+eo_children_iterator_new, Eo_Event
 
 from efl.utils.logger cimport add_logger
 
@@ -182,14 +182,14 @@ cdef void _register_decorated_callbacks(Eo obj):
 ##
 
 
-cdef Eina_Bool _eo_event_del_cb(void *data, const Eo_Event2 *event) with gil:
+cdef Eina_Bool _eo_event_del_cb(void *data, const Eo_Event *event) with gil:
 cdef:
 Eo self = data
 const char *cls_name = eo_class_name_get(eo_class_get(self.obj))
 
 EINA_LOG_DOM_DBG(PY_EFL_EO_LOG_DOMAIN, "Deleting Eo: %s", cls_name)
 
-eo_event_callback_del(self.obj, EO_EV_DEL, _eo_event_del_cb, self)
+eo_event_callback_del(self.obj, EO_BASE_EVENT_DEL, _eo_event_del_cb, 
self)
 eo_key_data_del(self.obj, "python-eo")
 self.obj = NULL
 Py_DECREF(self)
@@ -253,7 +253,7 @@ cdef class Eo(object):
 
 self.obj = obj
 eo_key_data_set(self.obj, "python-eo", self)
-eo_event_callback_add(self.obj, EO_EV_DEL, _eo_event_del_cb, self)
+eo_event_callback_add(self.obj, EO_BASE_EVENT_DEL, _eo_event_del_cb, 
self)
 Py_INCREF(self)
 
 return 1
diff --git a/include/efl.c_eo.pxd b/include/efl.c_eo.pxd
index 66207ab..d4906fa 100644
--- a/include/efl.c_eo.pxd
+++ b/include/efl.c_eo.pxd
@@ -77,20 +77,19 @@ cdef extern from "Eo.h":
 const Eo_Event_Description *desc # The event description. */
 void *event_info # Extra event information passed by the event caller. 
*/
 ctypedef _Eo_Event Eo_Event
-ctypedef _Eo_Event Eo_Event2
 
 
 
 # Eo Events
 #
 
-cdef const Eo_Event_Description *EO_EV_DEL
+cdef const Eo_Event_Description *EO_BASE_EVENT_DEL
 
 
 
 # Other typedefs
 #
-ctypedef Eina_Bool (*Eo_Event_Cb)(void *data, const Eo_Event2 *event)
+ctypedef Eina_Bool (*Eo_Event_Cb)(void *data, const Eo_Event *event)
 
 ctypedef void (*eo_key_data_free_func)(void *)
 
@@ -101,7 +100,7 @@ cdef extern from "Eo.h":
 int eo_init()
 int eo_shutdown()
 
-Eo *eo_add(const Eo_Class *klass, Eo *parent, ...)
+void eo_add(Eo **objp, const Eo_Class *klass, Eo *parent, ...)
 Eo *eo_ref(const Eo *obj)
 void eo_unref(const Eo *obj)
 int eo_ref_get(const Eo *obj)

-- 




[EGIT] [core/efl] master 01/01: Fix examples according to the recent eo event changes.

2016-03-09 Thread Tom Hacohen
tasn pushed a commit to branch master.

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

commit d2fba6c5959f82f35984167131d3b67207780f48
Author: Tom Hacohen 
Date:   Wed Mar 9 17:16:19 2016 +

Fix examples according to the recent eo event changes.
---
 src/examples/eldbus/dbusmodel.c| 22 +---
 src/examples/emotion/emotion_basic_example.c   |  3 +-
 src/examples/emotion/emotion_border_example.c  | 28 ++--
 src/examples/emotion/emotion_generic_example.c | 30 +++--
 .../emotion/emotion_generic_subtitle_example.c |  3 +-
 src/examples/emotion/emotion_signals_example.c | 39 +-
 6 files changed, 50 insertions(+), 75 deletions(-)

diff --git a/src/examples/eldbus/dbusmodel.c b/src/examples/eldbus/dbusmodel.c
index 3e4063e..ec37309 100644
--- a/src/examples/eldbus/dbusmodel.c
+++ b/src/examples/eldbus/dbusmodel.c
@@ -14,11 +14,9 @@
 static unsigned int children_count = 0;
 
 static Eina_Bool
-_event_interface_load_status_cb(void *data EINA_UNUSED, Eo *model,
-   const Eo_Event_Description *desc EINA_UNUSED,
-   void *event_info)
+_event_interface_load_status_cb(void *data EINA_UNUSED, const Eo_Event *event)
 {
-   Efl_Model_Load *actual_load = (Efl_Model_Load*)event_info;
+   Efl_Model_Load *actual_load = (Efl_Model_Load*)event->event_info;
Eina_Array *properties_list;
Eina_Array_Iterator iterator;
Eina_Value const* property_value;
@@ -29,8 +27,8 @@ _event_interface_load_status_cb(void *data EINA_UNUSED, Eo 
*model,
if (EFL_MODEL_LOAD_STATUS_LOADED != actual_load->status)
  return EINA_TRUE;
 
-   name = eldbus_model_proxy_name_get(model);
-   efl_model_properties_get(model, _list);
+   name = eldbus_model_proxy_name_get(event->obj);
+   efl_model_properties_get(event->obj, _list);
 
printf(" -> %s\n", name);
if (eina_array_count(properties_list))
@@ -38,7 +36,7 @@ _event_interface_load_status_cb(void *data EINA_UNUSED, Eo 
*model,
 
EINA_ARRAY_ITER_NEXT(properties_list, i, property, iterator)
  {
-efl_model_property_get(model, property, _value);
+efl_model_property_get(event->obj, property, _value);
 if (property_value)
   {
  prop_str = eina_value_to_string(property_value);
@@ -57,11 +55,9 @@ _event_interface_load_status_cb(void *data EINA_UNUSED, Eo 
*model,
 }
 
 static Eina_Bool
-_event_load_status_cb(void *data EINA_UNUSED, Eo *model,
-   const Eo_Event_Description *desc EINA_UNUSED,
-   void *event_info)
+_event_load_status_cb(void *data EINA_UNUSED, const Eo_Event *event)
 {
-   Efl_Model_Load *actual_load = (Efl_Model_Load*)event_info;
+   Efl_Model_Load *actual_load = (Efl_Model_Load*)event->event_info;
Eina_Accessor *accessor;
Eo *child = NULL;
unsigned int i;
@@ -69,7 +65,7 @@ _event_load_status_cb(void *data EINA_UNUSED, Eo *model,
if (EFL_MODEL_LOAD_STATUS_LOADED != actual_load->status)
  return EINA_TRUE;
 
-   efl_model_children_count_get(model, _count);
+   efl_model_children_count_get(event->obj, _count);
if (children_count == 0)
  {
 printf("Don't find Interfaces\n");
@@ -77,7 +73,7 @@ _event_load_status_cb(void *data EINA_UNUSED, Eo *model,
 return EINA_FALSE;
  }
 
-   efl_model_children_slice_get(model, 0, 0, );
+   efl_model_children_slice_get(event->obj, 0, 0, );
printf("\nInterfaces:\n");
EINA_ACCESSOR_FOREACH(accessor, i, child)
  {
diff --git a/src/examples/emotion/emotion_basic_example.c 
b/src/examples/emotion/emotion_basic_example.c
index 9675f6b..9ad3575 100644
--- a/src/examples/emotion/emotion_basic_example.c
+++ b/src/examples/emotion/emotion_basic_example.c
@@ -15,8 +15,7 @@
 #define HEIGHT (240)
 
 static Eina_Bool
-_playback_started_cb(void *data EINA_UNUSED,
-  Eo *obj EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED, void 
*event_info EINA_UNUSED)
+_playback_started_cb(void *data EINA_UNUSED, const Eo_Event *event EINA_UNUSED)
 {
 printf("Emotion object started playback.\n");
 
diff --git a/src/examples/emotion/emotion_border_example.c 
b/src/examples/emotion/emotion_border_example.c
index ea3c07d..f422fbe 100644
--- a/src/examples/emotion/emotion_border_example.c
+++ b/src/examples/emotion/emotion_border_example.c
@@ -18,8 +18,7 @@ static Eina_List *filenames = NULL;
 static Eina_List *curfile = NULL;
 
 static Eina_Bool
-_playback_started_cb(void *data EINA_UNUSED,
-Eo *obj EINA_UNUSED, const Eo_Event_Description *desc EINA_UNUSED, 
void *event_info EINA_UNUSED)
+_playback_started_cb(void *data EINA_UNUSED, const Eo_Event *event EINA_UNUSED)
 {
 printf("Emotion object started playback.\n");
 
@@ -109,8 +108,7 @@ _on_key_down(void *data, Evas *e EINA_UNUSED, Evas_Object 
*o EINA_UNUSED, void *
 }
 
 static Eina_Bool
-_frame_decode_cb(void *data 

[EGIT] [core/efl] master 01/01: Examples: Update according to recent eo_add changes.

2016-03-09 Thread Tom Hacohen
tasn pushed a commit to branch master.

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

commit 6594ba0b6df9ba72f031a00d0e8ba3b23cf2c0b2
Author: Tom Hacohen 
Date:   Wed Mar 9 17:02:42 2016 +

Examples: Update according to recent eo_add changes.
---
 src/examples/evas/evas-3d-colorpick.c  | 14 ++
 src/examples/evas/evas-3d-hull.c   |  4 ++--
 src/examples/evas/evas-3d-mmap-set.c   |  4 ++--
 src/examples/evas/evas-3d-obj.c|  4 ++--
 src/examples/evas/evas-3d-ply.c|  4 ++--
 src/examples/evas/evas-3d-shadows.c|  8 
 src/examples/evas/evas-object-manipulation-eo.c|  8 
 src/examples/evas/shooter/evas-3d-shooter-macros.h | 12 ++--
 src/examples/evas/shooter/evas-3d-shooter.c|  2 +-
 9 files changed, 29 insertions(+), 31 deletions(-)

diff --git a/src/examples/evas/evas-3d-colorpick.c 
b/src/examples/evas/evas-3d-colorpick.c
index 4a7594b..ceda8bc 100644
--- a/src/examples/evas/evas-3d-colorpick.c
+++ b/src/examples/evas/evas-3d-colorpick.c
@@ -272,27 +272,25 @@ _init_scene(const char *texture)
Evas_Real tmp;
Test_object *m;
 
-   globalscene.scene = eo_add(EVAS_CANVAS3D_SCENE_CLASS, evas);
+   eo_add(, EVAS_CANVAS3D_SCENE_CLASS, evas);
 
-   globalscene.root_node = eo_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(eoid, EVAS_CANVAS3D_NODE_TYPE_NODE));
+   eo_add(_node, EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(globalscene.root_node, 
EVAS_CANVAS3D_NODE_TYPE_NODE));
 
-   globalscene.camera = eo_add(EVAS_CANVAS3D_CAMERA_CLASS, evas);
+   eo_add(, EVAS_CANVAS3D_CAMERA_CLASS, evas);
evas_canvas3d_camera_projection_perspective_set(globalscene.camera, 30.0, 
1.0, 1.0, 1000.0);
 
-   globalscene.camera_node =
-  eo_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(eoid, EVAS_CANVAS3D_NODE_TYPE_CAMERA));
+   eo_add(_node, EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(globalscene.camera_node, 
EVAS_CANVAS3D_NODE_TYPE_CAMERA));
evas_canvas3d_node_camera_set(globalscene.camera_node, globalscene.camera);
evas_canvas3d_node_member_add(globalscene.root_node, 
globalscene.camera_node);
evas_canvas3d_node_position_set(globalscene.camera_node, 0.0, 30.0, 800.0);
evas_canvas3d_node_look_at_set(globalscene.camera_node, 
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, -1000.0, EVAS_CANVAS3D_SPACE_PARENT, 0.0, 
1.0, 0.0);
-   globalscene.light = eo_add(EVAS_CANVAS3D_LIGHT_CLASS, evas);
+   eo_add(, EVAS_CANVAS3D_LIGHT_CLASS, evas);
evas_canvas3d_light_ambient_set(globalscene.light, 1.0, 1.0, 1.0, 1.0);
evas_canvas3d_light_diffuse_set(globalscene.light, 1.0, 1.0, 1.0, 1.0);
evas_canvas3d_light_specular_set(globalscene.light, 1.0, 1.0, 1.0, 1.0);
evas_canvas3d_light_directional_set(globalscene.light, EINA_TRUE);
 
-   globalscene.light_node =
-  eo_add(EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(eoid, EVAS_CANVAS3D_NODE_TYPE_LIGHT));
+   eo_add(_node, EVAS_CANVAS3D_NODE_CLASS, evas, 
evas_canvas3d_node_constructor(globalscene.light_node, 
EVAS_CANVAS3D_NODE_TYPE_LIGHT));
evas_canvas3d_node_light_set(globalscene.light_node, globalscene.light);
evas_canvas3d_node_position_set(globalscene.light_node, 100.0, 50.0, 300.0);
evas_canvas3d_node_look_at_set(globalscene.light_node, 
EVAS_CANVAS3D_SPACE_PARENT, 0.0, 0.0, 0.0, EVAS_CANVAS3D_SPACE_PARENT, 1.0, 
1.0, 1.0);
diff --git a/src/examples/evas/evas-3d-hull.c b/src/examples/evas/evas-3d-hull.c
index 130ad37..32c1d01 100644
--- a/src/examples/evas/evas-3d-hull.c
+++ b/src/examples/evas/evas-3d-hull.c
@@ -84,7 +84,7 @@ typedef struct _Scene_Data
 int rr;
 
 #define MODEL_MESH_INIT(name, model, shade)
  \
-   data->mesh_##name = eo_add(EVAS_CANVAS3D_MESH_CLASS, evas); 
 \
+   eo_add(>mesh_##name, EVAS_CANVAS3D_MESH_CLASS, evas); 
 \
efl_file_set(data->mesh_##name, model, NULL); \
evas_canvas3d_mesh_vertex_assembly_set(data->mesh_##name, 
EVAS_CANVAS3D_VERTEX_ASSEMBLY_TRIANGLES); \
evas_canvas3d_mesh_shade_mode_set(data->mesh_##name, 
EVAS_CANVAS3D_SHADE_MODE_##shade); \
@@ -96,7 +96,7 @@ int rr;
evas_canvas3d_mesh_convex_hull_data_get(data->mesh_##name, 0, vert, ind);  \
vertex = (float*) vert->members;\
index = ind->members;\
-   data->mesh_##name##_ch = eo_add(EVAS_CANVAS3D_MESH_CLASS, evas);
\
+   eo_add(>mesh_##name##_ch, EVAS_CANVAS3D_MESH_CLASS, evas);
\
evas_canvas3d_mesh_vertex_count_set(data->mesh_##name##_ch, (vert->len / 
10)); \
evas_canvas3d_mesh_frame_add(data->mesh_##name##_ch, 0); \
evas_canvas3d_mesh_frame_vertex_data_copy_set(data->mesh_##name##_ch, 0, 
EVAS_CANVAS3D_VERTEX_ATTRIB_POSITION, \
diff --git 

[EGIT] [enlightenment/modules/desksanity] master 01/01: remove maximize from e21 builds: present in main

2016-03-09 Thread Mike Blumenkrantz
discomfitor pushed a commit to branch master.

http://git.enlightenment.org/enlightenment/modules/desksanity.git/commit/?id=35b323adfd757d8fdaf42595c077866a5e1d1ec0

commit 35b323adfd757d8fdaf42595c077866a5e1d1ec0
Author: Mike Blumenkrantz 
Date:   Tue Mar 8 18:06:11 2016 -0500

remove maximize from e21 builds: present in main
---
 src/ds_config.c  | 7 ---
 src/e_mod_main.c | 4 
 src/e_mod_main.h | 4 ++--
 src/maximize.c   | 2 ++
 4 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/src/ds_config.c b/src/ds_config.c
index d95ec2d..d3c2327 100644
--- a/src/ds_config.c
+++ b/src/ds_config.c
@@ -32,7 +32,7 @@ _ds_menu_ruler(void *data EINA_UNUSED, E_Menu *m EINA_UNUSED, 
E_Menu_Item *mi)
  mr_init();
e_config_save_queue();
 }
-
+#if E_VERSION_MAJOR == 20
 static void
 _ds_menu_maximize(void *data EINA_UNUSED, E_Menu *m EINA_UNUSED, E_Menu_Item 
*mi)
 {
@@ -43,6 +43,7 @@ _ds_menu_maximize(void *data EINA_UNUSED, E_Menu *m 
EINA_UNUSED, E_Menu_Item *mi
  maximize_init();
e_config_save_queue();
 }
+#endif
 
 static void
 _ds_menu_transitions(void *data EINA_UNUSED, E_Menu *m EINA_UNUSED, 
E_Menu_Item *mi)
@@ -90,13 +91,13 @@ _ds_menu_add(void *data EINA_UNUSED, E_Menu *m)
e_menu_item_check_set(mi, 1);
e_menu_item_toggle_set(mi, ds_config->disable_ruler);
e_menu_item_callback_set(mi, _ds_menu_ruler, NULL);
-
+#if E_VERSION_MAJOR == 20
mi = e_menu_item_new(subm);
e_menu_item_label_set(mi, D_("Disable Maximize Effects"));
e_menu_item_check_set(mi, 1);
e_menu_item_toggle_set(mi, ds_config->disable_maximize);
e_menu_item_callback_set(mi, _ds_menu_maximize, NULL);
-
+#endif
mi = e_menu_item_new(subm);
e_menu_item_label_set(mi, D_("Disable Transition Effects"));
e_menu_item_check_set(mi, 1);
diff --git a/src/e_mod_main.c b/src/e_mod_main.c
index 449d653..7be671b 100644
--- a/src/e_mod_main.c
+++ b/src/e_mod_main.c
@@ -253,8 +253,10 @@ e_modapi_init(E_Module *m)
  ds_init();
if (!ds_config->disable_ruler)
  mr_init();
+#if E_VERSION_MAJOR == 20
if (!ds_config->disable_maximize)
  maximize_init();
+#endif
 
pip_init();
zoom_init();
@@ -277,8 +279,10 @@ e_modapi_shutdown(E_Module *m EINA_UNUSED)
mag_shutdown();
zoom_shutdown();
pip_shutdown();
+#if E_VERSION_MAJOR == 20
if (!ds_config->disable_maximize)
  maximize_shutdown();
+#endif
if (!ds_config->disable_ruler)
  mr_shutdown();
if (!ds_config->disable_transitions)
diff --git a/src/e_mod_main.h b/src/e_mod_main.h
index c01a530..b5eea1d 100644
--- a/src/e_mod_main.h
+++ b/src/e_mod_main.h
@@ -91,10 +91,10 @@ EINTERN void ds_shutdown(void);
 
 EINTERN void mr_shutdown(void);
 EINTERN void mr_init(void);
-
+#if E_VERSION_MAJOR == 20
 EINTERN void maximize_init(void);
 EINTERN void maximize_shutdown(void);
-
+#endif
 EINTERN void pip_init(void);
 EINTERN void pip_shutdown(void);
 
diff --git a/src/maximize.c b/src/maximize.c
index 9b0eac4..25dc15e 100644
--- a/src/maximize.c
+++ b/src/maximize.c
@@ -1,4 +1,5 @@
 #include "e_mod_main.h"
+#if E_VERSION_MAJOR == 20
 
 static Ecore_Event_Handler *eh = NULL;
 
@@ -144,3 +145,4 @@ maximize_shutdown(void)
  }
E_FREE_FUNC(eh, ecore_event_handler_del);
 }
+#endif

-- 




[EGIT] [tools/expedite] master 01/01: Automatic migration to the new eo_add syntax.

2016-03-09 Thread Tom Hacohen
tasn pushed a commit to branch master.

http://git.enlightenment.org/tools/expedite.git/commit/?id=1c99584bcb72aabedfb7e9696bae1661c14ddd0c

commit 1c99584bcb72aabedfb7e9696bae1661c14ddd0c
Author: Tom Hacohen 
Date:   Wed Mar 9 16:31:15 2016 +

Automatic migration to the new eo_add syntax.
---
 src/bin/about.c  |  2 +-
 src/bin/image_blend_border.c |  2 +-
 src/bin/image_blend_border_recolor.c |  2 +-
 src/bin/image_blend_fade_pow2_unscaled.c |  2 +-
 src/bin/image_blend_fade_unscaled.c  |  2 +-
 src/bin/image_blend_many_smooth_same_scaled.c|  2 +-
 src/bin/image_blend_nearest_same_scaled.c|  2 +-
 src/bin/image_blend_nearest_scaled.c |  2 +-
 src/bin/image_blend_nearest_solid_same_scaled.c  |  2 +-
 src/bin/image_blend_nearest_solid_scaled.c   |  2 +-
 src/bin/image_blend_occlude1.c   |  2 +-
 src/bin/image_blend_occlude1_few.c   |  2 +-
 src/bin/image_blend_occlude1_many.c  |  2 +-
 src/bin/image_blend_occlude1_very_many.c |  2 +-
 src/bin/image_blend_occlude2.c   |  2 +-
 src/bin/image_blend_occlude2_few.c   |  2 +-
 src/bin/image_blend_occlude2_many.c  |  2 +-
 src/bin/image_blend_occlude2_very_many.c |  2 +-
 src/bin/image_blend_occlude3.c   |  2 +-
 src/bin/image_blend_occlude3_few.c   |  2 +-
 src/bin/image_blend_occlude3_many.c  |  2 +-
 src/bin/image_blend_occlude3_very_many.c |  2 +-
 src/bin/image_blend_smooth_same_scaled.c |  2 +-
 src/bin/image_blend_smooth_scaled.c  |  2 +-
 src/bin/image_blend_smooth_solid_same_scaled.c   |  2 +-
 src/bin/image_blend_smooth_solid_scaled.c|  2 +-
 src/bin/image_blend_solid_border.c   |  2 +-
 src/bin/image_blend_solid_fade_pow2_unscaled.c   |  2 +-
 src/bin/image_blend_solid_fade_unscaled.c|  2 +-
 src/bin/image_blend_solid_middle_border.c|  2 +-
 src/bin/image_blend_solid_middle_unscaled.c  |  2 +-
 src/bin/image_blend_solid_unscaled.c |  2 +-
 src/bin/image_blend_unscaled.c   |  2 +-
 src/bin/image_crossfade.c|  4 ++--
 src/bin/image_data_argb.c|  2 +-
 src/bin/image_data_argb_alpha.c  |  2 +-
 src/bin/image_data_ycbcr601pl.c  |  2 +-
 .../image_data_ycbcr601pl_map_nearest_solid_rotate.c |  2 +-
 src/bin/image_data_ycbcr601pl_map_solid_rotate.c |  2 +-
 src/bin/image_data_ycbcr601pl_wide_stride.c  |  2 +-
 src/bin/image_map_3d_1.c |  2 +-
 src/bin/image_map_3d_2.c |  2 +-
 src/bin/image_map_3d_3.c |  2 +-
 src/bin/image_map_3d_4.c |  2 +-
 src/bin/image_map_3d_5.c |  2 +-
 src/bin/image_map_3d_6.c |  2 +-
 src/bin/image_map_3d_flow.c  |  4 ++--
 src/bin/image_map_color_alpha_nearest_rotate.c   |  2 +-
 src/bin/image_map_color_alpha_nearest_solid_rotate.c |  2 +-
 src/bin/image_map_color_alpha_rotate.c   |  2 +-
 src/bin/image_map_color_alpha_solid_rotate.c |  2 +-
 src/bin/image_map_color_nearest_rotate.c |  2 +-
 src/bin/image_map_color_nearest_solid_rotate.c   |  2 +-
 src/bin/image_map_color_rotate.c |  2 +-
 src/bin/image_map_color_solid_rotate.c   |  2 +-
 src/bin/image_map_nearest_rotate.c   |  2 +-
 src/bin/image_map_nearest_solid_rotate.c |  2 +-
 src/bin/image_map_rotate.c   |  2 +-
 src/bin/image_map_solid_rotate.c |  2 +-
 src/bin/image_mask.c |  4 ++--
 src/bin/image_mask_10.c  |  4 ++--
 src/bin/image_mask_11.c  |  4 ++--
 src/bin/image_mask_12.c  |  4 ++--
 src/bin/image_mask_13.c  |  4 ++--
 src/bin/image_mask_2.c   |  4 ++--
 src/bin/image_mask_3.c   |  4 ++--
 src/bin/image_mask_4.c   |  4 ++--
 src/bin/image_mask_5.c   |  4 ++--
 src/bin/image_mask_6.c   |  4 ++--
 src/bin/image_mask_7.c   |  4 ++--
 src/bin/image_mask_8.c   |  4 ++--
 src/bin/image_mask_9.c   |  4 ++--
 src/bin/image_quality_scale.c|  2 +-
 src/bin/line_blend.c |  2 +-
 src/bin/poly_blend.c |  2 +-

[EGIT] [core/elementary] master 01/01: Image test: Migrate to the new event cb signature.

2016-03-09 Thread Tom Hacohen
tasn pushed a commit to branch master.

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

commit de897d633f58b81a3b73c0af3ff3c586fdeb8056
Author: Tom Hacohen 
Date:   Wed Mar 9 16:27:01 2016 +

Image test: Migrate to the new event cb signature.
---
 src/tests/elm_test_image.c | 16 ++--
 1 file changed, 6 insertions(+), 10 deletions(-)

diff --git a/src/tests/elm_test_image.c b/src/tests/elm_test_image.c
index fcc728c..ef631c7 100644
--- a/src/tests/elm_test_image.c
+++ b/src/tests/elm_test_image.c
@@ -35,28 +35,24 @@ START_TEST (elm_atspi_role_get)
 END_TEST
 
 static Eina_Bool
-_async_error_cb(void *data, Eo *obj,
-const Eo_Event_Description *desc EINA_UNUSED,
-void *event_info EINA_UNUSED)
+_async_error_cb(void *data, const Eo_Event *event)
 {
Test_Data *td = data;
char path[PATH_MAX];
sprintf(path, pathfmt, td->image_id);
-   efl_file_set(obj, path, NULL);
+   efl_file_set(event->obj, path, NULL);
return EO_CALLBACK_CONTINUE;
 }
 
 static Eina_Bool
-_async_opened_cb(void *data, Eo *obj,
- const Eo_Event_Description *desc EINA_UNUSED,
- void *event_info EINA_UNUSED)
+_async_opened_cb(void *data, const Eo_Event *event)
 {
Test_Data *td = data;
const char *ff, *kk, *r1, *r2;
char path[PATH_MAX];
 
sprintf(path, pathfmt, td->image_id);
-   efl_file_get(obj, , );
+   efl_file_get(event->obj, , );
r1 = strrchr(ff, '/');
r2 = strrchr(path, '/');
ck_assert(!strcmp(r1, r2));
@@ -66,7 +62,7 @@ _async_opened_cb(void *data, Eo *obj,
  {
 td->image_id++;
 sprintf(path, pathfmt, td->image_id);
-efl_file_set(obj, path, NULL);
+efl_file_set(event->obj, path, NULL);
 return EO_CALLBACK_CONTINUE;
  }
else if (td->image_id < MAX_IMAGE_ID)
@@ -75,7 +71,7 @@ _async_opened_cb(void *data, Eo *obj,
 for (; td->image_id < MAX_IMAGE_ID;)
   {
  sprintf(path, pathfmt, ++td->image_id);
- efl_file_set(obj, path, NULL);
+ efl_file_set(event->obj, path, NULL);
   }
 return EO_CALLBACK_CONTINUE;
  }

-- 




[EGIT] [core/elementary] master 02/02: Automatic migration to the new eo_add syntax.

2016-03-09 Thread Tom Hacohen
tasn pushed a commit to branch master.

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

commit d1a1819813d74361b25fd5c1123f7ac76be9b84f
Author: Tom Hacohen 
Date:   Wed Mar 9 16:08:12 2016 +

Automatic migration to the new eo_add syntax.
---
 src/bin/test_application_server.c  |  4 +--
 src/bin/test_systray.c |  2 +-
 src/bin/test_task_switcher.c   |  2 +-
 src/examples/evas3d_map_example.c  | 32 ++--
 src/examples/evas3d_object_on_button_example.c | 24 +++
 src/examples/evas3d_scene_on_button_example.c  | 22 ++
 src/examples/filemvc.c | 10 +++
 src/examples/fileviewlist.c|  4 +--
 src/examples/performance/graphical.c   | 35 ++
 src/examples/sphere_hunter/evas_3d_sphere_hunter.c | 30 +--
 src/lib/elc_ctxpopup.c |  7 +++--
 src/lib/elc_fileselector.c |  3 +-
 src/lib/elc_fileselector_button.c  |  3 +-
 src/lib/elc_fileselector_entry.c   |  3 +-
 src/lib/elc_hoversel.c |  6 ++--
 src/lib/elc_multibuttonentry.c |  5 ++--
 src/lib/elc_naviframe.c|  5 ++--
 src/lib/elc_player.c   |  3 +-
 src/lib/elc_popup.c|  5 ++--
 src/lib/elm_access.c   |  3 +-
 src/lib/elm_actionslider.c |  3 +-
 src/lib/elm_app_client.c   |  4 +--
 src/lib/elm_app_server.c   |  2 +-
 src/lib/elm_atspi_bridge.c |  2 +-
 src/lib/elm_bg.c   |  3 +-
 src/lib/elm_box.c  |  3 +-
 src/lib/elm_bubble.c   |  3 +-
 src/lib/elm_button.c   |  3 +-
 src/lib/elm_calendar.c |  3 +-
 src/lib/elm_check.c|  3 +-
 src/lib/elm_clock.c|  3 +-
 src/lib/elm_colorselector.c|  7 +++--
 src/lib/elm_conform.c  |  3 +-
 src/lib/elm_datetime.c |  3 +-
 src/lib/elm_dayselector.c  |  6 ++--
 src/lib/elm_diskselector.c |  6 ++--
 src/lib/elm_entry.c|  3 +-
 src/lib/elm_flip.c |  3 +-
 src/lib/elm_flipselector.c |  5 ++--
 src/lib/elm_frame.c|  3 +-
 src/lib/elm_gengrid.c  |  8 +++--
 src/lib/elm_genlist.c  |  8 +++--
 src/lib/elm_gesture_layer.c|  3 +-
 src/lib/elm_glview.c   |  6 ++--
 src/lib/elm_grid.c |  3 +-
 src/lib/elm_hover.c|  3 +-
 src/lib/elm_icon.c |  3 +-
 src/lib/elm_image.c|  3 +-
 src/lib/elm_index.c|  5 ++--
 src/lib/elm_interface_atspi_accessible.c   |  2 +-
 src/lib/elm_interface_scrollable.c |  3 +-
 src/lib/elm_inwin.c|  3 +-
 src/lib/elm_label.c|  3 +-
 src/lib/elm_layout.c   |  3 +-
 src/lib/elm_list.c |  6 ++--
 src/lib/elm_map.c  |  5 ++--
 src/lib/elm_mapbuf.c   |  3 +-
 src/lib/elm_menu.c |  7 +++--
 src/lib/elm_notify.c   |  3 +-
 src/lib/elm_panel.c|  3 +-
 src/lib/elm_panes.c|  3 +-
 src/lib/elm_photo.c|  3 +-
 src/lib/elm_photocam.c |  5 ++--
 src/lib/elm_plug.c |  3 +-
 src/lib/elm_prefs.c|  3 +-
 src/lib/elm_progressbar.c  |  3 +-
 src/lib/elm_radio.c|  3 +-
 src/lib/elm_route.c|  3 +-
 src/lib/elm_scroller.c |  3 +-
 src/lib/elm_segment_control.c  |  5 ++--
 src/lib/elm_separator.c|  3 +-
 src/lib/elm_slider.c   |  3 +-
 src/lib/elm_slideshow.c|  7 +++--
 src/lib/elm_spinner.c  |  3 +-
 src/lib/elm_sys_notify.c   |  4 +--
 src/lib/elm_table.c  

[EGIT] [core/elementary] master 01/02: Combobox: Semi automatic migration to the new eo_add.

2016-03-09 Thread Tom Hacohen
tasn pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=90e465317d10ca01ff39824e56828ee983f7ae41

commit 90e465317d10ca01ff39824e56828ee983f7ae41
Author: Tom Hacohen 
Date:   Wed Mar 9 16:01:26 2016 +

Combobox: Semi automatic migration to the new eo_add.
---
 src/lib/elc_combobox.c | 9 +
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/lib/elc_combobox.c b/src/lib/elc_combobox.c
index af79c72..4227cea 100644
--- a/src/lib/elc_combobox.c
+++ b/src/lib/elc_combobox.c
@@ -309,7 +309,8 @@ EAPI Evas_Object *
 elm_combobox_add(Evas_Object *parent)
 {
EINA_SAFETY_ON_NULL_RETURN_VAL(parent, NULL);
-   Evas_Object *obj = eo_add(MY_CLASS, parent);
+   Evas_Object *obj = NULL;
+   eo_add(, MY_CLASS, parent);
return obj;
 }
 
@@ -332,7 +333,7 @@ _elm_combobox_eo_base_constructor(Eo *obj, 
Elm_Combobox_Data *sd)
sd->hover_parent = elm_object_parent_widget_get(obj);
 
//hover
-   sd->hover = eo_add(ELM_HOVER_CLASS, sd->hover_parent);
+   eo_add(>hover, ELM_HOVER_CLASS, sd->hover_parent);
elm_widget_mirrored_automatic_set(sd->hover, EINA_FALSE);
elm_hover_target_set(sd->hover, obj);
elm_widget_sub_object_add(obj, sd->hover);
@@ -358,7 +359,7 @@ _elm_combobox_eo_base_constructor(Eo *obj, 
Elm_Combobox_Data *sd)
elm_table_pack(sd->tbl, sd->spacer, 0, 0, 1, 1);
 
// This is the genlist object that will take over the genlist call
-   sd->genlist = gl = eo_add(ELM_GENLIST_CLASS, obj);
+   sd->genlist = gl = eo_add(, ELM_GENLIST_CLASS, obj);
elm_genlist_filter_set(gl, NULL);
elm_widget_mirrored_automatic_set(gl, EINA_FALSE);
elm_widget_mirrored_set(gl, elm_widget_mirrored_get(obj));
@@ -372,7 +373,7 @@ _elm_combobox_eo_base_constructor(Eo *obj, 
Elm_Combobox_Data *sd)
elm_table_pack(sd->tbl, gl, 0, 0, 1, 1);
 
// This is the entry object that will take over the entry call
-   sd->entry = entry = eo_add(ELM_ENTRY_CLASS, obj);
+   sd->entry = entry = eo_add(, ELM_ENTRY_CLASS, obj);
elm_widget_mirrored_automatic_set(entry, EINA_FALSE);
elm_widget_mirrored_set(entry, elm_widget_mirrored_get(obj));
elm_scroller_policy_set(entry, ELM_SCROLLER_POLICY_OFF,

-- 




[EGIT] [core/efl] master 01/04: Eo: Change to the Eo4 eo_add syntax.

2016-03-09 Thread Tom Hacohen
tasn pushed a commit to branch master.

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

commit b85bb3718389470bfc78c079dd5e06def5e963f3
Author: Tom Hacohen 
Date:   Wed Mar 9 15:06:49 2016 +

Eo: Change to the Eo4 eo_add syntax.

The current one was a hack in the meanwhile and was not protable.
---
 src/lib/eo/Eo.h | 18 ++
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/src/lib/eo/Eo.h b/src/lib/eo/Eo.h
index 387f187..a6e4f96 100644
--- a/src/lib/eo/Eo.h
+++ b/src/lib/eo/Eo.h
@@ -610,12 +610,12 @@ EAPI Eo *eo_super(const Eo *obj, const Eo_Class 
*cur_klass);
  */
 EAPI const Eo_Class *eo_class_get(const Eo *obj);
 
-#define _eo_add_common(klass, parent, is_ref, ...) \
-   ({ \
- Eo * const eoid = _eo_add_internal_start(__FILE__, __LINE__, klass, 
parent, is_ref); \
- __VA_ARGS__; \
- (Eo *) _eo_add_end(eoid); \
-})
+#define _eo_add_common(objp, klass, parent, is_ref, ...) \
+   ((Eo *) ( \
+ *objp = _eo_add_internal_start(__FILE__, __LINE__, klass, parent, 
is_ref), \
+ ##__VA_ARGS__, \
+ *objp = _eo_add_end(*objp) \
+   ))
 
 /**
  * @def eo_add
@@ -631,12 +631,13 @@ EAPI const Eo_Class *eo_class_get(const Eo *obj);
  *
  * If you want a more "consistent" behaviour, take a look at #eo_add_ref.
  *
+ * @param objp a pointer to the object id (Eo **)
  * @param klass the class of the object to create.
  * @param parent the parent to set to the object.
  * @param ... The ops to run.
  * @return An handle to the new object on success, NULL otherwise.
  */
-#define eo_add(klass, parent, ...) _eo_add_common(klass, parent, EINA_FALSE, 
##__VA_ARGS__)
+#define eo_add(objp, klass, parent, ...) _eo_add_common(objp, klass, parent, 
EINA_FALSE, ##__VA_ARGS__)
 
 /**
  * @def eo_add_ref
@@ -648,12 +649,13 @@ EAPI const Eo_Class *eo_class_get(const Eo *obj);
  * when the parent object is deleted until you manually remove the ref
  * by calling eo_unref().
  *
+ * @param objp a pointer to the object id (Eo **)
  * @param klass the class of the object to create.
  * @param parent the parent to set to the object.
  * @param ... The ops to run.
  * @return An handle to the new object on success, NULL otherwise.
  */
-#define eo_add_ref(klass, parent, ...) _eo_add_common(klass, parent, 
EINA_TRUE, ##__VA_ARGS__)
+#define eo_add_ref(objp, klass, parent, ...) _eo_add_common(objp, klass, 
parent, EINA_TRUE, ##__VA_ARGS__)
 
 EAPI Eo * _eo_add_internal_start(const char *file, int line, const Eo_Class 
*klass_id, Eo *parent, Eina_Bool ref);
 

-- 




[EGIT] [core/efl] master 03/04: Ector and eo suite: Semi automatically migrate to the new eo_add.

2016-03-09 Thread Tom Hacohen
tasn pushed a commit to branch master.

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

commit df83edaeb6b10324868f28e8f1910147ba22e5e5
Author: Tom Hacohen 
Date:   Wed Mar 9 15:39:51 2016 +

Ector and eo suite: Semi automatically migrate to the new eo_add.

There were some issues with the migration that required manual
intervention.
---
 src/lib/ector/cairo/ector_cairo_surface.c   |   7 +-
 src/lib/ector/gl/ector_gl_surface.c |   7 +-
 src/lib/ector/software/ector_software_surface.c |   9 +-
 src/tests/eo/suite/eo_test_general.c| 129 ++--
 4 files changed, 88 insertions(+), 64 deletions(-)

diff --git a/src/lib/ector/cairo/ector_cairo_surface.c 
b/src/lib/ector/cairo/ector_cairo_surface.c
index 3cc47e3..93336db 100644
--- a/src/lib/ector/cairo/ector_cairo_surface.c
+++ b/src/lib/ector/cairo/ector_cairo_surface.c
@@ -61,12 +61,13 @@ 
_ector_cairo_surface_ector_generic_surface_renderer_factory_new(Eo *obj,
 
Ector_Cairo_Surface_Data *pd EINA_UNUSED,
 const Eo_Class 
*type)
 {
+   Eo *ret = NULL;
if (type == ECTOR_RENDERER_GENERIC_SHAPE_MIXIN)
- return eo_add(ECTOR_RENDERER_CAIRO_SHAPE_CLASS, NULL, 
ector_renderer_surface_set(eoid, obj));
+ return eo_add(, ECTOR_RENDERER_CAIRO_SHAPE_CLASS, NULL, 
ector_renderer_surface_set(ret, obj));
else if (type == ECTOR_RENDERER_GENERIC_GRADIENT_LINEAR_MIXIN)
- return eo_add(ECTOR_RENDERER_CAIRO_GRADIENT_LINEAR_CLASS, NULL, 
ector_renderer_surface_set(eoid, obj));
+ return eo_add(, ECTOR_RENDERER_CAIRO_GRADIENT_LINEAR_CLASS, NULL, 
ector_renderer_surface_set(ret, obj));
else if (type == ECTOR_RENDERER_GENERIC_GRADIENT_RADIAL_MIXIN)
- return eo_add(ECTOR_RENDERER_CAIRO_GRADIENT_RADIAL_CLASS, NULL, 
ector_renderer_surface_set(eoid, obj));
+ return eo_add(, ECTOR_RENDERER_CAIRO_GRADIENT_RADIAL_CLASS, NULL, 
ector_renderer_surface_set(ret, obj));
 
ERR("Couldn't find class for type: %s\n", eo_class_name_get(type));
return NULL;
diff --git a/src/lib/ector/gl/ector_gl_surface.c 
b/src/lib/ector/gl/ector_gl_surface.c
index 2ad6653..fe3658c 100644
--- a/src/lib/ector/gl/ector_gl_surface.c
+++ b/src/lib/ector/gl/ector_gl_surface.c
@@ -44,12 +44,13 @@ 
_ector_gl_surface_ector_generic_surface_renderer_factory_new(Eo *obj,
  
Ector_GL_Surface_Data *pd EINA_UNUSED,
  const Eo_Class 
*type)
 {
+   Eo *ret = NULL;
if (type == ECTOR_RENDERER_GENERIC_SHAPE_MIXIN)
- return eo_add(ECTOR_RENDERER_GL_SHAPE_CLASS, NULL, 
ector_renderer_surface_set(eoid, obj));
+ return eo_add(, ECTOR_RENDERER_GL_SHAPE_CLASS, NULL, 
ector_renderer_surface_set(ret, obj));
else if (type == ECTOR_RENDERER_GENERIC_GRADIENT_LINEAR_MIXIN)
- return eo_add(ECTOR_RENDERER_GL_GRADIENT_LINEAR_CLASS, NULL, 
ector_renderer_surface_set(eoid, obj));
+ return eo_add(, ECTOR_RENDERER_GL_GRADIENT_LINEAR_CLASS, NULL, 
ector_renderer_surface_set(ret, obj));
else if (type == ECTOR_RENDERER_GENERIC_GRADIENT_RADIAL_MIXIN)
- return eo_add(ECTOR_RENDERER_GL_GRADIENT_RADIAL_CLASS, NULL, 
ector_renderer_surface_set(eoid, obj));
+ return eo_add(, ECTOR_RENDERER_GL_GRADIENT_RADIAL_CLASS, NULL, 
ector_renderer_surface_set(ret, obj));
 
ERR("Couldn't find class for type: %s\n", eo_class_name_get(type));
return NULL;
diff --git a/src/lib/ector/software/ector_software_surface.c 
b/src/lib/ector/software/ector_software_surface.c
index f67b194..551211f 100644
--- a/src/lib/ector/software/ector_software_surface.c
+++ b/src/lib/ector/software/ector_software_surface.c
@@ -15,14 +15,15 @@ 
_ector_software_surface_ector_generic_surface_renderer_factory_new(Eo *obj,

Ector_Software_Surface_Data *pd EINA_UNUSED,
const 
Eo_Class *type)
 {
+   Eo *ret = NULL;
if (type == ECTOR_RENDERER_GENERIC_SHAPE_MIXIN)
- return eo_add(ECTOR_RENDERER_SOFTWARE_SHAPE_CLASS, NULL, 
ector_renderer_surface_set(eoid, obj));
+ return eo_add(, ECTOR_RENDERER_SOFTWARE_SHAPE_CLASS, NULL, 
ector_renderer_surface_set(ret, obj));
else if (type == ECTOR_RENDERER_GENERIC_GRADIENT_LINEAR_MIXIN)
- return eo_add(ECTOR_RENDERER_SOFTWARE_GRADIENT_LINEAR_CLASS, NULL, 
ector_renderer_surface_set(eoid, obj));
+ return eo_add(, ECTOR_RENDERER_SOFTWARE_GRADIENT_LINEAR_CLASS, NULL, 
ector_renderer_surface_set(ret, obj));
else if (type == ECTOR_RENDERER_GENERIC_GRADIENT_RADIAL_MIXIN)
- return eo_add(ECTOR_RENDERER_SOFTWARE_GRADIENT_RADIAL_CLASS, NULL, 
ector_renderer_surface_set(eoid, obj));
+ return eo_add(, ECTOR_RENDERER_SOFTWARE_GRADIENT_RADIAL_CLASS, NULL, 

[EGIT] [core/efl] master 02/04: Vg node: modify so the eo_add migration script won't break.

2016-03-09 Thread Tom Hacohen
tasn pushed a commit to branch master.

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

commit 6ac1fb78d855be27d28378a659887b693e5fb266
Author: Tom Hacohen 
Date:   Wed Mar 9 15:22:09 2016 +

Vg node: modify so the eo_add migration script won't break.
---
 src/lib/evas/canvas/evas_vg_node.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/lib/evas/canvas/evas_vg_node.c 
b/src/lib/evas/canvas/evas_vg_node.c
index 3a80b63..2ae9135 100644
--- a/src/lib/evas/canvas/evas_vg_node.c
+++ b/src/lib/evas/canvas/evas_vg_node.c
@@ -778,7 +778,8 @@ _efl_vg_base_dup(Eo *obj, Efl_VG_Base_Data *pd, const 
Efl_VG_Base *from)
_efl_vg_clean_object(>mask);
if (fromd->mask)
  {
-pd->mask = eo_add(eo_class_get(fromd->mask), obj, efl_vg_dup(eoid, 
pd->mask));
+Eo *tmp = pd->mask;
+pd->mask = eo_add(eo_class_get(fromd->mask), obj, efl_vg_dup(eoid, 
tmp));
  }
 
pd->x = fromd->x;

-- 




[EGIT] [core/efl] master 01/02: tests evas: remove commented out function which have not been used since 2014

2016-03-09 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit 312dd58889376d3f2a95b42f2d00e8e004ee85bb
Author: Stefan Schmidt 
Date:   Wed Mar 9 11:52:18 2016 +0100

tests evas: remove commented out function which have not been used since 
2014

It was already unused when it was disabled almost two years ago.
dbe02d593e2fed9ab774cebbeaf669c2de710600
Its about time to remove it.
---
 src/tests/evas/evas_test_image.c | 12 
 1 file changed, 12 deletions(-)

diff --git a/src/tests/evas/evas_test_image.c b/src/tests/evas/evas_test_image.c
index e56db7e..dc17da7 100644
--- a/src/tests/evas/evas_test_image.c
+++ b/src/tests/evas/evas_test_image.c
@@ -49,18 +49,6 @@ static const char *exts[] = {
 #endif
 };
 
-#if 0
-static const char *
-_test_image_get(const char *name)
-{
-   static char filename[PATH_MAX];
-
-   snprintf(filename, PATH_MAX, TESTS_IMG_DIR"/%s", name);
-
-   return filename;
-}
-#endif
-
 START_TEST(evas_object_image_loader)
 {
Evas *e = _setup_evas();

-- 




[EGIT] [core/efl] master 02/02: tests evas: enable xpm image loader in tests

2016-03-09 Thread Stefan Schmidt
stefan pushed a commit to branch master.

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

commit 2d0d2802bfaba6a98caa31537daf528449f1091a
Author: Stefan Schmidt 
Date:   Wed Mar 9 12:03:51 2016 +0100

tests evas: enable xpm image loader in tests

Added in 2014 and not enabled since then. This seems to be fixed now so we 
can
finally enable it.
---
 src/tests/evas/evas_test_image.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/src/tests/evas/evas_test_image.c b/src/tests/evas/evas_test_image.c
index dc17da7..aa7debb 100644
--- a/src/tests/evas/evas_test_image.c
+++ b/src/tests/evas/evas_test_image.c
@@ -22,12 +22,9 @@ static const char *exts[] = {
 #ifdef BUILD_LOADER_WBMP
   ,"wbmp"
 #endif
-  // FIXME: Seems like XPM support is currently broken
-#if 0
 #ifdef BUILD_LOADER_XPM
   ,"xpm"
 #endif
-#endif
 #ifdef BUILD_LOADER_BMP
   ,"bmp"
 #endif

-- 




[EGIT] [core/efl] master 02/02: ecore-drm: Don't re-include config.h

2016-03-09 Thread Chris Michael
devilhorns pushed a commit to branch master.

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

commit d4307e34943d16e4027bfec81aa038fbdce747db
Author: Chris Michael 
Date:   Wed Mar 9 08:27:05 2016 -0500

ecore-drm: Don't re-include config.h

As ecore_drm_private.h already includes config.h header, we don't need
to include it here in these files also

@fix

Signed-off-by: Chris Michael 
---
 src/lib/ecore_drm/ecore_drm.c | 4 
 src/lib/ecore_drm/ecore_drm_device.c  | 4 
 src/lib/ecore_drm/ecore_drm_evdev.c   | 4 
 src/lib/ecore_drm/ecore_drm_fb.c  | 4 
 src/lib/ecore_drm/ecore_drm_inputs.c  | 4 
 src/lib/ecore_drm/ecore_drm_output.c  | 4 
 src/lib/ecore_drm/ecore_drm_sprites.c | 4 
 7 files changed, 28 deletions(-)

diff --git a/src/lib/ecore_drm/ecore_drm.c b/src/lib/ecore_drm/ecore_drm.c
index f8ad1d5..4c92e88 100644
--- a/src/lib/ecore_drm/ecore_drm.c
+++ b/src/lib/ecore_drm/ecore_drm.c
@@ -26,10 +26,6 @@
  * DEALINGS IN THE SOFTWARE.
  */
 
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
 #include "ecore_drm_private.h"
 
 /* local variables */
diff --git a/src/lib/ecore_drm/ecore_drm_device.c 
b/src/lib/ecore_drm/ecore_drm_device.c
index 2b79834..27e4289 100644
--- a/src/lib/ecore_drm/ecore_drm_device.c
+++ b/src/lib/ecore_drm/ecore_drm_device.c
@@ -26,10 +26,6 @@
  * DEALINGS IN THE SOFTWARE.
  */
 
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
 #include "ecore_drm_private.h"
 #include 
 
diff --git a/src/lib/ecore_drm/ecore_drm_evdev.c 
b/src/lib/ecore_drm/ecore_drm_evdev.c
index 68f95b3..b389e5c 100644
--- a/src/lib/ecore_drm/ecore_drm_evdev.c
+++ b/src/lib/ecore_drm/ecore_drm_evdev.c
@@ -26,10 +26,6 @@
  * DEALINGS IN THE SOFTWARE.
  */
 
-#ifdef HAVE_CONFIG_H
-# include 
-#endif
-
 #include "ecore_drm_private.h"
 #include 
 #include 
diff --git a/src/lib/ecore_drm/ecore_drm_fb.c b/src/lib/ecore_drm/ecore_drm_fb.c
index d54ed40..f705fa2 100644
--- a/src/lib/ecore_drm/ecore_drm_fb.c
+++ b/src/lib/ecore_drm/ecore_drm_fb.c
@@ -26,10 +26,6 @@
  * DEALINGS IN THE SOFTWARE.
  */
 
-#ifdef HAVE_CONFIG_H
-# include 
-#endif
-
 #include "ecore_drm_private.h"
 
 /**
diff --git a/src/lib/ecore_drm/ecore_drm_inputs.c 
b/src/lib/ecore_drm/ecore_drm_inputs.c
index e1e6997..d0896ec 100644
--- a/src/lib/ecore_drm/ecore_drm_inputs.c
+++ b/src/lib/ecore_drm/ecore_drm_inputs.c
@@ -26,10 +26,6 @@
  * DEALINGS IN THE SOFTWARE.
  */
 
-#ifdef HAVE_CONFIG_H
-# include 
-#endif
-
 #include "ecore_drm_private.h"
 
 EAPI int ECORE_DRM_EVENT_SEAT_ADD = -1;
diff --git a/src/lib/ecore_drm/ecore_drm_output.c 
b/src/lib/ecore_drm/ecore_drm_output.c
index d625f8c..be926c6 100644
--- a/src/lib/ecore_drm/ecore_drm_output.c
+++ b/src/lib/ecore_drm/ecore_drm_output.c
@@ -26,10 +26,6 @@
  * DEALINGS IN THE SOFTWARE.
  */
 
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
 #include "ecore_drm_private.h"
 #include 
 
diff --git a/src/lib/ecore_drm/ecore_drm_sprites.c 
b/src/lib/ecore_drm/ecore_drm_sprites.c
index fad57e5..e8d807c 100644
--- a/src/lib/ecore_drm/ecore_drm_sprites.c
+++ b/src/lib/ecore_drm/ecore_drm_sprites.c
@@ -26,10 +26,6 @@
  * DEALINGS IN THE SOFTWARE.
  */
 
-#ifdef HAVE_CONFIG_H
-# include 
-#endif
-
 #include "ecore_drm_private.h"
 
 /**

-- 




  1   2   >