[EGIT] [core/efl] master 02/04: elm: rename Elm.Interface.Atspi.Window => Efl.Access.Window

2017-09-12 Thread Lukasz Stanislawski
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

2017-09-12 Thread Lukasz Stanislawski
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

2017-09-12 Thread Lukasz Stanislawski
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

2017-09-12 Thread Lukasz Stanislawski
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

2017-09-12 Thread Bryce Harrington
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

2017-09-12 Thread Jean-Philippe ANDRÉ
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

2017-09-12 Thread Jean-Philippe ANDRÉ
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

2017-09-12 Thread Amitesh Singh
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

2017-09-12 Thread Amitesh Singh
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.

2017-09-12 Thread Al Poole
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

2017-09-12 Thread Amitesh Singh
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

2017-09-12 Thread Andrew Williams
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

2017-09-12 Thread SangHyeon Jade Lee
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

2017-09-12 Thread Carsten Haitzler
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

2017-09-12 Thread Stefan Schmidt
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

2017-09-12 Thread Stefan Schmidt

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.

2017-09-12 Thread Al Poole
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.

2017-09-12 Thread Al Poole
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.

2017-09-12 Thread Al Poole
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.

2017-09-12 Thread Stephen 'Okra' Houston
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.

2017-09-12 Thread Stephen 'Okra' Houston
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

2017-09-12 Thread Mike Blumenkrantz
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

2017-09-12 Thread Mike Blumenkrantz
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

2017-09-12 Thread Mike Blumenkrantz
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

2017-09-12 Thread Mike Blumenkrantz
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

2017-09-12 Thread Mike Blumenkrantz
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.

2017-09-12 Thread Cedric BAIL
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.

2017-09-12 Thread Cedric BAIL
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

2017-09-12 Thread Mike Blumenkrantz
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

2017-09-12 Thread Mike Blumenkrantz
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

2017-09-12 Thread Mike Blumenkrantz
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

2017-09-12 Thread Carsten Haitzler
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.

2017-09-12 Thread Al Poole
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.

2017-09-12 Thread Al Poole
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

2017-09-12 Thread Vincent Torri
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.

2017-09-12 Thread Vincent Torri
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.

2017-09-12 Thread Cedric BAIL
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.

2017-09-12 Thread Cedric BAIL
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.

2017-09-12 Thread Gustavo Sverzut Barbieri
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.

2017-09-12 Thread Gustavo Sverzut Barbieri
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

2017-09-12 Thread Jean-Philippe ANDRÉ
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

2017-09-12 Thread Jean-Philippe ANDRÉ
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

2017-09-12 Thread Jean-Philippe ANDRÉ
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

2017-09-12 Thread Jean-Philippe ANDRÉ
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

2017-09-12 Thread Jean-Philippe ANDRÉ
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)

2017-09-12 Thread Jean-Philippe ANDRÉ
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

2017-09-12 Thread Jean-Philippe ANDRÉ
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

2017-09-12 Thread Jean-Philippe ANDRÉ
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

2017-09-12 Thread Jean-Philippe ANDRÉ
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

2017-09-12 Thread Jean-Philippe ANDRÉ
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

2017-09-12 Thread Jean-Philippe ANDRÉ
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

2017-09-12 Thread Jean-Philippe ANDRÉ
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

2017-09-12 Thread Jean-Philippe ANDRÉ
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

2017-09-12 Thread Jean-Philippe ANDRÉ
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

2017-09-12 Thread Jean-Philippe ANDRÉ
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

2017-09-12 Thread Jean-Philippe ANDRÉ
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

2017-09-12 Thread Jean-Philippe ANDRÉ
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

2017-09-12 Thread Jean-Philippe ANDRÉ
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

2017-09-12 Thread Jean-Philippe ANDRÉ
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

2017-09-12 Thread Amitesh Singh
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

2017-09-12 Thread Jean-Philippe ANDRÉ
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

2017-09-12 Thread Jean-Philippe ANDRÉ
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)

2017-09-12 Thread Jean-Philippe ANDRÉ
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

2017-09-12 Thread Jean-Philippe ANDRÉ
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

2017-09-12 Thread Jean-Philippe ANDRÉ
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