[EGIT] [website/www-content] master 01/01: Add Eflete link.
nikawhite pushed a commit to branch master. http://git.enlightenment.org/website/www-content.git/commit/?id=9355dd9b78306e5827207356eaf1d15a23ff8519 commit 9355dd9b78306e5827207356eaf1d15a23ff8519 Author: Mykyta BiliavskyiDate: 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
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=61c1d27c78c8b8a4b53c78290f920f7d2eff9019 commit 61c1d27c78c8b8a4b53c78290f920f7d2eff9019 Author: Jean-Philippe AndreDate: 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.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=dcfa337b8a4fb942341cba126bbe076775ab2ac6 commit dcfa337b8a4fb942341cba126bbe076775ab2ac6 Author: Cedric BAILDate: 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.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=da8287fa370bb579a4a592dd280ac5c8a6a25830 commit da8287fa370bb579a4a592dd280ac5c8a6a25830 Author: Cedric BAILDate: 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.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=641c6bc7f6d24ad93c4ab854706f3632ff1d13e9 commit 641c6bc7f6d24ad93c4ab854706f3632ff1d13e9 Author: Cedric BAILDate: 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
ajwillia-ms pushed a commit to branch master. http://git.enlightenment.org/tools/edi.git/commit/?id=b3a9bd0f2ca85f8f7d228d9aa306871313a80950 commit b3a9bd0f2ca85f8f7d228d9aa306871313a80950 Author: Andy WilliamsDate: 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
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=3666d14980c1059ebb25d57756bc04abef27b7d7 commit 3666d14980c1059ebb25d57756bc04abef27b7d7 Author: Stefan SchmidtDate: 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
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b0c28953b327b4dd96570d6abd8d64ca939c8c32 commit b0c28953b327b4dd96570d6abd8d64ca939c8c32 Author: Stefan SchmidtDate: 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
vitorsousa pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=7973126165912d5239cbc1b1b9ff851fc12aac1b commit 7973126165912d5239cbc1b1b9ff851fc12aac1b Author: Vitor SousaDate: 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
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=2017eda0bc794c47f1f3bbfe66ba27bac212 commit 2017eda0bc794c47f1f3bbfe66ba27bac212 Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=8e077745bca8ae452f13d5f35ab9678a0ac6c355 commit 8e077745bca8ae452f13d5f35ab9678a0ac6c355 Author: Mike BlumenkrantzDate: 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
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=96085feb6d378d1e5a57bee1aad4e0070770cde0 commit 96085feb6d378d1e5a57bee1aad4e0070770cde0 Author: Chris MichaelDate: 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
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=fcf3bf8a5c46265d3cf92539d21540acd7c5a23e commit fcf3bf8a5c46265d3cf92539d21540acd7c5a23e Author: Mike BlumenkrantzDate: 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
vitorsousa pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=48f62ad686d11c97ec62b1ba528262edf39cafbf commit 48f62ad686d11c97ec62b1ba528262edf39cafbf Author: Vitor SousaDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=02c0612faf1b605ef67445f86031ae806cad81f5 commit 02c0612faf1b605ef67445f86031ae806cad81f5 Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=65485742b59e5dc757e23c575bdc6859f3864c52 commit 65485742b59e5dc757e23c575bdc6859f3864c52 Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=c7027d4f444dcdce34baf98787c9a2140c10 commit c7027d4f444dcdce34baf98787c9a2140c10 Author: Derek ForemanDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=d3d36092c7abc97815bd0354947573b926c4460d commit d3d36092c7abc97815bd0354947573b926c4460d Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=f546997405271ee1c4e75d34a293813b607f149f commit f546997405271ee1c4e75d34a293813b607f149f Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=a04a93e5ef798caccf723519ae8088cca25500ec commit a04a93e5ef798caccf723519ae8088cca25500ec Author: Mike BlumenkrantzDate: 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
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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=b1a5eeeb0c3fdfadfb40b8183535e054909f0f6b commit b1a5eeeb0c3fdfadfb40b8183535e054909f0f6b Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=a8ecf89bd66f2e6d5b6cdfcf43fbebb2517bcce3 commit a8ecf89bd66f2e6d5b6cdfcf43fbebb2517bcce3 Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=f31e540140be054c0d53d16ee0f5dadc53644b4f commit f31e540140be054c0d53d16ee0f5dadc53644b4f Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=0a557c8d05e60aa73bdc8241e02b7ba2b8b0176a commit 0a557c8d05e60aa73bdc8241e02b7ba2b8b0176a Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=c9b720cccd280879c7f9a6b565ad5773c12f1efe commit c9b720cccd280879c7f9a6b565ad5773c12f1efe Author: Derek ForemanDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=d3b6e7a21910d208138437db3bb242c627d88f4f commit d3b6e7a21910d208138437db3bb242c627d88f4f Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=263774c4a1192a8c4409bb788ae34c6ea28e4823 commit 263774c4a1192a8c4409bb788ae34c6ea28e4823 Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=2ec02258ec58ec16292d8ef0d69ba7b61b599246 commit 2ec02258ec58ec16292d8ef0d69ba7b61b599246 Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=c50aa176e8119f9bbd0376626e275241c81677ad commit c50aa176e8119f9bbd0376626e275241c81677ad Author: Mike BlumenkrantzDate: 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)
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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=d44d33495308c4aea5605c106948c6507b414a28 commit d44d33495308c4aea5605c106948c6507b414a28 Author: Derek ForemanDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=c24de2a210c6b2dd33ebd5e8ef9779abecc51336 commit c24de2a210c6b2dd33ebd5e8ef9779abecc51336 Author: Mike BlumenkrantzDate: 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()
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=4a408dfdbc94d1e11c3b37459477da032ad3c8bd commit 4a408dfdbc94d1e11c3b37459477da032ad3c8bd Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=7a7c57c2b8ca4e1f49a87b43ea1adca7d02ca412 commit 7a7c57c2b8ca4e1f49a87b43ea1adca7d02ca412 Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=0b8cf7f959cbd10385bfa954b07ec2351369009b commit 0b8cf7f959cbd10385bfa954b07ec2351369009b Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=f9d997980095c1eb3456379635ba81739fc2ee23 commit f9d997980095c1eb3456379635ba81739fc2ee23 Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=6f7ed23bc9506d938d5b9bfe75666a3b736628db commit 6f7ed23bc9506d938d5b9bfe75666a3b736628db Author: Derek ForemanDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=5580a040abfec6f5bdd21464cc982cbd13591c67 commit 5580a040abfec6f5bdd21464cc982cbd13591c67 Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=a346c622b638b80e78dd5321d2668acd4095b4e2 commit a346c622b638b80e78dd5321d2668acd4095b4e2 Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=d38cc38b9d9f5feb292d2d8d0d0a660dd5739432 commit d38cc38b9d9f5feb292d2d8d0d0a660dd5739432 Author: Derek ForemanDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=7aef5e74fde0a3d53a0f10f30fb38f363a593ece commit 7aef5e74fde0a3d53a0f10f30fb38f363a593ece Author: Derek ForemanDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=b7f1fa0b538bb2205aab858e19d77e64a0784fb3 commit b7f1fa0b538bb2205aab858e19d77e64a0784fb3 Author: Chris MichaelDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=2e819fef1762570fa3b33ffe84731c4fb1e0b49a commit 2e819fef1762570fa3b33ffe84731c4fb1e0b49a Author: Mike BlumenkrantzDate: 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
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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=169727db4d57500bf92a9ddccd41759684bbf8ce commit 169727db4d57500bf92a9ddccd41759684bbf8ce Author: Mike BlumenkrantzDate: 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)
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=42ff50a5840cff68c582641cb5a19a271cd3d17c commit 42ff50a5840cff68c582641cb5a19a271cd3d17c Author: Mike BlumenkrantzDate: 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"
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=d83621f7e40c58d8266dea7fb4b88e20bfc9ddfe commit d83621f7e40c58d8266dea7fb4b88e20bfc9ddfe Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=5979808c8090406188dc115fba57bd0f2b17a5a8 commit 5979808c8090406188dc115fba57bd0f2b17a5a8 Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=440d9ceb81577e085c59d27f6bdcea83a104c773 commit 440d9ceb81577e085c59d27f6bdcea83a104c773 Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=55fc7f496152f9a23da99f8dc1ef33c328665e81 commit 55fc7f496152f9a23da99f8dc1ef33c328665e81 Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=ad873f03ab8291adc51cc5650dd584b79f72892a commit ad873f03ab8291adc51cc5650dd584b79f72892a Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=0959e59413233e427e587e2a69dee571740630bf commit 0959e59413233e427e587e2a69dee571740630bf Author: Derek ForemanDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=bd6b99bd302343a8ef393c59921527c9621f5042 commit bd6b99bd302343a8ef393c59921527c9621f5042 Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=71433691da9894fa7d014d13e3379357c9e67249 commit 71433691da9894fa7d014d13e3379357c9e67249 Author: Derek ForemanDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=4ba7648c414cf31992cb76ac96d1862d8b4e2537 commit 4ba7648c414cf31992cb76ac96d1862d8b4e2537 Author: Derek ForemanDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=791953e1b7ad5a7a37efe291f3e1265bd6fa3926 commit 791953e1b7ad5a7a37efe291f3e1265bd6fa3926 Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=ee43c83c7d839516fca02ab6ad6cfafd5ca67927 commit ee43c83c7d839516fca02ab6ad6cfafd5ca67927 Author: Derek ForemanDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=4e1d7e3854f5eed893bb26bb920bd9acc15d59c7 commit 4e1d7e3854f5eed893bb26bb920bd9acc15d59c7 Author: Derek ForemanDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=388ec769c054d95c414e6be96b421dda6bba30f0 commit 388ec769c054d95c414e6be96b421dda6bba30f0 Author: Derek ForemanDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=dddf8c5f1e4e51a3221a809a0df43011ec664918 commit dddf8c5f1e4e51a3221a809a0df43011ec664918 Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=c97b52b02c5d75d3c38d5acb05574df6b44dff8a commit c97b52b02c5d75d3c38d5acb05574df6b44dff8a Author: Chris MichaelDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=b113fd96fb45ba5083c0da34998e777fb53f7c66 commit b113fd96fb45ba5083c0da34998e777fb53f7c66 Author: Chris MichaelDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=1c0e13c575e297c5eeece4fd9dd7d717961a6564 commit 1c0e13c575e297c5eeece4fd9dd7d717961a6564 Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=caf795834ebcd9ddc92ed678b1725d7fe3c177f9 commit caf795834ebcd9ddc92ed678b1725d7fe3c177f9 Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=32921f57f3956c9b6f2c697580e0676f87d0be3d commit 32921f57f3956c9b6f2c697580e0676f87d0be3d Author: Chris MichaelDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=85b24335595f708a331e3877bf0fe6d6130e2ba7 commit 85b24335595f708a331e3877bf0fe6d6130e2ba7 Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=20303989de20a837f6a7863f442feb9686f0408b commit 20303989de20a837f6a7863f442feb9686f0408b Author: Derek ForemanDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=4619114ea77e32282389d5d635455c4656c20cc5 commit 4619114ea77e32282389d5d635455c4656c20cc5 Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=53941a7dc0f97ec490bb84eba48848f13038a906 commit 53941a7dc0f97ec490bb84eba48848f13038a906 Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=0de37612bbb011e63a1ff83cb28eaaa9d77fad9a commit 0de37612bbb011e63a1ff83cb28eaaa9d77fad9a Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=21ab21d5513f95dcba48cf3741b73784a8ba62d9 commit 21ab21d5513f95dcba48cf3741b73784a8ba62d9 Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=cf0d1eba9c59e0f670987f106ab9e27efa756964 commit cf0d1eba9c59e0f670987f106ab9e27efa756964 Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=51365e879ed4b8ba804f519cf882c7a318992af8 commit 51365e879ed4b8ba804f519cf882c7a318992af8 Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=f009e7c75230118bf136257f5ea526eebd5ec46e commit f009e7c75230118bf136257f5ea526eebd5ec46e Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=5143ed69de2036f26eabe1762e2557a1e4fd7d52 commit 5143ed69de2036f26eabe1762e2557a1e4fd7d52 Author: Derek ForemanDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=aa58760e2903ff7b8b06fc1fd3f6cef6a780e68e commit aa58760e2903ff7b8b06fc1fd3f6cef6a780e68e Author: Chris MichaelDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=2e692ace583ce93c3de2027f6d418b0850271c3e commit 2e692ace583ce93c3de2027f6d418b0850271c3e Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=2904c7a6116c3bb19eb0577ccea275ca390c0ac3 commit 2904c7a6116c3bb19eb0577ccea275ca390c0ac3 Author: Derek ForemanDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=e8c332071261f43533553c9cec07aebf404cc8e3 commit e8c332071261f43533553c9cec07aebf404cc8e3 Author: Derek ForemanDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=f8be94f19eb6b675172e747cafff995dc67a18c5 commit f8be94f19eb6b675172e747cafff995dc67a18c5 Author: Derek ForemanDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=209cf8f9d775bf272722aa419d617a5f06db3497 commit 209cf8f9d775bf272722aa419d617a5f06db3497 Author: Derek ForemanDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=1a6dac4677e550b639a1d986770b5d144dcd3034 commit 1a6dac4677e550b639a1d986770b5d144dcd3034 Author: Derek ForemanDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=98b124850e3b6f813d8c44d3cdd18c5caaabb65e commit 98b124850e3b6f813d8c44d3cdd18c5caaabb65e Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=1a71696c3a6b344d75461f31ed46b50335fd158e commit 1a71696c3a6b344d75461f31ed46b50335fd158e Author: Mike BlumenkrantzDate: 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
discomfitor pushed a commit to branch enlightenment-0.20. http://git.enlightenment.org/core/enlightenment.git/commit/?id=048eed94021f3989fda19a0a3b4ac4040793ef03 commit 048eed94021f3989fda19a0a3b4ac4040793ef03 Author: Mike BlumenkrantzDate: 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
kuuko pushed a commit to branch master. http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=77d023dfe1fecfc980968c91bd8e170b06539e15 commit 77d023dfe1fecfc980968c91bd8e170b06539e15 Author: Kai HuuhkoDate: 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.
tasn pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=d2fba6c5959f82f35984167131d3b67207780f48 commit d2fba6c5959f82f35984167131d3b67207780f48 Author: Tom HacohenDate: 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.
tasn pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6594ba0b6df9ba72f031a00d0e8ba3b23cf2c0b2 commit 6594ba0b6df9ba72f031a00d0e8ba3b23cf2c0b2 Author: Tom HacohenDate: 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
discomfitor pushed a commit to branch master. http://git.enlightenment.org/enlightenment/modules/desksanity.git/commit/?id=35b323adfd757d8fdaf42595c077866a5e1d1ec0 commit 35b323adfd757d8fdaf42595c077866a5e1d1ec0 Author: Mike BlumenkrantzDate: 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.
tasn pushed a commit to branch master. http://git.enlightenment.org/tools/expedite.git/commit/?id=1c99584bcb72aabedfb7e9696bae1661c14ddd0c commit 1c99584bcb72aabedfb7e9696bae1661c14ddd0c Author: Tom HacohenDate: 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.
tasn pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=de897d633f58b81a3b73c0af3ff3c586fdeb8056 commit de897d633f58b81a3b73c0af3ff3c586fdeb8056 Author: Tom HacohenDate: 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.
tasn pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=d1a1819813d74361b25fd5c1123f7ac76be9b84f commit d1a1819813d74361b25fd5c1123f7ac76be9b84f Author: Tom HacohenDate: 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.
tasn pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=90e465317d10ca01ff39824e56828ee983f7ae41 commit 90e465317d10ca01ff39824e56828ee983f7ae41 Author: Tom HacohenDate: 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.
tasn pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=b85bb3718389470bfc78c079dd5e06def5e963f3 commit b85bb3718389470bfc78c079dd5e06def5e963f3 Author: Tom HacohenDate: 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.
tasn pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=df83edaeb6b10324868f28e8f1910147ba22e5e5 commit df83edaeb6b10324868f28e8f1910147ba22e5e5 Author: Tom HacohenDate: 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.
tasn pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6ac1fb78d855be27d28378a659887b693e5fb266 commit 6ac1fb78d855be27d28378a659887b693e5fb266 Author: Tom HacohenDate: 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
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=312dd58889376d3f2a95b42f2d00e8e004ee85bb commit 312dd58889376d3f2a95b42f2d00e8e004ee85bb Author: Stefan SchmidtDate: 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
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=2d0d2802bfaba6a98caa31537daf528449f1091a commit 2d0d2802bfaba6a98caa31537daf528449f1091a Author: Stefan SchmidtDate: 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
devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=d4307e34943d16e4027bfec81aa038fbdce747db commit d4307e34943d16e4027bfec81aa038fbdce747db Author: Chris MichaelDate: 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" /** --