[EGIT] [core/efl] master 02/04: elm: rename Elm.Interface.Atspi.Window => Efl.Access.Window
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=dfd17229fd30f81b741ebd5689ed2c1c113c188b commit dfd17229fd30f81b741ebd5689ed2c1c113c188b Author: Lukasz Stanislawski Date: Tue Sep 12 15:48:10 2017 +0900 elm: rename Elm.Interface.Atspi.Window => Efl.Access.Window Reviewers: cedric, jpeg Subscribers: cedric, jpeg Differential Revision: https://phab.enlightenment.org/D5162 --- src/Makefile_Elementary.am | 6 +-- ...nterface_atspi_window.c => efl_access_window.c} | 2 +- ...erface_atspi_window.eo => efl_access_window.eo} | 4 +- src/lib/elementary/efl_access_window.h | 56 ++ src/lib/elementary/efl_ui_win.c| 28 +-- src/lib/elementary/efl_ui_win.eo | 2 +- src/lib/elementary/elementary_js.cc| 4 +- src/lib/elementary/elm_atspi_bridge.c | 28 +-- src/lib/elementary/elm_interface_atspi_window.h| 56 -- src/lib/elementary/elm_interfaces.h| 2 +- 10 files changed, 94 insertions(+), 94 deletions(-) diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am index 514ec64b87..b83a07cb23 100644 --- a/src/Makefile_Elementary.am +++ b/src/Makefile_Elementary.am @@ -37,7 +37,7 @@ elm_public_eolian_files = \ lib/elementary/elm_interface_atspi_text.eo \ lib/elementary/efl_access_value.eo \ lib/elementary/elm_interface_atspi_widget_action.eo \ - lib/elementary/elm_interface_atspi_window.eo \ + lib/elementary/efl_access_window.eo \ lib/elementary/elm_interface_fileselector.eo \ lib/elementary/elm_interface_scrollable.eo \ lib/elementary/elm_label.eo \ @@ -220,7 +220,7 @@ includesunstable_HEADERS = \ lib/elementary/elm_interface_atspi_accessible.h \ lib/elementary/elm_interface_atspi_text.h \ lib/elementary/elm_interface_atspi_widget_action.h \ - lib/elementary/elm_interface_atspi_window.h \ + lib/elementary/efl_access_window.h \ lib/elementary/elm_interface_fileselector.h \ lib/elementary/elm_interface_scrollable.h \ lib/elementary/elm_interfaces.h \ @@ -618,7 +618,7 @@ lib_elementary_libelementary_la_SOURCES = \ lib/elementary/elm_interface_atspi_text.c \ lib/elementary/efl_access_value.c \ lib/elementary/elm_interface_atspi_widget_action.c \ - lib/elementary/elm_interface_atspi_window.c \ + lib/elementary/efl_access_window.c \ lib/elementary/elm_interface_fileselector.c \ lib/elementary/elm_interface_scrollable.c \ lib/elementary/elm_inwin.c \ diff --git a/src/lib/elementary/elm_interface_atspi_window.c b/src/lib/elementary/efl_access_window.c similarity index 75% rename from src/lib/elementary/elm_interface_atspi_window.c rename to src/lib/elementary/efl_access_window.c index 7ef0c18b29..48d0dfd2c2 100644 --- a/src/lib/elementary/elm_interface_atspi_window.c +++ b/src/lib/elementary/efl_access_window.c @@ -6,4 +6,4 @@ #include "elm_widget.h" #include "elm_priv.h" -#include "elm_interface_atspi_window.eo.c" +#include "efl_access_window.eo.c" diff --git a/src/lib/elementary/elm_interface_atspi_window.eo b/src/lib/elementary/efl_access_window.eo similarity index 86% rename from src/lib/elementary/elm_interface_atspi_window.eo rename to src/lib/elementary/efl_access_window.eo index 08f885b04c..2fcb738b60 100644 --- a/src/lib/elementary/elm_interface_atspi_window.eo +++ b/src/lib/elementary/efl_access_window.eo @@ -1,6 +1,6 @@ -interface Elm.Interface.Atspi.Window () +interface Efl.Access.Window () { - [[Elementary AT-SPI window interface]] + [[Elementary accessible window interface]] events { window,created; [[Called when new window has been created.]] window,destroyed; [[Called when window has been destroyed.]] diff --git a/src/lib/elementary/efl_access_window.h b/src/lib/elementary/efl_access_window.h new file mode 100644 index 00..5e2b6c82d7 --- /dev/null +++ b/src/lib/elementary/efl_access_window.h @@ -0,0 +1,56 @@ +#ifndef EFL_ACCESS_WINDOW_H +#define EFL_ACCESS_WINDOW_H + +#ifdef EFL_BETA_API_SUPPORT +#ifdef EFL_EO_API_SUPPORT + +#include "efl_access_window.eo.h" +#endif +#ifndef EFL_NOLEGACY_API_SUPPORT +#include "efl_access_window.eo.legacy.h" +#endif + +/** + * Emits 'Window:Activated' accessible signal. + */ +#define efl_access_window_activated_signal_emit(obj) \ + elm_interface_atspi_accessible_event_emit(ELM_INTERFACE_ATSPI_ACCESSIBLE_MIXIN, obj, EFL_ACCESS_WINDOW_EVENT_WINDOW_ACTIVATED, NULL); + +/** + * Emits 'Window:Deactivated' accessible signal. + */ +#define efl_access_window_deactivated_signal_emit(obj) \ + elm_interface_atspi_accessible_event_emit(ELM_INTERFACE_ATSPI_ACCESSIBLE_MIXIN, obj, EFL_ACCESS_WINDOW_EVENT_WINDOW_DEACTIVATED, NULL); + +/** + * Emits 'Window:Created' accessible signal. + */ +#define efl_acc
[EGIT] [core/efl] master 04/04: elm: rename Elm.Interface.Atspi.Component => Efl.Access.Component
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=9cf8e756686b1e339ccd2505fbcfac4f579903a6 commit 9cf8e756686b1e339ccd2505fbcfac4f579903a6 Author: Lukasz Stanislawski Date: Tue Sep 12 15:49:29 2017 +0900 elm: rename Elm.Interface.Atspi.Component => Efl.Access.Component Reviewers: jpeg, cedric Differential Revision: https://phab.enlightenment.org/D5164 --- src/Makefile_Elementary.am | 4 +- ...ce_atspi_component.c => efl_access_component.c} | 46 +++--- ..._atspi_component.eo => efl_access_component.eo} | 3 +- src/lib/elementary/efl_ui_win.c| 4 +- src/lib/elementary/efl_ui_win.eo | 4 +- src/lib/elementary/elm_atspi_bridge.c | 46 +++--- src/lib/elementary/elm_colorselector.c | 2 +- src/lib/elementary/elm_index.c | 2 +- src/lib/elementary/elm_interfaces.h| 4 +- src/lib/elementary/elm_widget.c| 14 +++ src/lib/elementary/elm_widget.eo | 4 +- src/lib/elementary/elm_widget_item.eo | 10 ++--- 12 files changed, 71 insertions(+), 72 deletions(-) diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am index 04331a3582..f1eb3fd8b7 100644 --- a/src/Makefile_Elementary.am +++ b/src/Makefile_Elementary.am @@ -30,7 +30,7 @@ elm_public_eolian_files = \ lib/elementary/elm_index.eo \ lib/elementary/elm_interface_atspi_accessible.eo \ lib/elementary/elm_interface_atspi_action.eo \ - lib/elementary/elm_interface_atspi_component.eo \ + lib/elementary/efl_access_component.eo \ lib/elementary/elm_interface_atspi_text_editable.eo \ lib/elementary/efl_access_image.eo \ lib/elementary/elm_interface_atspi_selection.eo \ @@ -611,7 +611,7 @@ lib_elementary_libelementary_la_SOURCES = \ lib/elementary/elm_index.c \ lib/elementary/elm_interface_atspi_accessible.c \ lib/elementary/elm_interface_atspi_action.c \ - lib/elementary/elm_interface_atspi_component.c \ + lib/elementary/efl_access_component.c \ lib/elementary/elm_interface_atspi_text_editable.c \ lib/elementary/efl_access_image.c \ lib/elementary/elm_interface_atspi_selection.c \ diff --git a/src/lib/elementary/elm_interface_atspi_component.c b/src/lib/elementary/efl_access_component.c similarity index 51% rename from src/lib/elementary/elm_interface_atspi_component.c rename to src/lib/elementary/efl_access_component.c index e2d8ccab87..6a4e1566ab 100644 --- a/src/lib/elementary/elm_interface_atspi_component.c +++ b/src/lib/elementary/efl_access_component.c @@ -2,7 +2,7 @@ # include "elementary_config.h" #endif -#define ELM_INTERFACE_ATSPI_COMPONENT_PROTECTED +#define EFL_ACCESS_COMPONENT_PROTECTED #define ELM_INTERFACE_ATSPI_ACCESSIBLE_PROTECTED #include @@ -11,46 +11,46 @@ EOLIAN static void -_elm_interface_atspi_component_position_get(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, Eina_Bool type, int *x, int *y) +_efl_access_component_position_get(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, Eina_Bool type, int *x, int *y) { - elm_interface_atspi_component_extents_get(obj, type, x, y, NULL, NULL); + efl_access_component_extents_get(obj, type, x, y, NULL, NULL); } EOLIAN static Eina_Bool -_elm_interface_atspi_component_position_set(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, Eina_Bool type, int x, int y) +_efl_access_component_position_set(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, Eina_Bool type, int x, int y) { Eina_Bool ret = EINA_FALSE; int c_w, c_h; - elm_interface_atspi_component_extents_get(obj, type, NULL, NULL, &c_w, &c_h); - ret = elm_interface_atspi_component_extents_set(obj, type, x, y, c_w, c_h); + efl_access_component_extents_get(obj, type, NULL, NULL, &c_w, &c_h); + ret = efl_access_component_extents_set(obj, type, x, y, c_w, c_h); return ret; } EOLIAN static Eina_Bool -_elm_interface_atspi_component_size_set(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, int w, int h) +_efl_access_component_size_set(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, int w, int h) { Eina_Bool ret; int c_x = 0, c_y = 0; - elm_interface_atspi_component_extents_get(obj, EINA_FALSE, &c_x, &c_y, NULL, NULL); - ret = elm_interface_atspi_component_extents_set(obj, EINA_FALSE, c_x, c_y, w, h); + efl_access_component_extents_get(obj, EINA_FALSE, &c_x, &c_y, NULL, NULL); + ret = efl_access_component_extents_set(obj, EINA_FALSE, c_x, c_y, w, h); return ret; } EOLIAN static void -_elm_interface_atspi_component_size_get(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, int *w, int *h) +_efl_access_component_size_get(Eo *obj EINA_UNUSED, void *_pd EINA_UNUSED, int *w, int *h) { - elm_interface_atspi_component_extents_get(obj, EINA_FALSE, NULL, NULL, w, h); + efl_access_component_extents_get(obj
[EGIT] [core/efl] master 01/04: elm: rename Elm.Interface.Atspi.Value => Efl.Access.Value
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=9f7786544ecf2d3ec8a88aa756433ee8aedb3190 commit 9f7786544ecf2d3ec8a88aa756433ee8aedb3190 Author: Lukasz Stanislawski Date: Tue Sep 12 15:36:24 2017 +0900 elm: rename Elm.Interface.Atspi.Value => Efl.Access.Value Reviewers: jpeg, cedric, stanluk Subscribers: cedric, jpeg Differential Revision: https://phab.enlightenment.org/D5161 --- src/Makefile_Elementary.am | 4 ++-- ...lm_interface_atspi_value.c => efl_access_value.c} | 4 ++-- ..._interface_atspi_value.eo => efl_access_value.eo} | 5 ++--- src/lib/elementary/efl_ui_slider.c | 10 +- src/lib/elementary/efl_ui_slider.eo | 8 src/lib/elementary/elm_atspi_bridge.c| 20 ++-- src/lib/elementary/elm_interface_atspi_selection.c | 2 +- src/lib/elementary/elm_interfaces.h | 4 ++-- src/lib/elementary/elm_spinner.c | 10 +- src/lib/elementary/elm_spinner.eo| 8 10 files changed, 37 insertions(+), 38 deletions(-) diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am index ad50ab466b..514ec64b87 100644 --- a/src/Makefile_Elementary.am +++ b/src/Makefile_Elementary.am @@ -35,7 +35,7 @@ elm_public_eolian_files = \ lib/elementary/elm_interface_atspi_image.eo \ lib/elementary/elm_interface_atspi_selection.eo \ lib/elementary/elm_interface_atspi_text.eo \ - lib/elementary/elm_interface_atspi_value.eo \ + lib/elementary/efl_access_value.eo \ lib/elementary/elm_interface_atspi_widget_action.eo \ lib/elementary/elm_interface_atspi_window.eo \ lib/elementary/elm_interface_fileselector.eo \ @@ -616,7 +616,7 @@ lib_elementary_libelementary_la_SOURCES = \ lib/elementary/elm_interface_atspi_image.c \ lib/elementary/elm_interface_atspi_selection.c \ lib/elementary/elm_interface_atspi_text.c \ - lib/elementary/elm_interface_atspi_value.c \ + lib/elementary/efl_access_value.c \ lib/elementary/elm_interface_atspi_widget_action.c \ lib/elementary/elm_interface_atspi_window.c \ lib/elementary/elm_interface_fileselector.c \ diff --git a/src/lib/elementary/elm_interface_atspi_value.c b/src/lib/elementary/efl_access_value.c similarity index 60% rename from src/lib/elementary/elm_interface_atspi_value.c rename to src/lib/elementary/efl_access_value.c index f51a0a9a43..76e52864a8 100644 --- a/src/lib/elementary/elm_interface_atspi_value.c +++ b/src/lib/elementary/efl_access_value.c @@ -2,10 +2,10 @@ #include "elementary_config.h" #endif -#define ELM_INTERFACE_ATSPI_VALUE_PROTECTED +#define EFL_ACCESS_VALUE_PROTECTED #include #include "elm_widget.h" #include "elm_priv.h" -#include "elm_interface_atspi_value.eo.c" +#include "efl_access_value.eo.c" diff --git a/src/lib/elementary/elm_interface_atspi_value.eo b/src/lib/elementary/efl_access_value.eo similarity index 89% rename from src/lib/elementary/elm_interface_atspi_value.eo rename to src/lib/elementary/efl_access_value.eo index ece76937a9..c6c344496b 100644 --- a/src/lib/elementary/elm_interface_atspi_value.eo +++ b/src/lib/elementary/efl_access_value.eo @@ -1,7 +1,6 @@ -interface Elm.Interface.Atspi.Value () +interface Efl.Access.Value () { - [[Elementary AT-SPI value interface]] - eo_prefix: elm_interface_atspi_value; + [[Elementary Access value interface]] methods { @property value_and_text @protected { [[Value and text property]] diff --git a/src/lib/elementary/efl_ui_slider.c b/src/lib/elementary/efl_ui_slider.c index 4382bdc43c..9279ed9bda 100644 --- a/src/lib/elementary/efl_ui_slider.c +++ b/src/lib/elementary/efl_ui_slider.c @@ -4,7 +4,7 @@ #define ELM_INTERFACE_ATSPI_ACCESSIBLE_PROTECTED #define ELM_INTERFACE_ATSPI_WIDGET_ACTION_PROTECTED -#define ELM_INTERFACE_ATSPI_VALUE_PROTECTED +#define EFL_ACCESS_VALUE_PROTECTED #define ELM_LAYOUT_PROTECTED #include @@ -1500,14 +1500,14 @@ _efl_ui_slider_class_constructor(Efl_Class *klass) // A11Y Accessibility EOLIAN static void -_efl_ui_slider_elm_interface_atspi_value_value_and_text_get(Eo *obj EINA_UNUSED, Efl_Ui_Slider_Data *sd, double *value, const char **text) +_efl_ui_slider_efl_access_value_value_and_text_get(Eo *obj EINA_UNUSED, Efl_Ui_Slider_Data *sd, double *value, const char **text) { if (value) *value = sd->val; if (text) *text = NULL; } EOLIAN static Eina_Bool -_efl_ui_slider_elm_interface_atspi_value_value_and_text_set(Eo *obj, Efl_Ui_Slider_Data *sd, double value, const char *text EINA_UNUSED) +_efl_ui_slider_efl_access_value_value_and_text_set(Eo *obj, Efl_Ui_Slider_Data *sd, double value, const char *text EINA_UNUSED) { double oldval = sd->val; @@ -1525,7 +1525,7 @@ _efl_ui_slider_elm_interface_atspi_value_value_and_text_set(Eo *obj, Efl_U
[EGIT] [core/efl] master 03/04: elm: rename Elm.Interface.Atspi.Image => Efl.Access.Image
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=a55f2c96d4953b1a95b4c7aa3a094a9d19f4a7d1 commit a55f2c96d4953b1a95b4c7aa3a094a9d19f4a7d1 Author: Lukasz Stanislawski Date: Tue Sep 12 15:48:39 2017 +0900 elm: rename Elm.Interface.Atspi.Image => Efl.Access.Image Reviewers: jpeg, cedric Differential Revision: https://phab.enlightenment.org/D5163 --- src/Makefile_Elementary.am | 4 ++-- ..._interface_atspi_image.c => efl_access_image.c} | 10 +- ...nterface_atspi_image.eo => efl_access_image.eo} | 5 ++--- src/lib/elementary/efl_ui_image.c | 4 ++-- src/lib/elementary/efl_ui_image.eo | 4 ++-- src/lib/elementary/elm_atspi_bridge.c | 22 +++--- src/lib/elementary/elm_interfaces.h| 4 ++-- 7 files changed, 26 insertions(+), 27 deletions(-) diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am index b83a07cb23..04331a3582 100644 --- a/src/Makefile_Elementary.am +++ b/src/Makefile_Elementary.am @@ -32,7 +32,7 @@ elm_public_eolian_files = \ lib/elementary/elm_interface_atspi_action.eo \ lib/elementary/elm_interface_atspi_component.eo \ lib/elementary/elm_interface_atspi_text_editable.eo \ - lib/elementary/elm_interface_atspi_image.eo \ + lib/elementary/efl_access_image.eo \ lib/elementary/elm_interface_atspi_selection.eo \ lib/elementary/elm_interface_atspi_text.eo \ lib/elementary/efl_access_value.eo \ @@ -613,7 +613,7 @@ lib_elementary_libelementary_la_SOURCES = \ lib/elementary/elm_interface_atspi_action.c \ lib/elementary/elm_interface_atspi_component.c \ lib/elementary/elm_interface_atspi_text_editable.c \ - lib/elementary/elm_interface_atspi_image.c \ + lib/elementary/efl_access_image.c \ lib/elementary/elm_interface_atspi_selection.c \ lib/elementary/elm_interface_atspi_text.c \ lib/elementary/efl_access_value.c \ diff --git a/src/lib/elementary/elm_interface_atspi_image.c b/src/lib/elementary/efl_access_image.c similarity index 74% rename from src/lib/elementary/elm_interface_atspi_image.c rename to src/lib/elementary/efl_access_image.c index 510a6545c2..73e8553541 100644 --- a/src/lib/elementary/elm_interface_atspi_image.c +++ b/src/lib/elementary/efl_access_image.c @@ -2,7 +2,7 @@ #include "elementary_config.h" #endif -#define ELM_INTERFACE_ATSPI_IMAGE_PROTECTED +#define EFL_ACCESS_IMAGE_PROTECTED #include #include "elm_widget.h" @@ -15,7 +15,7 @@ _free_desc_cb(void *data, const Efl_Event *event EINA_UNUSED) } EOLIAN static const char* -_elm_interface_atspi_image_description_get(Eo *obj, void *sd EINA_UNUSED) +_efl_access_image_description_get(Eo *obj, void *sd EINA_UNUSED) { const char *descr = NULL; @@ -24,7 +24,7 @@ _elm_interface_atspi_image_description_get(Eo *obj, void *sd EINA_UNUSED) } EOLIAN static void -_elm_interface_atspi_image_description_set(Eo *obj, void *sd EINA_UNUSED, const char *description) +_efl_access_image_description_set(Eo *obj, void *sd EINA_UNUSED, const char *description) { const char *key = "atspi_image_description"; const char *descr = eina_stringshare_add(description); @@ -43,11 +43,11 @@ _elm_interface_atspi_image_description_set(Eo *obj, void *sd EINA_UNUSED, const } EOLIAN static const char* -_elm_interface_atspi_image_locale_get(Eo *obj EINA_UNUSED, void *sd EINA_UNUSED) +_efl_access_image_locale_get(Eo *obj EINA_UNUSED, void *sd EINA_UNUSED) { // by default assume that descriptions are given in language of current // locale. return getenv("LANG"); } -#include "elm_interface_atspi_image.eo.c" +#include "efl_access_image.eo.c" diff --git a/src/lib/elementary/elm_interface_atspi_image.eo b/src/lib/elementary/efl_access_image.eo similarity index 89% rename from src/lib/elementary/elm_interface_atspi_image.eo rename to src/lib/elementary/efl_access_image.eo index a3e76498f5..adfc607d02 100644 --- a/src/lib/elementary/elm_interface_atspi_image.eo +++ b/src/lib/elementary/efl_access_image.eo @@ -1,7 +1,6 @@ -mixin Elm.Interface.Atspi_Image () +mixin Efl.Access.Image () { - [[AT-SPI image mixin]] - eo_prefix: elm_interface_atspi_image; + [[Accessible image mixin]] data: null; methods { @property extents @protected { diff --git a/src/lib/elementary/efl_ui_image.c b/src/lib/elementary/efl_ui_image.c index c62ae92f3a..b8f0486241 100644 --- a/src/lib/elementary/efl_ui_image.c +++ b/src/lib/elementary/efl_ui_image.c @@ -2,7 +2,7 @@ # include "elementary_config.h" #endif -#define ELM_INTERFACE_ATSPI_IMAGE_PROTECTED +#define EFL_ACCESS_IMAGE_PROTECTED #define ELM_INTERFACE_ATSPI_ACCESSIBLE_PROTECTED #define ELM_INTERFACE_ATSPI_WIDGET_ACTION_PROTECTED #define EFL_CANVAS_LAYOUT_CALC_PROTECTED @@ -1584,7 +1584,7 @@ _efl_ui_image_align_get(Eo *obj EINA_UNUSED, Efl_Ui_Image_Data *s
[EGIT] [core/efl] master 01/02: ector: Copyedit Ector doxygen
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=9c78628908c8db332378a097f86174b5634a89f9 commit 9c78628908c8db332378a097f86174b5634a89f9 Author: Bryce Harrington Date: Tue Sep 12 16:07:13 2017 +0900 ector: Copyedit Ector doxygen Summary: - Fix various spelling and grammar errors. - Add a slight bit more explanation of what Ector is. - Condense compilation directions similar to Evas. Reviewers: cedric Subscribers: jpeg Differential Revision: https://phab.enlightenment.org/D5176 --- src/lib/ector/Ector.h | 41 - 1 file changed, 16 insertions(+), 25 deletions(-) diff --git a/src/lib/ector/Ector.h b/src/lib/ector/Ector.h index ba0efb7d89..b9a2ffd416 100644 --- a/src/lib/ector/Ector.h +++ b/src/lib/ector/Ector.h @@ -49,36 +49,27 @@ extern "C" { * * @section ector_main_intro Introduction * - * Ector is a retained mode drawing library that is designed to work - * for and with an scenegraph like Evas. + * Ector is a retained mode drawing library designed to work + * for and with a scenegraph such as Evas, which supports several + * types of rendering surface including software, cairo, and gl. * - * @section ector_main_compiling How to compile + * @section ector_main_compiling How to compile the library * - * Ector is a library your application links to. The procedure for this is - * very simple. You simply have to compile your application with the - * appropriate compiler flags that the @c pkg-config script outputs. For + * Ector compiles automatically within EFL's build system, and is + * automatically linked with other components that need it. But it can + * also be built and used standalone, by compiling and linking your + * application with the compiler flags indicated by @c pkg-config. For * example: * - * Compiling C or C++ files into object files: - * * @verbatim - gcc -c -o main.o main.c `pkg-config --cflags ector` - @endverbatim - * - * Linking object files into a binary executable: + * gcc -c -o my_main.o my_main.c `pkg-config --cflags ector` * - * @verbatim - gcc -o my_application main.o `pkg-config --libs ector` - @endverbatim + * gcc -o my_application my_main.o `pkg-config --libs ector` + * @endverbatim * * See @ref pkgconfig * - * @section ector_main_next_steps Next Steps - * - * After you understood what Ector is and installed it in your system - * you should proceed understanding the programming interface. - * - * Recommended reading: + * @section ector_main_next_steps Recommended reading: * * @li @ref Ector_Surface * @li @ref Ector_Renderer @@ -110,7 +101,7 @@ typedef Eo Ector_Renderer; * @typedef Ector_Colorspace * The definiton of colorspace. */ - // FIXME: Enable that when we have merged Emile + // FIXME: Enable this when we have merged Emile /* typedef Evas_Colorspace Ector_Colorspace; */ /** @@ -131,8 +122,8 @@ typedef enum _Ector_Update_Type { ECTOR_UPDATE_BACKGROUND = 1, /* All the previous state in that area is reset to the new updated profile */ ECTOR_UPDATE_EMPTY = 2, /* Pushing empty area (no visible pixels at all, no need to read this surface to render it) */ - ECTOR_UPDATE_ALPHA = 4, /* Pushing some transparent pixels (this impact the under layer and will require to read back the surface where this surface is blitted) */ - ECTOR_UPDATE_OPAQUE = 8 /* Pushing some opaque pixels (this means that their is no need to read the under layer when blitting this surface) */ + ECTOR_UPDATE_ALPHA = 4, /* Pushing some transparent pixels (this impacts the under layer and will require reading back the surface where this surface is blitted) */ + ECTOR_UPDATE_OPAQUE = 8 /* Pushing some opaque pixels (this means that there is no need to read the under layer when blitting this surface) */ } Ector_Update_Type; /** @@ -159,7 +150,7 @@ EAPI int ector_shutdown(void); * @return EINA_TRUE if call succeeded, EINA_FALSE if glsym was undefined or an error occurred * * The RTLD_DEFAULT and RTLD_NEXT pseudo-handles can be passed as lib to - * look up the first or next occurance of the desired symbol in the dynamic + * look up the first or next occurrence of the desired symbol in the dynamic * library search order. * * @see dlsym() --
[EGIT] [core/efl] master 02/02: edje: Add legacy compatibility code
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=8d7dc6ae241d9184764cfea3e18dd60223957ea2 commit 8d7dc6ae241d9184764cfea3e18dd60223957ea2 Author: Jean-Philippe Andre Date: Tue Sep 12 17:21:32 2017 +0900 edje: Add legacy compatibility code This affects: - edje_object_part_swallow - edje_object_part_swallow_get Fixes T5944 @fix --- src/lib/edje/edje_util.c | 43 +++ 1 file changed, 43 insertions(+) diff --git a/src/lib/edje/edje_util.c b/src/lib/edje/edje_util.c index 74d9dc4d9d..2c0249cec9 100644 --- a/src/lib/edje/edje_util.c +++ b/src/lib/edje/edje_util.c @@ -5989,9 +5989,34 @@ _edje_real_part_mask_flags_set(Edje *ed EINA_UNUSED, Edje_Real_Part *rp, Evas_Ev /* Legacy APIs */ +static inline Eina_Bool +_edje_part_fetch(const Edje_Object *obj, const char *part, Edje **ped, Edje_Real_Part **prp) +{ + if (!part) return EINA_FALSE; + + *ped = _edje_fetch(obj); + if (!*ped) return EINA_FALSE; + + *prp = _edje_real_part_recursive_get(ped, part); + if (!*prp) return EINA_FALSE; + + return EINA_TRUE; +} + EAPI Eina_Bool edje_object_part_swallow(Edje_Object *obj, const char *part, Evas_Object *obj_swallow) { + Edje_Real_Part *rp; + Edje *ed; + + if (!_edje_part_fetch(obj, part, &ed, &rp)) return EINA_FALSE; + + if (rp->part->type != EDJE_PART_TYPE_SWALLOW) + { +ERR("Invalid call on a non-swallow part: '%s' in group '%s'", part, ed->group); +return EINA_FALSE; + } + return efl_content_set(efl_part(obj, part), obj_swallow); } @@ -6004,6 +6029,24 @@ edje_object_part_unswallow(Edje_Object *obj, Evas_Object *obj_swallow) EAPI Evas_Object * edje_object_part_swallow_get(const Edje_Object *obj, const char *part) { + Edje_Real_Part *rp; + Edje *ed; + + if (!_edje_part_fetch(obj, part, &ed, &rp)) return NULL; + + if (rp->part->type != EDJE_PART_TYPE_SWALLOW) + { +// Legacy compatibility: return swallowed_object on non-swallow parts +if ((rp->type == EDJE_RP_TYPE_SWALLOW) && rp->typedata.swallow) + { + INF("Part is not a swallow: '%s' in group '%s'", part, ed->group); + return rp->typedata.swallow->swallowed_object; + } + +ERR("Invalid call on a non-swallow part: '%s' in group '%s'", part, ed->group); +return NULL; + } + return efl_content_get(efl_part(obj, part)); } --
[EGIT] [core/efl] efl-1.20 01/01: edje: Add legacy compatibility code
jpeg pushed a commit to branch efl-1.20. http://git.enlightenment.org/core/efl.git/commit/?id=438bbb96e1fc598cb91954257654a671f1e69766 commit 438bbb96e1fc598cb91954257654a671f1e69766 Author: Jean-Philippe Andre Date: Tue Sep 12 17:21:32 2017 +0900 edje: Add legacy compatibility code This affects: - edje_object_part_swallow - edje_object_part_swallow_get Fixes T5944 @fix --- src/lib/edje/edje_util.c | 43 +++ 1 file changed, 43 insertions(+) diff --git a/src/lib/edje/edje_util.c b/src/lib/edje/edje_util.c index 0829a803de..c94342d675 100644 --- a/src/lib/edje/edje_util.c +++ b/src/lib/edje/edje_util.c @@ -5989,9 +5989,34 @@ _edje_real_part_mask_flags_set(Edje *ed EINA_UNUSED, Edje_Real_Part *rp, Evas_Ev /* Legacy APIs */ +static inline Eina_Bool +_edje_part_fetch(const Edje_Object *obj, const char *part, Edje **ped, Edje_Real_Part **prp) +{ + if (!part) return EINA_FALSE; + + *ped = _edje_fetch(obj); + if (!*ped) return EINA_FALSE; + + *prp = _edje_real_part_recursive_get(ped, part); + if (!*prp) return EINA_FALSE; + + return EINA_TRUE; +} + EAPI Eina_Bool edje_object_part_swallow(Edje_Object *obj, const char *part, Evas_Object *obj_swallow) { + Edje_Real_Part *rp; + Edje *ed; + + if (!_edje_part_fetch(obj, part, &ed, &rp)) return EINA_FALSE; + + if (rp->part->type != EDJE_PART_TYPE_SWALLOW) + { +ERR("Invalid call on a non-swallow part: '%s' in group '%s'", part, ed->group); +return EINA_FALSE; + } + return efl_content_set(efl_part(obj, part), obj_swallow); } @@ -6004,6 +6029,24 @@ edje_object_part_unswallow(Edje_Object *obj, Evas_Object *obj_swallow) EAPI Evas_Object * edje_object_part_swallow_get(const Edje_Object *obj, const char *part) { + Edje_Real_Part *rp; + Edje *ed; + + if (!_edje_part_fetch(obj, part, &ed, &rp)) return NULL; + + if (rp->part->type != EDJE_PART_TYPE_SWALLOW) + { +// Legacy compatibility: return swallowed_object on non-swallow parts +if ((rp->type == EDJE_RP_TYPE_SWALLOW) && rp->typedata.swallow) + { + INF("Part is not a swallow: '%s' in group '%s'", part, ed->group); + return rp->typedata.swallow->swallowed_object; + } + +ERR("Invalid call on a non-swallow part: '%s' in group '%s'", part, ed->group); +return NULL; + } + return efl_content_get(efl_part(obj, part)); } --
[EGIT] [core/efl] master 02/02: efl.ui.range: remove interval_enable/set/get APIs from interface
ami pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=120d0673a92fafad46a1b2bc7b78858795df597f commit 120d0673a92fafad46a1b2bc7b78858795df597f Author: Amitesh Singh Date: Tue Sep 12 17:29:18 2017 +0900 efl.ui.range: remove interval_enable/set/get APIs from interface Remove interval related apis from interface since interval slider implements these features now. Although legacy range APIs would still work on slider widget. --- src/lib/efl/interfaces/efl_ui_range.eo | 19 src/lib/elementary/efl_ui_slider.c | 86 +- src/lib/elementary/efl_ui_slider.eo| 2 - 3 files changed, 33 insertions(+), 74 deletions(-) diff --git a/src/lib/efl/interfaces/efl_ui_range.eo b/src/lib/efl/interfaces/efl_ui_range.eo index e147b843f3..c2f338e4f1 100644 --- a/src/lib/efl/interfaces/efl_ui_range.eo +++ b/src/lib/efl/interfaces/efl_ui_range.eo @@ -88,24 +88,5 @@ interface Efl.Ui.Range units: string @nullable; [[The format string for $obj's units label]] } } -@property range_interval_enabled { - [[ This enables two indicators in given range widget. - - @since 1.18 - ]] - values { -enable: bool; [[$true if two indicators are enabled, $false otherwise]] - } - } - @property range_interval { - [[ Sets up a start and end range point for given range widget. - - @since 1.18 - ]] - values { -from: double; [[Interval minimum value]] -to: double; [[Interval maximum value]] - } - } } } diff --git a/src/lib/elementary/efl_ui_slider.c b/src/lib/elementary/efl_ui_slider.c index 9279ed9bda..59eb9cb737 100644 --- a/src/lib/elementary/efl_ui_slider.c +++ b/src/lib/elementary/efl_ui_slider.c @@ -253,7 +253,7 @@ _units_set(Evas_Object *obj) { double v1, v2; - efl_ui_range_interval_get(obj, &v1, &v2); + elm_slider_range_get(obj, &v1, &v2); snprintf(buf, sizeof(buf), sd->units, v2 - v1); } @@ -1208,54 +1208,6 @@ _efl_ui_slider_efl_canvas_group_group_del(Eo *obj, Efl_Ui_Slider_Data *sd) efl_canvas_group_del(efl_super(obj, MY_CLASS)); } -EOLIAN static Eina_Bool -_efl_ui_slider_efl_ui_range_range_interval_enabled_get(Eo *obj EINA_UNUSED, Efl_Ui_Slider_Data *pd) -{ - return pd->intvl_enable; -} - -EOLIAN static void -_efl_ui_slider_efl_ui_range_range_interval_enabled_set(Eo *obj, Efl_Ui_Slider_Data *sd, Eina_Bool enable) -{ - if (sd->intvl_enable == enable) return; - - sd->intvl_enable = enable; - - elm_obj_widget_theme_apply(obj); - if (sd->intvl_enable) - { -elm_layout_signal_emit(obj, "elm,slider,range,enable", "elm"); -if (sd->indicator_show) - edje_object_signal_emit(sd->popup2, "elm,state,val,show", "elm"); - } - else - { -elm_layout_signal_emit(obj, "elm,slider,range,disable", "elm"); -ELM_SAFE_FREE(sd->popup2, evas_object_del); - } -} - -EOLIAN static void -_efl_ui_slider_efl_ui_range_range_interval_get(Eo *obj EINA_UNUSED, Efl_Ui_Slider_Data *pd, double *from, double *to) -{ - if (from) *from = fmin(pd->intvl_from, pd->intvl_to); - if (to) *to = fmax(pd->intvl_from, pd->intvl_to); -} - -EOLIAN static void -_efl_ui_slider_efl_ui_range_range_interval_set(Eo *obj, Efl_Ui_Slider_Data *pd, double from, double to) -{ - pd->intvl_from = from; - //TODO: remove val later - pd->val = from; - pd->intvl_to = to; - - if (pd->intvl_from < pd->val_min) pd->intvl_from = pd->val_min; - if (pd->intvl_to > pd->val_max) pd->intvl_to = pd->val_max; - - _visuals_refresh(obj); -} - EOLIAN static Eo * _efl_ui_slider_efl_object_constructor(Eo *obj, Efl_Ui_Slider_Data *_pd EINA_UNUSED) { @@ -1737,25 +1689,53 @@ elm_slider_units_format_function_set(Evas_Object *obj, slider_func_type func, sl EAPI void elm_slider_range_enabled_set(Evas_Object *obj, Eina_Bool enable) { - efl_ui_range_interval_enabled_set(obj, enable); + EFL_UI_SLIDER_DATA_GET(obj, sd); + + if (sd->intvl_enable == enable) return; + + sd->intvl_enable = enable; + elm_obj_widget_theme_apply(obj); + if (sd->intvl_enable) + { +elm_layout_signal_emit(obj, "elm,slider,range,enable", "elm"); +if (sd->indicator_show) + edje_object_signal_emit(sd->popup2, "elm,state,val,show", "elm"); + } + else + { +elm_layout_signal_emit(obj, "elm,slider,range,disable", "elm"); +ELM_SAFE_FREE(sd->popup2, evas_object_del); + } + } EAPI Eina_Bool elm_slider_range_enabled_get(const Evas_Object *obj) { - return efl_ui_range_interval_enabled_get(obj); + EFL_UI_SLIDER_DATA_GET(obj, pd); + return pd->intvl_enable; } EAPI void elm_slider_range_set(Evas_Object *obj, double from, double to) { - efl_ui_range_interval_set(obj, from, to); + EFL_UI_SLIDER_DATA_GET(obj, pd); + pd->intv
[EGIT] [core/efl] master 01/02: interval slider: Add new interval slider widget
ami pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=93480942204ae1a38cf9047a2cc4594fe62d3894 commit 93480942204ae1a38cf9047a2cc4594fe62d3894 Author: Amitesh Singh Date: Tue Sep 12 10:07:58 2017 +0900 interval slider: Add new interval slider widget This widget is a slider with two indicators which allows to have interval of value. --- config/default/base.src.in | 53 config/mobile/base.src.in| 53 config/standard/base.src.in | 53 po/POTFILES.in | 2 + src/Makefile_Elementary.am | 4 + src/bin/elementary/Makefile.am | 1 + src/bin/elementary/test.c| 2 + src/bin/elementary/test_slider_interval.c| 112 src/lib/elementary/Elementary.h | 1 + src/lib/elementary/efl_ui_slider_interval.c | 125 +++ src/lib/elementary/efl_ui_slider_interval.eo | 29 +++ 11 files changed, 435 insertions(+) diff --git a/config/default/base.src.in b/config/default/base.src.in index fea935126e..510e5a0f13 100644 --- a/config/default/base.src.in +++ b/config/default/base.src.in @@ -2232,6 +2232,59 @@ group "Elm_Config" struct { } } } + group "Elm_Config_Bindings_Widget" struct { +value "name" string: "Efl.Ui.Slider_Interval"; +group "key_bindings" list { + group "Elm_Config_Binding_Key" struct { + value "context" int: 0; + value "key" string: "Left"; + value "action" string: "drag"; + value "params" string: "left"; + } + group "Elm_Config_Binding_Key" struct { + value "context" int: 0; + value "key" string: "KP_Left"; + value "action" string: "drag"; + value "params" string: "left"; + } + group "Elm_Config_Binding_Key" struct { + value "context" int: 0; + value "key" string: "Right"; + value "action" string: "drag"; + value "params" string: "right"; + } + group "Elm_Config_Binding_Key" struct { + value "context" int: 0; + value "key" string: "KP_Right"; + value "action" string: "drag"; + value "params" string: "right"; + } + group "Elm_Config_Binding_Key" struct { + value "context" int: 0; + value "key" string: "Up"; + value "action" string: "drag"; + value "params" string: "up"; + } + group "Elm_Config_Binding_Key" struct { + value "context" int: 0; + value "key" string: "KP_Up"; + value "action" string: "drag"; + value "params" string: "up"; + } + group "Elm_Config_Binding_Key" struct { + value "context" int: 0; + value "key" string: "Down"; + value "action" string: "drag"; + value "params" string: "down"; + } + group "Elm_Config_Binding_Key" struct { + value "context" int: 0; + value "key" string: "KP_Down"; + value "action" string: "drag"; + value "params" string: "down"; + } +} + } group "Elm_Config_Bindings_Widget" struct { value "name" string: "Elm_Slideshow"; group "key_bindings" list { diff --git a/config/mobile/base.src.in b/config/mobile/base.src.in index e8342d9ec1..abc3a3da0f 100644 --- a/config/mobile/base.src.in +++ b/config/mobile/base.src.in @@ -2237,6 +2237,59 @@ group "Elm_Config" struct { } } group "Elm_Config_Bindings_Widget" struct { +value "name" string: "Efl.Ui.Slider_Interval"; +group "key_bindings" list { + group "Elm_Config_Binding_Key" struct { + value "context" int: 0; + value "key" string: "Left"; + value "action" string: "drag"; + value "params" string: "left"; + } + group "Elm_Config_Binding_Key" struct { + value "context" int: 0; + value "key" string: "KP_Left"; + value "action" string: "drag"; + value "params" string: "left"; + } + group "Elm_Config_Binding_Key" struct { + value "context" int: 0; + value "key" string: "Right"; + value "action" string: "drag"; + value "params" string: "right"; + } + group "Elm_Config_Binding_Key" struct { + value "context" int: 0; + value "key" string: "KP_Right"; + value "action" string: "drag"; + value "params" string: "right"; + } + group "Elm_Config_Binding_Key" struct {
[EGIT] [tools/edi] master 01/01: scm: add elm code widget for diff in commit screen.
netstar pushed a commit to branch master. http://git.enlightenment.org/tools/edi.git/commit/?id=d694160d134470acf278c60e337f0c0d3a0c2245 commit d694160d134470acf278c60e337f0c0d3a0c2245 Author: Al Poole Date: Tue Sep 12 10:19:34 2017 +0100 scm: add elm code widget for diff in commit screen. Use a proper widget with lovely formatting. --- src/bin/screens/edi_scm_screens.c | 75 +++ 1 file changed, 52 insertions(+), 23 deletions(-) diff --git a/src/bin/screens/edi_scm_screens.c b/src/bin/screens/edi_scm_screens.c index 8c1ef8d..1906111 100644 --- a/src/bin/screens/edi_scm_screens.c +++ b/src/bin/screens/edi_scm_screens.c @@ -4,6 +4,7 @@ #include "Edi.h" #include "mainview/edi_mainview.h" +#include "edi_config.h" #include "edi_consolepanel.h" #include "edi_scm_screens.h" #include "edi_private.h" @@ -76,16 +77,39 @@ _edi_scm_screens_commit_cb(void *data, free(message); } +static void +_entry_lines_append(Elm_Code *code, char *diff) +{ + char *pos = diff; + char *start, *end = NULL; + + start = pos; + while (*pos++ != '\0') +{ + if (*pos == '\n') + end = pos; + + if (start && end) + { +elm_code_file_line_append(code->file, start, end - start, NULL); +start = end + 1; +end = NULL; + } +} +} + void edi_scm_screens_commit(Evas_Object *parent) { - Evas_Object *popup, *box, *hbox, *sep, *label, *avatar, *input, *button; - Evas_Object *list, *icon, *entry; + Evas_Object *popup, *box, *hbox, *cbox, *sep, *label, *avatar, *input, *button; + Evas_Object *list, *icon; + Elm_Code_Widget *entry; + Elm_Code *code; Eina_Strbuf *text, *user; Eina_List *l; Edi_Scm_Engine *engine; Edi_Scm_Status *status; - char *diff, *markup; + char *diff; Eina_Bool staged_changes; engine= edi_scm_engine_get(); @@ -104,6 +128,8 @@ edi_scm_screens_commit(Evas_Object *parent) _("Commit Changes")); box = elm_box_add(popup); elm_box_horizontal_set(box, EINA_FALSE); + evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_object_content_set(popup, box); sep = elm_separator_add(box); @@ -233,28 +259,31 @@ edi_scm_screens_commit(Evas_Object *parent) evas_object_show(input); elm_box_pack_end(box, input); - entry = elm_entry_add(box); - evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_entry_line_wrap_set(entry, ELM_WRAP_NONE); - elm_entry_editable_set(entry, EINA_FALSE); - elm_entry_scrollable_set(entry, EINA_TRUE); - elm_entry_single_line_set(entry, EINA_TRUE); - evas_object_show(entry); - elm_box_pack_end(box, entry); - diff = edi_scm_diff(); - text = eina_strbuf_new(); - markup = elm_entry_utf8_to_markup(diff); - if (strlen(markup)) - eina_strbuf_append_printf(text, "%s", markup); - else - eina_strbuf_append(text, _("No changes to display.")); - - elm_object_text_set(entry, eina_strbuf_string_get(text)); + if (strlen(diff)) + { +cbox = elm_box_add(popup); +evas_object_size_hint_weight_set(cbox, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); +evas_object_size_hint_align_set(cbox, EVAS_HINT_FILL, EVAS_HINT_FILL); +evas_object_size_hint_min_set(cbox, 400 * elm_config_scale_get(), 400 * elm_config_scale_get()); +evas_object_show(cbox); +elm_box_pack_end(box, cbox); + +code = elm_code_create(); +entry = elm_code_widget_add(box, code); +elm_code_parser_standard_add(code, ELM_CODE_PARSER_STANDARD_DIFF); +elm_obj_code_widget_font_set(entry, _edi_project_config->font.name, _edi_project_config->font.size); +elm_obj_code_widget_gravity_set(entry, 0.0, 1.0); +elm_obj_code_widget_editable_set(entry, EINA_FALSE); +elm_obj_code_widget_line_numbers_set(entry, EINA_FALSE); +evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); +evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL); +evas_object_show(entry); +elm_box_pack_end(cbox, entry); + +_entry_lines_append(code, diff); + } - eina_strbuf_free(text); - free(markup); free(diff); sep = elm_separator_add(box); --
[EGIT] [core/efl] master 01/01: efl.ui.slider: implement efl.text intf
ami pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6c8ec7a3199d2e01dbebadf5ff86d4d94e2aeb40 commit 6c8ec7a3199d2e01dbebadf5ff86d4d94e2aeb40 Author: Amitesh Singh Date: Tue Sep 12 18:25:41 2017 +0900 efl.ui.slider: implement efl.text intf efl_text_set/get would work on slider text part. --- src/bin/elementary/test_slider_interval.c | 13 ++--- src/lib/elementary/efl_ui_slider.c| 4 src/lib/elementary/efl_ui_slider.eo | 3 ++- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/bin/elementary/test_slider_interval.c b/src/bin/elementary/test_slider_interval.c index 8127c9df8b..14b1a85ae8 100644 --- a/src/bin/elementary/test_slider_interval.c +++ b/src/bin/elementary/test_slider_interval.c @@ -41,24 +41,25 @@ test_slider_interval(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void efl_content_set(win, efl_added)); sl = efl_add(EFL_UI_SLIDER_INTERVAL_CLASS, bx, +efl_text_set(efl_added, "horizontal"), efl_ui_slider_indicator_visible_mode_set(efl_added, EFL_UI_SLIDER_INDICATOR_VISIBLE_MODE_NONE), efl_ui_range_span_size_set(efl_added, 160), efl_ui_slider_indicator_format_set(efl_added, "%1.5f"), efl_ui_slider_interval_value_set(efl_added, 0.4, 0.9), efl_pack(bx, efl_added)); - elm_object_text_set(sl, "horizontal"); step = _step_size_calculate(0, 9); sl = efl_add(EFL_UI_SLIDER_INTERVAL_CLASS, bx, +efl_text_set(efl_added, "Manual step"), efl_ui_range_span_size_set(efl_added, 120), efl_ui_range_unit_format_set(efl_added, "%1.1f units"), efl_ui_slider_indicator_format_set(efl_added, "%1.1f"), efl_ui_slider_interval_value_set(efl_added, 0.4, 0.9), efl_ui_slider_step_set(efl_added, step), efl_pack(bx, efl_added)); - elm_object_text_set(sl, "Manual step"); sl = efl_add(EFL_UI_SLIDER_INTERVAL_CLASS, bx, +efl_text_set(efl_added, "Disabled"), efl_ui_range_span_size_set(efl_added, 120), efl_ui_range_unit_format_set(efl_added, "%1.0f units"), efl_ui_slider_indicator_format_set(efl_added, "%1.0f"), @@ -67,13 +68,13 @@ test_slider_interval(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void efl_ui_slider_step_set(efl_added, step), efl_pack(bx, efl_added)); elm_object_disabled_set(sl, EINA_TRUE); - elm_object_text_set(sl, "Disabled"); hbx = efl_add(EFL_UI_BOX_CLASS, bx, efl_ui_direction_set(efl_added, EFL_UI_DIR_HORIZONTAL), efl_pack(bx, efl_added)); sl = efl_add(EFL_UI_SLIDER_INTERVAL_CLASS, hbx, +efl_text_set(efl_added, "Vertical"), efl_ui_range_span_size_set(efl_added, 120), efl_ui_range_unit_format_set(efl_added, "%1.0f units"), efl_ui_slider_indicator_format_set(efl_added, "%1.0f"), @@ -82,9 +83,9 @@ test_slider_interval(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void efl_ui_slider_step_set(efl_added, step), efl_ui_direction_set(efl_added, EFL_UI_DIR_VERTICAL), efl_pack(hbx, efl_added)); - elm_object_text_set(sl, "vertical"); sl = efl_add(EFL_UI_SLIDER_INTERVAL_CLASS, hbx, +efl_text_set(efl_added, "Disabled"), efl_ui_range_span_size_set(efl_added, 120), efl_ui_range_unit_format_set(efl_added, "%1.0f units"), efl_ui_slider_indicator_format_set(efl_added, "%1.0f"), @@ -93,10 +94,10 @@ test_slider_interval(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void efl_ui_slider_step_set(efl_added, step), efl_ui_direction_set(efl_added, EFL_UI_DIR_VERTICAL), efl_pack(hbx, efl_added)); - elm_object_text_set(sl, "vertical"); elm_object_disabled_set(sl, EINA_TRUE); sl = efl_add(EFL_UI_SLIDER_INTERVAL_CLASS, bx, +efl_text_set(efl_added, "Limited(100-500)"), efl_ui_slider_indicator_visible_mode_set(efl_added, EFL_UI_SLIDER_INDICATOR_VISIBLE_MODE_ON_FOCUS), efl_ui_range_span_size_set(efl_added, 120), efl_ui_range_unit_format_set(efl_added, "%1.0f units"), @@ -106,7 +107,5 @@ test_slider_interval(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void efl_ui_slider_step_set(efl_added, step), efl_event_callback_add(efl_added, EFL_UI_SLIDER_EVENT_CHANGED, _intv_slider_changed_cb, NULL), efl_pack(bx, efl_added)); - - elm_object_text_set(sl, "Limited(100-500)"); } diff --git a/src/lib/elementary/efl_ui_slider.c b/src/lib/elementary/efl_ui_slider.c index 59eb9cb737..3bc1f67d20 100644 --- a/src/lib/elementary/efl_ui_sli
Re: [E-devel] Phab EFL ticket management
Hi, This is good to hear. Reflecting on it I think what I missed was the clarity that 1.21 would not be released until these interfaces are stable. Having been looking for this since 1.19 I'm thrilled but wonder if everyone is on the same page (maybe it was only clear within Samsung crew?). Should we be documenting somewhere like an upcoming releases page that, whilst normally a timed cycle, for this release we have a specific goal in mind rather than a date? Thanks, Andy On Mon, 21 Aug 2017 at 13:24, Carsten Haitzler wrote: > On Mon, 21 Aug 2017 12:08:46 + Andrew Williams > said: > > > Hi, > > > > In a word no. What that is is an ever growing list of work we would like > to > > get done. That's not really a planning tool it's a log. > > Planning for what goes into a release is a different beast - we make a > list > > of what's required, agree on it and start working through. > > that actually is the list of things to go into 1.21 (efl interfaces "done" > release)... :) > > > Surely in planning for a release you need either a) a delivery date and a > > prioritised list or b) a requirements list and an agreed scope. > > A list of things that gets added to as we work through is not either of > > those - the list could grow forever and never get finished... > > things are discovered as the work is done. the goal is clear make eo/efl > interfaces stable and ready to use for application devs". > > > Andy > > On Mon, 21 Aug 2017 at 11:41, Carsten Haitzler > wrote: > > > > > On Sat, 15 Jul 2017 20:12:34 + Andrew Williams < > a...@andywilliams.me> > > > said: > > > > > > just saying... isn't > > > > > > https://phab.enlightenment.org/T5301 > > > > > > good enough? i mean it does what's needed. tacks a todo list and even > > > dependencies... etc. > > > > > > > Hi team, > > > > > > > > As many would probably agree by now we have a very high ticket volume > > > which > > > > is rather hard to manage... Whilst folk are doing a great job of > > > > marshalling the incoming tasks I think that some more structure would > > > help > > > > us to see what is needed in each area and for the next release etc... > > > > > > > > In preparation for 1.21 I would like to start working on this a > little to > > > > help us manage the work for our next release (especially as it will > be > > > the > > > > eo interfaces release!) and propose to do the following in phab, as > it is > > > > otherwise managing to keep track well: > > > > > > > > * Add a milestone to efl phab project for the next release - this > will be > > > > used to mark the issues we have agreed must go into the next release > > > > * Add sub projects for each area of EFL so we can better categorise > the > > > > tasks (we can either use EFL or a "common" subproject for those that > > > apply > > > > to all > > > > * efl-eina > > > > * efl-eolian > > > > * efl-canvas > > > > * efl-canvas-layout > > > > * efl-ui > > > > (etc etc) > > > > > > > > Notice the use of the new namespaces for everything in the > interfaces - > > > > this is surely how we should be thinking going forward :) > > > > If we are able to split things out a bit more then we can have more > > > people > > > > assigned to projects with fewer issues per project. > > > > Then the milestone for release can be the main point of concern for a > > > > release manager :) > > > > > > > > I wanted to throw the concept out to the list before doing anything > in > > > case > > > > there are any concerns with this approach that I may have missed? > > > > > > > > Thanks :) > > > > Andy > > > > -- > > > > http://andywilliams.me > > > > http://ajwillia.ms > > > > > > > > -- > > > > Check out the vibrant tech community on one of the world's most > > > > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > > > > ___ > > > > enlightenment-devel mailing list > > > > enlightenment-devel@lists.sourceforge.net > > > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > > > > > > > > > > > > -- > > > - Codito, ergo sum - "I code, therefore I am" > -- > > > The Rasterman (Carsten Haitzler)ras...@rasterman.com > > > > > > -- > > http://andywilliams.me > > http://ajwillia.ms > > > -- > - Codito, ergo sum - "I code, therefore I am" -- > The Rasterman (Carsten Haitzler)ras...@rasterman.com > > -- http://andywilliams.me http://ajwillia.ms -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 01/01: genlist: fix decorate mode dangling pointer in deletion
sanghyeonlee pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=50149e95cdc04fea165009d164e45accc804f7d1 commit 50149e95cdc04fea165009d164e45accc804f7d1 Author: SangHyeon Jade Lee Date: Tue Sep 12 18:38:44 2017 +0900 genlist: fix decorate mode dangling pointer in deletion fix decorate mode crash issue reported by Jack Daniel in T6000 which is occured by dangling pointer in item deletion on decorate mode. Signed-off-by: SangHyeon Jade Lee --- src/lib/elementary/elm_genlist.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib/elementary/elm_genlist.c b/src/lib/elementary/elm_genlist.c index 22b31a9cd0..9dc9c9809a 100644 --- a/src/lib/elementary/elm_genlist.c +++ b/src/lib/elementary/elm_genlist.c @@ -3693,6 +3693,8 @@ _elm_genlist_item_del_not_serious(Elm_Gen_Item *it) sd->focused_item = NULL; if (sd->last_selected_item == eo_it) sd->last_selected_item = NULL; + if (sd->mode_item == it) + sd-> mode_item = NULL; if (it->itc->func.del) it->itc->func.del((void *)WIDGET_ITEM_DATA_GET(EO_OBJ(it)), WIDGET(it)); --
Re: [E-devel] Phab EFL ticket management
On Tue, 12 Sep 2017 09:50:18 + Andrew Williams said: > Hi, > > This is good to hear. Reflecting on it I think what I missed was the > clarity that 1.21 would not be released until these interfaces are stable. Actually that's not set in stone. We may release a 1.21 and defer interfaces for 1.22. It depends on timing and where things get to by what time. The way we are doing things, interfaces is an OPTIONAL blocker for a release. It's not a technical one. The GOAL is to have 1.21 by end of year or so with interfaces "ready to begin to be used as a stable API". > Having been looking for this since 1.19 I'm thrilled but wonder if everyone > is on the same page (maybe it was only clear within Samsung crew?). Should > we be documenting somewhere like an upcoming releases page that, whilst > normally a timed cycle, for this release we have a specific goal in mind > rather than a date? > > Thanks, > Andy > On Mon, 21 Aug 2017 at 13:24, Carsten Haitzler wrote: > > > On Mon, 21 Aug 2017 12:08:46 + Andrew Williams > > said: > > > > > Hi, > > > > > > In a word no. What that is is an ever growing list of work we would like > > to > > > get done. That's not really a planning tool it's a log. > > > Planning for what goes into a release is a different beast - we make a > > list > > > of what's required, agree on it and start working through. > > > > that actually is the list of things to go into 1.21 (efl interfaces "done" > > release)... :) > > > > > Surely in planning for a release you need either a) a delivery date and a > > > prioritised list or b) a requirements list and an agreed scope. > > > A list of things that gets added to as we work through is not either of > > > those - the list could grow forever and never get finished... > > > > things are discovered as the work is done. the goal is clear make eo/efl > > interfaces stable and ready to use for application devs". > > > > > Andy > > > On Mon, 21 Aug 2017 at 11:41, Carsten Haitzler > > wrote: > > > > > > > On Sat, 15 Jul 2017 20:12:34 + Andrew Williams < > > a...@andywilliams.me> > > > > said: > > > > > > > > just saying... isn't > > > > > > > > https://phab.enlightenment.org/T5301 > > > > > > > > good enough? i mean it does what's needed. tacks a todo list and even > > > > dependencies... etc. > > > > > > > > > Hi team, > > > > > > > > > > As many would probably agree by now we have a very high ticket volume > > > > which > > > > > is rather hard to manage... Whilst folk are doing a great job of > > > > > marshalling the incoming tasks I think that some more structure would > > > > help > > > > > us to see what is needed in each area and for the next release etc... > > > > > > > > > > In preparation for 1.21 I would like to start working on this a > > little to > > > > > help us manage the work for our next release (especially as it will > > be > > > > the > > > > > eo interfaces release!) and propose to do the following in phab, as > > it is > > > > > otherwise managing to keep track well: > > > > > > > > > > * Add a milestone to efl phab project for the next release - this > > will be > > > > > used to mark the issues we have agreed must go into the next release > > > > > * Add sub projects for each area of EFL so we can better categorise > > the > > > > > tasks (we can either use EFL or a "common" subproject for those that > > > > apply > > > > > to all > > > > > * efl-eina > > > > > * efl-eolian > > > > > * efl-canvas > > > > > * efl-canvas-layout > > > > > * efl-ui > > > > > (etc etc) > > > > > > > > > > Notice the use of the new namespaces for everything in the > > interfaces - > > > > > this is surely how we should be thinking going forward :) > > > > > If we are able to split things out a bit more then we can have more > > > > people > > > > > assigned to projects with fewer issues per project. > > > > > Then the milestone for release can be the main point of concern for a > > > > > release manager :) > > > > > > > > > > I wanted to throw the concept out to the list before doing anything > > in > > > > case > > > > > there are any concerns with this approach that I may have missed? > > > > > > > > > > Thanks :) > > > > > Andy > > > > > -- > > > > > http://andywilliams.me > > > > > http://ajwillia.ms > > > > > > > > > > > -- > > > > > Check out the vibrant tech community on one of the world's most > > > > > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > > > > > ___ > > > > > enlightenment-devel mailing list > > > > > enlightenment-devel@lists.sourceforge.net > > > > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > > > > > > > > > > > > > > > > -- > > > > - Codito, ergo sum - "I code, therefore I am" > > -- > > > > The Rasterman (Carsten Haitzler)ras...@rasterman.com > > > > > > > > -- > > > http://andywilliams.me > > > http://ajwillia.ms >
[EGIT] [core/efl] master 01/01: tests: fix build after elm atspi renaming
stefan pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=7d397c9f195a9121153909c0ff87f1d883d51cde commit 7d397c9f195a9121153909c0ff87f1d883d51cde Author: Stefan Schmidt Date: Tue Sep 12 16:01:44 2017 +0200 tests: fix build after elm atspi renaming Renamed but make check not taken into account. --- src/tests/elementary/elm_test_button.c | 2 +- src/tests/elementary/elm_test_win.c| 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/tests/elementary/elm_test_button.c b/src/tests/elementary/elm_test_button.c index 73384d692b..b52d2538ef 100644 --- a/src/tests/elementary/elm_test_button.c +++ b/src/tests/elementary/elm_test_button.c @@ -35,7 +35,7 @@ START_TEST (elm_atspi_interfaces_check) button = elm_button_add(win); ck_assert(efl_isa(button, ELM_INTERFACE_ATSPI_ACCESSIBLE_MIXIN)); - ck_assert(efl_isa(button, ELM_INTERFACE_ATSPI_COMPONENT_MIXIN)); + ck_assert(efl_isa(button, EFL_ACCESS_COMPONENT_MIXIN)); ck_assert(efl_isa(button, ELM_INTERFACE_ATSPI_ACTION_MIXIN)); elm_shutdown(); diff --git a/src/tests/elementary/elm_test_win.c b/src/tests/elementary/elm_test_win.c index df0d8cff93..478f5efcf4 100644 --- a/src/tests/elementary/elm_test_win.c +++ b/src/tests/elementary/elm_test_win.c @@ -3,7 +3,7 @@ #endif #define ELM_INTERFACE_ATSPI_ACCESSIBLE_PROTECTED -#define ELM_INTERFACE_ATSPI_COMPONENT_PROTECTED +#define EFL_ACCESS_COMPONENT_PROTECTED #include #ifdef HAVE_ELEMENTARY_X # include @@ -86,7 +86,7 @@ START_TEST (elm_atspi_component_position) Eo *win = elm_win_add(NULL, "win", ELM_WIN_BASIC); - ret = elm_interface_atspi_component_position_set(win, EINA_TRUE, 45, 45); + ret = efl_access_component_position_set(win, EINA_TRUE, 45, 45); ck_assert(ret == EINA_TRUE); Ecore_Evas *ee = ecore_evas_ecore_evas_get(evas_object_evas_get(win)); @@ -109,7 +109,7 @@ START_TEST (elm_atspi_component_size) Eo *win = elm_win_add(NULL, "win", ELM_WIN_BASIC); evas_object_resize(win, 50, 50); - ret = elm_interface_atspi_component_size_set(win, 100, 100); + ret = efl_access_component_size_set(win, 100, 100); ck_assert(ret == EINA_TRUE); evas_object_geometry_get(win, NULL, NULL, &w, &h); --
Re: [E-devel] [EGIT] [core/efl] master 02/04: efl: Make models 0-based index, not 1-based
Hello. On 09/07/2017 07:24 AM, Felipe Magno de Almeida wrote: felipealmeida pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=743f52a05ba3c5985d9660cec09a4fcc43c55900 commit 743f52a05ba3c5985d9660cec09a4fcc43c55900 Author: Felipe Magno de Almeida Date: Thu Sep 7 12:05:24 2017 +0900 efl: Make models 0-based index, not 1-based And another bisect pointing here. Felipe, I would really appreciate if you would test your commits more before pushing them. Its not the first time I tell you and your team this. This time the patch broke the eldbus test suite. Reverting it fixes the problem for me. You can ignore the problem properties_get problem but the rest comes from this commit. 971 92%: Checks: 65, Failures: 5, Errors: 0 972 tests/eldbus/eldbus_test_eldbus_model.c:255:F:eldbus_model_connection:children_slice_get:0: Assertion 'first_child == child' failed: first_child == 0xfb99a4c6, child == 0x399a4c7 973 tests/eldbus/eldbus_test_eldbus_model.c:255:F:eldbus_model_object:children_slice_get:0: Assertion 'first_child == child' failed: first_child == 0xfb99a4c6, child == 0x399a4c7 974 tests/eldbus/eldbus_test_eldbus_model_proxy.c:40:F:eldbus_model_proxy:properties_get:0: Assertion '0 == eina_array_count(properties)' failed: 0 == 0, eina_ array_count(properties) == 2 975 tests/eldbus/eldbus_test_eldbus_model.c:255:F:eldbus_model_proxy:children_slice_get:0: Assertion 'first_child == child' failed: first_child == 0x3a18e020, child == 0x4218e021 976 tests/eldbus/eldbus_test_eldbus_model.c:121:F:eldbus_test_fake_server_eldbus_model_proxy:children_slice_get:0: Assertion '((void *)0) != accessor' failed: ((void *)0) == 0, accessor == 0 977 FAIL tests/eldbus/eldbus_suite (exit status: 1) regards Stefan Schmidt -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [tools/edi] master 01/01: scm: fix loss of last line.
netstar pushed a commit to branch master. http://git.enlightenment.org/tools/edi.git/commit/?id=cff2817907dde0d69e51b42914d5ddc246614385 commit cff2817907dde0d69e51b42914d5ddc246614385 Author: Al Poole Date: Tue Sep 12 16:18:57 2017 +0100 scm: fix loss of last line. oops! --- src/bin/screens/edi_scm_screens.c | 5 + 1 file changed, 5 insertions(+) diff --git a/src/bin/screens/edi_scm_screens.c b/src/bin/screens/edi_scm_screens.c index 1906111..1a132ac 100644 --- a/src/bin/screens/edi_scm_screens.c +++ b/src/bin/screens/edi_scm_screens.c @@ -83,6 +83,8 @@ _entry_lines_append(Elm_Code *code, char *diff) char *pos = diff; char *start, *end = NULL; + if (!*pos) return; + start = pos; while (*pos++ != '\0') { @@ -96,6 +98,9 @@ _entry_lines_append(Elm_Code *code, char *diff) end = NULL; } } +end = pos; +if (end > start) + elm_code_file_line_append(code->file, start, end - start, NULL); } void --
[EGIT] [tools/edi] master 01/01: debugpanel: add useful comment.
netstar pushed a commit to branch master. http://git.enlightenment.org/tools/edi.git/commit/?id=6770e8c022d89c3fec68fc8d4a1d229b909e54a8 commit 6770e8c022d89c3fec68fc8d4a1d229b909e54a8 Author: Al Poole Date: Tue Sep 12 16:25:44 2017 +0100 debugpanel: add useful comment. The code looks wrong but it isn't, this comment explains why. --- src/bin/edi_debugpanel.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/bin/edi_debugpanel.c b/src/bin/edi_debugpanel.c index e27c57c..a4851b3 100644 --- a/src/bin/edi_debugpanel.c +++ b/src/bin/edi_debugpanel.c @@ -89,6 +89,7 @@ _debugpanel_stdout_handler(void *data EINA_UNUSED, int type EINA_UNUSED, void *e } idx++; } +/* We can forget the last line ihere as it's the prompt string */ } return ECORE_CALLBACK_DONE; --
[EGIT] [tools/edi] master 01/01: debugpanel: previous commit typo.
netstar pushed a commit to branch master. http://git.enlightenment.org/tools/edi.git/commit/?id=332b5e1c557ffabb8c97087a9e57af48d7d2bf3a commit 332b5e1c557ffabb8c97087a9e57af48d7d2bf3a Author: Al Poole Date: Tue Sep 12 16:27:03 2017 +0100 debugpanel: previous commit typo. ugh sorry! --- src/bin/edi_debugpanel.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin/edi_debugpanel.c b/src/bin/edi_debugpanel.c index a4851b3..c59f77f 100644 --- a/src/bin/edi_debugpanel.c +++ b/src/bin/edi_debugpanel.c @@ -89,7 +89,7 @@ _debugpanel_stdout_handler(void *data EINA_UNUSED, int type EINA_UNUSED, void *e } idx++; } -/* We can forget the last line ihere as it's the prompt string */ +/* We can forget the last line here as it's the prompt string */ } return ECORE_CALLBACK_DONE; --
[EGIT] [core/enlightenment] master 01/01: Update netstatus in/out in the same file read. Fix cpufreq to use powersave again.
okra pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=20a96271ca5ce95e983b466b5a2efc4b35f60fc3 commit 20a96271ca5ce95e983b466b5a2efc4b35f60fc3 Author: Stephen 'Okra' Houston Date: Tue Sep 12 12:10:38 2017 -0500 Update netstatus in/out in the same file read. Fix cpufreq to use powersave again. --- src/modules/cpufreq/e_mod_main.c | 17 -- src/modules/sysinfo/netstatus/netstatus.c| 13 ++--- src/modules/sysinfo/netstatus/netstatus.h| 12 +++-- src/modules/sysinfo/netstatus/netstatus_proc.c | 67 +++- src/modules/sysinfo/netstatus/netstatus_sysctl.c | 55 ++- 5 files changed, 65 insertions(+), 99 deletions(-) diff --git a/src/modules/cpufreq/e_mod_main.c b/src/modules/cpufreq/e_mod_main.c index e5b6cf5a3..f4ba259b6 100644 --- a/src/modules/cpufreq/e_mod_main.c +++ b/src/modules/cpufreq/e_mod_main.c @@ -1287,9 +1287,18 @@ typedef struct _Thread_Config Thread_Config; struct _Thread_Config { int interval; + E_Powersave_Sleeper *sleeper; }; static void +_cpufreq_cb_frequency_check_done(void *data, Ecore_Thread *th EINA_UNUSED) +{ + Thread_Config *thc = data; + e_powersave_sleeper_free(thc->sleeper); + free(thc); +} + +static void _cpufreq_cb_frequency_check_main(void *data, Ecore_Thread *th) { Thread_Config *thc = data; @@ -1304,9 +1313,8 @@ _cpufreq_cb_frequency_check_main(void *data, Ecore_Thread *th) else _cpufreq_status_free(status); if (ecore_thread_check(th)) break; -usleep((100.0 / 8.0) * (double)thc->interval); +e_powersave_sleeper_sleep(thc->sleeper, thc->interval); } - free(thc); } static void @@ -1380,10 +1388,13 @@ _cpufreq_poll_interval_update(void) if (thc) { thc->interval = cpufreq_config->poll_interval; +thc->sleeper = e_powersave_sleeper_new(); cpufreq_config->frequency_check_thread = ecore_thread_feedback_run(_cpufreq_cb_frequency_check_main, _cpufreq_cb_frequency_check_notify, -NULL, NULL, thc, EINA_TRUE); +_cpufreq_cb_frequency_check_done, +_cpufreq_cb_frequency_check_done, +thc, EINA_TRUE); } e_config_save_queue(); } diff --git a/src/modules/sysinfo/netstatus/netstatus.c b/src/modules/sysinfo/netstatus/netstatus.c index 0e87854a7..87ea74c18 100644 --- a/src/modules/sysinfo/netstatus/netstatus.c +++ b/src/modules/sysinfo/netstatus/netstatus.c @@ -7,14 +7,13 @@ struct _Thread_Config int interval; Instance*inst; Eina_Boolautomax; + time_t checktime; int inpercent; - time_t intime; unsigned longin; unsigned longincurrent; unsigned longinmax; Eina_Stringshare*instring; int outpercent; - time_t outtime; unsigned longout; unsigned longoutcurrent; unsigned longoutmax; @@ -145,11 +144,13 @@ _netstatus_cb_usage_check_main(void *data, Ecore_Thread *th) if (ecore_thread_check(th)) break; #if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__OpenBSD__) -_netstatus_sysctl_getrstatus(thc->automax, &thc->in, &thc->incurrent, &thc->inmax, &thc->intime, &thc->inpercent); -_netstatus_sysctl_gettstatus(thc->automax, &thc->out, &thc->outcurrent, &thc->outmax, &thc->outtime, &thc->outpercent); +_netstatus_sysctl_getstatus(thc->automax, &thc->checktime, &thc->in, &thc->incurrent, +&thc->inmax, &thc->inpercent, &thc->out, &thc->outcurrent, &thc->outmax, +&thc->outpercent); #else -_netstatus_proc_getrstatus(thc->automax, &thc->in, &thc->incurrent, &thc->inmax, &thc->intime, &thc->inpercent); -_netstatus_proc_gettstatus(thc->automax, &thc->out, &thc->outcurrent, &thc->outmax, &thc->outtime, &thc->outpercent); +_netstatus_proc_getstatus(thc->automax, &thc->checktime, &thc->in, &thc->incurrent, +&thc->inmax, &thc->inpercent, &thc->out, &thc->outcurrent, &thc->outmax, +&thc->outpercent); #endif if (!thc->incurrent) { diff --git a/src/modules/sysinfo/netstatus/netstatus.h b/src/modules/sysinfo/netstatus/netstatus.h index 87010a04a..ee1a36f90 100644 --- a/src/modules/sysinfo/netstatus/netstatus.h +++ b/src/modules/sysinfo/netstatus/netstatus.h @@ -17,9 +17,13 @@ struct _Netstatus_Config }; EINTERN void _netstatus_config_updated(Instance *inst); -EINTERN void _netstatus_proc_getrstatus(Eina_Bool automax, unsigned long *prev_in, unsigned long *prev_incurrent, unsigned long *prev_inmax, time_t *last_checked, int *prev_inpercent); -EINTERN void _netstatus_proc_gettstatus(Eina_Bool automax, unsigned long
[EGIT] [core/enlightenment] master 01/01: Pager gadget config: Don't add icon to an evas, add it to an elm widget.
okra pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=24591631eedc84551233a6722076fc98abca2878 commit 24591631eedc84551233a6722076fc98abca2878 Author: Stephen 'Okra' Houston Date: Tue Sep 12 12:16:10 2017 -0500 Pager gadget config: Don't add icon to an evas, add it to an elm widget. This fixes T5952 --- src/modules/pager/gadget/config.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/pager/gadget/config.c b/src/modules/pager/gadget/config.c index e29c61cf7..331882b41 100644 --- a/src/modules/pager/gadget/config.c +++ b/src/modules/pager/gadget/config.c @@ -191,7 +191,7 @@ _config_update_btn(Evas_Object *button, const int mouse_button) elm_object_text_set(button, lbl); if (icon) { -ic = elm_icon_add(evas_object_evas_get(button)); +ic = elm_icon_add(button); elm_icon_standard_set(ic, icon); evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_BOTH, 1, 1); } --
[EGIT] [core/enlightenment] master 02/05: always hide wireless non-wired icons in gadget if wired connection exists
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=50fc7d127660788b479d99ec761f086bb8459496 commit 50fc7d127660788b479d99ec761f086bb8459496 Author: Mike Blumenkrantz Date: Tue Sep 12 13:21:09 2017 -0400 always hide wireless non-wired icons in gadget if wired connection exists the most common use case when using a wired connection is to not also be using a wireless connection --- src/modules/wireless/wireless.c | 19 +++ 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/modules/wireless/wireless.c b/src/modules/wireless/wireless.c index 141fe69c6..f631e03ca 100644 --- a/src/modules/wireless/wireless.c +++ b/src/modules/wireless/wireless.c @@ -1228,15 +1228,18 @@ _wireless_gadget_refresh(Instance *inst) avail++; } } - for (type = WIRELESS_SERVICE_TYPE_WIFI; type < WIRELESS_SERVICE_TYPE_LAST; type++) + if (!avail) { -if (!inst->icon[type]) continue; -if ((wireless_config->disabled_types & (1U << type)) == (1U << type)) continue; -if (wireless_type_enabled[type] && (!wireless_network_count[type])) continue; - -elm_box_pack_end(inst->box, inst->icon[type]); -evas_object_show(inst->icon[type]); -avail++; +for (type = WIRELESS_SERVICE_TYPE_WIFI; type < WIRELESS_SERVICE_TYPE_LAST; type++) + { + if (!inst->icon[type]) continue; + if ((wireless_config->disabled_types & (1U << type)) == (1U << type)) continue; + if (wireless_type_enabled[type] && (!wireless_network_count[type])) continue; + + elm_box_pack_end(inst->box, inst->icon[type]); + evas_object_show(inst->icon[type]); + avail++; + } } if (!avail) { --
[EGIT] [core/enlightenment] master 04/05: handle shade <-> unshade toggling in same frame
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=4f28e49f467cd5e94b77d607ed0f3e95fc3fc6dc commit 4f28e49f467cd5e94b77d607ed0f3e95fc3fc6dc Author: Mike Blumenkrantz Date: Tue Sep 12 13:21:09 2017 -0400 handle shade <-> unshade toggling in same frame this should result in a no-op instead of a fail-op fix T6006 --- src/bin/e_comp_object.c | 50 ++--- 1 file changed, 31 insertions(+), 19 deletions(-) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index 1dc282922..0b2f9856c 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -2118,22 +2118,6 @@ _e_comp_object_shade_animator(void *data) } static void -_e_comp_smart_cb_shading(void *data, Evas_Object *obj EINA_UNUSED, void *event_info) -{ - E_Comp_Object *cw = data; - - if (!cw->ec) return; //NYI - E_FREE_FUNC(cw->shade.anim, ecore_animator_del); - - cw->shade.x = cw->x; - cw->shade.y = cw->y; - e_comp_object_signal_emit(cw->smart_obj, "e,state,shading", "e"); - cw->shade.start = ecore_loop_time_get(); - cw->shade.dir = (E_Direction)event_info; - cw->shade.anim = ecore_animator_add(_e_comp_object_shade_animator, cw); -} - -static void _e_comp_smart_cb_shaded(void *data, Evas_Object *obj EINA_UNUSED, void *event_info) { E_Comp_Object *cw = data; @@ -2148,16 +2132,24 @@ _e_comp_smart_cb_shaded(void *data, Evas_Object *obj EINA_UNUSED, void *event_in } static void -_e_comp_smart_cb_unshading(void *data, Evas_Object *obj EINA_UNUSED, void *event_info) +_e_comp_smart_cb_shading(void *data, Evas_Object *obj, void *event_info) { E_Comp_Object *cw = data; if (!cw->ec) return; //NYI + if (cw->shade.anim && EINA_DBL_EQ(cw->shade.val, 0.0)) + { +cw->ec->shaded = 0; +_e_comp_smart_cb_shaded(data, obj, event_info); +return; + } E_FREE_FUNC(cw->shade.anim, ecore_animator_del); - cw->shade.dir = (E_Direction)event_info; - e_comp_object_signal_emit(cw->smart_obj, "e,state,unshading", "e"); + cw->shade.x = cw->x; + cw->shade.y = cw->y; + e_comp_object_signal_emit(cw->smart_obj, "e,state,shading", "e"); cw->shade.start = ecore_loop_time_get(); + cw->shade.dir = (E_Direction)event_info; cw->shade.anim = ecore_animator_add(_e_comp_object_shade_animator, cw); } @@ -2187,6 +2179,26 @@ _e_comp_smart_cb_unshaded(void *data, Evas_Object *obj EINA_UNUSED, void *event_ } static void +_e_comp_smart_cb_unshading(void *data, Evas_Object *obj, void *event_info) +{ + E_Comp_Object *cw = data; + + if (!cw->ec) return; //NYI + if (cw->shade.anim && EINA_DBL_EQ(cw->shade.val, 0.0)) + { +cw->ec->shaded = 1; +_e_comp_smart_cb_unshaded(data, obj, event_info); +return; + } + E_FREE_FUNC(cw->shade.anim, ecore_animator_del); + + cw->shade.dir = (E_Direction)event_info; + e_comp_object_signal_emit(cw->smart_obj, "e,state,unshading", "e"); + cw->shade.start = ecore_loop_time_get(); + cw->shade.anim = ecore_animator_add(_e_comp_object_shade_animator, cw); +} + +static void _e_comp_smart_cb_maximize(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { E_Comp_Object *cw = data; --
[EGIT] [core/enlightenment] master 03/05: use animator del function to delete comp object animators
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=500b9a2eb2b28ec92ee0033cd9edc057c8443382 commit 500b9a2eb2b28ec92ee0033cd9edc057c8443382 Author: Mike Blumenkrantz Date: Tue Sep 12 13:21:09 2017 -0400 use animator del function to delete comp object animators --- src/bin/e_comp_object.c | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/bin/e_comp_object.c b/src/bin/e_comp_object.c index fed61807c..1dc282922 100644 --- a/src/bin/e_comp_object.c +++ b/src/bin/e_comp_object.c @@ -2123,7 +2123,7 @@ _e_comp_smart_cb_shading(void *data, Evas_Object *obj EINA_UNUSED, void *event_i E_Comp_Object *cw = data; if (!cw->ec) return; //NYI - E_FREE_FUNC(cw->shade.anim, ecore_timer_del); + E_FREE_FUNC(cw->shade.anim, ecore_animator_del); cw->shade.x = cw->x; cw->shade.y = cw->y; @@ -2139,7 +2139,7 @@ _e_comp_smart_cb_shaded(void *data, Evas_Object *obj EINA_UNUSED, void *event_in E_Comp_Object *cw = data; if (!cw->ec) return; //NYI - E_FREE_FUNC(cw->shade.anim, ecore_timer_del); + E_FREE_FUNC(cw->shade.anim, ecore_animator_del); e_comp_object_signal_emit(cw->smart_obj, "e,state,shaded", "e"); cw->shade.start = -100; @@ -2153,7 +2153,7 @@ _e_comp_smart_cb_unshading(void *data, Evas_Object *obj EINA_UNUSED, void *event E_Comp_Object *cw = data; if (!cw->ec) return; //NYI - E_FREE_FUNC(cw->shade.anim, ecore_timer_del); + E_FREE_FUNC(cw->shade.anim, ecore_animator_del); cw->shade.dir = (E_Direction)event_info; e_comp_object_signal_emit(cw->smart_obj, "e,state,unshading", "e"); @@ -2167,7 +2167,7 @@ _e_comp_smart_cb_unshaded(void *data, Evas_Object *obj EINA_UNUSED, void *event_ E_Comp_Object *cw = data; if (!cw->ec) return; //NYI - E_FREE_FUNC(cw->shade.anim, ecore_timer_del); + E_FREE_FUNC(cw->shade.anim, ecore_animator_del); cw->shade.dir = (E_Direction)event_info; if (cw->shade.dir == E_DIRECTION_UP || --
[EGIT] [core/enlightenment] master 01/05: make spacer gadgets smarter when multiple spacers exist
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=721eeb994e8d33dd285c1c3f4cd11e71a71e01c5 commit 721eeb994e8d33dd285c1c3f4cd11e71a71e01c5 Author: Mike Blumenkrantz Date: Tue Sep 12 13:21:09 2017 -0400 make spacer gadgets smarter when multiple spacers exist * ignore consecutive spacers * attempt to size/fill consistently based on occupied space fix T5973 --- src/bin/e_gadget.c | 91 ++ 1 file changed, 85 insertions(+), 6 deletions(-) diff --git a/src/bin/e_gadget.c b/src/bin/e_gadget.c index d6204ed75..2fdaf5a96 100644 --- a/src/bin/e_gadget.c +++ b/src/bin/e_gadget.c @@ -675,15 +675,18 @@ _site_layout_orient(Evas_Object *o, E_Gadget_Site *zgs) Eina_List *l; double ax, ay; E_Gadget_Config *zgc; - int mw, mh, sw, sh, rw, rh, bw, bh; - int expand_count; + int mw, mh, sw, sh, rw, rh, bw, bh, prev_w = 0, prev_h = 0; + int groups = 0, avg; + Eina_Bool prev_ex = 0, after = 0; struct Size { Evas_Coord_Size size; Evas_Coord_Size clipped; + Evas_Coord_Size before; + Evas_Coord_Size after; Eina_Bool expand; Evas_Object *obj; - } *size; + } *size, *psize = NULL; Eina_List *expand = NULL, *gadgets = NULL; evas_object_geometry_get(o, &x, &y, &w, &h); @@ -706,13 +709,34 @@ _site_layout_orient(Evas_Object *o, E_Gadget_Site *zgs) if (!zgc->display) continue; ex = _site_gadget_resize(zgc->gadget, w, h, &ww, &hh, &ow, &oh); +if (ex && prev_ex) + { + /* multiple spacers */ + evas_object_resize(zgc->display, 0, 0); + continue; + } size = E_NEW(struct Size, 1); size->size.w = ww; size->size.h = hh; size->clipped.w = ow; size->clipped.h = oh; size->expand = ex; +if (ex) + { + if (psize) + { + psize->after.w = prev_w, psize->after.h = prev_h; + groups++; + } + psize = size; + size->before.w = prev_w; + size->before.h = prev_h; + prev_w = prev_h = 0; + } size->obj = zgc->display; +prev_w += ow; +prev_h += oh; +prev_ex = ex; gadgets = eina_list_append(gadgets, size); if (ex) { @@ -724,21 +748,76 @@ _site_layout_orient(Evas_Object *o, E_Gadget_Site *zgs) else if (IS_VERT(zgs->orient)) rh = MAX(rh - oh, 0); } + if (expand) + { +size = eina_list_last_data_get(expand); +psize = eina_list_last_data_get(gadgets); +if (size != psize) + { + if ((!size->after.w) && (!size->after.h)) + { + size->after.w = prev_w, size->after.h = prev_h; + groups++; + } + } - expand_count = eina_list_count(expand); +size = eina_list_data_get(expand); +if (IS_HORIZ(zgs->orient)) + { + after = !size->before.w; + avg = (bw - rw) / groups; + } +else + { + after = !size->before.h; + avg = (bh - rh) / groups; + } + } EINA_LIST_FREE(expand, size) { if (IS_HORIZ(zgs->orient)) { if (rw) - size->size.w = size->clipped.w = rw / expand_count; + { + size->size.w = size->clipped.w = rw / eina_list_count(expand); + if (eina_list_count(expand) > 1) +{ + int gw; + if (after) + gw = size->after.w; + else + gw = size->before.w; + if (gw > avg) + size->size.w = size->clipped.w -= (gw - avg); + else + size->size.w = size->clipped.w += abs(gw - avg); + size->size.w = size->clipped.w -= size->after.w / 2; + rw -= size->size.w; +} + } else size->size.w = size->clipped.w = 0; } else if (IS_VERT(zgs->orient)) { if (rh) - size->size.h = size->clipped.h = rh / expand_count; + { + size->size.h = size->clipped.h = rh / eina_list_count(expand); + if (eina_list_count(expand) > 1) +{ + int gh; + if (after) + gh = size->after.h; + else + gh = size->before.h; + if (gh > avg) + size->size.h = size->clipped.h -= (gh - avg); + else +
[EGIT] [core/enlightenment] master 05/05: add/use helper function for rescaling individual clients
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=20ea0ed150ae220cb44da8503bac1d9cb7f62ce1 commit 20ea0ed150ae220cb44da8503bac1d9cb7f62ce1 Author: Mike Blumenkrantz Date: Tue Sep 12 13:21:09 2017 -0400 add/use helper function for rescaling individual clients in any case where client needs to be rescaled to use new screen geometry certain things must happen, such as handling shaded state and forcing the new geometry to be applied --- src/bin/e_client.c | 29 - src/bin/e_client.h | 1 + src/bin/e_comp.c | 3 +-- src/bin/e_comp_x.c | 5 + 4 files changed, 23 insertions(+), 15 deletions(-) diff --git a/src/bin/e_client.c b/src/bin/e_client.c index 9b74f1fa4..1386d3f77 100644 --- a/src/bin/e_client.c +++ b/src/bin/e_client.c @@ -2868,11 +2868,7 @@ e_client_desk_set(E_Client *ec, E_Desk *desk) ecore_event_add(E_EVENT_CLIENT_DESK_SET, ev, (Ecore_End_Cb)_e_client_event_desk_set_free, NULL); if (old_desk->zone == ec->zone) - { - e_client_res_change_geometry_save(ec); - e_client_res_change_geometry_restore(ec); - ec->pre_res_change.valid = 0; - } + e_client_rescale(ec); } if (ec->stack.prev || ec->stack.next) @@ -3322,6 +3318,23 @@ e_client_res_change_geometry_restore(E_Client *ec) } E_API void +e_client_rescale(E_Client *ec) +{ + Eina_Bool shaded; + int shade_dir; + E_OBJECT_CHECK(ec); + E_OBJECT_TYPE_CHECK(ec, E_CLIENT_TYPE); + + shaded = ec->shaded; + shade_dir = ec->shade_dir; + if (shaded) e_client_unshade(ec, shade_dir); + ec->pre_res_change.valid = 0; + e_client_res_change_geometry_save(ec); + e_client_res_change_geometry_restore(ec); + if (shaded) e_client_shade(ec, shade_dir); +} + +E_API void e_client_zone_set(E_Client *ec, E_Zone *zone) { E_Event_Client_Zone_Set *ev; @@ -3380,9 +3393,7 @@ e_client_zone_set(E_Client *ec, E_Zone *zone) ecore_event_add(E_EVENT_CLIENT_ZONE_SET, ev, (Ecore_End_Cb)_e_client_event_zone_set_free, NULL); e_remember_update(ec); - e_client_res_change_geometry_save(ec); - e_client_res_change_geometry_restore(ec); - ec->pre_res_change.valid = 0; + e_client_rescale(ec); } E_API void @@ -3866,7 +3877,7 @@ e_client_shade(E_Client *ec, E_Direction dir) { E_OBJECT_CHECK(ec); E_OBJECT_TYPE_CHECK(ec, E_CLIENT_TYPE); - if ((ec->shaded) || (ec->shading) || (ec->fullscreen) || + if (((!ec->shaded) && ec->shading) || (ec->shaded && (!ec->shading)) || (ec->fullscreen) || ((ec->maximized) && (!e_config->allow_manip))) return; if (!e_util_strcmp("borderless", ec->bordername)) return; if (!e_comp_object_frame_allowed(ec->frame)) return; diff --git a/src/bin/e_client.h b/src/bin/e_client.h index c2a7e0cae..9aafa9897 100644 --- a/src/bin/e_client.h +++ b/src/bin/e_client.h @@ -785,6 +785,7 @@ E_API void e_client_mouse_up(E_Client *ec, int button, Evas_Point *output, E_Bin E_API void e_client_mouse_move(E_Client *ec, Evas_Point *output); E_API void e_client_res_change_geometry_save(E_Client *bd); E_API void e_client_res_change_geometry_restore(E_Client *ec); +E_API void e_client_rescale(E_Client *ec); E_API void e_client_zone_set(E_Client *ec, E_Zone *zone); E_API void e_client_geometry_get(E_Client *ec, int *x, int *y, int *w, int *h); E_API E_Client *e_client_above_get(const E_Client *ec); diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c index 38c28a3e8..63e4c6d40 100644 --- a/src/bin/e_comp.c +++ b/src/bin/e_comp.c @@ -1829,8 +1829,7 @@ e_comp_clients_rescale(void) EINA_LIST_FREE(tmp, ec) { ec->pre_res_change.valid = 0; - e_client_res_change_geometry_save(ec); - e_client_res_change_geometry_restore(ec); + e_client_rescale(ec); } } } diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c index a1d960645..34871f352 100644 --- a/src/bin/e_comp_x.c +++ b/src/bin/e_comp_x.c @@ -3871,10 +3871,7 @@ _e_comp_x_hook_client_fetch(void *d EINA_UNUSED, E_Client *ec) } } if (ec->placed && (!e_client_util_resizing_get(ec)) && (!ec->override)) - { - e_client_res_change_geometry_save(ec); - e_client_res_change_geometry_restore(ec); - } + e_client_rescale(ec); } if (ec->icccm.min_w > 32767) ec->icccm.min_w = 32767; if (ec->icccm.min_h > 32767) ec->icccm.min_h = 32767; --
[EGIT] [core/efl] master 02/02: eio: simplify promise use.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=2e4d357a26950864f6edf03c3b664fcad8b0d036 commit 2e4d357a26950864f6edf03c3b664fcad8b0d036 Author: Cedric BAIL Date: Tue Sep 12 10:22:21 2017 -0700 eio: simplify promise use. --- src/lib/eio/efl_io_manager.c | 10 ++ 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/lib/eio/efl_io_manager.c b/src/lib/eio/efl_io_manager.c index dc7b243ecf..e4100810af 100644 --- a/src/lib/eio/efl_io_manager.c +++ b/src/lib/eio/efl_io_manager.c @@ -438,11 +438,8 @@ static void _future_file_done_cb(void *data, Eio_File *handler) { Eina_Promise *p = data; - Eina_Value v = EINA_VALUE_EMPTY; - eina_value_setup(&v, EINA_VALUE_TYPE_UINT64); - eina_value_set(&v, handler->length); - eina_promise_resolve(p, v); + eina_promise_resolve(p, eina_value_uint64_init(handler->length)); } static void @@ -451,11 +448,8 @@ _future_file_error_cb(void *data, int error) { Eina_Promise *p = data; - Eina_Value v = EINA_VALUE_EMPTY; - eina_value_setup(&v, EINA_VALUE_TYPE_ERROR); - eina_value_set(&v, error); - eina_promise_resolve(p, v); + eina_promise_reject(p, error); } static void --
[EGIT] [core/efl] master 01/02: eina: cleanup documentation for promise.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=19e0f35d1c3fc088291ffad590598c599cdc1409 commit 19e0f35d1c3fc088291ffad590598c599cdc1409 Author: Cedric BAIL Date: Tue Sep 12 10:16:44 2017 -0700 eina: cleanup documentation for promise. --- src/lib/eina/eina_promise.h | 8 ++-- 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/lib/eina/eina_promise.h b/src/lib/eina/eina_promise.h index caca9574a9..323dee3288 100644 --- a/src/lib/eina/eina_promise.h +++ b/src/lib/eina/eina_promise.h @@ -547,9 +547,7 @@ EAPI Eina_Promise *eina_promise_new(Eina_Future_Scheduler *scheduler, Eina_Promi * * @return The data passed to eina_promise_new() or @c NULL on error. * @see eina_promise_new() - * @see eina_promise_resolve() - * @see eina_promise_reject() - * @see eina_promise_as_value() + * @see eina_promise_data_set() */ EAPI void *eina_promise_data_get(const Eina_Promise *p) EINA_ARG_NONNULL(1); @@ -558,9 +556,7 @@ EAPI void *eina_promise_data_get(const Eina_Promise *p) EINA_ARG_NONNULL(1); * * Set the data passed to eina_promise_new(). * @see eina_promise_new() - * @see eina_promise_resolve() - * @see eina_promise_reject() - * @see eina_promise_as_value() + * @see eina_promise_data_get() */ EAPI void eina_promise_data_set(Eina_Promise *p, void *data) EINA_ARG_NONNULL(1); --
[EGIT] [core/enlightenment] master 01/02: bump efl version reqs to 1.20.3
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=f73e37655ec07597e04234c72fbe699ba8ff2a60 commit f73e37655ec07597e04234c72fbe699ba8ff2a60 Author: Mike Blumenkrantz Date: Tue Sep 12 13:22:23 2017 -0400 bump efl version reqs to 1.20.3 this will need to be 1.20.4 soon --- configure.ac | 4 ++-- meson.build | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/configure.ac b/configure.ac index 999769d6c..a0125c622 100644 --- a/configure.ac +++ b/configure.ac @@ -91,11 +91,11 @@ extern char **environ; AC_DEFINE(HAVE_ENVIRON, 1, [Have environ var]) ]) -efl_version="1.19.99" +efl_version="1.20.3" AC_SUBST(efl_version) #We use ecore_drm2 beta API -efl_ecore_drm2_version="1.19.99" +efl_ecore_drm2_version="1.20.3" AC_SUBST(efl_ecore_drm2_version) AC_CHECK_HEADERS([sys/timerfd.h sys/ptrace.h arpa/inet.h netinet/in.h]) diff --git a/meson.build b/meson.build index 4753b7944..007204db2 100644 --- a/meson.build +++ b/meson.build @@ -29,7 +29,7 @@ endif e_version_rev = '.'.join([ver, git_version]) #e_version_rev = e_version -efl_version = '>= 1.19.99' +efl_version = '>= 1.20.3' release = 'ver-0.22' #for releases --
[EGIT] [core/enlightenment] master 02/02: handle gadget site layout when last gadget in site is a spacer
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=6bd97ced9be426c12f84d9abf9bad56effcc873d commit 6bd97ced9be426c12f84d9abf9bad56effcc873d Author: Mike Blumenkrantz Date: Tue Sep 12 13:36:39 2017 -0400 handle gadget site layout when last gadget in site is a spacer --- src/bin/e_gadget.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/bin/e_gadget.c b/src/bin/e_gadget.c index 2fdaf5a96..01a3091fd 100644 --- a/src/bin/e_gadget.c +++ b/src/bin/e_gadget.c @@ -760,6 +760,7 @@ _site_layout_orient(Evas_Object *o, E_Gadget_Site *zgs) groups++; } } +else if (!groups) groups++; size = eina_list_data_get(expand); if (IS_HORIZ(zgs->orient)) --
[EGIT] [core/enlightenment] master 01/01: revert gadget ctxpopup autopositioning attempts
discomfitor pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=a5bb9932eeaee8659477c15e7838661183310580 commit a5bb9932eeaee8659477c15e7838661183310580 Author: Mike Blumenkrantz Date: Tue Sep 12 14:03:56 2017 -0400 revert gadget ctxpopup autopositioning attempts I don't think this method would ever have worked reliably This reverts commit 6f1b75e87b886de60c57361b0b6dc08d9a7ed963. This reverts commit 84e999f5f334aeeab8ff84d7f622b01d668bf181. --- src/bin/e_gadget.c | 66 +- 1 file changed, 5 insertions(+), 61 deletions(-) diff --git a/src/bin/e_gadget.c b/src/bin/e_gadget.c index 01a3091fd..c66d4a518 100644 --- a/src/bin/e_gadget.c +++ b/src/bin/e_gadget.c @@ -2192,69 +2192,18 @@ _gadget_util_ctxpopup_visibility(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Ev } static void -_gadget_util_ctxpopup_move(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +_gadget_util_ctxpopup_moveresize(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { e_comp_shape_queue(); } -static void -_gadget_util_ctxpopup_resize(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED) -{ - int x, y, w, h; - int zx, zy, zw, zh; - - e_comp_shape_queue(); - return; - - evas_object_geometry_get(obj, NULL, NULL, &w, &h); - evas_object_geometry_get(data, &x, &y, NULL, NULL); - fprintf(stderr, "%d,%d %dx%d\n", x, y, w, h); - - e_zone_useful_geometry_get(e_comp_object_util_zone_get(obj), &zx, &zy, &zw, &zh); - zx -= ELM_SCALE_SIZE(5); - zy -= ELM_SCALE_SIZE(5); - zw += ELM_SCALE_SIZE(10); - zh += ELM_SCALE_SIZE(10); - if (!E_CONTAINS(zx, zy, zw, zh, x, y, w, h)) - { -evas_object_hide(obj); -if (!E_CONTAINS(zx, zy, zw, zh, x, y, 1, h)) - { - /* not inside vertically */ - if (!E_CONTAINS(zx, zy, zw, zh, x, y, 1, 1)) - /* not inside on top edge */ - evas_object_move(data, x, y + abs(y - zy)); - else - /* not inside on bottom edge */ - evas_object_move(data, x, y - abs((y + h) - (zy + zh))); - } -else - { - /* not inside horizontally */ - if (!E_CONTAINS(zx, zy, zw, zh, x, y, 1, 1)) - /* not inside on left edge */ - evas_object_move(data, x + abs(x - zx), y); - else - /* not inside on right edge */ - evas_object_move(data, x - abs((x + w) - (zx + zw)), y); - } -evas_object_show(obj); -evas_object_geometry_get(data, &x, &y, NULL, NULL); - fprintf(stderr, "MV %d,%d\n", x, y); - } - e_comp_shape_queue(); -} - E_API void e_gadget_util_ctxpopup_place(Evas_Object *g, Evas_Object *ctx, Evas_Object *pos_obj) { int x, y, w, h; - int zx, zy, zw, zh; - int pw = 1, ph = 1; E_Layer layer; E_Gadget_Config *zgc; Evas_Object *content; - E_Zone *zone; Elm_Ctxpopup_Direction first, second; EINA_SAFETY_ON_NULL_RETURN(g); @@ -2266,11 +2215,7 @@ e_gadget_util_ctxpopup_place(Evas_Object *g, Evas_Object *ctx, Evas_Object *pos_ layer = MAX(evas_object_layer_get(pos_obj ?: g), E_LAYER_POPUP); evas_object_layer_set(ctx, layer); - if (content) evas_object_geometry_get(content, NULL, NULL, &pw, &ph); -e_util_size_debug_set(content, 1); evas_object_geometry_get(pos_obj ?: g, &x, &y, &w, &h); - zone = e_comp_object_util_zone_get(pos_obj ?: g); - e_zone_useful_geometry_get(zone, &zx, &zy, &zw, &zh); if (zgc->site->anchor & E_GADGET_SITE_ANCHOR_TOP) y += h; if (zgc->site->anchor & E_GADGET_SITE_ANCHOR_LEFT) @@ -2278,7 +2223,6 @@ e_util_size_debug_set(content, 1); if (zgc->site->orient == E_GADGET_SITE_ORIENT_HORIZONTAL) { x += w / 2; -x = E_CLAMP(x, zx, zx + zw - MAX(pw, w)); first = ELM_CTXPOPUP_DIRECTION_UP, second = ELM_CTXPOPUP_DIRECTION_DOWN; if (zgc->site->anchor & E_GADGET_SITE_ANCHOR_TOP) first = ELM_CTXPOPUP_DIRECTION_DOWN, second = ELM_CTXPOPUP_DIRECTION_UP; @@ -2286,13 +2230,14 @@ e_util_size_debug_set(content, 1); else if (zgc->site->orient == E_GADGET_SITE_ORIENT_VERTICAL) { y += h / 2; -y = E_CLAMP(y, zy, zy + zh - MAX(ph, h)); first = ELM_CTXPOPUP_DIRECTION_LEFT, second = ELM_CTXPOPUP_DIRECTION_RIGHT; if (zgc->site->anchor & E_GADGET_SITE_ANCHOR_LEFT) first = ELM_CTXPOPUP_DIRECTION_RIGHT, second = ELM_CTXPOPUP_DIRECTION_LEFT; } else { +int zx, zy, zw, zh; +e_zone_useful_geometry_get(e_comp_object_util_zone_get(pos_obj ?: g), &zx, &zy, &zw, &zh); if (x < zx + (zw / 2)) { second = ELM_CTXPOPUP_DIRECTION_RIGHT; @@ -2309,14 +2254,13 @@ e_util_size_deb
[EGIT] [core/enlightenment] master 01/01: pkgkit unknown string - fix typo
raster pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=82a82c13cc72fffc605788ff989935ec79d2f8a0 commit 82a82c13cc72fffc605788ff989935ec79d2f8a0 Author: Carsten Haitzler (Rasterman) Date: Wed Sep 13 06:33:02 2017 +0900 pkgkit unknown string - fix typo reported by scootergrisen --- src/modules/packagekit/e_mod_packagekit.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/packagekit/e_mod_packagekit.c b/src/modules/packagekit/e_mod_packagekit.c index 1cbc7346f..0e667e32b 100644 --- a/src/modules/packagekit/e_mod_packagekit.c +++ b/src/modules/packagekit/e_mod_packagekit.c @@ -164,7 +164,7 @@ _help_button_cb(void *data, Evas_Object *obj EINA_UNUSED, snprintf(buf, sizeof(buf), "PackageKit version: %d.%d.%d", inst->ctxt->v_maj, inst->ctxt->v_min, inst->ctxt->v_mic); else - snprintf(buf, sizeof(buf), _("Unknow PackageKit version")); + snprintf(buf, sizeof(buf), _("Unknown PackageKit version")); elm_object_text_set(inst->popup_title_entry, buf); } --
[EGIT] [tools/edi] master 01/01: popups: more UI tweaks.
netstar pushed a commit to branch master. http://git.enlightenment.org/tools/edi.git/commit/?id=02a187236528709feb9a5e4cbcb7ba55eeb71f3b commit 02a187236528709feb9a5e4cbcb7ba55eeb71f3b Author: Al Poole Date: Wed Sep 13 00:05:56 2017 +0100 popups: more UI tweaks. --- src/bin/editor/edi_editor.c | 8 ++-- src/bin/screens/edi_screens.c | 11 +-- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/bin/editor/edi_editor.c b/src/bin/editor/edi_editor.c index 462c4d1..b9caa2a 100644 --- a/src/bin/editor/edi_editor.c +++ b/src/bin/editor/edi_editor.c @@ -62,7 +62,7 @@ _edi_editor_file_change_ignore_cb(void *data, Evas_Object *obj EINA_UNUSED, void static void _edi_editor_file_change_popup(Evas_Object *parent, Edi_Editor *editor) { - Evas_Object *table, *box, *label, *sep, *icon, *button; + Evas_Object *table, *frame, *box, *label, *sep, *icon, *button; if (editor->popup) return; @@ -83,6 +83,10 @@ _edi_editor_file_change_popup(Evas_Object *parent, Edi_Editor *editor) evas_object_show(icon); elm_table_pack(table, icon, 0, 0, 1, 1); + frame = elm_frame_add(editor->popup); + elm_object_content_set(frame, table); + evas_object_show(frame); + box = elm_box_add(editor->popup); label = elm_label_add(editor->popup); elm_object_text_set(label, _("File contents have changed. Would you like to reload the contents of this file?")); @@ -96,7 +100,7 @@ _edi_editor_file_change_popup(Evas_Object *parent, Edi_Editor *editor) evas_object_show(box); elm_table_pack(table, box, 1, 0, 1, 1); - elm_object_content_set(editor->popup, table); + elm_object_content_set(editor->popup, frame); evas_object_show(table); button = elm_button_add(editor->popup); diff --git a/src/bin/screens/edi_screens.c b/src/bin/screens/edi_screens.c index 66d067d..7e3dbcb 100644 --- a/src/bin/screens/edi_screens.c +++ b/src/bin/screens/edi_screens.c @@ -34,7 +34,7 @@ _edi_screens_message_confirm_cb(void *data, Evas_Object *obj, void edi_screens_message_confirm(Evas_Object *parent, const char *message, void ((*confirm_cb)(void *)), void *data) { - Evas_Object *popup, *table, *label, *button, *icon, *box, *sep; + Evas_Object *popup, *frame, *table, *label, *button, *icon, *box, *sep; _edi_screens_popup = popup = elm_popup_add(parent); elm_object_part_text_set(popup, "title,text", _("Confirmation required")); @@ -57,17 +57,16 @@ void edi_screens_message_confirm(Evas_Object *parent, const char *message, void evas_object_show(table); box = elm_box_add(popup); - sep = elm_separator_add(box); - elm_separator_horizontal_set(sep, EINA_TRUE); - evas_object_show(sep); - elm_box_pack_end(box, sep); elm_box_pack_end(box, table); sep = elm_separator_add(box); elm_separator_horizontal_set(sep, EINA_TRUE); evas_object_show(sep); elm_box_pack_end(box, sep); - elm_object_content_set(popup, box); + frame = elm_frame_add(popup); + evas_object_show(frame); + elm_object_content_set(frame, box); + elm_object_content_set(popup, frame); button = elm_button_add(popup); elm_object_text_set(button, _("Yes")); --
[EGIT] [tools/edi] master 01/01: popup: more UI tweaks.
netstar pushed a commit to branch master. http://git.enlightenment.org/tools/edi.git/commit/?id=a446d3a8d15649732dd70c50a78af4f90d06dce9 commit a446d3a8d15649732dd70c50a78af4f90d06dce9 Author: Al Poole Date: Wed Sep 13 00:09:12 2017 +0100 popup: more UI tweaks. --- src/bin/screens/edi_scm_screens.c | 65 --- 1 file changed, 34 insertions(+), 31 deletions(-) diff --git a/src/bin/screens/edi_scm_screens.c b/src/bin/screens/edi_scm_screens.c index 1a132ac..f15c991 100644 --- a/src/bin/screens/edi_scm_screens.c +++ b/src/bin/screens/edi_scm_screens.c @@ -106,7 +106,7 @@ _entry_lines_append(Elm_Code *code, char *diff) void edi_scm_screens_commit(Evas_Object *parent) { - Evas_Object *popup, *box, *hbox, *cbox, *sep, *label, *avatar, *input, *button; + Evas_Object *popup, *box, *frame, *hbox, *cbox, *label, *avatar, *input, *button; Evas_Object *list, *icon; Elm_Code_Widget *entry; Elm_Code *code; @@ -126,28 +126,28 @@ edi_scm_screens_commit(Evas_Object *parent) _parent_obj = parent; _popup = popup = elm_popup_add(parent); - elm_popup_scrollable_set(popup, EINA_TRUE); evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(popup, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_object_part_text_set(popup, "title,text", - _("Commit Changes")); + box = elm_box_add(popup); elm_box_horizontal_set(box, EINA_FALSE); evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_object_content_set(popup, box); - sep = elm_separator_add(box); - elm_separator_horizontal_set(sep, EINA_TRUE); - evas_object_show(sep); - elm_box_pack_end(box, sep); - hbox = elm_box_add(popup); elm_box_horizontal_set(hbox, EINA_TRUE); evas_object_size_hint_weight_set(hbox, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(hbox, EVAS_HINT_FILL, EVAS_HINT_FILL); evas_object_show(hbox); - elm_box_pack_end(box, hbox); + + frame = elm_frame_add(hbox); + elm_object_text_set(frame, _("Summary")); + evas_object_size_hint_weight_set(frame, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(frame, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_object_content_set(frame, hbox); + evas_object_show(frame); + elm_box_pack_end(box, frame); label = elm_label_add(hbox); evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, 0.0); @@ -169,24 +169,18 @@ edi_scm_screens_commit(Evas_Object *parent) evas_object_show(avatar); elm_box_pack_end(hbox, avatar); - sep = elm_separator_add(box); - elm_separator_horizontal_set(sep, EINA_TRUE); - evas_object_show(sep); - elm_box_pack_end(box, sep); - - label = elm_label_add(box); - evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, 0.0); - evas_object_size_hint_align_set(label, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_object_text_set(label, _("Summary")); - elm_box_pack_end(box, label); - evas_object_show(label); + cbox = elm_box_add(box); + evas_object_size_hint_weight_set(cbox, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(cbox, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_size_hint_min_set(cbox, 250 * elm_config_scale_get(), 100 * elm_config_scale_get()); + evas_object_show(cbox); list = elm_list_add(box); - elm_list_mode_set(list, ELM_LIST_EXPAND); elm_list_select_mode_set(list, ELM_OBJECT_SELECT_MODE_NONE); evas_object_size_hint_weight_set(list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(list, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_box_pack_end(box, list); + elm_box_pack_end(cbox, list); + elm_box_pack_end(box, cbox); staged_changes = EINA_FALSE; @@ -253,6 +247,12 @@ edi_scm_screens_commit(Evas_Object *parent) elm_list_go(list); evas_object_show(list); + frame = elm_frame_add(popup); + evas_object_size_hint_weight_set(frame, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(frame, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_object_text_set(frame, _("Commit message")); + evas_object_show(frame); + input = elm_entry_add(box); elm_object_text_set(input, _("Enter commit summaryAnd change details")); evas_object_size_hint_weight_set(input, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); @@ -262,17 +262,25 @@ edi_scm_screens_commit(Evas_Object *parent) elm_entry_single_line_set(input, EINA_TRUE); elm_object_style_set(input, "entry"); evas_object_show(input); - elm_box_pack_end(box, input); + elm_object_content_set(frame, input); + elm_box_pack_end(box, frame); diff = edi_scm_diff(); if (strlen(diff)) { +frame = elm_frame_add(popup); +evas_object_size_hint_weight_set(frame, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); +evas_object_size_hint_align_set
[EGIT] [core/efl] master 03/04: eina: compilation fixed on OpenIndiana
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=da7876a9b80f6fb96f642612d115345254a617d9 commit da7876a9b80f6fb96f642612d115345254a617d9 Author: Vincent Torri Date: Mon Sep 11 03:08:36 2017 +0200 eina: compilation fixed on OpenIndiana socket library must be passed as connect() is used in eina_db Signed-off-by: Cedric BAIL --- configure.ac | 47 +-- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/configure.ac b/configure.ac index 9bdf7c364c..2d4e048065 100644 --- a/configure.ac +++ b/configure.ac @@ -957,9 +957,32 @@ AC_DEFINE_UNQUOTED([EVAS_DICTS_HYPHEN_DIR],["$evas_dicts_hyphen_dir"], [Hunspell ### Checks for programs ### Checks for libraries + +# sockets + +case "$host_os" in + mingw*) + have_socket="no" + ;; + *solaris*) + AC_CHECK_LIB([socket], [connect], + [ + have_socket="yes" + requirement_socket="-lsocket" + ], + [have_socket="no"]) + ;; + darwin*) + have_socket="yes" + ;; + *) + have_socket="yes" + ;; +esac + EFL_PLATFORM_DEPEND([EINA], [all]) -EFL_ADD_LIBS([EINA], [-lm]) +EFL_ADD_LIBS([EINA], [${requirement_socket} -lm]) ## Options @@ -5409,27 +5432,7 @@ esac ### Checks for linker characteristics -# sockets - -case "$host_os" in - mingw*) - have_socket="no" - ;; - *solaris*) - AC_CHECK_LIB([socket], [connect], - [ - have_socket="yes" - requirements_libs_elm="-lsocket ${requirements_libs_elm}" - ], - [have_socket="no"]) - ;; - darwin*) - have_socket="yes" - ;; - *) - have_socket="yes" - ;; -esac +requirements_libs_elm="${requirement_socket} ${requirements_libs_elm}" AC_SUBST([requirements_libs_elm]) --
[EGIT] [core/efl] master 04/04: eina: add an Eina_Value helper for Eina_Rectangle.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=966577ffedec4f1d92265a7c17b1e633c345eb09 commit 966577ffedec4f1d92265a7c17b1e633c345eb09 Author: Vincent Torri Date: Mon Sep 11 03:52:47 2017 +0200 eina: add an Eina_Value helper for Eina_Rectangle. --- configure.ac | 3 +- src/lib/eina/eina_value.c | 119 ++ src/lib/eina/eina_value.h | 9 3 files changed, 130 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 2d4e048065..c202d0d32b 100644 --- a/configure.ac +++ b/configure.ac @@ -969,6 +969,7 @@ case "$host_os" in [ have_socket="yes" requirement_socket="-lsocket" + requirement_nsl="-lnsl" ], [have_socket="no"]) ;; @@ -3119,7 +3120,7 @@ fi AM_CONDITIONAL([EFL_NET_CONTROL_BACKEND_CONNMAN], [test "${EFL_NET_CONTROL_BACKEND}" = "connman"]) AM_CONDITIONAL([EFL_NET_CONTROL_BACKEND_NONE], [test "${EFL_NET_CONTROL_BACKEND}" = "none"]) -EFL_ADD_LIBS([ECORE_CON], [-lm]) +EFL_ADD_LIBS([ECORE_CON], [${requirement_nsl} -lm]) EFL_OPTIONAL_DEPEND_PKG([ECORE_CON], [${want_systemd}], [SYSTEMD], [libsystemd]) diff --git a/src/lib/eina/eina_value.c b/src/lib/eina/eina_value.c index 22b3f506e0..1fa84de231 100644 --- a/src/lib/eina/eina_value.c +++ b/src/lib/eina/eina_value.c @@ -36,6 +36,7 @@ #include "eina_mempool.h" #include "eina_lock.h" #include "eina_file.h" +#include "eina_rectangle.h" /* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */ #include "eina_safety_checks.h" @@ -4782,6 +4783,122 @@ EAPI const Eina_Value_Type _EINA_VALUE_TYPE_FILE = { _eina_value_type_file_pget }; +static Eina_Bool +_eina_value_type_rectangle_setup(const Eina_Value_Type *type EINA_UNUSED, void *mem) +{ + memset(mem, 0, sizeof(Eina_Rectangle)); + return EINA_TRUE; +} + +static Eina_Bool +_eina_value_type_rectangle_flush(const Eina_Value_Type *type EINA_UNUSED, + void *mem EINA_UNUSED) +{ + return EINA_TRUE; +} + +static Eina_Bool +_eina_value_type_rectangle_copy(const Eina_Value_Type *type EINA_UNUSED, const void *src, void *dst) +{ + memcpy(dst, src, sizeof (Eina_Rectangle)); + + return EINA_TRUE; +} + +static int +_eina_value_type_rectangle_compare(const Eina_Value_Type *type EINA_UNUSED, const void *a, const void *b) +{ + const Eina_Rectangle *ra = a; + const Eina_Rectangle *rb = b; + + if (eina_rectangle_equal(ra, rb)) return 0; + return -1; +} + +static Eina_Bool +_eina_value_type_rectangle_convert_to(const Eina_Value_Type *type EINA_UNUSED, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem) +{ + const Eina_Rectangle *tr = type_mem; + Eina_Bool ret = EINA_FALSE; + + if ((convert == EINA_VALUE_TYPE_STRING) || + (convert == EINA_VALUE_TYPE_STRINGSHARE)) + { +Eina_Strbuf *buf; +const char *str; + +buf = eina_strbuf_new(); +eina_strbuf_append_printf(buf, "[ %i, %i, %i, %i ]", + tr->x, tr->y, tr->w, tr->h); +str = eina_strbuf_string_get(buf); +ret = eina_value_type_pset(convert, convert_mem, &str); + } + + return ret; +} + +static Eina_Bool +_eina_value_type_rectangle_convert_from(const Eina_Value_Type *type EINA_UNUSED, const Eina_Value_Type *convert, void *type_mem, const void *convert_mem) +{ + Eina_Rectangle *r = type_mem; + + if ((convert == EINA_VALUE_TYPE_STRING) || + (convert == EINA_VALUE_TYPE_STRINGSHARE)) + { +const char *buf = *(const char **)convert_mem; +int ret; + +ret = sscanf(buf, "[ %i, %i, %i, %i ]", + &r->x, &r->y, &r->w, &r->h); + +if (ret <= 0) return EINA_FALSE; +return EINA_TRUE; + } + + return EINA_FALSE; +} + +static Eina_Bool +_eina_value_type_rectangle_pset(const Eina_Value_Type *type EINA_UNUSED, void *mem, const void *ptr) +{ + const Eina_Rectangle *r = ptr; + Eina_Rectangle *tr = mem; + + *tr = *r; + return EINA_TRUE; +} + +static Eina_Bool +_eina_value_type_rectangle_vset(const Eina_Value_Type *type, void *mem, va_list args) +{ + const Eina_Rectangle *r = va_arg(args, Eina_Rectangle *); + return _eina_value_type_rectangle_pset(type, mem, r); +} + +static Eina_Bool +_eina_value_type_rectangle_pget(const Eina_Value_Type *type EINA_UNUSED, const void *mem, void *ptr) +{ + const Eina_Rectangle *tr = mem; + + memcpy(ptr, &tr, sizeof (void*)); + return EINA_TRUE; +} + +EAPI const Eina_Value_Type _EINA_VALUE_TYPE_RECTANGLE = { + EINA_VALUE_TYPE_VERSION, + sizeof (Eina_Rectangle), + "Eina_Value_Rectangle", + _eina_value_type_rectangle_setup, + _eina_value_type_rectangle_flush, + _eina_value_type_rectangle_copy, + _eina_value_type_rectangle_compare, + _eina_value_type_rectangle_convert_to, + _eina_value_type_rectangle_convert_from, + _eina_value_type_rectangle_vset, + _eina_value_type
[EGIT] [core/efl] master 01/04: eio: move efl.io.manager.close to use the new future.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=de106a29733daf398d318eae2aa6e1c1c8581970 commit de106a29733daf398d318eae2aa6e1c1c8581970 Author: Cedric BAIL Date: Tue Sep 12 14:08:40 2017 -0700 eio: move efl.io.manager.close to use the new future. --- src/lib/eio/efl_io_manager.c | 21 +++-- src/lib/eio/efl_io_manager.eo | 2 +- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/lib/eio/efl_io_manager.c b/src/lib/eio/efl_io_manager.c index e4100810af..75fa2289b0 100644 --- a/src/lib/eio/efl_io_manager.c +++ b/src/lib/eio/efl_io_manager.c @@ -558,30 +558,31 @@ _efl_io_manager_open(Eo *obj, return NULL; } -static Efl_Future * +static Eina_Future * _efl_io_manager_close(Eo *obj, Efl_Io_Manager_Data *pd EINA_UNUSED, Eina_File *file) { - Efl_Promise *p; + Eina_Promise *p; + Eina_Future *future; Eio_File *h; - Eo *loop = efl_loop_get(obj); - p = efl_add(EFL_PROMISE_CLASS, loop); + p = eina_promise_new(efl_loop_future_scheduler_get(obj), +_efl_io_manager_future_cancel, NULL); if (!p) return NULL; + future = eina_future_new(p); h = eio_file_close(file, - _file_done_cb, - _file_error_cb, + _future_file_done_cb, + _future_file_error_cb, p); if (!h) goto end; + eina_promise_data_set(p, h); - efl_event_callback_array_add(p, promise_handling(), h); - return efl_promise_future_get(p); + return efl_future_Eina_FutureXXX_then(obj, future); end: - efl_del(p); - return NULL; + return future; } #include "efl_io_manager.eo.c" diff --git a/src/lib/eio/efl_io_manager.eo b/src/lib/eio/efl_io_manager.eo index 34e70d985c..a4e8aaddc5 100644 --- a/src/lib/eio/efl_io_manager.eo +++ b/src/lib/eio/efl_io_manager.eo @@ -91,7 +91,7 @@ class Efl.Io.Manager (Efl.Loop_User) @in file: ptr(Eina.File); [[Eina file handle]] // Here we're just interested whether the promise was fullfilled or not. No value needed. } - return: future; [[Close return code]] + return: own(ptr(Eina.Future)); [[Close return code]] } } } --
[EGIT] [core/efl] master 02/04: eina: add an Eina_Value helper for Eina_File.
cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=95dd799715e6ba7574dbc1fc1c244b91bf3a4927 commit 95dd799715e6ba7574dbc1fc1c244b91bf3a4927 Author: Cedric BAIL Date: Tue Sep 12 15:40:42 2017 -0700 eina: add an Eina_Value helper for Eina_File. --- src/lib/eina/eina_value.c | 118 +- src/lib/eina/eina_value.h | 8 2 files changed, 125 insertions(+), 1 deletion(-) diff --git a/src/lib/eina/eina_value.c b/src/lib/eina/eina_value.c index cdc237d202..22b3f506e0 100644 --- a/src/lib/eina/eina_value.c +++ b/src/lib/eina/eina_value.c @@ -35,6 +35,7 @@ #include "eina_strbuf.h" #include "eina_mempool.h" #include "eina_lock.h" +#include "eina_file.h" /* undefs EINA_ARG_NONULL() so NULL checks are not compiled out! */ #include "eina_safety_checks.h" @@ -4668,6 +4669,119 @@ EAPI const Eina_Value_Type _EINA_VALUE_TYPE_OPTIONAL = { _eina_value_type_optional_pget }; +static Eina_Bool +_eina_value_type_file_setup(const Eina_Value_Type *type EINA_UNUSED, void *mem) +{ + memset(mem, 0, sizeof(Eina_File *)); + return EINA_TRUE; +} + +static Eina_Bool +_eina_value_type_file_flush(const Eina_Value_Type *type EINA_UNUSED, void *mem) +{ + Eina_File *f = *(Eina_File **)mem; + + eina_file_close(f); + return EINA_TRUE; +} + +static Eina_Bool +_eina_value_type_file_copy(const Eina_Value_Type *type EINA_UNUSED, const void *src, void *dst) +{ + const Eina_File *f = *(const Eina_File **)src; + Eina_File **d = dst; + + *d = eina_file_dup(f); + return !!(*d); +} + +static int +_eina_value_type_file_compare(const Eina_Value_Type *type EINA_UNUSED, const void *a, const void *b) +{ + const Eina_File *ta = *(const Eina_File **)a; + const Eina_File *tb = *(const Eina_File **)b; + + if (ta == tb) return 0; + if (!ta) return -1; + if (!tb) return 1; + return -1; +} + +static Eina_Bool +_eina_value_type_file_convert_to(const Eina_Value_Type *type EINA_UNUSED, const Eina_Value_Type *convert, const void *type_mem, void *convert_mem) +{ + const Eina_File *f = *(const Eina_File **) type_mem; + Eina_Bool ret = EINA_FALSE; + + if ((convert == EINA_VALUE_TYPE_STRING) || + (convert == EINA_VALUE_TYPE_STRINGSHARE)) + { +const char *filename; + +filename = eina_file_filename_get(f); +ret = eina_value_type_pset(convert, convert_mem, &filename); + } + + return ret; +} + +static Eina_Bool +_eina_value_type_file_convert_from(const Eina_Value_Type *type EINA_UNUSED, const Eina_Value_Type *convert, void *type_mem, const void *convert_mem) +{ + Eina_File **f = type_mem; + + if ((convert == EINA_VALUE_TYPE_STRING) || + (convert == EINA_VALUE_TYPE_STRINGSHARE)) + { +const char *filename = *(const char **)convert_mem; + +if (!filename) return EINA_FALSE; +*f = eina_file_open(filename, EINA_FALSE); +return !!(*f); + } + + return EINA_FALSE; +} + +static Eina_Bool +_eina_value_type_file_pset(const Eina_Value_Type *type EINA_UNUSED, void *mem, const void *ptr) +{ + Eina_File **d = mem; + const Eina_File *s = ptr; + + *d = eina_file_dup(s); + return EINA_TRUE; +} + +static Eina_Bool +_eina_value_type_file_vset(const Eina_Value_Type *type, void *mem, va_list args) +{ + const Eina_File *f = va_arg(args, Eina_File *); + return _eina_value_type_file_pset(type, mem, f); +} + +static Eina_Bool +_eina_value_type_file_pget(const Eina_Value_Type *type EINA_UNUSED, const void *mem, void *ptr) +{ + memcpy(ptr, mem, sizeof (Eina_File*)); + return EINA_TRUE; +} + +EAPI const Eina_Value_Type _EINA_VALUE_TYPE_FILE = { + EINA_VALUE_TYPE_VERSION, + sizeof (Eina_File *), + "Eina_Value_File", + _eina_value_type_file_setup, + _eina_value_type_file_flush, + _eina_value_type_file_copy, + _eina_value_type_file_compare, + _eina_value_type_file_convert_to, + _eina_value_type_file_convert_from, + _eina_value_type_file_vset, + _eina_value_type_file_pset, + _eina_value_type_file_pget +}; + /* keep all basic types inlined in an array so we can compare if it's * a basic type using pointer arithmetic. * @@ -5120,7 +5234,8 @@ eina_value_init(void) EINA_VALUE_TYPE_BLOB = &_EINA_VALUE_TYPE_BLOB; EINA_VALUE_TYPE_STRUCT = &_EINA_VALUE_TYPE_STRUCT; - EINA_VALUE_TYPE_OPTIONAL = &_EINA_VALUE_TYPE_OPTIONAL; + EINA_VALUE_TYPE_OPTIONAL = &_EINA_VALUE_TYPE_OPTIONAL; + EINA_VALUE_TYPE_FILE = &_EINA_VALUE_TYPE_FILE; EINA_VALUE_BLOB_OPERATIONS_MALLOC = &_EINA_VALUE_BLOB_OPERATIONS_MALLOC; @@ -5209,6 +5324,7 @@ EAPI const Eina_Value_Type *EINA_VALUE_TYPE_TIMEVAL = NULL; EAPI const Eina_Value_Type *EINA_VALUE_TYPE_BLOB = NULL; EAPI const Eina_Value_Type *EINA_VALUE_TYPE_STRUCT = NULL; EAPI const Eina_Value_Type *EINA_VALUE_TYPE_OPTIONAL = NULL; +EAPI const Eina_Value_Type *EINA_VALUE_TYPE_FILE = NULL; EAPI const Eina_Value_Blob_Operations *EINA_VALUE_BLOB_OPERATIONS_MALLOC = NULL; diff --git a/src
Re: [E-devel] [EGIT] [core/efl] master 02/04: eina: add an Eina_Value helper for Eina_File.
On Tue, Sep 12, 2017 at 9:05 PM, Cedric BAIL wrote: > cedric pushed a commit to branch master. > +static Eina_Bool > +_eina_value_type_file_flush(const Eina_Value_Type *type EINA_UNUSED, void > *mem) > +{ > + Eina_File *f = *(Eina_File **)mem; > + > + eina_file_close(f); if no file was set, this will cause EINA_FILE_MAGIC_CHECK() failure. > +static Eina_Bool > +_eina_value_type_file_convert_to(const Eina_Value_Type *type EINA_UNUSED, > const Eina_Value_Type *convert, const void *type_mem, void *convert_mem) > +{ > + const Eina_File *f = *(const Eina_File **) type_mem; > + Eina_Bool ret = EINA_FALSE; > + > + if ((convert == EINA_VALUE_TYPE_STRING) || > + (convert == EINA_VALUE_TYPE_STRINGSHARE)) > + { > +const char *filename; > + > +filename = eina_file_filename_get(f); > +ret = eina_value_type_pset(convert, convert_mem, &filename); > + } thinking... maybe you could also convert to BLOB. That type is basically "pointer + size" and how to manage it, then matches well with eina file mmap, that is, to get its contents. eventually you can even convert to integer types to query size. > +EAPI const Eina_Value_Type _EINA_VALUE_TYPE_FILE = { > + EINA_VALUE_TYPE_VERSION, > + sizeof (Eina_File *), > + "Eina_Value_File", this should be "Eina_File", the target type... like for int it's "int". > /** > + * @var EINA_VALUE_TYPE_FILE > + * manages optional type. too much copy&paste... it should be "manages Eina_File*". -- Gustavo Sverzut Barbieri -- Mobile: +55 (16) 99354-9890 -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [EGIT] [core/efl] master 04/04: eina: add an Eina_Value helper for Eina_Rectangle.
On Tue, Sep 12, 2017 at 9:05 PM, Vincent Torri wrote: > +static int > +_eina_value_type_rectangle_compare(const Eina_Value_Type *type EINA_UNUSED, > const void *a, const void *b) > +{ > + const Eina_Rectangle *ra = a; > + const Eina_Rectangle *rb = b; > + > + if (eina_rectangle_equal(ra, rb)) return 0; > + return -1; maybe do other comparisons to allow better comparison (basically for sorting), like compare x, y, w and h individually in that order. > +EAPI const Eina_Value_Type _EINA_VALUE_TYPE_RECTANGLE = { > + EINA_VALUE_TYPE_VERSION, > + sizeof (Eina_Rectangle), > + "Eina_Value_Rectangle", should be "Eina_Rectangle", like for int it's "int". > /** > + * @var EINA_VALUE_TYPE_RECTANGLE > + * manages optional type. copy&paste... this should read "manages Eina_Rectangle values". Would emphasize the value, not pointer to value. Usually we add the explicit type in eina_value_get(), eina_value_pget(), eina_value_vget(), eina_value_set(), eina_value_pset() and eina_value_vset()... so users don't do mistakes. (this would be the case for Eina_File, I forgot to comment in that review). -- Gustavo Sverzut Barbieri -- Mobile: +55 (16) 99354-9890 -- Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[EGIT] [core/efl] master 14/19: emotion: Make it a clipped smart object
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=a73e4c7c80cc149e5b3eb5211060010b1626b462 commit a73e4c7c80cc149e5b3eb5211060010b1626b462 Author: Jean-Philippe Andre Date: Wed Sep 6 23:03:30 2017 +0900 emotion: Make it a clipped smart object This reduces code. And probably adds new bugs. --- src/lib/emotion/efl_canvas_video.eo | 3 -- src/lib/emotion/emotion_smart.c | 74 + 2 files changed, 9 insertions(+), 68 deletions(-) diff --git a/src/lib/emotion/efl_canvas_video.eo b/src/lib/emotion/efl_canvas_video.eo index 201b94a9af..f425b0ba13 100644 --- a/src/lib/emotion/efl_canvas_video.eo +++ b/src/lib/emotion/efl_canvas_video.eo @@ -53,11 +53,8 @@ class Efl.Canvas.Video (Efl.Canvas.Group, Efl.File, Efl.Player, Efl.Image, Efl.I } implements { Efl.Object.constructor; -Efl.Gfx.color { set; } -Efl.Gfx.visible { set; } Efl.Gfx.position { set; } Efl.Gfx.size { set; } -Efl.Canvas.Object.clip { set; } Efl.File.file { get; set; } Efl.Player.play { get; set; } Efl.Player.position { get; set; } diff --git a/src/lib/emotion/emotion_smart.c b/src/lib/emotion/emotion_smart.c index 064ca233fa..009e38ffdf 100644 --- a/src/lib/emotion/emotion_smart.c +++ b/src/lib/emotion/emotion_smart.c @@ -237,7 +237,7 @@ emotion_object_add(Evas *evas) EOLIAN static Eo * _efl_canvas_video_efl_object_constructor(Eo *obj, Efl_Canvas_Video_Data *pd EINA_UNUSED) { - efl_canvas_group_clipped_set(obj, EINA_FALSE); + efl_canvas_group_clipped_set(obj, EINA_TRUE); obj = efl_constructor(efl_super(obj, MY_CLASS)); efl_canvas_object_type_set(obj, E_OBJ_NAME); @@ -465,13 +465,11 @@ _emotion_aspect_borders_apply(Evas_Object *obj, Efl_Canvas_Video_Data *sd, int w Evas_Object *old_clipper; sd->crop.clipper = evas_object_rectangle_add (evas_object_evas_get(obj)); - evas_object_color_set(sd->crop.clipper, 255, 255, 255, 255); evas_object_smart_member_add(sd->crop.clipper, obj); old_clipper = evas_object_clip_get(sd->obj); evas_object_clip_set(sd->obj, sd->crop.clipper); evas_object_clip_set(sd->crop.clipper, old_clipper); - if (evas_object_visible_get(sd->obj)) - evas_object_show(sd->crop.clipper); + evas_object_show(sd->crop.clipper); } } _clipper_position_size_update(obj, x, y, w, h, iw, ih); @@ -603,13 +601,7 @@ emotion_object_bg_color_set(Evas_Object *obj, int r, int g, int b, int a) Efl_Canvas_Video_Data *sd; E_SMART_OBJ_GET(sd, obj, E_OBJ_NAME); - evas_object_color_set(sd->bg, r, g, b, a); - - if (!evas_object_visible_get(obj)) return; - - if (a > 0) evas_object_show(sd->bg); - else evas_object_hide(sd->bg); } EAPI void @@ -1905,6 +1897,8 @@ _efl_canvas_video_efl_canvas_group_group_add(Evas_Object *obj, Efl_Canvas_Video_ /* TODO: remove legacy: emotion used to have no init, call automatically */ emotion_init(); + efl_canvas_group_add(efl_super(obj, MY_CLASS)); + sd->state = EMOTION_WAKEUP; sd->obj = evas_object_image_add(evas_object_evas_get(obj)); sd->bg = evas_object_rectangle_add(evas_object_evas_get(obj)); @@ -1927,6 +1921,8 @@ _efl_canvas_video_efl_canvas_group_group_add(Evas_Object *obj, Efl_Canvas_Video_ *pixel = 0xff00; evas_object_image_data_set(obj, pixel); } + evas_object_show(sd->obj); + evas_object_show(sd->bg); xattr = calloc(1, sizeof(*xattr)); EINA_REFCOUNT_INIT(xattr); @@ -1943,21 +1939,15 @@ _efl_canvas_video_efl_canvas_group_group_del(Evas_Object *obj EINA_UNUSED, Efl_C emotion_engine_instance_del(sd->engine_instance); } sd->engine_instance = NULL; - if (sd->obj) evas_object_del(sd->obj); - sd->obj = NULL; - if (sd->crop.clipper) evas_object_del(sd->crop.clipper); - sd->crop.clipper = NULL; - if (sd->bg) evas_object_del(sd->bg); - sd->bg = NULL; - if (sd->file) eina_stringshare_del(sd->file); - sd->file = NULL; if (sd->job) ecore_job_del(sd->job); sd->job = NULL; if (sd->anim) ecore_animator_del(sd->anim); sd->anim = NULL; + eina_stringshare_del(sd->file); eina_stringshare_del(sd->progress.info); - sd->progress.info = NULL; eina_stringshare_del(sd->ref.file); + sd->file = NULL; + sd->progress.info = NULL; sd->ref.file = NULL; _xattr_data_unref(sd->xattr); efl_canvas_group_del(efl_super(obj, MY_CLASS)); @@ -1975,7 +1965,6 @@ _efl_canvas_video_efl_gfx_position_set(Evas_Object *obj, Efl_Canvas_Video_Data * efl_gfx_position_set(efl_super(obj, MY_CLASS), x, y); _clipper_position_size_update(obj, x, y, w, h, sd->video.w, sd->video.h); - evas_object_move(sd->bg, x, y); } EOLIAN static void @@ -1990,51 +1979,6 @@ _efl_canvas_video_efl_gfx_size_set(Evas_Object *obj, Efl_Canva
[EGIT] [core/efl] master 16/19: ctxpopup: Avoid safety error on call on null obj
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=e4a440797b04a1738a20f54a075c5f20186e40e0 commit e4a440797b04a1738a20f54a075c5f20186e40e0 Author: Jean-Philippe Andre Date: Tue Sep 12 17:42:28 2017 +0900 ctxpopup: Avoid safety error on call on null obj See 6aa309ffb80a30ce7049d744f2d5abcc2a70b42c --- src/lib/elementary/elc_ctxpopup.c | 5 - 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/lib/elementary/elc_ctxpopup.c b/src/lib/elementary/elc_ctxpopup.c index f339597e51..22789a72cd 100644 --- a/src/lib/elementary/elc_ctxpopup.c +++ b/src/lib/elementary/elc_ctxpopup.c @@ -1094,7 +1094,10 @@ _elm_ctxpopup_elm_widget_on_disabled_update(Eo *obj, Elm_Ctxpopup_Data *sd, Eina if (!elm_obj_widget_on_disabled_update(efl_super(obj, MY_CLASS), disabled)) return EINA_FALSE; - elm_object_disabled_set(sd->list ?: sd->content, disabled); + if (sd->list) + elm_object_disabled_set(sd->list, disabled); + else if (sd->content) + elm_object_disabled_set(sd->content, disabled); return EINA_TRUE; } --
[EGIT] [core/efl] master 03/19: evas: Remove private data for clipped object
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=230b234891e22dd1cffd668642dc75ee023e58f5 commit 230b234891e22dd1cffd668642dc75ee023e58f5 Author: Jean-Philippe Andre Date: Fri Sep 1 14:50:29 2017 +0900 evas: Remove private data for clipped object Another step towards merging both classes of smart objects. --- src/lib/edje/edje_smart.c | 5 ++- src/lib/evas/canvas/efl_canvas_group_clipped.eo | 2 +- src/lib/evas/canvas/evas_object_box.c | 3 +- src/lib/evas/canvas/evas_object_smart.c | 8 ++--- src/lib/evas/canvas/evas_object_smart_clipped.c | 47 ++--- 5 files changed, 36 insertions(+), 29 deletions(-) diff --git a/src/lib/edje/edje_smart.c b/src/lib/edje/edje_smart.c index 72452fa943..85c4a5530b 100644 --- a/src/lib/edje/edje_smart.c +++ b/src/lib/edje/edje_smart.c @@ -32,11 +32,10 @@ _edje_object_efl_object_constructor(Eo *obj, Edje *ed) Evas *e; void *tmp; - ed->base = efl_data_ref(obj, EFL_CANVAS_GROUP_CLIPPED_CLASS); - ed->duration_scale = 1.0; - obj = efl_constructor(efl_super(obj, MY_CLASS)); efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY); + ed->base = evas_object_smart_data_get(obj); + ed->duration_scale = 1.0; _edje_lib_ref(); parent = efl_parent_get(obj); diff --git a/src/lib/evas/canvas/efl_canvas_group_clipped.eo b/src/lib/evas/canvas/efl_canvas_group_clipped.eo index f121dce562..4a7b66eb0c 100644 --- a/src/lib/evas/canvas/efl_canvas_group_clipped.eo +++ b/src/lib/evas/canvas/efl_canvas_group_clipped.eo @@ -3,7 +3,7 @@ abstract Efl.Canvas.Group.Clipped (Efl.Canvas.Group) { [[Internal class representing a canvas object group with a clipper.]] - data: Evas_Object_Smart_Clipped_Data; + data: null; implements { Efl.Object.constructor; Efl.Gfx.color { set; } diff --git a/src/lib/evas/canvas/evas_object_box.c b/src/lib/evas/canvas/evas_object_box.c index f0d2b2a1b8..b7e021886b 100644 --- a/src/lib/evas/canvas/evas_object_box.c +++ b/src/lib/evas/canvas/evas_object_box.c @@ -405,9 +405,10 @@ _evas_box_efl_canvas_group_group_add(Eo *eo_obj, Evas_Object_Box_Data *priv) // make sure evas box smart data is fully initialized and set (for legacy) // this assumes only box and smart clipped access the smart data - cso = efl_data_scope_get(eo_obj, EFL_CANVAS_GROUP_CLIPPED_CLASS); + cso = evas_object_smart_data_get(eo_obj); priv->base = *cso; evas_object_smart_data_set(eo_obj, priv); + free(cso); } EOLIAN static void diff --git a/src/lib/evas/canvas/evas_object_smart.c b/src/lib/evas/canvas/evas_object_smart.c index 4b3623ef9e..c82bd47e18 100644 --- a/src/lib/evas/canvas/evas_object_smart.c +++ b/src/lib/evas/canvas/evas_object_smart.c @@ -10,8 +10,7 @@ #define MY_CLASS_NAME_LEGACY "Evas_Object_Smart" #define EVAS_OBJECT_SMART_GET_OR_RETURN(eo_obj, ...) \ - Evas_Smart_Data *o = efl_isa(eo_obj, EFL_CANVAS_GROUP_CLASS) ? \ - efl_data_scope_get(eo_obj, EFL_CANVAS_GROUP_CLASS) : NULL; \ + Evas_Smart_Data *o = efl_data_scope_safe_get(eo_obj, EFL_CANVAS_GROUP_CLASS); \ do { if (!o) { MAGIC_CHECK_FAILED(eo_obj,0,MAGIC_SMART) return __VA_ARGS__; } } while (0) extern Eina_Hash* signals_hash_table; @@ -37,8 +36,7 @@ struct _Evas_Smart_Data Evas_Smart_Cb_Description_Array callbacks_descriptions; - Evas_Coordx, y; - + int x, y; int walking_list; int member_count; /** number of smart member objects */ @@ -1671,6 +1669,8 @@ _efl_canvas_group_group_unclipped_set(Eo *eo_obj EINA_UNUSED, Evas_Smart_Data *s // We must call this function BEFORE the constructor (yes, it's hacky) EINA_SAFETY_ON_FALSE_RETURN(!sd->object); sd->unclipped = !!unclipped; + if (!unclipped && !sd->data) + sd->data = calloc(1, sizeof(Evas_Object_Smart_Clipped_Data)); } /* Internal EO APIs */ diff --git a/src/lib/evas/canvas/evas_object_smart_clipped.c b/src/lib/evas/canvas/evas_object_smart_clipped.c index 2ad359716b..50fb1b0ec3 100644 --- a/src/lib/evas/canvas/evas_object_smart_clipped.c +++ b/src/lib/evas/canvas/evas_object_smart_clipped.c @@ -7,9 +7,7 @@ #define MY_CLASS EFL_CANVAS_GROUP_CLIPPED_CLASS #define CSO_DATA_GET(eo_obj, ptr) \ - Evas_Object_Smart_Clipped_Data *ptr = (efl_isa(eo_obj, MY_CLASS) ? \ -efl_data_scope_get(eo_obj, MY_CLASS) : \ -evas_object_smart_data_get(eo_obj)); + Evas_Object_Smart_Clipped_Data *ptr = evas_object_smart_data_get(eo_obj); #define CSO_DATA_GET_OR_RETURN(eo_obj, ptr, ...) \ CSO_DATA_GET(eo_obj, ptr) \ @@ -24,14 +22,10 @@ evas_object_smart_clipped_clipper_get(const Evas_Object *eo_obj) } static void -evas_object_smart_clipped_smart_add(Evas_Object *eo_obj) +evas_object_smart_clipped_smart_add(Evas_Object *eo_obj, Evas_Object_Smart_Clipped_Data *cso) { Evas_Obje
[EGIT] [core/efl] master 11/19: edje: Remove use of smart clipped data
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=46001cde383997bd440c1d39e95ed8ffec7074cf commit 46001cde383997bd440c1d39e95ed8ffec7074cf Author: Jean-Philippe Andre Date: Wed Sep 6 15:14:07 2017 +0900 edje: Remove use of smart clipped data This removes dependency on a legacy structure. Edje object does not change the smart data, unlike evas box and grid. --- src/lib/edje/edje_calc.c| 6 +++--- src/lib/edje/edje_edit.c| 42 ++--- src/lib/edje/edje_embryo.c | 6 +++--- src/lib/edje/edje_entry.c | 36 src/lib/edje/edje_load.c| 50 ++--- src/lib/edje/edje_lua2.c| 2 +- src/lib/edje/edje_main.c| 9 src/lib/edje/edje_private.h | 10 - src/lib/edje/edje_smart.c | 5 ++--- src/lib/edje/edje_util.c| 2 +- 10 files changed, 78 insertions(+), 90 deletions(-) diff --git a/src/lib/edje/edje_calc.c b/src/lib/edje/edje_calc.c index 4ec2d0288a..8c811478b7 100644 --- a/src/lib/edje/edje_calc.c +++ b/src/lib/edje/edje_calc.c @@ -5286,7 +5286,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta else if (ep->part->clip_to_id >= 0) evas_object_clip_set(ep->object, ed->table_parts[ep->part->clip_to_id % ed->table_parts_size]->object); else -evas_object_clip_set(ep->object, ed->base->clipper); +evas_object_clip_set(ep->object, ed->base.clipper); } break; @@ -5424,7 +5424,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta case EVAS_CANVAS3D_MESH_PRIMITIVE_SPHERE: { Eo *primitive = NULL; - primitive = efl_add(EVAS_CANVAS3D_PRIMITIVE_CLASS, ed->base->evas); + primitive = efl_add(EVAS_CANVAS3D_PRIMITIVE_CLASS, ed->base.evas); evas_canvas3d_primitive_form_set(primitive, pd_mesh_node->mesh_node.mesh.primitive); _edje_calc_params_need_type_node(pf); @@ -5554,7 +5554,7 @@ _edje_part_recalc(Edje *ed, Edje_Real_Part *ep, int flags, Edje_Calc_Params *sta else if (ep->part->clip_to_id >= 0) evas_object_clip_set(ep->typedata.swallow->swallowed_object, ed->table_parts[ep->part->clip_to_id % ed->table_parts_size]->object); else - evas_object_clip_set(ep->typedata.swallow->swallowed_object, ed->base->clipper); + evas_object_clip_set(ep->typedata.swallow->swallowed_object, ed->base.clipper); } if (pf->visible) diff --git a/src/lib/edje/edje_edit.c b/src/lib/edje/edje_edit.c index 16839baea5..f12eeb355c 100644 --- a/src/lib/edje/edje_edit.c +++ b/src/lib/edje/edje_edit.c @@ -541,7 +541,7 @@ _edje_import_image_file(Edje *ed, const char *path, int id) int bytes; /* Try to load the file */ - im = evas_object_image_add(ed->base->evas); + im = evas_object_image_add(ed->base.evas); if (!im) return EINA_FALSE; evas_object_image_file_set(im, path, NULL); @@ -1015,7 +1015,7 @@ _edje_edit_group_references_update(Evas_Object *obj, const char *old_group_name, // pc = ed->collection; - part_obj = edje_edit_object_add(ed->base->evas); + part_obj = edje_edit_object_add(ed->base.evas); old = eina_stringshare_add(old_group_name); @@ -1144,7 +1144,7 @@ _delete_play_actions(Evas_Object *obj, const char *name, int action_type, Eet_Fi if (pce->group_alias) continue; -eeo = edje_edit_object_add(ed->base->evas); +eeo = edje_edit_object_add(ed->base.evas); if (!efl_isa(eeo, EDJE_OBJECT_CLASS)) return EINA_FALSE; @@ -3227,23 +3227,23 @@ _edje_edit_real_part_add(Evas_Object *obj, const char *name, Edje_Part_Type type rp->part = ep; if (ep->type == EDJE_PART_TYPE_RECTANGLE) - rp->object = evas_object_rectangle_add(ed->base->evas); + rp->object = evas_object_rectangle_add(ed->base.evas); else if (ep->type == EDJE_PART_TYPE_VECTOR) { rp->type = EDJE_PART_TYPE_VECTOR; rp->typedata.vector = calloc(1, sizeof(Edje_Real_Part_Vector)); if (rp->typedata.vector) rp->typedata.vector->cur.svg_id = -1; -rp->object = evas_object_vg_add(ed->base->evas); +rp->object = evas_object_vg_add(ed->base.evas); } else if (ep->type == EDJE_PART_TYPE_IMAGE || ep->type == EDJE_PART_TYPE_PROXY) - rp->object = evas_object_image_add(ed->base->evas); + rp->object = evas_object_image_add(ed->base.evas); else if (ep->type == EDJE_PART_TYPE_TEXT) { rp->type = EDJE_RP_TYPE_TEXT; rp->typedata.text = calloc(1, sizeo
[EGIT] [core/efl] master 17/19: elm: Fix use of Efl.Access APIs
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=0885d0c405316e0a807d00f38d22f74cd11be5f6 commit 0885d0c405316e0a807d00f38d22f74cd11be5f6 Author: Jean-Philippe Andre Date: Tue Sep 12 19:42:26 2017 +0900 elm: Fix use of Efl.Access APIs See also 7d397c9f195a9121153909c0f Thanks @stefan for the first fix patch, I simply failed to push this one early enough. --- src/bindings/js/efl_js/efl_js.cc | 4 ++-- src/lib/elementary/elementary_js.cc| 4 ++-- src/tests/elementary/elm_test_button.c | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/bindings/js/efl_js/efl_js.cc b/src/bindings/js/efl_js/efl_js.cc index 8a5e7ba735..c4f1f0bb71 100644 --- a/src/bindings/js/efl_js/efl_js.cc +++ b/src/bindings/js/efl_js/efl_js.cc @@ -153,7 +153,7 @@ EAPI void register_object(v8::Handle global, v8::Isolate* isolate); EAPI void register_elm_atspi_app_object(v8::Handle global, v8::Isolate* isolate); EAPI void register_elm_interface_atspi_accessible(v8::Handle global, v8::Isolate* isolate); EAPI void register_elm_interface_atspi_action(v8::Handle global, v8::Isolate* isolate); -EAPI void register_elm_interface_atspi_component(v8::Handle global, v8::Isolate* isolate); +EAPI void register_efl_access_component(v8::Handle global, v8::Isolate* isolate); EAPI void register_elm_interface_atspi_editable_text(v8::Handle global, v8::Isolate* isolate); EAPI void register_elm_interface_atspi_image(v8::Handle global, v8::Isolate* isolate); EAPI void register_elm_interface_atspi_selection(v8::Handle global, v8::Isolate* isolate); @@ -387,7 +387,7 @@ EAPI void init(v8::Handle exports) // ::register_elm_interface_atspi_accessible(exports, v8::Isolate::GetCurrent()); // ::register_elm_interface_atspi_action(exports, v8::Isolate::GetCurrent()); - // ::register_elm_interface_atspi_component(exports, v8::Isolate::GetCurrent()); + // ::register_efl_access_component(exports, v8::Isolate::GetCurrent()); // ::register_elm_interface_atspi_editable_text(exports, v8::Isolate::GetCurrent()); // ::register_elm_interface_atspi_image(exports, v8::Isolate::GetCurrent()); // ::register_elm_interface_atspi_selection(exports, v8::Isolate::GetCurrent()); diff --git a/src/lib/elementary/elementary_js.cc b/src/lib/elementary/elementary_js.cc index 5260eebd7d..7d7343ca32 100644 --- a/src/lib/elementary/elementary_js.cc +++ b/src/lib/elementary/elementary_js.cc @@ -37,7 +37,7 @@ EAPI void register_elm_atspi_app_object(v8::Handle global, v8::Isolate* isolate); EAPI void register_elm_interface_atspi_accessible(v8::Handle global, v8::Isolate* isolate); EAPI void register_elm_interface_atspi_action(v8::Handle global, v8::Isolate* isolate); -EAPI void register_elm_interface_atspi_component(v8::Handle global, v8::Isolate* isolate); +EAPI void register_efl_access_component(v8::Handle global, v8::Isolate* isolate); EAPI void register_elm_interface_atspi_text_editable(v8::Handle global, v8::Isolate* isolate); EAPI void register_elm_interface_atspi_image(v8::Handle global, v8::Isolate* isolate); EAPI void register_elm_interface_atspi_selection(v8::Handle global, v8::Isolate* isolate); @@ -202,7 +202,7 @@ void init(v8::Handle exports) elm::register_index(exports, v8::Isolate::GetCurrent()); ::register_elm_interface_atspi_accessible(exports, v8::Isolate::GetCurrent()); ::register_elm_interface_atspi_action(exports, v8::Isolate::GetCurrent()); - ::register_elm_interface_atspi_component(exports, v8::Isolate::GetCurrent()); + ::register_efl_access_component(exports, v8::Isolate::GetCurrent()); ::register_elm_interface_atspi_text_editable(exports, v8::Isolate::GetCurrent()); ::register_elm_interface_atspi_image(exports, v8::Isolate::GetCurrent()); ::register_elm_interface_atspi_selection(exports, v8::Isolate::GetCurrent()); diff --git a/src/tests/elementary/elm_test_button.c b/src/tests/elementary/elm_test_button.c index b52d2538ef..16c72591a1 100644 --- a/src/tests/elementary/elm_test_button.c +++ b/src/tests/elementary/elm_test_button.c @@ -3,7 +3,7 @@ #endif #define ELM_INTERFACE_ATSPI_ACCESSIBLE_PROTECTED -#define ELM_INTERFACE_ATSPI_COMPONENT_PROTECTED +#define EFL_ACCESS_COMPONENT_PROTECTED #define ELM_INTERFACE_ATSPI_ACTION_PROTECTED #include #include "elm_suite.h" --
[EGIT] [core/efl] master 15/19: eo: Add class name to error log (unref)
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=76bc13530a7e6b8725b036a5ab76f890499ef0d6 commit 76bc13530a7e6b8725b036a5ab76f890499ef0d6 Author: Jean-Philippe Andre Date: Thu Sep 7 09:51:09 2017 +0900 eo: Add class name to error log (unref) --- src/lib/eo/eo.c | 3 ++- src/tests/eo/suite/eo_test_class_behaviour_errors.c | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/lib/eo/eo.c b/src/lib/eo/eo.c index 489d042253..b1e56481ea 100644 --- a/src/lib/eo/eo.c +++ b/src/lib/eo/eo.c @@ -1838,7 +1838,8 @@ efl_unref(const Eo *obj_id) { if (obj->user_refcount < 0) { - ERR("Obj:%p. User refcount (%d) < 0. Too many unrefs.", obj, obj->user_refcount); + ERR("Obj:%s@%p. User refcount (%d) < 0. Too many unrefs.", + obj->klass->desc->name, obj_id, obj->user_refcount); _eo_log_obj_report((Eo_Id)obj_id, EINA_LOG_LEVEL_ERR, __FUNCTION__, __FILE__, __LINE__); EO_OBJ_DONE(obj_id); return; diff --git a/src/tests/eo/suite/eo_test_class_behaviour_errors.c b/src/tests/eo/suite/eo_test_class_behaviour_errors.c index 43d72d4301..98ee81e462 100644 --- a/src/tests/eo/suite/eo_test_class_behaviour_errors.c +++ b/src/tests/eo/suite/eo_test_class_behaviour_errors.c @@ -53,7 +53,7 @@ START_TEST(efl_destructor_unref) Eo *obj = efl_add(klass, NULL); fail_if(!obj); - TEST_EO_ERROR("efl_unref", "Obj:%p. User refcount (%d) < 0. Too many unrefs."); + TEST_EO_ERROR("efl_unref", "Obj:%s@%p. User refcount (%d) < 0. Too many unrefs."); efl_unref(obj); eina_log_print_cb_set(eina_log_print_cb_stderr, NULL); @@ -84,7 +84,7 @@ START_TEST(efl_destructor_double_del) efl_manual_free_set(obj, EINA_TRUE); fail_if(!obj); - TEST_EO_ERROR("efl_unref", "Obj:%p. User refcount (%d) < 0. Too many unrefs."); + TEST_EO_ERROR("efl_unref", "Obj:%s@%p. User refcount (%d) < 0. Too many unrefs."); efl_del(obj); efl_del(obj); --
[EGIT] [core/efl] master 12/19: evas: Fix evas grid
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=820b8a0e6f65642c2cfd4196f8d08fe444bce310 commit 820b8a0e6f65642c2cfd4196f8d08fe444bce310 Author: Jean-Philippe Andre Date: Wed Sep 6 15:57:35 2017 +0900 evas: Fix evas grid It's a complete mess mixing legacy and EO in a really bad way. --- src/lib/evas/canvas/evas_object_grid.c | 16 ++-- src/lib/evas/canvas/evas_object_smart.c | 2 -- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/src/lib/evas/canvas/evas_object_grid.c b/src/lib/evas/canvas/evas_object_grid.c index e8b9598cc7..8aab7cffd4 100644 --- a/src/lib/evas/canvas/evas_object_grid.c +++ b/src/lib/evas/canvas/evas_object_grid.c @@ -159,19 +159,17 @@ EVAS_SMART_SUBCLASS_NEW("Evas_Object_Grid", _evas_object_grid, static void _evas_object_grid_smart_add(Evas_Object *o) { + Evas_Object_Smart_Clipped_Data *base; Evas_Grid_Data *priv; - priv = evas_object_smart_data_get(o); - if (!priv) - { -priv = efl_data_ref(o, MY_CLASS); -evas_object_smart_data_set(o, priv); - } + // Grid is an ugly mix of legacy & eo... + base = evas_object_smart_data_get(o); + priv = efl_data_scope_get(o, MY_CLASS); + priv->base = *base; + evas_object_smart_data_set(o, priv); priv->size.w = 100; priv->size.h = 100; - - _evas_object_grid_parent_sc->add(o); } static void @@ -189,7 +187,6 @@ _evas_object_grid_smart_del(Evas_Object *o) free(opt); l = eina_list_remove_list(l, l); } - _evas_object_grid_parent_sc->del(o); } static void @@ -290,7 +287,6 @@ _evas_grid_efl_object_constructor(Eo *obj, Evas_Grid_Data *class_data EINA_UNUSE evas_object_smart_attach(obj, _evas_object_grid_smart_class_new()); return obj; -// return evas_object_smart_add(evas, _evas_object_grid_smart_class_new()); } EOLIAN static Evas_Object* diff --git a/src/lib/evas/canvas/evas_object_smart.c b/src/lib/evas/canvas/evas_object_smart.c index 5ca58ddcb4..19a9eeba93 100644 --- a/src/lib/evas/canvas/evas_object_smart.c +++ b/src/lib/evas/canvas/evas_object_smart.c @@ -1832,8 +1832,6 @@ _efl_canvas_group_group_clipped_set(Eo *eo_obj EINA_UNUSED, Evas_Smart_Data *sd, // We must call this function BEFORE the constructor (yes, it's hacky) EINA_SAFETY_ON_FALSE_RETURN(!sd->object); sd->clipped = !!clipped; - if (clipped && !sd->data) - sd->data = calloc(1, sizeof(Evas_Object_Smart_Clipped_Data)); } /* Internal EO APIs */ --
[EGIT] [core/efl] master 09/19: evas: Fix crash with smart objects
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=7ef714924ac6676ce73e340d07949e7c2a5b5a98 commit 7ef714924ac6676ce73e340d07949e7c2a5b5a98 Author: Jean-Philippe Andre Date: Wed Sep 6 12:13:58 2017 +0900 evas: Fix crash with smart objects This is due to the previous patches. --- src/lib/edje/edje_smart.c | 2 +- src/lib/elementary/elm_interface_scrollable.c | 2 +- src/lib/elementary/elm_widget.c| 2 +- src/lib/emotion/emotion_smart.c| 2 +- src/lib/evas/Evas_Internal.h | 2 +- .../evas/canvas/efl_canvas_object_event_grabber.c | 2 +- src/lib/evas/canvas/evas_object_box.c | 2 +- src/lib/evas/canvas/evas_object_grid.c | 2 +- src/lib/evas/canvas/evas_object_smart.c| 32 +++--- src/lib/evas/canvas/evas_object_smart_clipped.c| 12 src/lib/evas/canvas/evas_object_table.c| 2 +- 11 files changed, 30 insertions(+), 32 deletions(-) diff --git a/src/lib/edje/edje_smart.c b/src/lib/edje/edje_smart.c index 9ef755ecf8..4d12f7e7a2 100644 --- a/src/lib/edje/edje_smart.c +++ b/src/lib/edje/edje_smart.c @@ -30,7 +30,7 @@ _edje_object_efl_object_constructor(Eo *obj, Edje *ed) Evas *e; void *tmp; - efl_canvas_group_unclipped_set(obj, EINA_FALSE); + efl_canvas_group_clipped_set(obj, EINA_TRUE); obj = efl_constructor(efl_super(obj, MY_CLASS)); efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY); ed->base = evas_object_smart_data_get(obj); diff --git a/src/lib/elementary/elm_interface_scrollable.c b/src/lib/elementary/elm_interface_scrollable.c index d1a2ac73ef..ccdc7cf81e 100644 --- a/src/lib/elementary/elm_interface_scrollable.c +++ b/src/lib/elementary/elm_interface_scrollable.c @@ -198,7 +198,7 @@ _elm_pan_add(Evas *evas) EOLIAN static Eo * _elm_pan_efl_object_constructor(Eo *obj, Elm_Pan_Smart_Data *_pd EINA_UNUSED) { - efl_canvas_group_unclipped_set(obj, EINA_FALSE); + efl_canvas_group_clipped_set(obj, EINA_TRUE); obj = efl_constructor(efl_super(obj, MY_PAN_CLASS)); efl_canvas_object_type_set(obj, MY_PAN_CLASS_NAME_LEGACY); evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks); diff --git a/src/lib/elementary/elm_widget.c b/src/lib/elementary/elm_widget.c index e2947eb5ee..57f4c4a4f5 100644 --- a/src/lib/elementary/elm_widget.c +++ b/src/lib/elementary/elm_widget.c @@ -6183,7 +6183,7 @@ _elm_widget_efl_object_constructor(Eo *obj, Elm_Widget_Smart_Data *sd EINA_UNUSE Eo *parent = NULL; sd->on_create = EINA_TRUE; - efl_canvas_group_unclipped_set(obj, EINA_TRUE); + efl_canvas_group_clipped_set(obj, EINA_FALSE); obj = efl_constructor(efl_super(obj, MY_CLASS)); efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY); evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks); diff --git a/src/lib/emotion/emotion_smart.c b/src/lib/emotion/emotion_smart.c index 5b2dbf2139..b2a7370628 100644 --- a/src/lib/emotion/emotion_smart.c +++ b/src/lib/emotion/emotion_smart.c @@ -254,7 +254,7 @@ emotion_object_add(Evas *evas) EOLIAN static Eo * _efl_canvas_video_efl_object_constructor(Eo *obj, Efl_Canvas_Video_Data *pd EINA_UNUSED) { - efl_canvas_group_unclipped_set(obj, EINA_TRUE); + efl_canvas_group_clipped_set(obj, EINA_FALSE); obj = efl_constructor(efl_super(obj, MY_CLASS)); efl_canvas_object_type_set(obj, E_OBJ_NAME); diff --git a/src/lib/evas/Evas_Internal.h b/src/lib/evas/Evas_Internal.h index b4eb056e23..f0d71b5acb 100644 --- a/src/lib/evas/Evas_Internal.h +++ b/src/lib/evas/Evas_Internal.h @@ -53,7 +53,7 @@ EOAPI void efl_canvas_object_legacy_ctor(Eo *obj); EOAPI void efl_canvas_object_type_set(Eo *obj, const char *type); EOAPI void efl_canvas_group_add(Eo *obj); EOAPI void efl_canvas_group_del(Eo *obj); -EOAPI void efl_canvas_group_unclipped_set(Eo *obj, Eina_Bool unclipped); +EOAPI void efl_canvas_group_clipped_set(Eo *obj, Eina_Bool unclipped); EOAPI void *efl_input_legacy_info_get(const Eo *obj); EOAPI Eo *efl_input_instance_get(const Eo *obj, Efl_Object *owner, void **priv); diff --git a/src/lib/evas/canvas/efl_canvas_object_event_grabber.c b/src/lib/evas/canvas/efl_canvas_object_event_grabber.c index 18dc8c3e6d..7623af9642 100644 --- a/src/lib/evas/canvas/efl_canvas_object_event_grabber.c +++ b/src/lib/evas/canvas/efl_canvas_object_event_grabber.c @@ -320,7 +320,7 @@ _efl_canvas_object_event_grabber_efl_object_constructor(Eo *eo_obj, Efl_Object_E { Evas_Object_Protected_Data *obj; - efl_canvas_group_unclipped_set(eo_obj, EINA_TRUE); + efl_canvas_group_clipped_set(eo_obj, EINA_FALSE); eo_obj = efl_constructor(efl_super(eo_obj, MY_CLASS)); efl_canvas_object_type_set(eo_obj, MY_CLASS_NAME_LEGACY); obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); diff --git a/src/lib/evas/canvas/evas_object_box.c b/src/lib/evas/canvas/evas_object_box
[EGIT] [core/efl] master 10/19: evas: Add EO API to get clipper in smart object
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=7e2382853ee54a7e0a92a14cde52b1de5fa7313a commit 7e2382853ee54a7e0a92a14cde52b1de5fa7313a Author: Jean-Philippe Andre Date: Wed Sep 6 15:02:07 2017 +0900 evas: Add EO API to get clipper in smart object It's not exposing anything that wasn't already accessible before (you could just add a member and get its clip, for instance). This will be used by Edje Object. This is a minor @feature --- src/lib/evas/canvas/efl_canvas_group.eo | 14 ++ src/lib/evas/canvas/evas_object_smart.c | 7 +++ 2 files changed, 21 insertions(+) diff --git a/src/lib/evas/canvas/efl_canvas_group.eo b/src/lib/evas/canvas/efl_canvas_group.eo index 583ea4fcfd..a8f4a1daa3 100644 --- a/src/lib/evas/canvas/efl_canvas_group.eo +++ b/src/lib/evas/canvas/efl_canvas_group.eo @@ -97,6 +97,20 @@ class Efl.Canvas.Group (Efl.Canvas.Object) } legacy: null; } + @property group_clipper @protected { + [[The internal clipper object used by this group. + + This is the object clipping all the children objects. Do not + delete or otherwise modify this clipper! + ]] + values { +clipper: const(Efl.Canvas.Object); [[A clipper rectangle.]] + } + get { +[[Get the internal clipper.]] +legacy: null; + } + } } implements { class.constructor; diff --git a/src/lib/evas/canvas/evas_object_smart.c b/src/lib/evas/canvas/evas_object_smart.c index 7d98022bae..5ca58ddcb4 100644 --- a/src/lib/evas/canvas/evas_object_smart.c +++ b/src/lib/evas/canvas/evas_object_smart.c @@ -1818,6 +1818,13 @@ _efl_canvas_group_efl_canvas_object_paragraph_direction_get(Eo *eo_obj EINA_UNUS return o->paragraph_direction; } +EOLIAN static const Eo * +_efl_canvas_group_group_clipper_get(Eo *eo_obj EINA_UNUSED, Evas_Smart_Data *o) +{ + // NOTE: This may be NULL until all EO smart objects are clipped! + return _smart_clipper_get(o); +} + /* Internal EO */ static void _efl_canvas_group_group_clipped_set(Eo *eo_obj EINA_UNUSED, Evas_Smart_Data *sd, Eina_Bool clipped) --
[EGIT] [core/efl] master 02/19: evas: Add internal API to make smart obj (un)clipped
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=f5a56789e062a47d0cf5141953c5d8a6071eecdf commit f5a56789e062a47d0cf5141953c5d8a6071eecdf Author: Jean-Philippe Andre Date: Fri Sep 1 12:30:49 2017 +0900 evas: Add internal API to make smart obj (un)clipped Introduction to the problem: - Efl.Canvas.Group has a method member_add() to add sub objects. - Efl.Canvas.Group (simple smart object) does NOT actually delete the objects on deletion. But: - Efl.Canvas.Group.Clipped is a direct subclass and WILL delete the sub objects on deletion. Semantically, all smart objects (at least in EO and Elementary) will own and delete sub objects automatically. Some exceptions are: - Edje object (smart clipped) does not delete swallowed objects. Edje object is a "clipped" smart object but it pops out all swallowed children before getting deleted. - Evas box/table/grid also pop out their children before deletion. Those classes are all legacy & internal only. - Elm.Widget will "manually" delete all its sub objects at deletion, as it inherits from Efl.Canvas.Group but basically takes full ownership of the sub objects. Note that member_add shouldn't be used on a widget, the widgets do it themselves. Also, smart clipped objects are much more convenient to use as they will handle some things for you: color, visibility, moving and ownership. So, the API member_add needs to be marked as own(). But right now Efl.Canvas.Group does not own. Thus, here's the plan: - Mark clipped objects as such with an internal API - Merge clipped smart object features directly inside the standard smart object. - Get rid of Efl.Canvas.Group.Clipped entirely and watch all hell break loose. Ref T5301 --- src/lib/elementary/elm_widget.c| 1 + src/lib/emotion/emotion_smart.c| 1 + src/lib/evas/Evas_Internal.h | 1 + src/lib/evas/canvas/efl_canvas_group_clipped.eo| 3 +++ .../evas/canvas/efl_canvas_object_event_grabber.c | 1 + src/lib/evas/canvas/evas_object_smart.c| 23 +++--- src/lib/evas/canvas/evas_object_smart_clipped.c| 9 + 7 files changed, 32 insertions(+), 7 deletions(-) diff --git a/src/lib/elementary/elm_widget.c b/src/lib/elementary/elm_widget.c index d4983199f7..e2947eb5ee 100644 --- a/src/lib/elementary/elm_widget.c +++ b/src/lib/elementary/elm_widget.c @@ -6183,6 +6183,7 @@ _elm_widget_efl_object_constructor(Eo *obj, Elm_Widget_Smart_Data *sd EINA_UNUSE Eo *parent = NULL; sd->on_create = EINA_TRUE; + efl_canvas_group_unclipped_set(obj, EINA_TRUE); obj = efl_constructor(efl_super(obj, MY_CLASS)); efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY); evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks); diff --git a/src/lib/emotion/emotion_smart.c b/src/lib/emotion/emotion_smart.c index 9850c80090..5b2dbf2139 100644 --- a/src/lib/emotion/emotion_smart.c +++ b/src/lib/emotion/emotion_smart.c @@ -254,6 +254,7 @@ emotion_object_add(Evas *evas) EOLIAN static Eo * _efl_canvas_video_efl_object_constructor(Eo *obj, Efl_Canvas_Video_Data *pd EINA_UNUSED) { + efl_canvas_group_unclipped_set(obj, EINA_TRUE); obj = efl_constructor(efl_super(obj, MY_CLASS)); efl_canvas_object_type_set(obj, E_OBJ_NAME); diff --git a/src/lib/evas/Evas_Internal.h b/src/lib/evas/Evas_Internal.h index 28702ef65c..b4eb056e23 100644 --- a/src/lib/evas/Evas_Internal.h +++ b/src/lib/evas/Evas_Internal.h @@ -53,6 +53,7 @@ EOAPI void efl_canvas_object_legacy_ctor(Eo *obj); EOAPI void efl_canvas_object_type_set(Eo *obj, const char *type); EOAPI void efl_canvas_group_add(Eo *obj); EOAPI void efl_canvas_group_del(Eo *obj); +EOAPI void efl_canvas_group_unclipped_set(Eo *obj, Eina_Bool unclipped); EOAPI void *efl_input_legacy_info_get(const Eo *obj); EOAPI Eo *efl_input_instance_get(const Eo *obj, Efl_Object *owner, void **priv); diff --git a/src/lib/evas/canvas/efl_canvas_group_clipped.eo b/src/lib/evas/canvas/efl_canvas_group_clipped.eo index 39f669ca04..f121dce562 100644 --- a/src/lib/evas/canvas/efl_canvas_group_clipped.eo +++ b/src/lib/evas/canvas/efl_canvas_group_clipped.eo @@ -1,8 +1,11 @@ +/* FIXME: This class needs to disappear and its functionality merged into + * standard smart objects (Efl.Canvas.Group). */ abstract Efl.Canvas.Group.Clipped (Efl.Canvas.Group) { [[Internal class representing a canvas object group with a clipper.]] data: Evas_Object_Smart_Clipped_Data; implements { + Efl.Object.constructor; Efl.Gfx.color { set; } Efl.Gfx.visible { set; } Efl.Gfx.position { set; } diff --git a/src/lib/evas/canvas/efl_canvas_object_event_grabber.c b/src/lib/evas/canvas/efl_canvas_object_event_grabber.c index 3ea7a056ec..18dc8c3e6d 100644 --- a/s
[EGIT] [core/efl] master 18/19: evas: Add group_member_is to smart objects
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=bb9d8bdbaa475004c1d0331880a4e0df71cd5bb0 commit bb9d8bdbaa475004c1d0331880a4e0df71cd5bb0 Author: Jean-Philippe Andre Date: Wed Sep 13 10:56:55 2017 +0900 evas: Add group_member_is to smart objects This is a new function that indicates whether an object is a child of a parent or not. Dead simple, as this simply compares if parent == this. Note that this check was impossible to do with the event grabber. Also, rename group_children_iterate to group_members_iterate for consistency with the other group_member functions. @feature --- src/lib/evas/canvas/efl_canvas_group.eo| 35 ++ .../evas/canvas/efl_canvas_object_event_grabber.c | 14 - .../evas/canvas/efl_canvas_object_event_grabber.eo | 3 +- src/lib/evas/canvas/evas_object_smart.c| 15 +- 4 files changed, 52 insertions(+), 15 deletions(-) diff --git a/src/lib/evas/canvas/efl_canvas_group.eo b/src/lib/evas/canvas/efl_canvas_group.eo index a8f4a1daa3..093acf5dbe 100644 --- a/src/lib/evas/canvas/efl_canvas_group.eo +++ b/src/lib/evas/canvas/efl_canvas_group.eo @@ -52,8 +52,7 @@ class Efl.Canvas.Group (Efl.Canvas.Object) ]] legacy: evas_object_smart_calculate; } - /* FIXME: children -> members? */ - group_children_iterate @const { + group_members_iterate @const { [[Returns an iterator over the children of this object, that are canvas objects. @@ -61,25 +60,28 @@ class Efl.Canvas.Group (Efl.Canvas.Object) from both the $Efl.Object children list as well as the $Efl.Container content list. ]] - return: free(own(iterator), eina_iterator_free); [[Iterator to object children]] + return: free(own(iterator), eina_iterator_free); +[[Iterator to object children]] legacy: evas_object_smart_iterator_new; } group_member_add { - [[Set an Evas object as a member of a given smart object. + [[Set a canvas object as a member of a given group (or smart object). Members will automatically be stacked and layered together with the smart object. The various stacking functions will operate on members relative to the other members instead of the entire canvas, since they now live on an exclusive layer (see - evas_object_stack_above(), for more details). + @Efl.Gfx.Stack.stack_above(), for more details). - Any $smart_obj object's specific implementation of the - $member_add() smart function will take place too, naturally. + Subclasses inheriting from this one may override this function + to ensure the proper stacking of special objects, such as clippers, + event rectangles, etc... See also @.group_member_del. + See also @.group_member_is. ]] params { -@in sub_obj: Efl.Canvas.Object @nonull; [[The member object.]] +@in sub_obj: own(Efl.Canvas.Object) @nonull; [[The member object.]] } legacy: null; } @@ -90,18 +92,27 @@ class Efl.Canvas.Group (Efl.Canvas.Object) to any. The object will still be on the canvas, but no longer associated with whichever smart object it was associated with. - See also @.group_member_add for more details. + See also @.group_member_add. + See also @.group_member_is. ]] params { -@in sub_obj: Efl.Canvas.Object; [[The member object.]] +@in sub_obj: Efl.Canvas.Object; [[The member object to remove.]] } legacy: null; } + group_member_is @const { + [[Finds out if a given object is a member of this group.]] + params { +@in sub_obj: const(Efl.Canvas.Object); [[A potential sub object.]] + } + return: bool; [[$true if $sub_obj is a member of this group.]] + legacy: null; + } @property group_clipper @protected { [[The internal clipper object used by this group. - This is the object clipping all the children objects. Do not - delete or otherwise modify this clipper! + This is the object clipping all the child objects. Do not delete + or otherwise modify this clipper! ]] values { clipper: const(Efl.Canvas.Object); [[A clipper rectangle.]] diff --git a/src/lib/evas/canvas/efl_canvas_object_event_grabber.c b/src/lib/evas/canvas/efl_canvas_object_event_grabber.c index 7623af9642..c4794d6143 100644 --- a/src/lib/evas/canvas/efl_canvas_object_event_grabber.c +++ b/src/lib/evas/canvas/efl_canvas_object_event_grabber.c @@ -46,7 +46,7 @@ _efl_canvas_group_group_iterator_free(Efl_Object_Event_Grabber_Iterator *it) } EOLI
[EGIT] [core/efl] master 04/19: evas: Remove group_del override from smart clipped
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=e380dae4bc927f9710fa89c2831ebfa733b0e013 commit e380dae4bc927f9710fa89c2831ebfa733b0e013 Author: Jean-Philippe Andre Date: Fri Sep 1 15:21:22 2017 +0900 evas: Remove group_del override from smart clipped --- src/lib/edje/edje_smart.c | 1 - src/lib/evas/canvas/evas_object_box.c | 1 - src/lib/evas/canvas/evas_object_smart.c | 44 - src/lib/evas/canvas/evas_object_smart_clipped.c | 25 -- 4 files changed, 41 insertions(+), 30 deletions(-) diff --git a/src/lib/edje/edje_smart.c b/src/lib/edje/edje_smart.c index 85c4a5530b..136f2d1249 100644 --- a/src/lib/edje/edje_smart.c +++ b/src/lib/edje/edje_smart.c @@ -148,7 +148,6 @@ _edje_object_efl_canvas_group_group_del(Eo *obj, Edje *ed) _edje_block_violate(ed); ed->delete_me = 1; _edje_edjes = eina_inlist_remove(_edje_edjes, EINA_INLIST_GET(ed)); - evas_object_smart_data_set(obj, NULL); if (_edje_lua_script_only(ed)) _edje_lua_script_only_shutdown(ed); #ifdef HAVE_EPHYSICS /* clear physics world / shutdown ephysics */ diff --git a/src/lib/evas/canvas/evas_object_box.c b/src/lib/evas/canvas/evas_object_box.c index b7e021886b..8e053bc4cc 100644 --- a/src/lib/evas/canvas/evas_object_box.c +++ b/src/lib/evas/canvas/evas_object_box.c @@ -408,7 +408,6 @@ _evas_box_efl_canvas_group_group_add(Eo *eo_obj, Evas_Object_Box_Data *priv) cso = evas_object_smart_data_get(eo_obj); priv->base = *cso; evas_object_smart_data_set(eo_obj, priv); - free(cso); } EOLIAN static void diff --git a/src/lib/evas/canvas/evas_object_smart.c b/src/lib/evas/canvas/evas_object_smart.c index c82bd47e18..e94f788606 100644 --- a/src/lib/evas/canvas/evas_object_smart.c +++ b/src/lib/evas/canvas/evas_object_smart.c @@ -49,6 +49,7 @@ struct _Evas_Smart_Data Eina_Bool update_boundingbox_needed : 1; Eina_Bool group_del_called : 1; Eina_Bool unclipped : 1; /* If true, NOT a smart_clipped object */ + Eina_Bool data_nofree : 1; /* If true, do NOT free the data */ }; typedef struct @@ -130,7 +131,13 @@ EAPI void evas_object_smart_data_set(Evas_Object *eo_obj, void *data) { EVAS_OBJECT_SMART_GET_OR_RETURN(eo_obj); - o->data = data; + if (o->data != data) + { +if (o->data && !o->data_nofree) + free(o->data); +o->data = data; +o->data_nofree = EINA_TRUE; + } } EAPI void * @@ -517,19 +524,23 @@ evas_object_smart_members_get_direct(const Evas_Object *eo_obj) return o->contained; } -void -_efl_canvas_group_group_members_all_del(Evas_Object *eo_obj) -{ - Evas_Smart_Data *o = efl_data_scope_get(eo_obj, MY_CLASS); +static void +_efl_canvas_group_group_members_all_del_internal(Evas_Smart_Data *o) +{; Evas_Object_Protected_Data *memobj; Eina_Inlist *itrn; EINA_INLIST_FOREACH_SAFE(o->contained, itrn, memobj) - { -evas_object_del((Evas_Object *)((Evas_Object_Protected_Data *)memobj->object)); - } + efl_del(memobj->object); o->group_del_called = EINA_TRUE; } +void +_efl_canvas_group_group_members_all_del(Evas_Object *eo_obj) +{ + Evas_Smart_Data *o = efl_data_scope_get(eo_obj, MY_CLASS); + _efl_canvas_group_group_members_all_del_internal(o); +} + static void _evas_smart_class_ifaces_private_data_alloc(Evas_Object *eo_obj, Evas_Smart *s) @@ -630,6 +641,8 @@ EOLIAN static void _efl_canvas_group_efl_object_destructor(Eo *eo_obj, Evas_Smart_Data *o) { efl_destructor(efl_super(eo_obj, MY_CLASS)); + if (o->data && !o->data_nofree) + free(o->data); if (!o->group_del_called) { ERR("efl_canvas_group_del() was not called on this object: %p (%s)", @@ -709,8 +722,21 @@ _efl_canvas_group_group_add(Eo *eo_obj, Evas_Smart_Data *o EINA_UNUSED) } EOLIAN static void -_efl_canvas_group_group_del(Eo *eo_obj EINA_UNUSED, Evas_Smart_Data *o EINA_UNUSED) +_efl_canvas_group_group_del(Eo *eo_obj EINA_UNUSED, Evas_Smart_Data *o) { + if (!o->unclipped) + { +Evas_Object_Smart_Clipped_Data *cso = o->data; +Eo *clipper; + +if (cso && cso->clipper) + { + clipper = cso->clipper; + cso->clipper = NULL; + efl_del(clipper); + } +_efl_canvas_group_group_members_all_del_internal(o); + } o->group_del_called = EINA_TRUE; } diff --git a/src/lib/evas/canvas/evas_object_smart_clipped.c b/src/lib/evas/canvas/evas_object_smart_clipped.c index 50fb1b0ec3..48e576ea7a 100644 --- a/src/lib/evas/canvas/evas_object_smart_clipped.c +++ b/src/lib/evas/canvas/evas_object_smart_clipped.c @@ -22,7 +22,7 @@ evas_object_smart_clipped_clipper_get(const Evas_Object *eo_obj) } static void -evas_object_smart_clipped_smart_add(Evas_Object *eo_obj, Evas_Object_Smart_Clipped_Data *cso) +evas_object_smart_clipped_ini
[EGIT] [core/efl] master 19/19: evas: Non functional changes to event grabber
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=99c765d0d25c62baa0a0ce5f870fa52840e74c90 commit 99c765d0d25c62baa0a0ce5f870fa52840e74c90 Author: Jean-Philippe Andre Date: Wed Sep 13 11:09:40 2017 +0900 evas: Non functional changes to event grabber This changes the CRI logs and the variable names. I still think this API needs some fixing in order to not abuse the smart object API. This should be done before it's too late (i.e. E is released and depends on it). --- .../evas/canvas/efl_canvas_object_event_grabber.c | 51 -- 1 file changed, 27 insertions(+), 24 deletions(-) diff --git a/src/lib/evas/canvas/efl_canvas_object_event_grabber.c b/src/lib/evas/canvas/efl_canvas_object_event_grabber.c index c4794d6143..35f4b3bec9 100644 --- a/src/lib/evas/canvas/efl_canvas_object_event_grabber.c +++ b/src/lib/evas/canvas/efl_canvas_object_event_grabber.c @@ -189,53 +189,56 @@ _efl_canvas_object_event_grabber_child_del(void *data, const Efl_Event *event) } EOLIAN static void -_efl_canvas_object_event_grabber_efl_canvas_group_group_member_add(Eo *eo_obj, Efl_Object_Event_Grabber_Data *pd, Eo *member) +_efl_canvas_object_event_grabber_efl_canvas_group_group_member_add(Eo *eo_obj, Efl_Object_Event_Grabber_Data *pd, Eo *eo_sub) { - Evas_Object_Protected_Data *obj = efl_data_scope_get(member, EFL_CANVAS_OBJECT_CLASS); - Evas_Object_Protected_Data *smart = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); + Evas_Object_Protected_Data *sub = efl_data_scope_safe_get(eo_sub, EFL_CANVAS_OBJECT_CLASS); + Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); + EINA_SAFETY_ON_NULL_RETURN(sub); EINA_SAFETY_ON_NULL_RETURN(obj); - EINA_SAFETY_ON_NULL_RETURN(smart); - if (member != pd->rect) + if (eo_sub != pd->rect) { -if (obj->delete_me) +if (sub->delete_me) { - CRI("Adding deleted object %p to smart obj %p", member, eo_obj); + CRI("Can not add deleted member %p to event grabber %p", eo_sub, eo_obj); return; } -if (smart->delete_me) +if (obj->delete_me) { - CRI("Adding object %p to deleted smart obj %p", member, eo_obj); + CRI("Can not add object %p to deleted event grabber %p", eo_sub, eo_obj); return; } -if (!smart->layer) +if (!obj->layer) { - CRI("No evas surface associated with smart object (%p)", eo_obj); + CRI("Can not add object %p to event grabber %p: event grabber has " + "no associated canvas.", eo_sub, eo_obj); return; } -if (!obj->layer) +if (!sub->layer) { - CRI("No evas surface associated with member object (%p)", member); + CRI("Can not add object %p to event grabber %p: member has " + "no associated canvas.", eo_sub, eo_obj); return; } -if ((obj->layer && smart->layer) && -(obj->layer->evas != smart->layer->evas)) +if ((sub->layer && obj->layer) && +(sub->layer->evas != obj->layer->evas)) { - CRI("Adding object %p from Evas (%p) from another Evas (%p)", member, obj->layer->evas, smart->layer->evas); + CRI("Can not add object %p to event grabber %p: objects belong to " + "different canvases.", eo_sub, eo_obj); return; } } - if (obj->events->parent == eo_obj) return; + if (sub->events->parent == eo_obj) return; - if (obj->smart.parent || obj->events->parent) evas_object_smart_member_del(member); - EINA_COW_WRITE_BEGIN(evas_object_events_cow, obj->events, Evas_Object_Events_Data, events) + if (sub->smart.parent || sub->events->parent) evas_object_smart_member_del(eo_sub); + EINA_COW_WRITE_BEGIN(evas_object_events_cow, sub->events, Evas_Object_Events_Data, events) events->parent = eo_obj; - EINA_COW_WRITE_END(evas_object_events_cow, obj->events, events); - _child_insert(pd, obj); - efl_event_callback_add(member, EFL_EVENT_DEL, _efl_canvas_object_event_grabber_child_del, pd); - if (member != pd->rect) - efl_event_callback_add(member, EFL_GFX_EVENT_RESTACK, _efl_canvas_object_event_grabber_child_restack, pd); + EINA_COW_WRITE_END(evas_object_events_cow, sub->events, events); + _child_insert(pd, sub); + efl_event_callback_add(eo_sub, EFL_EVENT_DEL, _efl_canvas_object_event_grabber_child_del, pd); + if (eo_sub != pd->rect) + efl_event_callback_add(eo_sub, EFL_GFX_EVENT_RESTACK, _efl_canvas_object_event_grabber_child_restack, pd); } EOLIAN static void --
[EGIT] [core/efl] master 05/19: evas: Remove group_add from clipped smart object
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=67798ca8636c362d947f33bb793ab9480d0bb3aa commit 67798ca8636c362d947f33bb793ab9480d0bb3aa Author: Jean-Philippe Andre Date: Fri Sep 1 15:35:33 2017 +0900 evas: Remove group_add from clipped smart object Moved from clipped to the general smart object class. --- src/lib/evas/canvas/evas_object_smart.c | 50 + src/lib/evas/canvas/evas_object_smart_clipped.c | 41 +--- src/lib/evas/include/evas_private.h | 1 + 3 files changed, 45 insertions(+), 47 deletions(-) diff --git a/src/lib/evas/canvas/evas_object_smart.c b/src/lib/evas/canvas/evas_object_smart.c index e94f788606..cf6d025117 100644 --- a/src/lib/evas/canvas/evas_object_smart.c +++ b/src/lib/evas/canvas/evas_object_smart.c @@ -711,14 +711,49 @@ _evas_object_smart_clipped_smart_move_internal(Evas_Object *eo_obj, Evas_Coord x _evas_object_smart_move_relative_internal(o, x - orig_x, y - orig_y); } +void +_evas_object_smart_clipped_init(Evas_Object *eo_obj) +{ + EVAS_OBJECT_SMART_GET_OR_RETURN(eo_obj); + Evas_Object_Smart_Clipped_Data *cso; + Evas_Object *clipper; + + // user may realloc this... (legacy only!) + cso = o->data; + if (!cso) + { +cso = calloc(1, sizeof(*cso)); +o->data_nofree = EINA_FALSE; + } + + cso->evas = evas_object_evas_get(eo_obj); + clipper = evas_object_rectangle_add(cso->evas); + evas_object_static_clip_set(clipper, 1); + cso->clipper = NULL; + evas_object_smart_member_add(clipper, eo_obj); + cso->clipper = clipper; + evas_object_color_set(cso->clipper, 255, 255, 255, 255); + evas_object_move(cso->clipper, -10, -10); + evas_object_resize(cso->clipper, 20, 20); + evas_object_pass_events_set(cso->clipper, 1); + evas_object_hide(cso->clipper); /* show when have something clipped to it */ + efl_canvas_object_no_render_set(cso->clipper, 1); + + evas_object_smart_data_set(eo_obj, cso); +} + EOLIAN static void -_efl_canvas_group_group_add(Eo *eo_obj, Evas_Smart_Data *o EINA_UNUSED) +_efl_canvas_group_group_add(Eo *eo_obj, Evas_Smart_Data *o) { - // If this function is reached, so we do nothing except trying to call - // the function of the legacy smart class. + // We shouldn't reach this function in case of legacy API. Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); - Evas_Smart *s = obj->smart.smart; - if (s && s->smart_class->add) s->smart_class->add(eo_obj); + EINA_SAFETY_ON_FALSE_RETURN(!obj->smart.smart); + + if (!o->unclipped) + { +if (!o->data) o->unclipped = EINA_TRUE; +else _evas_object_smart_clipped_init(eo_obj); + } } EOLIAN static void @@ -733,7 +768,7 @@ _efl_canvas_group_group_del(Eo *eo_obj EINA_UNUSED, Evas_Smart_Data *o) { clipper = cso->clipper; cso->clipper = NULL; - efl_del(clipper); + evas_object_del(clipper); } _efl_canvas_group_group_members_all_del_internal(o); } @@ -781,7 +816,8 @@ evas_object_smart_attach(Evas_Object *eo_obj, Evas_Smart *s) } } - efl_canvas_group_add(eo_obj); + //efl_canvas_group_add(eo_obj); + if (s->smart_class->add) s->smart_class->add(eo_obj); } EAPI void diff --git a/src/lib/evas/canvas/evas_object_smart_clipped.c b/src/lib/evas/canvas/evas_object_smart_clipped.c index 48e576ea7a..6c2c8ea080 100644 --- a/src/lib/evas/canvas/evas_object_smart_clipped.c +++ b/src/lib/evas/canvas/evas_object_smart_clipped.c @@ -22,42 +22,9 @@ evas_object_smart_clipped_clipper_get(const Evas_Object *eo_obj) } static void -evas_object_smart_clipped_init(Evas_Object *eo_obj, Evas_Object_Smart_Clipped_Data *cso) -{ - Evas_Object *clipper; - - cso->evas = evas_object_evas_get(eo_obj); - clipper = evas_object_rectangle_add(cso->evas); - evas_object_static_clip_set(clipper, 1); - cso->clipper = NULL; - evas_object_smart_member_add(clipper, eo_obj); - cso->clipper = clipper; - evas_object_color_set(cso->clipper, 255, 255, 255, 255); - evas_object_move(cso->clipper, -10, -10); - evas_object_resize(cso->clipper, 20, 20); - evas_object_pass_events_set(cso->clipper, 1); - evas_object_hide(cso->clipper); /* show when have something clipped to it */ - efl_canvas_object_no_render_set(cso->clipper, 1); - - evas_object_smart_data_set(eo_obj, cso); -} - -static void evas_object_smart_clipped_smart_add_legacy(Evas_Object *eo_obj) { - Evas_Object_Smart_Clipped_Data *cso; - - cso = calloc(1, sizeof(*cso)); - evas_object_smart_clipped_init(eo_obj, cso); -} - -EOLIAN static void -_efl_canvas_group_clipped_efl_canvas_group_group_add(Eo *eo_obj, void *_pd EINA_UNUSED) -{ - Evas_Object_Smart_Clipped_Data *cso; - - cso = evas_object_smart_data_get(eo_obj); - evas_object_smart_clipped_init(eo_obj, cso); + _evas_obje
[EGIT] [core/efl] master 08/19: evas: Remove class Efl.Canvas.Group.Clipped
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=9ed6838f17e43621eea6f388eb2f5eceba14ecad commit 9ed6838f17e43621eea6f388eb2f5eceba14ecad Author: Jean-Philippe Andre Date: Wed Sep 6 11:56:50 2017 +0900 evas: Remove class Efl.Canvas.Group.Clipped The functionality is now merged inside the core Group class, which will allow us to clean up its API. --- src/Makefile_Evas.am| 1 - src/lib/evas/Evas_Eo.h | 6 -- src/lib/evas/canvas/efl_canvas_group_clipped.eo | 10 -- src/lib/evas/canvas/evas_object_smart_clipped.c | 12 4 files changed, 29 deletions(-) diff --git a/src/Makefile_Evas.am b/src/Makefile_Evas.am index f743d435f7..9b141d17b8 100644 --- a/src/Makefile_Evas.am +++ b/src/Makefile_Evas.am @@ -36,7 +36,6 @@ evas_eolian_pub_files = \ lib/evas/canvas/efl_canvas_surface_x11.eo \ lib/evas/canvas/efl_canvas_surface_wayland.eo \ lib/evas/canvas/efl_canvas_filter_internal.eo \ - lib/evas/canvas/efl_canvas_group_clipped.eo \ lib/evas/canvas/efl_input_state.eo \ lib/evas/canvas/efl_input_interface.eo \ lib/evas/canvas/efl_input_event.eo \ diff --git a/src/lib/evas/Evas_Eo.h b/src/lib/evas/Evas_Eo.h index bcd1b80dc0..24a4047eb8 100644 --- a/src/lib/evas/Evas_Eo.h +++ b/src/lib/evas/Evas_Eo.h @@ -48,12 +48,6 @@ */ /** - * @ingroup Evas_Smart_Object_Clipped - * - * @{ - */ -#include "canvas/efl_canvas_group_clipped.eo.h" -/** * @} */ diff --git a/src/lib/evas/canvas/efl_canvas_group_clipped.eo b/src/lib/evas/canvas/efl_canvas_group_clipped.eo deleted file mode 100644 index 2f995f9cc3..00 --- a/src/lib/evas/canvas/efl_canvas_group_clipped.eo +++ /dev/null @@ -1,10 +0,0 @@ -/* FIXME: This class needs to disappear and its functionality merged into - * standard smart objects (Efl.Canvas.Group). */ -abstract Efl.Canvas.Group.Clipped (Efl.Canvas.Group) -{ - [[Internal class representing a canvas object group with a clipper.]] - data: null; - implements { - Efl.Object.constructor; - } -} diff --git a/src/lib/evas/canvas/evas_object_smart_clipped.c b/src/lib/evas/canvas/evas_object_smart_clipped.c index 776c7fd68e..d3bfb98e5c 100644 --- a/src/lib/evas/canvas/evas_object_smart_clipped.c +++ b/src/lib/evas/canvas/evas_object_smart_clipped.c @@ -4,8 +4,6 @@ #include "evas_common_private.h" #include "evas_private.h" -#define MY_CLASS EFL_CANVAS_GROUP_CLIPPED_CLASS - #define CSO_DATA_GET(eo_obj, ptr) \ Evas_Object_Smart_Clipped_Data *ptr = evas_object_smart_data_get(eo_obj); @@ -107,14 +105,6 @@ evas_object_smart_clipped_smart_member_del(Evas_Object *eo_obj, Evas_Object *mem evas_object_hide(cso->clipper); } -EOLIAN static Eo * -_efl_canvas_group_clipped_efl_object_constructor(Eo *eo_obj, void *_pd EINA_UNUSED) -{ - // Setting this flag before the parent constructor on purpose. - efl_canvas_group_unclipped_set(eo_obj, EINA_FALSE); - return efl_constructor(efl_super(eo_obj, MY_CLASS)); -} - /* Legacy only */ EAPI void evas_object_smart_clipped_smart_set(Evas_Smart_Class *sc) @@ -148,5 +138,3 @@ evas_object_smart_clipped_class_get(void) class = &_sc; return class; } - -#include "canvas/efl_canvas_group_clipped.eo.c" --
[EGIT] [core/efl] master 13/19: emotion: Fix refcounts related to eio use
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=d971ca2fb83faf5d6ddcbbb1f64a0ebaf69e8007 commit d971ca2fb83faf5d6ddcbbb1f64a0ebaf69e8007 Author: Jean-Philippe Andre Date: Wed Sep 6 21:26:57 2017 +0900 emotion: Fix refcounts related to eio use Inside emotion, if Eio is compiled, some asynchronous functions are used and a refcounted struct was used to ensure safety of the code. Unfortunately the logic didn't make much sense as emotion's private data is used. The refcount becomes useless, the lifecycle of the data being bound to the object itself. Note that an actual crash is almost impossible because: - eio is actually quite fast - evas objects are kept alive for 2 frames - eina_freeq is used to keep eo objects' data alive for some more time But this in theory fixes the events, as they were sent on the wrong object. "obj" is the image object, "smartobj" was the emotion object. This is fixed with a weak ref. I don't think it is necessary to backport this. --- src/lib/emotion/emotion_smart.c | 189 ++-- src/lib/evas/canvas/evas_object_smart.c | 29 ++-- src/lib/evas/canvas/evas_object_smart_clipped.c | 8 +- 3 files changed, 98 insertions(+), 128 deletions(-) diff --git a/src/lib/emotion/emotion_smart.c b/src/lib/emotion/emotion_smart.c index b2a7370628..064ca233fa 100644 --- a/src/lib/emotion/emotion_smart.c +++ b/src/lib/emotion/emotion_smart.c @@ -56,29 +56,24 @@ #define MY_CLASS EFL_CANVAS_VIDEO_CLASS typedef struct _Efl_Canvas_Video_Data Efl_Canvas_Video_Data; +typedef struct _Emotion_Xattr_Data Emotion_Xattr_Data; struct _Efl_Canvas_Video_Data { - EINA_REFCOUNT; Emotion_Engine_Instance *engine_instance; const char*engine; const char*file; - Evas_Object *smartobj; Evas_Object *obj; Evas_Object *bg; Ecore_Job *job; Efl_Vpath_File *file_obj; + Emotion_Xattr_Data *xattr; const char *title; -#ifdef HAVE_EIO - Eio_File *load_xattr; - Eio_File *save_xattr; -#endif - struct { const char *info; double stat; @@ -126,6 +121,16 @@ struct _Efl_Canvas_Video_Data Eina_Bool seeking : 1; }; +struct _Emotion_Xattr_Data +{ + EINA_REFCOUNT; + Eo *obj_wref; +#ifdef HAVE_EIO + Eio_File *load; + Eio_File *save; +#endif +}; + static void _mouse_move(void *data, Evas *ev, Evas_Object *obj, void *event_info); static void _mouse_down(void *data, Evas *ev, Evas_Object *obj, void *event_info); static void _pos_set_job(void *data); @@ -163,48 +168,26 @@ _emotion_image_data_zero(Evas_Object *img) } static void -_smart_data_free(Efl_Canvas_Video_Data *sd) +_xattr_data_cancel(Emotion_Xattr_Data *xattr) { + (void) xattr; #ifdef HAVE_EIO /* Only cancel the load_xattr or we will loose ref to time_seek stringshare */ - if (sd->load_xattr) eio_file_cancel(sd->load_xattr); - sd->load_xattr = NULL; - if (sd->save_xattr) eio_file_cancel(sd->save_xattr); - sd->save_xattr = NULL; + if (xattr->load) eio_file_cancel(xattr->load); + xattr->load = NULL; + if (xattr->save) eio_file_cancel(xattr->save); + xattr->save = NULL; #endif +} - if (sd->file_obj) - { -efl_del(sd->file_obj); -sd->file_obj = NULL; - } - if (sd->engine_instance) - { -emotion_engine_instance_file_close(sd->engine_instance); -emotion_engine_instance_del(sd->engine_instance); -sd->engine_instance = NULL; - } - if (sd->obj) evas_object_del(sd->obj); - sd->obj = NULL; - if (sd->crop.clipper) evas_object_del(sd->crop.clipper); - sd->crop.clipper = NULL; - if (sd->bg) evas_object_del(sd->bg); - sd->bg = NULL; - if (sd->file) eina_stringshare_del(sd->file); - sd->file = NULL; - if (sd->job) ecore_job_del(sd->job); - sd->job = NULL; - if (sd->anim) ecore_animator_del(sd->anim); - sd->anim = NULL; - eina_stringshare_del(sd->progress.info); - sd->progress.info = NULL; - eina_stringshare_del(sd->ref.file); - sd->ref.file = NULL; - if (sd->engine) eina_stringshare_del(sd->engine); - sd->engine = NULL; +static void +_xattr_data_unref(Emotion_Xattr_Data *xattr) +{ + EINA_REFCOUNT_UNREF(xattr) {} else return; - /* TODO: remove legacy: emotion used to have no shutdown, call automatically */ - emotion_shutdown(); + _xattr_data_cancel(xattr); + efl_wref_del_safe(&xattr->obj_wref); + free(xattr); } static void @@ -264,9 +247,7 @@ _efl_canvas_video_efl_object_constructor(Eo *obj, Efl_Canvas_Video_Data *pd EINA EAPI Evas_Object * emotion_object_image_get(const Evas_Object *obj) { - Efl_Canvas_Video_Data *sd; - - sd = evas_object_smart_data_get(obj); + Efl_Canvas_Video_Data *sd = efl_data_scope_safe_get(obj, MY_CLASS); if (!sd) return NULL; return sd->obj; } @@ -436,13 +417,7 @@ _efl_canvas_video_efl_file_file_set(Eo *obj EINA_UNUSED, Efl_Canva
[EGIT] [core/efl] master 01/19: evas: Add some EO safety to legacy EAPI
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=c5a9e49a9bbcf2b7991b9bfbeb5041a30348bdde commit c5a9e49a9bbcf2b7991b9bfbeb5041a30348bdde Author: Jean-Philippe Andre Date: Fri Sep 1 14:29:10 2017 +0900 evas: Add some EO safety to legacy EAPI --- src/lib/evas/canvas/evas_object_smart.c | 25 + 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/src/lib/evas/canvas/evas_object_smart.c b/src/lib/evas/canvas/evas_object_smart.c index 98ef3a3403..760298e5be 100644 --- a/src/lib/evas/canvas/evas_object_smart.c +++ b/src/lib/evas/canvas/evas_object_smart.c @@ -198,9 +198,6 @@ evas_object_smart_smart_get(const Efl_Canvas_Group *eo_obj) EAPI void evas_object_smart_member_add(Evas_Object *eo_obj, Evas_Object *smart_obj) { - MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ); - return; - MAGIC_CHECK_END(); efl_canvas_group_member_add(smart_obj, eo_obj); } @@ -208,7 +205,7 @@ EOLIAN static void _efl_canvas_group_group_member_add(Eo *smart_obj, Evas_Smart_Data *o, Evas_Object *eo_obj) { - Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); + Evas_Object_Protected_Data *obj = efl_data_scope_safe_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); Evas_Object_Protected_Data *smart = efl_data_scope_get(smart_obj, EFL_CANVAS_OBJECT_CLASS); Evas_Smart_Data *member_o = NULL; @@ -294,10 +291,7 @@ _efl_canvas_group_group_member_add(Eo *smart_obj, Evas_Smart_Data *o, Evas_Objec EAPI void evas_object_smart_member_del(Evas_Object *eo_obj) { - MAGIC_CHECK(eo_obj, Evas_Object, MAGIC_OBJ); - return; - MAGIC_CHECK_END(); - Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); + Evas_Object_Protected_Data *obj = efl_data_scope_safe_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); if (!obj) return; if (!obj->smart.parent) return; Evas_Object *smart_obj = obj->smart.parent; @@ -307,10 +301,10 @@ evas_object_smart_member_del(Evas_Object *eo_obj) EOLIAN static void _efl_canvas_group_group_member_del(Eo *smart_obj, Evas_Smart_Data *_pd EINA_UNUSED, Evas_Object *eo_obj) { - Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); + Evas_Object_Protected_Data *obj = efl_data_scope_safe_get(eo_obj, EFL_CANVAS_OBJECT_CLASS); Evas_Smart_Data *member_o; - if (!obj->smart.parent) return; + if (!obj || !obj->smart.parent) return; evas_object_async_block(obj); Evas_Object_Protected_Data *smart = efl_data_scope_get(smart_obj, EFL_CANVAS_OBJECT_CLASS); @@ -657,8 +651,15 @@ _efl_canvas_group_efl_object_debug_name_override(Eo *eo_obj, Evas_Smart_Data *o, smart_class = obj->smart.smart->smart_class->name; sb = efl_debug_name_override(efl_super(eo_obj, MY_CLASS), sb); - eina_strbuf_append_printf(sb, ":children=%d:smart_class=%s", - eina_inlist_count(o->contained), smart_class); + if (smart_class) + { +eina_strbuf_append_printf(sb, ":children=%d:smart_class=%s", + eina_inlist_count(o->contained), smart_class); + } + else + { +eina_strbuf_append_printf(sb, ":children=%d", eina_inlist_count(o->contained)); + } return sb; } --
[EGIT] [core/efl] master 06/19: evas: Move all overrides to std smart object
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=71e122424e6ce7594fff25b27a40c92d42a11b10 commit 71e122424e6ce7594fff25b27a40c92d42a11b10 Author: Jean-Philippe Andre Date: Wed Sep 6 10:31:08 2017 +0900 evas: Move all overrides to std smart object - color_set - visible_set - position_set - no_render_set - member_add, member_del - group_add, group_del - clip_set Notes: - Widget overrides color_set without calling super() which means that color_get() returns a different value. Also any subsequent child object add will not inherit the color. - Smart clipped objects also don't call super. This patch changes that, but only for smart clipped objects created through EO. This shouldn't have any side effect. --- src/lib/evas/canvas/efl_canvas_group.eo | 5 + src/lib/evas/canvas/efl_canvas_group_clipped.eo | 7 - src/lib/evas/canvas/evas_object_smart.c | 173 ++-- src/lib/evas/canvas/evas_object_smart_clipped.c | 63 - 4 files changed, 138 insertions(+), 110 deletions(-) diff --git a/src/lib/evas/canvas/efl_canvas_group.eo b/src/lib/evas/canvas/efl_canvas_group.eo index cad0ff5bc3..583ea4fcfd 100644 --- a/src/lib/evas/canvas/efl_canvas_group.eo +++ b/src/lib/evas/canvas/efl_canvas_group.eo @@ -52,6 +52,7 @@ class Efl.Canvas.Group (Efl.Canvas.Object) ]] legacy: evas_object_smart_calculate; } + /* FIXME: children -> members? */ group_children_iterate @const { [[Returns an iterator over the children of this object, that are canvas objects. @@ -103,6 +104,10 @@ class Efl.Canvas.Group (Efl.Canvas.Object) Efl.Object.constructor; Efl.Object.destructor; Efl.Object.debug_name_override; + Efl.Gfx.color { set; } + Efl.Gfx.visible { set; } + Efl.Gfx.position { set; } + Efl.Canvas.Object.clip { set; } Efl.Canvas.Object.no_render { set; } Efl.Canvas.Object.paragraph_direction { get; set; } } diff --git a/src/lib/evas/canvas/efl_canvas_group_clipped.eo b/src/lib/evas/canvas/efl_canvas_group_clipped.eo index 4a7b66eb0c..2f995f9cc3 100644 --- a/src/lib/evas/canvas/efl_canvas_group_clipped.eo +++ b/src/lib/evas/canvas/efl_canvas_group_clipped.eo @@ -6,12 +6,5 @@ abstract Efl.Canvas.Group.Clipped (Efl.Canvas.Group) data: null; implements { Efl.Object.constructor; - Efl.Gfx.color { set; } - Efl.Gfx.visible { set; } - Efl.Gfx.position { set; } - Efl.Canvas.Object.clip { set; } - Efl.Canvas.Object.no_render { set; } - Efl.Canvas.Group.group_member_del; - Efl.Canvas.Group.group_member_add; } } diff --git a/src/lib/evas/canvas/evas_object_smart.c b/src/lib/evas/canvas/evas_object_smart.c index cf6d025117..b28b25fb12 100644 --- a/src/lib/evas/canvas/evas_object_smart.c +++ b/src/lib/evas/canvas/evas_object_smart.c @@ -50,6 +50,7 @@ struct _Evas_Smart_Data Eina_Bool group_del_called : 1; Eina_Bool unclipped : 1; /* If true, NOT a smart_clipped object */ Eina_Bool data_nofree : 1; /* If true, do NOT free the data */ + Eina_Bool constructed : 1; /* constructor finished */ }; typedef struct @@ -78,7 +79,6 @@ _eo_evas_smart_cb(void *data, const Efl_Event *event) } /* private methods for smart objects */ -static inline void evas_object_smart_init(Evas_Object *eo_obj); static void evas_object_smart_render(Evas_Object *eo_obj, Evas_Object_Protected_Data *obj, void *type_private_data, @@ -125,6 +125,13 @@ static const Evas_Object_Func object_func = NULL }; +/* helpers */ +static inline Evas_Object * +_smart_clipper_get(Evas_Smart_Data *o) +{ + Evas_Object_Smart_Clipped_Data *cso = (!o->unclipped) ? o->data : NULL; + return cso ? cso->clipper : NULL; +} /* public funcs */ EAPI void @@ -287,6 +294,17 @@ _efl_canvas_group_group_member_add(Eo *smart_obj, Evas_Smart_Data *o, Evas_Objec if (!smart->is_frame_top && (smart->is_frame != obj->is_frame)) efl_canvas_object_is_frame_object_set(eo_obj, smart->is_frame); + if (!o->unclipped && o->constructed) + { +Evas_Object *clipper = _smart_clipper_get(o); +Eina_Bool had_clippees = efl_canvas_object_clipees_has(clipper); + +EINA_SAFETY_ON_NULL_RETURN(clipper); +efl_canvas_object_clip_set(eo_obj, clipper); +if (!had_clippees && smart->cur->visible) + efl_gfx_visible_set(clipper, 1); + } + evas_object_change(eo_obj, obj); evas_object_mapped_clip_across_mark(eo_obj, obj); if (smart->smart.smart && smart->smart.smart->smart_class->member_add) @@ -308,16 +326,29 @@ EOLIAN static void _efl_canvas_group_group_member_del(Eo *smart_obj, Evas_Smart_Data *_pd EINA_UNUSED, Evas_Object *eo_obj) { Evas_Object_Protected_Data *obj = efl_data
[EGIT] [core/efl] master 07/19: evas/edje/elm: Remove all uses of clipped groups
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=8572cd5def291aa14c79bb21ea578d024eb36999 commit 8572cd5def291aa14c79bb21ea578d024eb36999 Author: Jean-Philippe Andre Date: Wed Sep 6 11:52:35 2017 +0900 evas/edje/elm: Remove all uses of clipped groups This removes the uses of the *EO* class, obviously not the use of the clipped smart objects. --- src/lib/edje/edje_object.eo | 2 +- src/lib/edje/edje_smart.c | 3 +-- src/lib/elementary/elm_interface_scrollable.c | 1 + src/lib/elementary/elm_pan.eo | 2 +- src/lib/evas/canvas/evas_box.eo | 2 +- src/lib/evas/canvas/evas_grid.eo | 2 +- src/lib/evas/canvas/evas_object_box.c | 1 + src/lib/evas/canvas/evas_object_grid.c| 1 + src/lib/evas/canvas/evas_object_table.c | 1 + src/lib/evas/canvas/evas_table.eo | 2 +- 10 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/lib/edje/edje_object.eo b/src/lib/edje/edje_object.eo index 68033df08a..4a30f6d7d4 100644 --- a/src/lib/edje/edje_object.eo +++ b/src/lib/edje/edje_object.eo @@ -2,7 +2,7 @@ import edje_types; // FIXME: This EO doc needs a direct link to the "edcref" doc -class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, Efl.Container, Efl.Part, +class Edje.Object (Efl.Canvas.Group, Efl.File, Efl.Container, Efl.Part, Efl.Observer, Efl.Ui.Base, Efl.Canvas.Layout_Calc, Efl.Canvas.Layout_Signal, Efl.Canvas.Layout_Group, Efl.Player) diff --git a/src/lib/edje/edje_smart.c b/src/lib/edje/edje_smart.c index 136f2d1249..9ef755ecf8 100644 --- a/src/lib/edje/edje_smart.c +++ b/src/lib/edje/edje_smart.c @@ -3,8 +3,6 @@ #include "edje_private.h" -#include - #ifdef MY_CLASS # undef MY_CLASS #endif @@ -32,6 +30,7 @@ _edje_object_efl_object_constructor(Eo *obj, Edje *ed) Evas *e; void *tmp; + efl_canvas_group_unclipped_set(obj, EINA_FALSE); obj = efl_constructor(efl_super(obj, MY_CLASS)); efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY); ed->base = evas_object_smart_data_get(obj); diff --git a/src/lib/elementary/elm_interface_scrollable.c b/src/lib/elementary/elm_interface_scrollable.c index 9089f10cd4..d1a2ac73ef 100644 --- a/src/lib/elementary/elm_interface_scrollable.c +++ b/src/lib/elementary/elm_interface_scrollable.c @@ -198,6 +198,7 @@ _elm_pan_add(Evas *evas) EOLIAN static Eo * _elm_pan_efl_object_constructor(Eo *obj, Elm_Pan_Smart_Data *_pd EINA_UNUSED) { + efl_canvas_group_unclipped_set(obj, EINA_FALSE); obj = efl_constructor(efl_super(obj, MY_PAN_CLASS)); efl_canvas_object_type_set(obj, MY_PAN_CLASS_NAME_LEGACY); evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks); diff --git a/src/lib/elementary/elm_pan.eo b/src/lib/elementary/elm_pan.eo index 648b9f40c7..dcc13f18bc 100644 --- a/src/lib/elementary/elm_pan.eo +++ b/src/lib/elementary/elm_pan.eo @@ -1,4 +1,4 @@ -class Elm.Pan (Efl.Canvas.Group.Clipped) +class Elm.Pan (Efl.Canvas.Group) { [[Elementary pan class]] legacy_prefix: elm_pan; diff --git a/src/lib/evas/canvas/evas_box.eo b/src/lib/evas/canvas/evas_box.eo index 36fca8a4dc..75c882734a 100644 --- a/src/lib/evas/canvas/evas_box.eo +++ b/src/lib/evas/canvas/evas_box.eo @@ -4,7 +4,7 @@ type @extern Evas_Object_Box_Layout: __undefined_type; [[Evas object box layout type @extern Eina_Free_Cb: __undefined_type; [[Eina free callback type]] /* FIXME: Function pointers are not supported */ type @extern va_list: __undefined_type; [[va_list type]] /* FIXME: va_list is not supported */ -class Evas.Box (Efl.Canvas.Group.Clipped) +class Evas.Box (Efl.Canvas.Group) { [[Evas box class]] legacy_prefix: evas_object_box; diff --git a/src/lib/evas/canvas/evas_grid.eo b/src/lib/evas/canvas/evas_grid.eo index 7d7ea916c1..b060a916cf 100644 --- a/src/lib/evas/canvas/evas_grid.eo +++ b/src/lib/evas/canvas/evas_grid.eo @@ -1,4 +1,4 @@ -class Evas.Grid (Efl.Canvas.Group.Clipped) +class Evas.Grid (Efl.Canvas.Group) { [[Evas grid class]] legacy_prefix: evas_object_grid; diff --git a/src/lib/evas/canvas/evas_object_box.c b/src/lib/evas/canvas/evas_object_box.c index 8e053bc4cc..08e630be7c 100644 --- a/src/lib/evas/canvas/evas_object_box.c +++ b/src/lib/evas/canvas/evas_object_box.c @@ -484,6 +484,7 @@ evas_object_box_add(Evas *evas) EOLIAN static Eo * _evas_box_efl_object_constructor(Eo *obj, Evas_Object_Box_Data *class_data EINA_UNUSED) { + efl_canvas_group_unclipped_set(obj, EINA_FALSE); obj = efl_constructor(efl_super(obj, MY_CLASS)); evas_object_smart_callbacks_descriptions_set(obj, _signals); efl_canvas_object_type_set(obj, MY_CLASS_NAME_LEGACY); diff --git a/src/lib/evas/canvas/evas_object_grid.c b/src/lib/evas/canvas/evas_object_grid.c index 4be08ca22f..9b31c42f21 100644 --- a/src/lib/evas/canvas/evas_object_grid.c +++ b/src/lib/evas/canvas/evas_obje
[EGIT] [core/efl] master 01/01: efl.ui.slider_interval: Add missing since tag
ami pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=02b9aa0240ae9d713150eb4502535d1229677df0 commit 02b9aa0240ae9d713150eb4502535d1229677df0 Author: Amitesh Singh Date: Wed Sep 13 12:22:54 2017 +0900 efl.ui.slider_interval: Add missing since tag --- src/lib/elementary/efl_ui_slider_interval.eo | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/lib/elementary/efl_ui_slider_interval.eo b/src/lib/elementary/efl_ui_slider_interval.eo index 0b2f95477a..9c86c463c2 100644 --- a/src/lib/elementary/efl_ui_slider_interval.eo +++ b/src/lib/elementary/efl_ui_slider_interval.eo @@ -3,13 +3,15 @@ class Efl.Ui.Slider_Interval (Efl.Ui.Slider) [[An interval slider. This is a slider with two indicators. + + @since 1.21 ]] legacy_prefix: null; methods { @property interval_value { [[Sets up position of two indicators at start and end position. - @since 1.20 + @since 1.21 ]] get { legacy: null; --
[EGIT] [core/efl] master 01/01: evas: Fix build break
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=3c386e5fdf6159f5ede1a0dfbd483fd34cef6602 commit 3c386e5fdf6159f5ede1a0dfbd483fd34cef6602 Author: Jean-Philippe Andre Date: Wed Sep 13 13:38:57 2017 +0900 evas: Fix build break Ooops. Classic. See 9ed6838f17e43621eea6f388eb2f5eceba14ecad --- src/lib/evas/Evas_Legacy.h | 11 --- 1 file changed, 11 deletions(-) diff --git a/src/lib/evas/Evas_Legacy.h b/src/lib/evas/Evas_Legacy.h index c726a18380..63371b8e66 100644 --- a/src/lib/evas/Evas_Legacy.h +++ b/src/lib/evas/Evas_Legacy.h @@ -6506,17 +6506,6 @@ EAPI void evas_object_smart_move_children_relative(Evas_Object *obj, Evas_Coord */ /** - * @ingroup Evas_Smart_Object_Clipped - * - * @{ - */ -#include "canvas/efl_canvas_group_clipped.eo.legacy.h" - -/** - * @} - */ - -/** * @ingroup Evas_Object_Box * * @{ --
[EGIT] [core/efl] master 02/03: widget: Make part_text_translate internal
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=8da23c4247bc29b5297157ed4064ab7b76100fb6 commit 8da23c4247bc29b5297157ed4064ab7b76100fb6 Author: Jean-Philippe Andre Date: Wed Sep 13 13:11:03 2017 +0900 widget: Make part_text_translate internal --- src/lib/elementary/elm_widget.c | 7 --- src/lib/elementary/elm_widget.eo | 8 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/src/lib/elementary/elm_widget.c b/src/lib/elementary/elm_widget.c index 62e5096ce7..b59f92ee6c 100644 --- a/src/lib/elementary/elm_widget.c +++ b/src/lib/elementary/elm_widget.c @@ -3867,11 +3867,12 @@ _part_text_translate(Eina_Inlist *translate_strings, return text; } -EOLIAN static const char* -_elm_widget_part_text_translate(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *sd, const char *part, const char *text) +EAPI const char* +elm_widget_part_text_translate(Eo *obj, const char *part, const char *text) { + Elm_Widget_Smart_Data *sd = efl_data_scope_safe_get(obj, MY_CLASS); - + if (!sd) return text; if (!sd->translate_strings || sd->on_translate) return text; return _part_text_translate(sd->translate_strings, part, text); } diff --git a/src/lib/elementary/elm_widget.eo b/src/lib/elementary/elm_widget.eo index ff760e9e8b..5dab902010 100644 --- a/src/lib/elementary/elm_widget.eo +++ b/src/lib/elementary/elm_widget.eo @@ -320,14 +320,6 @@ abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible, label: string; [[Label]] } } - part_text_translate { - [[Translate part text]] - return: string; [[Translated text]] - params { -@in part: string; [[Part name]] -@in text: string; [[Text]] - } - } /* Internal hooks. */ widget_sub_object_add @protected { --
[EGIT] [core/efl] master 03/03: edje/elm: Rename _internal_ to _part_ (EO)
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=d5a31f3f307cb59f92bb24b42def504b3cb5e052 commit d5a31f3f307cb59f92bb24b42def504b3cb5e052 Author: Jean-Philippe Andre Date: Wed Sep 13 13:29:25 2017 +0900 edje/elm: Rename _internal_ to _part_ (EO) In Edje and Elementary, we have part objects, which are what is returned by the interface efl_part(). Those objects can't be of an opaque type as this doesn't work nicely with strongly typed languages such as C++ or C#. In JS, Lua, C the types are weak and mostly runtime-based so it doesn't matter much. As a consequence, the documentation and the types need to look nice in this EO API. Thus, we remove the abusive term "internal" and explicitly call all those classes "part" something. Eventually we want the types to be declared in the EO file so bindings (C#, C++, ...) can generate the proper access methods, returning the best possible types. Note that right now a few of those part types are used in the legacy API but don't actually need to be exposed externally. This is kind of a mega commit that does all the renaming at once, but it's really just a big sed operation. The power of good IDEs :) Ref T5315 Ref T5306 --- src/Makefile_Edje.am | 10 +-- src/Makefile_Elementary.am | 60 +++ src/bin/elementary/test_panes.c| 2 +- src/lib/edje/Edje_Eo.h | 10 +-- src/lib/edje/edje_legacy.c | 2 +- src/lib/edje/edje_part.c | 44 +-- src/lib/edje/edje_part_box.c | 38 - src/lib/edje/edje_part_helper.h| 22 +++--- src/lib/edje/edje_part_swallow.c | 12 +-- src/lib/edje/edje_part_table.c | 34 src/lib/edje/edje_part_text.c | 40 +- src/lib/edje/efl_canvas_layout_external.eo | 2 +- ...ayout_internal.eo => efl_canvas_layout_part.eo} | 2 +- ...ternal_box.eo => efl_canvas_layout_part_box.eo} | 2 +- ...wallow.eo => efl_canvas_layout_part_swallow.eo} | 2 +- ...al_table.eo => efl_canvas_layout_part_table.eo} | 2 +- ...rnal_text.eo => efl_canvas_layout_part_text.eo} | 2 +- src/lib/elementary/efl_ui_button.c | 4 +- ...tton_internal_part.eo => efl_ui_button_part.eo} | 2 +- src/lib/elementary/efl_ui_flip.c | 4 +- ...i_flip_internal_part.eo => efl_ui_flip_part.eo} | 2 +- src/lib/elementary/efl_ui_layout.c | 20 ++--- src/lib/elementary/efl_ui_layout_pack.c| 90 +++--- ...yout_internal_part.eo => efl_ui_layout_part.eo} | 3 +- ...t_internal_box.eo => efl_ui_layout_part_box.eo} | 2 +- ...ternal_table.eo => efl_ui_layout_part_table.eo} | 2 +- src/lib/elementary/efl_ui_panes.c | 20 ++--- ...panes_internal_part.eo => efl_ui_panes_part.eo} | 2 +- src/lib/elementary/efl_ui_progressbar.c| 16 ++-- ...internal_part.eo => efl_ui_progressbar_part.eo} | 2 +- src/lib/elementary/efl_ui_slider.c | 16 ++-- ...ider_internal_part.eo => efl_ui_slider_part.eo} | 2 +- src/lib/elementary/efl_ui_text.c | 4 +- src/lib/elementary/efl_ui_textpath.c | 4 +- ...th_internal_part.eo => efl_ui_textpath_part.eo} | 2 +- src/lib/elementary/efl_ui_win.c| 12 +-- ..._ui_win_internal_part.eo => efl_ui_win_part.eo} | 2 +- src/lib/elementary/elc_ctxpopup.c | 4 +- src/lib/elementary/elc_fileselector.c | 4 +- src/lib/elementary/elc_fileselector_entry.c| 4 +- src/lib/elementary/elc_multibuttonentry.c | 4 +- src/lib/elementary/elc_naviframe.c | 4 +- src/lib/elementary/elc_player.c| 4 +- src/lib/elementary/elc_popup.c | 4 +- src/lib/elementary/elm_actionslider.c | 4 +- ...r_internal_part.eo => elm_actionslider_part.eo} | 2 +- src/lib/elementary/elm_bubble.c| 4 +- ..._bubble_internal_part.eo => elm_bubble_part.eo} | 2 +- ...popup_internal_part.eo => elm_ctxpopup_part.eo} | 2 +- src/lib/elementary/elm_dayselector.c | 4 +- ...or_internal_part.eo => elm_dayselector_part.eo} | 2 +- src/lib/elementary/elm_entry.c | 4 +- ...lm_entry_internal_part.eo => elm_entry_part.eo} | 2 +- ...rnal_part.eo => elm_fileselector_entry_part.eo} | 2 +- ...r_internal_part.eo => elm_fileselector_part.eo} | 2 +- ...{elm_flip_internal_part.eo => elm_flip_part.eo} | 2 +- src/lib/elementary/elm_hover.c | 4 +- ...lm_hover_internal_part.eo => elm_hover_part.eo} | 2 +- src/lib/elementary/elm_label.c | 4 +- ...lm_label_internal_part.eo => elm_label_part.eo
[EGIT] [core/efl] master 01/03: widget: Rename focus_manager_factory to create
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=6d0957b0a54695fb73732221297a78d7fdc3bf1e commit 6d0957b0a54695fb73732221297a78d7fdc3bf1e Author: Jean-Philippe Andre Date: Wed Sep 13 11:33:08 2017 +0900 widget: Rename focus_manager_factory to create factory is not a verb :) Ref T5363 --- src/lib/elementary/efl_ui_win.c| 4 ++-- src/lib/elementary/efl_ui_win.eo | 2 +- src/lib/elementary/elm_hover.c | 4 ++-- src/lib/elementary/elm_hover.eo| 2 +- src/lib/elementary/elm_interface_scrollable.c | 4 ++-- src/lib/elementary/elm_interface_scrollable.eo | 2 +- src/lib/elementary/elm_inwin.c | 4 ++-- src/lib/elementary/elm_inwin.eo| 2 +- src/lib/elementary/elm_menu.c | 4 ++-- src/lib/elementary/elm_menu.eo | 2 +- src/lib/elementary/elm_widget.c| 2 +- src/lib/elementary/elm_widget.eo | 2 +- 12 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c index 3f96323947..84b986cad0 100644 --- a/src/lib/elementary/efl_ui_win.c +++ b/src/lib/elementary/efl_ui_win.c @@ -5340,7 +5340,7 @@ _efl_ui_win_efl_canvas_object_legacy_ctor(Eo *obj, Efl_Ui_Win_Data *sd) } EOLIAN static Efl_Ui_Focus_Manager* -_efl_ui_win_elm_widget_focus_manager_factory(Eo *obj EINA_UNUSED, Efl_Ui_Win_Data *pd EINA_UNUSED, Efl_Ui_Focus_Object *root) +_efl_ui_win_elm_widget_focus_manager_create(Eo *obj EINA_UNUSED, Efl_Ui_Win_Data *pd EINA_UNUSED, Efl_Ui_Focus_Object *root) { Efl_Ui_Focus_Manager *manager; @@ -5372,7 +5372,7 @@ _efl_ui_win_efl_object_constructor(Eo *obj, Efl_Ui_Win_Data *pd) * really bad and hacky. Needs fixing. */ pd->obj = obj; - pd->manager = elm_obj_widget_focus_manager_factory(obj, obj); + pd->manager = elm_obj_widget_focus_manager_create(obj, obj); pd->profile.available = eina_array_new(4); efl_composite_attach(obj, pd->manager); diff --git a/src/lib/elementary/efl_ui_win.eo b/src/lib/elementary/efl_ui_win.eo index bcd0b99bbb..e5bda283e1 100644 --- a/src/lib/elementary/efl_ui_win.eo +++ b/src/lib/elementary/efl_ui_win.eo @@ -833,7 +833,7 @@ class Efl.Ui.Win (Elm.Widget, Efl.Canvas, Efl.Access.Window, Elm.Widget.focus_highlight_animate { get; set; } Elm.Widget.on_focus_update; Elm.Widget.widget_event; - Elm.Widget.focus_manager_factory; + Elm.Widget.focus_manager_create; Elm.Interface.Atspi_Accessible.parent { get; } Elm.Interface.Atspi_Accessible.state_set { get; } Elm.Interface.Atspi_Accessible.name { get; } diff --git a/src/lib/elementary/elm_hover.c b/src/lib/elementary/elm_hover.c index 22c802f242..47b710eaf5 100644 --- a/src/lib/elementary/elm_hover.c +++ b/src/lib/elementary/elm_hover.c @@ -699,7 +699,7 @@ elm_hover_add(Evas_Object *parent) } EOLIAN static Efl_Ui_Focus_Manager* -_elm_hover_elm_widget_focus_manager_factory(Eo *obj EINA_UNUSED, Elm_Hover_Data *pd EINA_UNUSED, Efl_Ui_Focus_Object *root) +_elm_hover_elm_widget_focus_manager_create(Eo *obj EINA_UNUSED, Elm_Hover_Data *pd EINA_UNUSED, Efl_Ui_Focus_Object *root) { Efl_Ui_Focus_Manager *manager; @@ -718,7 +718,7 @@ _elm_hover_efl_object_constructor(Eo *obj, Elm_Hover_Data *pd) evas_object_smart_callbacks_descriptions_set(obj, _smart_callbacks); elm_interface_atspi_accessible_role_set(obj, ELM_ATSPI_ROLE_POPUP_MENU); - pd->manager = elm_obj_widget_focus_manager_factory(obj, obj); + pd->manager = elm_obj_widget_focus_manager_create(obj, obj); efl_composite_attach(obj, pd->manager); diff --git a/src/lib/elementary/elm_hover.eo b/src/lib/elementary/elm_hover.eo index 335c7c6006..dc4dc8d1f9 100644 --- a/src/lib/elementary/elm_hover.eo +++ b/src/lib/elementary/elm_hover.eo @@ -70,7 +70,7 @@ class Elm.Hover (Efl.Ui.Layout, Efl.Ui.Clickable, Elm.Interface.Atspi_Widget_Act Elm.Widget.focus_direction_manager_is; Elm.Widget.focus_next_manager_is; Elm.Widget.widget_sub_object_del; - Elm.Widget.focus_manager_factory; + Elm.Widget.focus_manager_create; Elm.Interface.Atspi_Widget_Action.elm_actions { get; } Efl.Part.part; } diff --git a/src/lib/elementary/elm_interface_scrollable.c b/src/lib/elementary/elm_interface_scrollable.c index ccdc7cf81e..e659c1d3e3 100644 --- a/src/lib/elementary/elm_interface_scrollable.c +++ b/src/lib/elementary/elm_interface_scrollable.c @@ -4679,7 +4679,7 @@ _focused_element(void *data, const Efl_Event *event) } EOLIAN static Efl_Ui_Focus_Manager* -_elm_interface_scrollable_elm_widget_focus_manager_factory(Eo *obj EINA_UNUSED, Elm_Scrollable_Smart_Interface_Data *pd EINA_UNUSED, Efl_Ui_Focus_Object *root) +_elm_interface_scrollable_elm_widget_focus_manager_create(Eo *obj EINA_UNUSED, Elm_Scrollable_Smart_Interface_Data *pd EINA_UNUSED, Efl_Ui_Focus_Object *root)
[EGIT] [core/efl] master 01/01: edje: Rename part external class
jpeg pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=a9732948205906120caef2445aac409b3bf1bfad commit a9732948205906120caef2445aac409b3bf1bfad Author: Jean-Philippe Andre Date: Wed Sep 13 13:58:38 2017 +0900 edje: Rename part external class This was missed in the previous commit as this special part class didn't include the internal keyword. Ref T5315 Ref T5306 --- src/Makefile_Edje.am | 4 ++-- src/lib/edje/Edje_Eo.h | 2 +- src/lib/edje/edje_part_external.c | 6 ++--- src/lib/edje/edje_util.c | 26 +++--- ...ernal.eo => efl_canvas_layout_part_external.eo} | 4 ++-- 5 files changed, 21 insertions(+), 21 deletions(-) diff --git a/src/Makefile_Edje.am b/src/Makefile_Edje.am index 0148da56fc..5b874135b4 100644 --- a/src/Makefile_Edje.am +++ b/src/Makefile_Edje.am @@ -8,9 +8,9 @@ edje_eolian_files = \ lib/edje/edje_object.eo \ lib/edje/efl_canvas_layout_part.eo \ lib/edje/efl_canvas_layout_part_box.eo \ - lib/edje/efl_canvas_layout_part_table.eo \ + lib/edje/efl_canvas_layout_part_external.eo \ lib/edje/efl_canvas_layout_part_swallow.eo \ - lib/edje/efl_canvas_layout_external.eo \ + lib/edje/efl_canvas_layout_part_table.eo \ lib/edje/efl_canvas_layout_part_text.eo \ lib/edje/edje_edit.eo diff --git a/src/lib/edje/Edje_Eo.h b/src/lib/edje/Edje_Eo.h index 23e9efc451..877f3bea07 100644 --- a/src/lib/edje/Edje_Eo.h +++ b/src/lib/edje/Edje_Eo.h @@ -11,4 +11,4 @@ #include "efl_canvas_layout_part_table.eo.h" #include "efl_canvas_layout_part_swallow.eo.h" #include "efl_canvas_layout_part_text.eo.h" -#include "efl_canvas_layout_external.eo.h" +#include "efl_canvas_layout_part_external.eo.h" diff --git a/src/lib/edje/edje_part_external.c b/src/lib/edje/edje_part_external.c index 1ffc4165b5..c2f95547fb 100644 --- a/src/lib/edje/edje_part_external.c +++ b/src/lib/edje/edje_part_external.c @@ -1,7 +1,7 @@ #include "edje_private.h" #include "edje_part_helper.h" -#define MY_CLASS EFL_CANVAS_LAYOUT_EXTERNAL_CLASS +#define MY_CLASS EFL_CANVAS_LAYOUT_PART_EXTERNAL_CLASS static void _external_compose(Eo *obj, Edje *ed, const char *part); @@ -16,10 +16,10 @@ _external_compose(Eo *obj, Edje *ed, const char *part) } EOLIAN static Efl_Gfx * -_efl_canvas_layout_external_efl_container_content_get(Eo *obj, void *_pd EINA_UNUSED) +_efl_canvas_layout_part_external_efl_container_content_get(Eo *obj, void *_pd EINA_UNUSED) { PROXY_DATA_GET(obj, pd); RETURN_VAL(_edje_object_part_external_object_get(pd->ed, pd->part)); } -#include "efl_canvas_layout_external.eo.c" +#include "efl_canvas_layout_part_external.eo.c" diff --git a/src/lib/edje/edje_util.c b/src/lib/edje/edje_util.c index d14ce87977..6eb431ee59 100644 --- a/src/lib/edje/edje_util.c +++ b/src/lib/edje/edje_util.c @@ -2841,7 +2841,7 @@ _edje_box_layout_builtin_find(const char *name) } static Eina_Rbtree_Direction -_edje_box_layout_external_node_cmp(const Eina_Rbtree *left, const Eina_Rbtree *right, EINA_UNUSED void *data) +_edje_box_layout_part_external_node_cmp(const Eina_Rbtree *left, const Eina_Rbtree *right, EINA_UNUSED void *data) { Edje_Box_Layout *l = (Edje_Box_Layout *)left; Edje_Box_Layout *r = (Edje_Box_Layout *)right; @@ -2853,17 +2853,17 @@ _edje_box_layout_external_node_cmp(const Eina_Rbtree *left, const Eina_Rbtree *r } static int -_edje_box_layout_external_find_cmp(const Eina_Rbtree *node, const void *key, EINA_UNUSED int length, EINA_UNUSED void *data) +_edje_box_layout_part_external_find_cmp(const Eina_Rbtree *node, const void *key, EINA_UNUSED int length, EINA_UNUSED void *data) { Edje_Box_Layout *l = (Edje_Box_Layout *)node; return strcmp(key, l->name); } static Edje_Box_Layout * -_edje_box_layout_external_find(const char *name) +_edje_box_layout_part_external_find(const char *name) { return (Edje_Box_Layout *)eina_rbtree_inline_lookup -(_edje_box_layout_registry, name, 0, _edje_box_layout_external_find_cmp, +(_edje_box_layout_registry, name, 0, _edje_box_layout_part_external_find_cmp, NULL); } @@ -2882,7 +2882,7 @@ _edje_box_layout_find(const char *name, Evas_Object_Box_Layout *cb, void **data, return EINA_TRUE; } - l = _edje_box_layout_external_find(name); + l = _edje_box_layout_part_external_find(name); if (!l) return EINA_FALSE; *cb = l->func; @@ -2896,7 +2896,7 @@ _edje_box_layout_find(const char *name, Evas_Object_Box_Layout *cb, void **data, } static void -_edje_box_layout_external_free(Eina_Rbtree *node, EINA_UNUSED void *data) +_edje_box_layout_part_external_free(Eina_Rbtree *node, EINA_UNUSED void *data) { Edje_Box_Layout *l = (Edje_Box_Layout *)node; @@ -2906,7 +2906,7 @@ _edje_box_layout_external_free(Eina_Rbtree *node, EINA_UNUSED