[EGIT] [core/efl] master 01/01: elm_panel: fix a bug in elm_scrollable_mode_set() function

2019-01-17 Thread Jaeun Choi
eunue pushed a commit to branch master.

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

commit 4d0289bb9f76dd798f0ed8fd8fce28e81cbbdabf
Author: Jaeun Choi 
Date:   Fri Jan 18 16:26:44 2019 +0900

elm_panel: fix a bug in elm_scrollable_mode_set() function

when panel becomes scrollable, the function blocked scrolling
assuming that the panel is hidden. this caused an issue case
when panel becomes scrollable while it is open.
this patch fixes the issue.
---
 src/lib/elementary/elm_panel.c | 25 ++---
 1 file changed, 14 insertions(+), 11 deletions(-)

diff --git a/src/lib/elementary/elm_panel.c b/src/lib/elementary/elm_panel.c
index 1265e127ee..675227e654 100644
--- a/src/lib/elementary/elm_panel.c
+++ b/src/lib/elementary/elm_panel.c
@@ -1384,18 +1384,21 @@ _elm_panel_scrollable_set(Eo *obj, Elm_Panel_Data *sd, 
Eina_Bool scrollable)
 elm_layout_content_set(sd->scr_ly, "elm.swallow.content", sd->bx);
 if (sd->content) elm_widget_sub_object_add(sd->scr_ly, sd->content);
 
-switch (sd->orient)
+if (sd->hidden)
   {
-   case ELM_PANEL_ORIENT_TOP:
-   case ELM_PANEL_ORIENT_BOTTOM:
-  elm_interface_scrollable_movement_block_set
-(obj, EFL_UI_SCROLL_BLOCK_VERTICAL);
-  break;
-   case ELM_PANEL_ORIENT_LEFT:
-   case ELM_PANEL_ORIENT_RIGHT:
-  elm_interface_scrollable_movement_block_set
-(obj, EFL_UI_SCROLL_BLOCK_HORIZONTAL);
-  break;
+ switch (sd->orient)
+   {
+case ELM_PANEL_ORIENT_TOP:
+case ELM_PANEL_ORIENT_BOTTOM:
+   elm_interface_scrollable_movement_block_set
+  (obj, EFL_UI_SCROLL_BLOCK_VERTICAL);
+   break;
+case ELM_PANEL_ORIENT_LEFT:
+case ELM_PANEL_ORIENT_RIGHT:
+   elm_interface_scrollable_movement_block_set
+  (obj, EFL_UI_SCROLL_BLOCK_HORIZONTAL);
+   break;
+   }
   }
 
 elm_interface_scrollable_single_direction_set

-- 




[EGIT] [core/efl] master 03/04: theme: remove a ton of invalid part description references in various programs

2019-01-17 Thread Mike Blumenkrantz
zmike pushed a commit to branch master.

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

commit 1e5c25b4ec7ea731873c83d80bd60d5672548c29
Author: Mike Blumenkrantz 
Date:   Thu Jan 17 15:11:21 2019 -0500

theme: remove a ton of invalid part description references in various 
programs

Summary:
this looks like mostly bad copy+paste

@fix
fix T6873
Depends on D7606

Reviewers: cedric

Reviewed By: cedric

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T6873

Differential Revision: https://phab.enlightenment.org/D7607
---
 data/elementary/themes/edc/about-e.edc |  2 --
 data/elementary/themes/edc/about-theme.edc |  4 
 data/elementary/themes/edc/elm/button.edc  | 23 ---
 data/elementary/themes/edc/evrything.edc   |  6 --
 data/elementary/themes/edc/fileman.edc |  2 --
 data/elementary/themes/edc/scrollframe.edc | 12 
 data/elementary/themes/edc/syscon.edc  |  2 --
 data/elementary/themes/edc/tasks.edc   |  2 --
 data/elementary/themes/edc/wallpaper.edc   |  6 --
 9 files changed, 59 deletions(-)

diff --git a/data/elementary/themes/edc/about-e.edc 
b/data/elementary/themes/edc/about-e.edc
index 376fef65b8..7035813f07 100644
--- a/data/elementary/themes/edc/about-e.edc
+++ b/data/elementary/themes/edc/about-e.edc
@@ -270,13 +270,11 @@ group { name: "e/widgets/about/main";
  signal: "mouse,down,1*"; source: "base";
  action: STATE_SET "clicked" 0.0;
  target: "base";
- target: "e.text.label";
   }
   program {
  signal: "mouse,up,1"; source: "base";
  action: STATE_SET "default" 0.0;
  target: "base";
- target: "e.text.label";
   }
   program {
  signal: "mouse,clicked,1*"; source: "base";
diff --git a/data/elementary/themes/edc/about-theme.edc 
b/data/elementary/themes/edc/about-theme.edc
index d27d2001c1..d3db61d540 100644
--- a/data/elementary/themes/edc/about-theme.edc
+++ b/data/elementary/themes/edc/about-theme.edc
@@ -155,13 +155,11 @@ group { name: "e/theme/about";
  signal: "mouse,down,1*"; source: "base";
  action: STATE_SET "clicked" 0.0;
  target: "base";
- target: "e.text.label";
   }
   program {
  signal: "mouse,up,1"; source: "base";
  action: STATE_SET "default" 0.0;
  target: "base";
- target: "e.text.label";
   }
   program {
  signal: "mouse,clicked,1*"; source: "base";
@@ -171,13 +169,11 @@ group { name: "e/theme/about";
  signal: "mouse,down,1*"; source: "base2";
  action: STATE_SET "clicked" 0.0;
  target: "base2";
- target: "e.text.theme";
   }
   program {
  signal: "mouse,up,1"; source: "base2";
  action: STATE_SET "default" 0.0;
  target: "base2";
- target: "e.text.theme";
   }
   program {
  signal: "mouse,clicked,1*"; source: "base2";
diff --git a/data/elementary/themes/edc/elm/button.edc 
b/data/elementary/themes/edc/elm/button.edc
index cd0f4eb190..fd497df834 100644
--- a/data/elementary/themes/edc/elm/button.edc
+++ b/data/elementary/themes/edc/elm/button.edc
@@ -892,29 +892,6 @@ group { name: "elm/button/base/media_player/prev/default";
  target: "shadow1";
  target: "shadow2";
   }
-  program {
- signal: "mouse,up,1"; source: "event";
- action: SIGNAL_EMIT "elm,action,unpress" "elm";
- after: "button_unclick_anim";
-  }
-  program { name:   "button_unclick_anim";
- action: STATE_SET "default" 0.0;
- target: "shadow1";
- target: "shadow2";
-  }
-  program {
- signal: "elm,anim,activate"; source: "elm";
- action: STATE_SET "clicked" 0.0;
- target: "shadow1";
- target: "shadow2";
- after: "button_unpressed_anim";
-  }
-  program { name:   "button_unpressed_anim";
- action: STATE_SET "default" 0.0;
- in: 0.5 0.0;
- target: "shadow1";
- target: "shadow2";
-  }
   program {
  signal: "mouse,clicked,1"; source: "event";
  action: SIGNAL_EMIT "elm,action,click" "elm";
diff --git a/data/elementary/themes/edc/evrything.edc 
b/data/elementary/themes/edc/evrything.edc
index 21b2065d7a..9f6dfe638a 100644
--- a/data/elementary/themes/edc/evrything.edc
+++ b/data/elementary/themes/edc/evrything.edc
@@ -1026,7 +1026,6 @@ group { name: 
"e/modules/everything/thumbview/main/scrollframe";
   program {
  signal: "mouse,down,1*"; source: "sb_vbar_a1";
  action: STATE_SET "clicked" 0.0;
- target: "sb_vbar_a1";
  target: "arrow1_vbar";
   }
   program {
@@ -1037,13 +1036,11 @@ group { name: 
"e/modules/everything/thumbview/main/scrollframe";
   program {
  signal: "mouse,up,1"; source: 

[EGIT] [core/efl] master 02/04: theme: correct part name in program for elm/hover/base/main_menu_submenu/default

2019-01-17 Thread Mike Blumenkrantz
zmike pushed a commit to branch master.

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

commit 709c689fa0ec455f9a88c5324f72ec6f40a368c3
Author: Mike Blumenkrantz 
Date:   Thu Jan 17 15:11:13 2019 -0500

theme: correct part name in program for 
elm/hover/base/main_menu_submenu/default

Summary:
@fix
Depends on D7605

Reviewers: cedric

Reviewed By: cedric

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T6219

Differential Revision: https://phab.enlightenment.org/D7606
---
 data/elementary/themes/edc/elm/menu.edc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/data/elementary/themes/edc/elm/menu.edc 
b/data/elementary/themes/edc/elm/menu.edc
index ec3d67b13a..8a593d605b 100644
--- a/data/elementary/themes/edc/elm/menu.edc
+++ b/data/elementary/themes/edc/elm/menu.edc
@@ -1134,12 +1134,12 @@ group { name: 
"elm/hover/base/main_menu_submenu/default";
   program { name: "show";
  signal: "elm,action,show"; source: "elm";
  action: STATE_SET "visible" 0.0;
- target: "base";
+ target: "top";
   }
   program { name: "hide";
  signal: "elm,action,hide"; source: "elm";
  action: STATE_SET "default" 0.0;
- target: "base";
+ target: "top";
   }
   program { name: "bottomshow";
  signal: "elm,action,slot,bottom,show"; source: "elm";

-- 




[EGIT] [core/efl] master 01/04: theme: fix odd state setting on some items for list/genlist/gengrid

2019-01-17 Thread Mike Blumenkrantz
zmike pushed a commit to branch master.

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

commit 5adeda5133454301be29954655a748927080a8bc
Author: Mike Blumenkrantz 
Date:   Thu Jan 17 15:11:07 2019 -0500

theme: fix odd state setting on some items for list/genlist/gengrid

Summary:
these used a bad state value which did not exist for the corresponding part

@fix

Reviewers: cedric

Reviewed By: cedric

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7605
---
 data/elementary/themes/edc/elm/gengrid.edc | 2 +-
 data/elementary/themes/edc/elm/genlist.edc | 2 +-
 data/elementary/themes/edc/elm/list.edc| 4 ++--
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/data/elementary/themes/edc/elm/gengrid.edc 
b/data/elementary/themes/edc/elm/gengrid.edc
index 2c089e6ce3..5f375f9eae 100644
--- a/data/elementary/themes/edc/elm/gengrid.edc
+++ b/data/elementary/themes/edc/elm/gengrid.edc
@@ -38,7 +38,7 @@ group { name: "elm/gengrid/item/default/default";
   } \
   program { \
  signal: "elm,state,odd"; source: "elm"; \
- action: STATE_SET "odd" 1.0; \
+ action: STATE_SET "odd" 0.0; \
  target: "base"; \
   } \
   program { \
diff --git a/data/elementary/themes/edc/elm/genlist.edc 
b/data/elementary/themes/edc/elm/genlist.edc
index 5cd6838cb8..976d25dc9d 100644
--- a/data/elementary/themes/edc/elm/genlist.edc
+++ b/data/elementary/themes/edc/elm/genlist.edc
@@ -5066,7 +5066,7 @@ group { "elm/genlist/item/edit/default"; nomouse;
   }
   program {
  signal: "elm,state,odd";
- action: STATE_SET "odd" 1.0;
+ action: STATE_SET "odd" 0.0;
  target: "base";
   }
   program {
diff --git a/data/elementary/themes/edc/elm/list.edc 
b/data/elementary/themes/edc/elm/list.edc
index 06419383b1..ab27c174f9 100644
--- a/data/elementary/themes/edc/elm/list.edc
+++ b/data/elementary/themes/edc/elm/list.edc
@@ -143,7 +143,7 @@ group { name: "elm/list/item/default";
   }
   program {
  signal: "elm,state,odd"; source: "elm";
- action: STATE_SET "odd" 1.0;
+ action: STATE_SET "odd" 0.0;
  target: "base";
   }
   program {
@@ -454,7 +454,7 @@ group { name: "elm/list/h_item/default";
   }
   program {
  signal: "elm,state,odd"; source: "elm";
- action: STATE_SET "odd" 1.0;
+ action: STATE_SET "odd" 0.0;
  target: "base";
   }
   program {

-- 




[EGIT] [core/efl] master 04/04: edje_cc: fail upon detecting invalid part description references in programs

2019-01-17 Thread Mike Blumenkrantz
zmike pushed a commit to branch master.

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

commit c7e29cd1c1fa8fd6e8bb9f2a687c807d3b55b7ab
Author: Mike Blumenkrantz 
Date:   Thu Jan 17 15:11:25 2019 -0500

edje_cc: fail upon detecting invalid part description references in programs

Summary:
this causes attempts to STATE_SET a non-existent state to trigger an error 
and
abort edj file compiling so that bugs can be fixed before they become 
runtime
issues

@feature
fix T7016
Depends on D7607

Reviewers: cedric

Reviewed By: cedric

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7016

Differential Revision: https://phab.enlightenment.org/D7608
---
 src/bin/edje/edje_cc_out.c | 30 +-
 1 file changed, 29 insertions(+), 1 deletion(-)

diff --git a/src/bin/edje/edje_cc_out.c b/src/bin/edje/edje_cc_out.c
index 154e070759..c791e8d1c6 100644
--- a/src/bin/edje/edje_cc_out.c
+++ b/src/bin/edje/edje_cc_out.c
@@ -750,10 +750,38 @@ check_program(Edje_Part_Collection *pc, Edje_Program *ep, 
Eet_File *ef)
 
EINA_LIST_FOREACH(ep->targets, l, et)
  {
+Edje_Part *part;
+
+part = pc->parts[et->id];
+/* verify existence of description in part */
+if (ep->action == EDJE_ACTION_TYPE_STATE_SET)
+  {
+ if ((!eina_streq(ep->state, "custom")) &&
+   ((!eina_streq(ep->state, "default")) || 
(!EINA_DBL_EQ(ep->value, 0.0
+   {
+  Edje_Part_Collection_Directory_Entry *de;
+  Eina_Bool found = EINA_FALSE;
+  for (i = 0; i < part->other.desc_count; i++)
+{
+   Edje_Part_Description_Common *ed = part->other.desc[i];
+   if (eina_streq(ed->state.name, ep->state) && 
EINA_DBL_EQ(ep->value, ed->state.value))
+ {
+found = EINA_TRUE;
+break;
+ }
+}
+  if (!found)
+{
+   de = eina_hash_find(edje_collections_lookup, >id);
+   error_and_abort(NULL, "GROUP %s - state '%s:%g' does 
not exist for part '%s'; set in program '%s'",
+ de->entry, ep->state, ep->value, part->name, 
ep->name);
+}
+   }
+  }
 if (((ep->action == EDJE_ACTION_TYPE_STATE_SET) ||
  (ep->action == EDJE_ACTION_TYPE_SIGNAL_EMIT)) &&
 (et->id < (int)pc->parts_count) &&
-(pc->parts[et->id]->type == EDJE_PART_TYPE_MESH_NODE) &&
+(part->type == EDJE_PART_TYPE_MESH_NODE) &&
 (strstr(ep->signal, "mouse")))
   {
  for (i = 0; (i < pc->parts_count) && (ep->source_3d_id < 0); i++)

-- 




[EGIT] [core/efl] master 01/01: eolian: make error messages usable

2019-01-17 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 270cb385cae32078bb21e4b2eb449cb64eb656e9
Author: Marcel Hollerbach 
Date:   Thu Jan 17 19:44:03 2019 +0100

eolian: make error messages usable

base of the impl is where the function is defined, not where the missing
implementation is.

ref T5719

Reviewed-by: Daniel Kolesa 
Differential Revision: https://phab.enlightenment.org/D7680
---
 src/lib/eolian/database_validate.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/lib/eolian/database_validate.c 
b/src/lib/eolian/database_validate.c
index 61fa18e607..2a4c646647 100644
--- a/src/lib/eolian/database_validate.c
+++ b/src/lib/eolian/database_validate.c
@@ -759,14 +759,14 @@ _db_check_implemented(Validate_State *vals, Eolian_Class 
*cl, Eina_Hash *fs)
   {
case IMPL_STATUS_NONE:
  _eo_parser_log(
-   >base, "unimplemented function '%s' (originally defined 
at %s:%d:%d)",
+   >base, "unimplemented function '%s' (originally defined at 
%s:%d:%d)",
fid->base.name, fid->base.file, fid->base.line, 
fid->base.column);
  succ = EINA_FALSE;
  continue;
case IMPL_STATUS_GET:
case IMPL_STATUS_SET:
  _eo_parser_log(
-   >base, "partially implemented function '%s' (originally 
defined at %s:%d:%d)",
+   >base, "partially implemented function '%s' (originally 
defined at %s:%d:%d)",
fid->base.name, fid->base.file, fid->base.line, 
fid->base.column);
  succ = EINA_FALSE;
  continue;
@@ -774,7 +774,7 @@ _db_check_implemented(Validate_State *vals, Eolian_Class 
*cl, Eina_Hash *fs)
  continue;
default:
  _eo_parser_log(
-   >base, "internal error, unregistered function '%s' 
(originally defined at %s:%d:%d)",
+   >base, "internal error, unregistered function '%s' 
(originally defined at %s:%d:%d)",
fid->base.name, fid->base.file, fid->base.line, 
fid->base.column);
  return EINA_FALSE;
   }

-- 




[EGIT] [core/efl] master 01/01: Make Efl.Ui.Closer an interface instead of mixin

2019-01-17 Thread Xavi Artigas
zmike pushed a commit to branch master.

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

commit 1534f50be0cbbc00c50bf75c8ef7afba49455741
Author: Xavi Artigas 
Date:   Thu Jan 17 13:59:56 2019 -0500

Make Efl.Ui.Closer an interface instead of mixin

Summary:
It is a mixin only because of the setter method for the "closed" property,
otherwise, it would be a pure interface.
Nobody is setting that property, so let's just remove the setter (leaving 
only
the getter) and make this class an interface.
This should clear the scenario for languages currently having issues with
mixins (like C#).

Related to T7601.

Test Plan: Nothing changes. Make check and examples still work.

Reviewers: zmike, bu5hm4n, cedric

Reviewed By: cedric

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7570
---
 src/lib/ecore/efl_io_buffered_stream.c  |  2 +-
 src/lib/ecore/efl_io_copier.c   | 28 ++--
 src/lib/efl/interfaces/efl_io_closer.c  |  9 -
 src/lib/efl/interfaces/efl_io_closer.eo | 20 +++-
 4 files changed, 22 insertions(+), 37 deletions(-)

diff --git a/src/lib/ecore/efl_io_buffered_stream.c 
b/src/lib/ecore/efl_io_buffered_stream.c
index a02b6bbb3e..53b1edaf1d 100644
--- a/src/lib/ecore/efl_io_buffered_stream.c
+++ b/src/lib/ecore/efl_io_buffered_stream.c
@@ -351,7 +351,7 @@ _efl_io_buffered_stream_inner_io_set(Eo *o, 
Efl_Io_Buffered_Stream_Data *pd, Efl
EINA_SAFETY_ON_NULL_RETURN(io);
EINA_SAFETY_ON_TRUE_RETURN(pd->inner_io != NULL);
 
-   pd->is_closer = efl_isa(io, EFL_IO_CLOSER_MIXIN);
+   pd->is_closer = efl_isa(io, EFL_IO_CLOSER_INTERFACE);
is_reader = efl_isa(io, EFL_IO_READER_INTERFACE);
is_writer = efl_isa(io, EFL_IO_WRITER_INTERFACE);
 
diff --git a/src/lib/ecore/efl_io_copier.c b/src/lib/ecore/efl_io_copier.c
index a03168807c..dbedfcf959 100644
--- a/src/lib/ecore/efl_io_copier.c
+++ b/src/lib/ecore/efl_io_copier.c
@@ -55,7 +55,7 @@ static void _efl_io_copier_read(Eo *o, Efl_Io_Copier_Data 
*pd);
   efl_ref_count(pd->source), \
   efl_io_reader_can_read_get(pd->source), \
   efl_io_reader_eos_get(pd->source), \
-  efl_isa(pd->source, EFL_IO_CLOSER_MIXIN) ? \
+  efl_isa(pd->source, EFL_IO_CLOSER_INTERFACE) ? \
   efl_io_closer_closed_get(pd->source) : 0); \
 if (!pd->destination) \
   DBG("destination=NULL"); \
@@ -65,7 +65,7 @@ static void _efl_io_copier_read(Eo *o, Efl_Io_Copier_Data 
*pd);
   efl_class_name_get(efl_class_get(pd->destination)), \
   efl_ref_count(pd->destination), \
   efl_io_writer_can_write_get(pd->destination), \
-  efl_isa(pd->destination, EFL_IO_CLOSER_MIXIN) ? \
+  efl_isa(pd->destination, EFL_IO_CLOSER_INTERFACE) ? \
   efl_io_closer_closed_get(pd->destination) : 0); \
  } \
 } \
@@ -418,7 +418,7 @@ _efl_io_copier_source_set(Eo *o, Efl_Io_Copier_Data *pd, 
Efl_Io_Reader *source)
 _efl_io_copier_source_resized, o);
  pd->progress.total = 0;
   }
-if (efl_isa(pd->source, EFL_IO_CLOSER_MIXIN))
+if (efl_isa(pd->source, EFL_IO_CLOSER_INTERFACE))
   {
  efl_event_callback_del(pd->source, EFL_IO_CLOSER_EVENT_CLOSED,
 _efl_io_copier_source_closed, o);
@@ -441,7 +441,7 @@ _efl_io_copier_source_set(Eo *o, Efl_Io_Copier_Data *pd, 
Efl_Io_Reader *source)
  _efl_io_copier_source_size_apply(o, pd);
   }
 
-if (efl_isa(pd->source, EFL_IO_CLOSER_MIXIN))
+if (efl_isa(pd->source, EFL_IO_CLOSER_INTERFACE))
   {
  efl_io_closer_close_on_exec_set(pd->source, 
efl_io_closer_close_on_exec_get(o));
  efl_io_closer_close_on_invalidate_set(pd->source, 
efl_io_closer_close_on_invalidate_get(o));
@@ -505,7 +505,7 @@ _efl_io_copier_destination_set(Eo *o, Efl_Io_Copier_Data 
*pd, Efl_Io_Writer *des
if (pd->destination)
  {
 efl_event_callback_array_del(pd->destination, destination_cbs(), o);
-if (efl_isa(pd->destination, EFL_IO_CLOSER_MIXIN))
+if (efl_isa(pd->destination, EFL_IO_CLOSER_INTERFACE))
   {
  efl_event_callback_del(pd->destination, 
EFL_IO_CLOSER_EVENT_CLOSED,
 _efl_io_copier_destination_closed, o);
@@ -520,7 +520,7 @@ _efl_io_copier_destination_set(Eo *o, Efl_Io_Copier_Data 
*pd, Efl_Io_Writer *des
 pd->destination = efl_ref(destination);
 efl_event_callback_array_add(pd->destination, destination_cbs(), o);
 
-if (efl_isa(pd->destination, EFL_IO_CLOSER_MIXIN))
+if (efl_isa(pd->destination, 

[EGIT] [core/enlightenment] master 01/01: Mixer Gadget: Give the mixer gadget its own actions as to not conflict with the shelf module.

2019-01-17 Thread Stephen 'Okra' Houston
okra pushed a commit to branch master.

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

commit 4097a9d2f63fd4cf7a2835d21018ffb3d7730bac
Author: Stephen 'Okra' Houston 
Date:   Thu Jan 17 11:32:04 2019 -0600

Mixer Gadget: Give the mixer gadget its own actions as to not conflict with 
the shelf module.

Fixes T7263
---
 src/modules/mixer/gadget/mixer.c | 58 
 1 file changed, 29 insertions(+), 29 deletions(-)

diff --git a/src/modules/mixer/gadget/mixer.c b/src/modules/mixer/gadget/mixer.c
index 41c3f24a3..69a59a69e 100644
--- a/src/modules/mixer/gadget/mixer.c
+++ b/src/modules/mixer/gadget/mixer.c
@@ -260,52 +260,52 @@ _volume_mute_app_cb(E_Object *obj EINA_UNUSED, const char 
*params EINA_UNUSED)
 static void
 _actions_register(void)
 {
-   gmixer_context->actions.incr = e_action_add("volume_increase");
+   gmixer_context->actions.incr = e_action_add("gadget_volume_increase");
if (gmixer_context->actions.incr)
  {
 gmixer_context->actions.incr->func.go = _volume_increase_cb;
-e_action_predef_name_set("Mixer", _("Increase Volume"),
- "volume_increase", NULL, NULL, 0);
+e_action_predef_name_set("Mixer Gadget", _("Increase Volume"),
+ "gadget_volume_increase", NULL, NULL, 0);
  }
 
-   gmixer_context->actions.decr = e_action_add("volume_decrease");
+   gmixer_context->actions.decr = e_action_add("gadget_volume_decrease");
if (gmixer_context->actions.decr)
  {
 gmixer_context->actions.decr->func.go = _volume_decrease_cb;
-e_action_predef_name_set("Mixer", _("Decrease Volume"),
- "volume_decrease", NULL, NULL, 0);
+e_action_predef_name_set("Mixer Gadget", _("Decrease Volume"),
+ "gadget_volume_decrease", NULL, NULL, 0);
  }
 
-   gmixer_context->actions.mute = e_action_add("volume_mute");
+   gmixer_context->actions.mute = e_action_add("gadget_volume_mute");
if (gmixer_context->actions.mute)
  {
 gmixer_context->actions.mute->func.go = _volume_mute_cb;
-e_action_predef_name_set("Mixer", _("Mute volume"), "volume_mute",
+e_action_predef_name_set("Mixer Gadget", _("Mute volume"), 
"gadget_volume_mute",
  NULL, NULL, 0);
  }
-   gmixer_context->actions.incr_app = e_action_add("volume_increase_app");
+   gmixer_context->actions.incr_app = 
e_action_add("gadget_volume_increase_app");
if (gmixer_context->actions.incr_app)
  {
 gmixer_context->actions.incr_app->func.go = _volume_increase_app_cb;
-e_action_predef_name_set("Mixer",
+e_action_predef_name_set("Mixer Gadget",
  _("Increase Volume of Focused Application"),
- "volume_increase_app", NULL, NULL, 0);
+ "gadget_volume_increase_app", NULL, NULL, 0);
  }
-   gmixer_context->actions.decr_app = e_action_add("volume_decrease_app");
+   gmixer_context->actions.decr_app = 
e_action_add("gadget_volume_decrease_app");
if (gmixer_context->actions.decr_app)
  {
 gmixer_context->actions.decr_app->func.go = _volume_decrease_app_cb;
-e_action_predef_name_set("Mixer",
+e_action_predef_name_set("Mixer Gadget",
  _("Decrease Volume of Focused Application"),
- "volume_decrease_app", NULL, NULL, 0);
+ "gadget_volume_decrease_app", NULL, NULL, 0);
  }
-   gmixer_context->actions.mute_app = e_action_add("volume_mute_app");
+   gmixer_context->actions.mute_app = e_action_add("gadget_volume_mute_app");
if (gmixer_context->actions.mute_app)
  {
 gmixer_context->actions.mute_app->func.go = _volume_mute_app_cb;
-e_action_predef_name_set("Mixer",
+e_action_predef_name_set("Mixer Gadget",
  _("Mute Volume of Focused Application"),
- "volume_mute_app", NULL, NULL, 0);
+ "gadget_volume_mute_app", NULL, NULL, 0);
  }
 
e_comp_canvas_keys_ungrab();
@@ -317,46 +317,46 @@ _actions_unregister(void)
 {
if (gmixer_context->actions.incr)
  {
-e_action_predef_name_del("Mixer", _("Increase Volume"));
-e_action_del("volume_increase");
+e_action_predef_name_del("Mixer Gadget", _("Increase Volume"));
+e_action_del("gadget_volume_increase");
 gmixer_context->actions.incr = NULL;
  }
 
if (gmixer_context->actions.decr)
  {
-e_action_predef_name_del("Mixer", _("Decrease Volume"));
-e_action_del("volume_decrease");
+e_action_predef_name_del("Mixer Gadget", _("Decrease Volume"));
+e_action_del("gadget_volume_decrease");
 

[EGIT] [core/efl] master 05/05: eolian: disallow pure virtual on non-abstract/mixin classes

2019-01-17 Thread Daniel Kolesa
q66 pushed a commit to branch master.

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

commit 18ab4f2eec444bbef11605bd0e2ba057709cbb7e
Author: Daniel Kolesa 
Date:   Thu Jan 17 17:13:55 2019 +0100

eolian: disallow pure virtual on non-abstract/mixin classes
---
 src/lib/eolian/database_validate.c   | 46 +---
 src/lib/eolian/eo_parser.c   | 16 ++
 src/tests/eolian/data/base.eo|  2 +-
 src/tests/eolian/data/nmsp1_nmsp11_class2.eo |  2 +-
 src/tests/eolian/data/object_impl.eo |  2 +-
 src/tests/eolian/data/override.eo|  2 +-
 src/tests/eolian/data/override_ref.c |  2 +-
 7 files changed, 16 insertions(+), 56 deletions(-)

diff --git a/src/lib/eolian/database_validate.c 
b/src/lib/eolian/database_validate.c
index 69e71aeb8f..61fa18e607 100644
--- a/src/lib/eolian/database_validate.c
+++ b/src/lib/eolian/database_validate.c
@@ -13,7 +13,6 @@ typedef struct _Validate_State
Eina_Bool warned;
Eina_Bool event_redef;
Eina_Bool unimplemented;
-   Eina_Bool pure_virtual;
 } Validate_State;
 
 static Eina_Bool
@@ -408,48 +407,6 @@ _validate_function(Validate_State *vals, Eolian_Function 
*func, Eina_Hash *nhash
if (!_validate_doc(func->set_return_doc))
  return EINA_FALSE;
 
-   if (!vals->pure_virtual)
- goto final;
-
-   Eolian_Implement *impl = func->impl;
-
-   /* pure virtual methods are ok for abstracts/mixins as well as ifaces
-* in ifaces they are implicit, in regulars and abstracts explicit
-*/
-   if (!impl || (impl->klass->type != EOLIAN_CLASS_REGULAR))
- goto final;
-
-   if (func->type == EOLIAN_METHOD && impl->get_pure_virtual)
- {
-_eo_parser_log(>base,
-  "pure virtual function '%s' in a non-abstract class '%s'",
-  func->base.name, impl->implklass->base.name);
-return EINA_FALSE;
- }
-   else if (func->type == EOLIAN_PROPERTY &&
-impl->get_pure_virtual && impl->set_pure_virtual)
- {
-_eo_parser_log(>base,
-  "pure virtual property '%s' in a non-abstract class '%s'",
-  func->base.name, impl->implklass->base.name);
-return EINA_FALSE;
- }
-   else if (impl->get_pure_virtual)
- {
-_eo_parser_log(>base,
-  "pure virtual getter '%s' in a non-abstract class '%s'",
-  func->base.name, impl->implklass->base.name);
-return EINA_FALSE;
- }
-   else if (impl->set_pure_virtual)
- {
-_eo_parser_log(>set_base,
-  "pure virtual setter '%s' in a non-abstract class '%s'",
-  func->base.name, impl->implklass->base.name);
-return EINA_FALSE;
- }
-
-final:
/* just for now, when dups become errors there will be no need to check */
if (!oobj && nhash)
  eina_hash_add(nhash, >base.name, >base);
@@ -1262,8 +1219,7 @@ database_validate(const Eolian_Unit *src)
Validate_State vals = {
   EINA_FALSE,
   !!getenv("EOLIAN_EVENT_REDEF_WARN"),
-  !!getenv("EOLIAN_CLASS_UNIMPLEMENTED_WARN"),
-  !!getenv("EOLIAN_PURE_VIRTUAL_WARN")
+  !!getenv("EOLIAN_CLASS_UNIMPLEMENTED_WARN")
};
 
/* do an initial pass to refill inherits */
diff --git a/src/lib/eolian/eo_parser.c b/src/lib/eolian/eo_parser.c
index 172df12bd9..0ea2944ea4 100644
--- a/src/lib/eolian/eo_parser.c
+++ b/src/lib/eolian/eo_parser.c
@@ -1016,6 +1016,13 @@ parse_params(Eo_Lexer *ls, Eina_List **params, Eina_Bool 
allow_inout,
check_match(ls, '}', '{', line, col);
 }
 
+static void
+check_abstract_pure_virtual(Eo_Lexer *ls)
+{
+   if ((ls->klass->type != EOLIAN_CLASS_ABSTRACT) && (ls->klass->type != 
EOLIAN_CLASS_MIXIN))
+ eo_lexer_syntax_error(ls, "@pure_virtual only allowed in abstract classes 
or mixins");
+}
+
 static void
 parse_accessor(Eo_Lexer *ls, Eolian_Function *prop)
 {
@@ -1047,8 +1054,7 @@ parse_accessor(Eo_Lexer *ls, Eolian_Function *prop)
for (;;) switch (ls->t.kw)
  {
   case KW_at_pure_virtual:
-if (ls->klass->type == EOLIAN_CLASS_INTERFACE)
-  eo_lexer_syntax_error(ls, "@pure_virtual is implicit in interfaces");
+check_abstract_pure_virtual(ls);
 CASE_LOCK(ls, virtp, "pure_virtual qualifier");
 if (is_get) prop->impl->get_pure_virtual = EINA_TRUE;
 else prop->impl->set_pure_virtual = EINA_TRUE;
@@ -1222,8 +1228,7 @@ parse_property(Eo_Lexer *ls)
 eo_lexer_get(ls);
 break;
   case KW_at_pure_virtual:
-if (ls->klass->type == EOLIAN_CLASS_INTERFACE)
-  eo_lexer_syntax_error(ls, "@pure_virtual is implicit in interfaces");
+check_abstract_pure_virtual(ls);
 CASE_LOCK(ls, virtp, "pure_virtual qualifier");
 eo_lexer_get(ls);
 break;
@@ -1393,8 +1398,7 @@ parse_method(Eo_Lexer *ls)
 eo_lexer_get(ls);
 break;
   case KW_at_pure_virtual:
-if (ls->klass->type == EOLIAN_CLASS_INTERFACE)
-  

[EGIT] [core/efl] master 03/05: evas: make classes abstract

2019-01-17 Thread Marcel Hollerbach
q66 pushed a commit to branch master.

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

commit ba065f9eed25993e7451ad691c00e7a3bffa9c19
Author: Marcel Hollerbach 
Date:   Thu Jan 17 17:15:03 2019 +0100

evas: make classes abstract

Summary:
those classes are defining pure_virtual functions, so the class should
be abstract.

ref T7632

Depends on D7670

Reviewers: cedric, segfaultxavi, zmike, q66

Reviewed By: segfaultxavi

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7632

Differential Revision: https://phab.enlightenment.org/D7671
---
 src/lib/ector/software/ector_renderer_software.eo | 2 +-
 src/lib/evas/canvas/evas_canvas3d_object.eo   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/lib/ector/software/ector_renderer_software.eo 
b/src/lib/ector/software/ector_renderer_software.eo
index 46251e3a4b..09faabfbe0 100644
--- a/src/lib/ector/software/ector_renderer_software.eo
+++ b/src/lib/ector/software/ector_renderer_software.eo
@@ -1,4 +1,4 @@
-class Ector.Renderer.Software (Ector.Renderer)
+abstract Ector.Renderer.Software (Ector.Renderer)
 {
[[Ector software renderer class]]
data: null;
diff --git a/src/lib/evas/canvas/evas_canvas3d_object.eo 
b/src/lib/evas/canvas/evas_canvas3d_object.eo
index 0fa7161f29..8b917cf555 100644
--- a/src/lib/evas/canvas/evas_canvas3d_object.eo
+++ b/src/lib/evas/canvas/evas_canvas3d_object.eo
@@ -1,6 +1,6 @@
 import evas_canvas3d_types;
 
-class Evas.Canvas3D.Object (Efl.Object)
+abstract Evas.Canvas3D.Object (Efl.Object)
 {
[[Evas 3D canvas object class]]
data: Evas_Canvas3D_Object_Data;

-- 




[EGIT] [core/efl] master 01/05: ecore_audio: remove pure virtual functions from classes

2019-01-17 Thread Marcel Hollerbach
q66 pushed a commit to branch master.

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

commit 48b43928bbbe7e79431cf7650c28d9acb8dfc830
Author: Marcel Hollerbach 
Date:   Thu Jan 17 17:14:19 2019 +0100

ecore_audio: remove pure virtual functions from classes

Summary:
A call to a undefined function results in a NOP we can get the same
behaviour with @empty. In Ecore.Audio this pure_virtual function makes
sense, so make the class abstract.

ref T7632

Reviewers: cedric, segfaultxavi, zmike, q66

Reviewed By: segfaultxavi

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7632

Differential Revision: https://phab.enlightenment.org/D7669
---
 src/lib/ecore_audio/ecore_audio.eo| 2 +-
 src/lib/ecore_audio/ecore_audio_in.eo | 9 ++---
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/lib/ecore_audio/ecore_audio.eo 
b/src/lib/ecore_audio/ecore_audio.eo
index 988ba007be..e2c9fb8f5f 100644
--- a/src/lib/ecore_audio/ecore_audio.eo
+++ b/src/lib/ecore_audio/ecore_audio.eo
@@ -12,7 +12,7 @@ enum Ecore.Audio.Format {
 last [[Sentinel value to indicate last enum field during iteration]]
 }
 
-class Ecore.Audio (Efl.Object)
+abstract Ecore.Audio (Efl.Object)
 {
[[Convenience audio class.]]
 
diff --git a/src/lib/ecore_audio/ecore_audio_in.eo 
b/src/lib/ecore_audio/ecore_audio_in.eo
index d46f99d64a..43f0d7b0e4 100644
--- a/src/lib/ecore_audio/ecore_audio_in.eo
+++ b/src/lib/ecore_audio/ecore_audio_in.eo
@@ -44,7 +44,7 @@ class Ecore.Audio.In (Ecore.Audio)
 channels: int; [[The number of channels]]
  }
   }
-  @property preloaded @pure_virtual {
+  @property preloaded {
  [[Preloaded state of the input
 
@since 1.8
@@ -82,7 +82,7 @@ class Ecore.Audio.In (Ecore.Audio)
 
@since 1.8
  ]]
- set @pure_virtual {
+ set {
  }
  get {
  }
@@ -134,7 +134,7 @@ class Ecore.Audio.In (Ecore.Audio)
 @in len: size; [[The amount of samples to read]]
  }
   }
-  seek @pure_virtual {
+  seek {
  [[Seeks within the input
 
@since 1.8
@@ -153,6 +153,9 @@ class Ecore.Audio.In (Ecore.Audio)
   Efl.Object.constructor;
   Efl.Object.destructor;
   Ecore.Audio.vio_set;
+  @empty .length {set;}
+  @empty .preloaded {set; get;}
+  @empty .seek;
}
events {
   in,looped: void; [[Called when an input has looped.]]

-- 




[EGIT] [core/efl] master 02/05: efl_net: make efl.net.server.fd abstract

2019-01-17 Thread Marcel Hollerbach
q66 pushed a commit to branch master.

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

commit 0a95767a0c95ca2851a6e6ac62d67bf0a358416c
Author: Marcel Hollerbach 
Date:   Thu Jan 17 17:14:38 2019 +0100

efl_net: make efl.net.server.fd abstract

Summary:
noone instanciantes it directly, further more it has pure_virtual
functions, which are making sense. So making this class abstract does
fix the issue of pure_virtual functions in class.

ref T7632

Depends on D7669

Reviewers: cedric, segfaultxavi, zmike, q66

Reviewed By: segfaultxavi

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7632

Differential Revision: https://phab.enlightenment.org/D7670
---
 src/lib/ecore_con/efl_net_server_fd.eo | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/ecore_con/efl_net_server_fd.eo 
b/src/lib/ecore_con/efl_net_server_fd.eo
index 97f192ef91..bbb25a58bf 100644
--- a/src/lib/ecore_con/efl_net_server_fd.eo
+++ b/src/lib/ecore_con/efl_net_server_fd.eo
@@ -1,4 +1,4 @@
-class Efl.Net.Server_Fd (Efl.Loop_Fd, Efl.Net.Server) {
+abstract Efl.Net.Server_Fd (Efl.Loop_Fd, Efl.Net.Server) {
 [[A generic server based on file descriptors.
 
   @since 1.19

-- 




[EGIT] [core/efl] master 04/05: elementary: make elm.web abstract

2019-01-17 Thread Marcel Hollerbach
q66 pushed a commit to branch master.

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

commit 203b841eb9e65b860b9fddc9a577b99e6083bac1
Author: Marcel Hollerbach 
Date:   Thu Jan 17 17:15:19 2019 +0100

elementary: make elm.web abstract

Summary:
elm.web is never used directly only as abstract class that gets
implemented in elm.web.none. Thus making it abstract does make sense.
Depends on D7671

Reviewers: cedric, segfaultxavi, zmike, q66

Reviewed By: segfaultxavi

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7672
---
 src/lib/elementary/elm_web.eo | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/elementary/elm_web.eo b/src/lib/elementary/elm_web.eo
index 7f66f0c43c..f1a09244cc 100644
--- a/src/lib/elementary/elm_web.eo
+++ b/src/lib/elementary/elm_web.eo
@@ -5,7 +5,7 @@ type Elm_Web_Dialog_Confirm: __undefined_type; [[Elementary web 
dialog confirm t
 type Elm_Web_Dialog_Prompt: __undefined_type; [[Elementary web dialog prompt 
type]]
 type Elm_Web_Dialog_Alert: __undefined_type; [[Elementary web dialog alert 
type]]
 
-class Elm.Web (Efl.Ui.Widget, Efl.Ui.Legacy, Efl.Ui.Zoom)
+abstract Elm.Web (Efl.Ui.Widget, Efl.Ui.Legacy, Efl.Ui.Zoom)
 {
[[Elementary web view class]]
legacy_prefix: elm_web;

-- 




[EGIT] [core/efl] master 01/01: Remove letftover include

2019-01-17 Thread Xavi Artigas
xartigas pushed a commit to branch master.

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

commit 0b7b80919d37d84c84cc6186beee8e00581d9264
Author: Xavi Artigas 
Date:   Thu Jan 17 17:13:40 2019 +0100

Remove letftover include

This was breaking build...
---
 src/tests/eolian_cxx/eolian_cxx_test_address_of.cc | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/tests/eolian_cxx/eolian_cxx_test_address_of.cc 
b/src/tests/eolian_cxx/eolian_cxx_test_address_of.cc
index 03e10b330d..45697f8e25 100644
--- a/src/tests/eolian_cxx/eolian_cxx_test_address_of.cc
+++ b/src/tests/eolian_cxx/eolian_cxx_test_address_of.cc
@@ -7,7 +7,6 @@
 #include 
 #include 
 #include 
-#include 
 
 #include "eolian_cxx_suite.h"
 

-- 




[EGIT] [core/efl] master 01/02: ecore-evas-drm: Minor formatting fix

2019-01-17 Thread Christopher Michael
devilhorns pushed a commit to branch master.

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

commit 31475f80a082c2ea3592accfec793c588cecc208
Author: Christopher Michael 
Date:   Thu Jan 17 08:51:23 2019 -0500

ecore-evas-drm: Minor formatting fix

NB: No functional changes
---
 src/modules/ecore_evas/engines/drm/ecore_evas_drm.c | 6 --
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c 
b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c
index 1d70ba0a98..5668b416d1 100644
--- a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c
+++ b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c
@@ -1011,8 +1011,10 @@ _ecore_evas_new_internal(const char *device, int x, int 
y, int w, int h, Eina_Bo
int method, mw, mh;
void *tinfo;
 
-   if (gl) method = evas_render_method_lookup("gl_drm");
-   else method = evas_render_method_lookup("drm");
+   if (gl)
+ method = evas_render_method_lookup("gl_drm");
+   else
+ method = evas_render_method_lookup("drm");
 
if (!method) return NULL;
 

-- 




[EGIT] [core/efl] master 02/02: ecore-drm2: Fix formatting

2019-01-17 Thread Christopher Michael
devilhorns pushed a commit to branch master.

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

commit c6ebe8241e274103d89bb2d41e54829bef7ab0c3
Author: Christopher Michael 
Date:   Thu Jan 17 10:34:33 2019 -0500

ecore-drm2: Fix formatting

NB: No functional changes
---
 src/lib/ecore_drm2/ecore_drm2_outputs.c | 46 -
 1 file changed, 23 insertions(+), 23 deletions(-)

diff --git a/src/lib/ecore_drm2/ecore_drm2_outputs.c 
b/src/lib/ecore_drm2/ecore_drm2_outputs.c
index 928a16c32d..8cebea513b 100644
--- a/src/lib/ecore_drm2/ecore_drm2_outputs.c
+++ b/src/lib/ecore_drm2/ecore_drm2_outputs.c
@@ -1609,29 +1609,29 @@ _blanktime_fallback(Ecore_Drm2_Output *output, int 
sequence, long *sec, long *us
 EAPI Eina_Bool
 ecore_drm2_output_blanktime_get(Ecore_Drm2_Output *output, int sequence, long 
*sec, long *usec)
 {
-  drmVBlank v;
-  int ret;
-  Eina_Bool success;
-
-  EINA_SAFETY_ON_NULL_RETURN_VAL(output, EINA_FALSE);
-  EINA_SAFETY_ON_NULL_RETURN_VAL(sec, EINA_FALSE);
-  EINA_SAFETY_ON_NULL_RETURN_VAL(usec, EINA_FALSE);
-
-  memset(, 0, sizeof(v));
-  v.request.type = DRM_VBLANK_RELATIVE;
-  v.request.sequence = sequence;
-  ret = sym_drmWaitVBlank(output->fd, );
-  success = (ret == 0) && (v.reply.tval_sec > 0 || v.reply.tval_usec > 0);
-  if (!success)
-{
-   ret = _blanktime_fallback(output, sequence, sec, usec);
-   if (ret) return EINA_FALSE;
-   return EINA_TRUE;
-}
-
-  *sec = v.reply.tval_sec;
-  *usec = v.reply.tval_usec;
-  return EINA_TRUE;
+   drmVBlank v;
+   int ret;
+   Eina_Bool success;
+
+   EINA_SAFETY_ON_NULL_RETURN_VAL(output, EINA_FALSE);
+   EINA_SAFETY_ON_NULL_RETURN_VAL(sec, EINA_FALSE);
+   EINA_SAFETY_ON_NULL_RETURN_VAL(usec, EINA_FALSE);
+
+   memset(, 0, sizeof(v));
+   v.request.type = DRM_VBLANK_RELATIVE;
+   v.request.sequence = sequence;
+   ret = sym_drmWaitVBlank(output->fd, );
+   success = (ret == 0) && (v.reply.tval_sec > 0 || v.reply.tval_usec > 0);
+   if (!success)
+ {
+ret = _blanktime_fallback(output, sequence, sec, usec);
+if (ret) return EINA_FALSE;
+return EINA_TRUE;
+ }
+
+   *sec = v.reply.tval_sec;
+   *usec = v.reply.tval_usec;
+   return EINA_TRUE;
 }
 
 EAPI void

-- 




[EGIT] [core/efl] master 01/02: ecore-drm2: Pass output as data to drmModePageFlip and drmModeAtomicCommit

2019-01-17 Thread Christopher Michael
derekf pushed a commit to branch master.

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

commit 8079d6d38a455dc548482353ff739cac82fdfc23
Author: Christopher Michael 
Date:   Wed Jan 2 11:05:07 2019 -0500

ecore-drm2: Pass output as data to drmModePageFlip and drmModeAtomicCommit

In order to support per-output ticking, the drmModePageFlip and
drmModeAtomicCommit functions need to pass the actual Output as data
to the pageflip callback so that the pageflip callback function can
pass the proper rectangle to ecore_evas_animator_tick

Differential Revision: https://phab.enlightenment.org/D7678
---
 src/lib/ecore_drm2/ecore_drm2_fb.c  |  6 +++---
 src/lib/ecore_drm2/ecore_drm2_outputs.c |  4 ++--
 src/modules/ecore_evas/engines/drm/ecore_evas_drm.c | 13 +
 3 files changed, 14 insertions(+), 9 deletions(-)

diff --git a/src/lib/ecore_drm2/ecore_drm2_fb.c 
b/src/lib/ecore_drm2/ecore_drm2_fb.c
index 4e26fd765a..33c0e27570 100644
--- a/src/lib/ecore_drm2/ecore_drm2_fb.c
+++ b/src/lib/ecore_drm2/ecore_drm2_fb.c
@@ -411,7 +411,7 @@ _fb_atomic_flip_test(Ecore_Drm2_Output *output)
  }
 
ret =
- sym_drmModeAtomicCommit(output->fd, req, flags, NULL);
+ sym_drmModeAtomicCommit(output->fd, req, flags, output);
if (ret < 0) goto err;
 
/* clear any previous request */
@@ -447,7 +447,7 @@ _fb_atomic_flip(Ecore_Drm2_Output *output)
 
res =
  sym_drmModeAtomicCommit(output->fd, output->prep.atomic_req, flags,
- output->user_data);
+ output);
if (res < 0)
  {
 ERR("Failed Atomic Commit: %m");
@@ -499,7 +499,7 @@ _fb_flip(Ecore_Drm2_Output *output)
 static Eina_Bool bugged_about_bug = EINA_FALSE;
 repeat = EINA_FALSE;
 ret = sym_drmModePageFlip(fb->fd, output->crtc_id, fb->id,
-  DRM_MODE_PAGE_FLIP_EVENT, output->user_data);
+  DRM_MODE_PAGE_FLIP_EVENT, output);
 /* Some drivers (RPI - looking at you) are broken and produce
  * flip events before they are ready for another flip, so be
  * a little robust in the face of badness and try a few times
diff --git a/src/lib/ecore_drm2/ecore_drm2_outputs.c 
b/src/lib/ecore_drm2/ecore_drm2_outputs.c
index e39f26a6da..928a16c32d 100644
--- a/src/lib/ecore_drm2/ecore_drm2_outputs.c
+++ b/src/lib/ecore_drm2/ecore_drm2_outputs.c
@@ -1291,7 +1291,7 @@ _output_mode_atomic_set(Ecore_Drm2_Output *output, 
Ecore_Drm2_Output_Mode *mode)
  }
 
ret = sym_drmModeAtomicCommit(output->fd, req, 
DRM_MODE_ATOMIC_ALLOW_MODESET,
- output->user_data);
+ output);
if (ret < 0)
  {
 ERR("Failed to commit atomic Mode: %m");
@@ -1538,7 +1538,7 @@ ecore_drm2_output_rotation_set(Ecore_Drm2_Output *output, 
int rotation)
  if (res < 0) goto err;
 
  res = sym_drmModeAtomicCommit(output->fd, req, flags,
-   output->user_data);
+   output);
  if (res < 0)
goto err;
  else
diff --git a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c 
b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c
index 794cf841fd..4e25542c39 100644
--- a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c
+++ b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c
@@ -718,27 +718,32 @@ static void
 _cb_pageflip(int fd EINA_UNUSED, unsigned int frame EINA_UNUSED, unsigned int 
sec, unsigned int usec, void *data)
 {
Ecore_Evas *ee;
+   Ecore_Drm2_Output *output;
Ecore_Evas_Engine_Drm_Data *edata;
int ret;
 
-   ee = data;
+   output = data;
+
+   ee = ecore_drm2_output_user_data_get(output);
+   if (!ee) return;
+
edata = ee->engine.data;
 
-   ret = ecore_drm2_fb_flip_complete(edata->output);
+   ret = ecore_drm2_fb_flip_complete(output);
 
if (edata->ticking)
  {
 int x, y, w, h;
 double t = (double)sec + ((double)usec / 100);
 
-ecore_drm2_output_info_get(edata->output, , , , , NULL);
+ecore_drm2_output_info_get(output, , , , , NULL);
 
 if (!edata->once) t = ecore_time_get();
 ecore_evas_animator_tick(ee, &(Eina_Rectangle){x, y, w, h},
  t - edata->offset);
  }
else if (ret)
- ecore_drm2_fb_flip(NULL, edata->output);
+ ecore_drm2_fb_flip(NULL, output);
 }
 
 static void

-- 




[EGIT] [core/efl] master 02/02: ecore-evas-drm: Refactor _ecore_evas_new_internal

2019-01-17 Thread Christopher Michael
derekf pushed a commit to branch master.

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

commit 374373a370937d34a4587cc246750cfae20ad8ef
Author: Christopher Michael 
Date:   Thu Jan 17 09:26:17 2019 -0500

ecore-evas-drm: Refactor _ecore_evas_new_internal

This patch does a small refactor of _ecore_evas_new_internal function
to separate canvas setup for gl & software. This was done so that when
we create a canvas on a per-output bases (multi-output support), the
code inside _ecore_evas_new_internal will be cleaner and easier to
follow.

NB: No real functional changes here until muti-output lands

Differential Revision: https://phab.enlightenment.org/D7679
---
 .../ecore_evas/engines/drm/ecore_evas_drm.c| 96 +-
 1 file changed, 58 insertions(+), 38 deletions(-)

diff --git a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c 
b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c
index 4e25542c39..1d70ba0a98 100644
--- a/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c
+++ b/src/modules/ecore_evas/engines/drm/ecore_evas_drm.c
@@ -957,6 +957,51 @@ static Ecore_Evas_Engine_Func _ecore_evas_drm_engine_func =
_drm_last_tick_get,
 };
 
+#ifdef BUILD_ECORE_EVAS_GL_DRM
+static void *
+_drm_gl_canvas_setup(Ecore_Evas *ee, Ecore_Evas_Engine_Drm_Data *edata)
+{
+   Evas_Engine_Info_GL_Drm *einfo;
+   char *num;
+
+   einfo = (Evas_Engine_Info_GL_Drm *)evas_engine_info_get(ee->evas);
+   if (!einfo) return NULL;
+
+   einfo->info.vsync = EINA_TRUE;
+
+   num = getenv("EVAS_DRM_VSYNC");
+   if ((num) && (!atoi(num)))
+ einfo->info.vsync = EINA_FALSE;
+
+   einfo->info.dev = edata->dev;
+   einfo->info.bpp = edata->bpp;
+   einfo->info.depth = edata->depth;
+   einfo->info.format = edata->format;
+   einfo->info.rotation = ee->rotation;
+   einfo->info.output = edata->output;
+
+   return einfo;
+}
+#endif
+
+static void *
+_drm_canvas_setup(Ecore_Evas *ee, Ecore_Evas_Engine_Drm_Data *edata)
+{
+   Evas_Engine_Info_Drm *einfo;
+
+   einfo = (Evas_Engine_Info_Drm *)evas_engine_info_get(ee->evas);
+   if (!einfo) return NULL;
+
+   einfo->info.dev = edata->dev;
+   einfo->info.bpp = edata->bpp;
+   einfo->info.depth = edata->depth;
+   einfo->info.format = edata->format;
+   einfo->info.rotation = ee->rotation;
+   einfo->info.output = edata->output;
+
+   return einfo;
+}
+
 static Ecore_Evas *
 _ecore_evas_new_internal(const char *device, int x, int y, int w, int h, 
Eina_Bool gl)
 {
@@ -1044,48 +1089,23 @@ _ecore_evas_new_internal(const char *device, int x, int 
y, int w, int h, Eina_Bo
  evas_event_callback_add(ee->evas, EVAS_CALLBACK_RENDER_POST,
  _drm_render_updates, ee);
 
-   tinfo = evas_engine_info_get(ee->evas);
 #ifdef BUILD_ECORE_EVAS_GL_DRM
-   if (tinfo && gl)
- {
-char *num;
-Evas_Engine_Info_GL_Drm *einfo = tinfo;
-
-einfo->info.vsync = EINA_TRUE;
-
-num = getenv("EVAS_DRM_VSYNC");
-if ((num) && (!atoi(num)))
-  einfo->info.vsync = EINA_FALSE;
-
-einfo->info.dev = edata->dev;
-einfo->info.bpp = edata->bpp;
-einfo->info.depth = edata->depth;
-einfo->info.format = edata->format;
-einfo->info.rotation = ee->rotation;
-einfo->info.output = edata->output;
-if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
-  {
- ERR("evas_engine_info_set() for engine '%s' failed", ee->driver);
- goto eng_err;
-  }
- }
+   if (gl)
+ tinfo = _drm_gl_canvas_setup(ee, edata);
else
 #endif
-   if (tinfo)
+ tinfo = _drm_canvas_setup(ee, edata);
+
+   if (!tinfo)
  {
-Evas_Engine_Info_Drm *einfo = tinfo;
-
-einfo->info.dev = edata->dev;
-einfo->info.bpp = edata->bpp;
-einfo->info.depth = edata->depth;
-einfo->info.format = edata->format;
-einfo->info.rotation = ee->rotation;
-einfo->info.output = edata->output;
-if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo))
-  {
- ERR("evas_engine_info_set() for engine '%s' failed", ee->driver);
- goto eng_err;
-  }
+ERR("evas_engine_info_get() for engine '%s' failed", ee->driver);
+goto eng_err;
+ }
+
+   if (!evas_engine_info_set(ee->evas, (Evas_Engine_Info *)tinfo))
+ {
+ERR("evas_engine_info_set() for engine '%s' failed", ee->driver);
+goto eng_err;
  }
 
ee->prop.window = ecore_drm2_output_crtc_get(edata->output);

-- 




[EGIT] [core/efl] master 01/01: eolian: enforce not using regular classes in extension list

2019-01-17 Thread Daniel Kolesa
q66 pushed a commit to branch master.

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

commit 1b7129cea0d90f76a21bd6b4e40d1528141e087f
Author: Daniel Kolesa 
Date:   Thu Jan 17 16:17:42 2019 +0100

eolian: enforce not using regular classes in extension list
---
 src/lib/eolian/database_validate.c | 5 +
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/src/lib/eolian/database_validate.c 
b/src/lib/eolian/database_validate.c
index 8b0f538013..69e71aeb8f 100644
--- a/src/lib/eolian/database_validate.c
+++ b/src/lib/eolian/database_validate.c
@@ -12,7 +12,6 @@ typedef struct _Validate_State
 {
Eina_Bool warned;
Eina_Bool event_redef;
-   Eina_Bool ext_regular;
Eina_Bool unimplemented;
Eina_Bool pure_virtual;
 } Validate_State;
@@ -1146,8 +1145,7 @@ _validate_class(Validate_State *vals, Eolian_Class *cl,
 snprintf(buf, sizeof(buf), "regular classes ('%s') cannot 
appear in extensions list of '%s'",
  icl->base.name, cl->base.name);
 _obj_error(>base, buf);
-if (vals->ext_regular)
-  vals->warned = EINA_TRUE;
+vals->warned = EINA_TRUE;
 break;
  }
default:
@@ -1264,7 +1262,6 @@ database_validate(const Eolian_Unit *src)
Validate_State vals = {
   EINA_FALSE,
   !!getenv("EOLIAN_EVENT_REDEF_WARN"),
-  !!getenv("EOLIAN_CLASS_REGULAR_AS_EXT_WARN"),
   !!getenv("EOLIAN_CLASS_UNIMPLEMENTED_WARN"),
   !!getenv("EOLIAN_PURE_VIRTUAL_WARN")
};

-- 




[EGIT] [core/efl] master 01/01: eolian_cxx: make address_of test not use multiclass inheritance

2019-01-17 Thread Daniel Kolesa
q66 pushed a commit to branch master.

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

commit 1172bce7cc369a7a23059c47059be78406ca1510
Author: Daniel Kolesa 
Date:   Thu Jan 17 16:07:11 2019 +0100

eolian_cxx: make address_of test not use multiclass inheritance
---
 src/Makefile_Eolian_Cxx.am |  6 +-
 src/tests/eolian_cxx/c.c   |  1 +
 src/tests/eolian_cxx/c.eo  |  2 +-
 src/tests/eolian_cxx/d.c   | 25 --
 src/tests/eolian_cxx/d.eo  |  7 --
 src/tests/eolian_cxx/eolian_cxx_test_address_of.cc | 10 -
 src/tests/eolian_cxx/meson.build   |  2 --
 7 files changed, 7 insertions(+), 46 deletions(-)

diff --git a/src/Makefile_Eolian_Cxx.am b/src/Makefile_Eolian_Cxx.am
index ec1ce93f45..f17c00d7bf 100644
--- a/src/Makefile_Eolian_Cxx.am
+++ b/src/Makefile_Eolian_Cxx.am
@@ -85,7 +85,6 @@ tests/eolian_cxx/eolian_cxx_test_parse.cc \
 tests/eolian_cxx/a.c \
 tests/eolian_cxx/b.c \
 tests/eolian_cxx/c.c \
-tests/eolian_cxx/d.c \
 tests/eolian_cxx/eolian_cxx_test_binding.cc \
 tests/eolian_cxx/eolian_cxx_test_address_of.cc \
 tests/eolian_cxx/eolian_cxx_test_wrapper.cc \
@@ -111,7 +110,7 @@ endif
 
tests/eolian_cxx/$(TESTS_EOLIAN_CXX_OBJNAME)eolian_cxx_suite-name1_name2_type_generation.$(OBJEXT):
 tests/eolian_cxx/name1_name2_type_generation.eo.h 
tests/eolian_cxx/name1_name2_type_generation.eo.c
 
tests/eolian_cxx/$(TESTS_EOLIAN_CXX_OBJNAME)eolian_cxx_suite-eolian_cxx_test_inheritance.$(OBJEXT):
 tests/eolian_cxx/simple.eo.hh tests/eolian_cxx/simple.eo.h
 
tests/eolian_cxx/$(TESTS_EOLIAN_CXX_OBJNAME)eolian_cxx_suite-eolian_cxx_test_binding.$(OBJEXT):
 tests/eolian_cxx/generic.eo.hh tests/eolian_cxx/generic.eo.h 
tests/eolian_cxx/generic.eo.c tests/eolian_cxx/generic_interface.eo.hh 
tests/eolian_cxx/generic_interface.eo.h tests/eolian_cxx/generic_interface.eo.c 
tests/eolian_cxx/name1_name2_type_generation.eo.hh 
tests/eolian_cxx/name1_name2_type_generation.eo.h 
tests/eolian_cxx/name1_name2_type_generation.eo.c
-tests/eolian_cxx/$(TESTS_EOLIAN_CXX_OBJNAME)eolian_cxx_suite-eolian_cxx_test_address_of.$(OBJEXT):
 tests/eolian_cxx/a.eo.hh tests/eolian_cxx/b.eo.hh tests/eolian_cxx/c.eo.hh 
tests/eolian_cxx/d.eo.hh tests/eolian_cxx/a.eo.h tests/eolian_cxx/b.eo.h 
tests/eolian_cxx/c.eo.h tests/eolian_cxx/d.eo.h
+tests/eolian_cxx/$(TESTS_EOLIAN_CXX_OBJNAME)eolian_cxx_suite-eolian_cxx_test_address_of.$(OBJEXT):
 tests/eolian_cxx/a.eo.hh tests/eolian_cxx/b.eo.hh tests/eolian_cxx/c.eo.hh 
tests/eolian_cxx/a.eo.h tests/eolian_cxx/b.eo.h tests/eolian_cxx/c.eo.h
 
tests/eolian_cxx/$(TESTS_EOLIAN_CXX_OBJNAME)eolian_cxx_suite-eolian_cxx_test_cyclic.$(OBJEXT):
 tests/eolian_cxx/cyclic1.eo.hh tests/eolian_cxx/cyclic2.eo.hh 
tests/eolian_cxx/cyclic1.eo.c tests/eolian_cxx/cyclic2.eo.c 
tests/eolian_cxx/cyclic1.eo.h tests/eolian_cxx/cyclic2.eo.h
 
 
tests/eolian_cxx/$(TESTS_EOLIAN_CXX_OBJNAME)eolian_cxx_suite-eolian_cxx_test_wrapper.$(OBJEXT):
 tests/eolian_cxx/a.eo.h tests/eolian_cxx/a.eo.c tests/eolian_cxx/a.eo.hh
@@ -121,7 +120,6 @@ 
tests/eolian_cxx/$(TESTS_EOLIAN_CXX_OBJNAME)eolian_cxx_suite-generic.$(OBJEXT):
 tests/eolian_cxx/$(TESTS_EOLIAN_CXX_OBJNAME)eolian_cxx_suite-a.$(OBJEXT): 
tests/eolian_cxx/a.eo.c tests/eolian_cxx/a.eo.h
 tests/eolian_cxx/$(TESTS_EOLIAN_CXX_OBJNAME)eolian_cxx_suite-b.$(OBJEXT): 
tests/eolian_cxx/b.eo.c tests/eolian_cxx/b.eo.h
 tests/eolian_cxx/$(TESTS_EOLIAN_CXX_OBJNAME)eolian_cxx_suite-c.$(OBJEXT): 
tests/eolian_cxx/c.eo.c tests/eolian_cxx/c.eo.h
-tests/eolian_cxx/$(TESTS_EOLIAN_CXX_OBJNAME)eolian_cxx_suite-d.$(OBJEXT): 
tests/eolian_cxx/d.eo.c tests/eolian_cxx/d.eo.h
 
 
tests/eolian_cxx/$(TESTS_EOLIAN_CXX_OBJNAME)eolian_cxx_suite-name_name.$(OBJEXT):
 tests/eolian_cxx/name_name.eo.c tests/eolian_cxx/name_name.eo.h 
tests/eolian_cxx/ns_name.eo.c tests/eolian_cxx/ns_name.eo.h 
tests/eolian_cxx/ns_name_other.eo.c tests/eolian_cxx/ns_name_other.eo.h
 
tests/eolian_cxx/$(TESTS_EOLIAN_CXX_OBJNAME)eolian_cxx_suite-name_name_cxx.$(OBJEXT):
 tests/eolian_cxx/name_name.eo.h tests/eolian_cxx/name_name.eo.hh 
tests/eolian_cxx/ns_name.eo.h tests/eolian_cxx/ns_name.eo.hh 
tests/eolian_cxx/ns_name_other.eo.h tests/eolian_cxx/ns_name_other.eo.hh
@@ -145,7 +143,6 @@ tests/eolian_cxx/generic_interface.eo.impl.hh \
 tests/eolian_cxx/a.eo.hh tests/eolian_cxx/a.eo.impl.hh tests/eolian_cxx/a.eo.c 
tests/eolian_cxx/a.eo.h \
 tests/eolian_cxx/b.eo.hh tests/eolian_cxx/b.eo.impl.hh tests/eolian_cxx/b.eo.c 
tests/eolian_cxx/b.eo.h \
 tests/eolian_cxx/c.eo.hh tests/eolian_cxx/c.eo.impl.hh tests/eolian_cxx/c.eo.c 
tests/eolian_cxx/c.eo.h \
-tests/eolian_cxx/d.eo.hh tests/eolian_cxx/d.eo.impl.hh tests/eolian_cxx/d.eo.c 
tests/eolian_cxx/d.eo.h \
 tests/eolian_cxx/name_name.eo.hh \
 tests/eolian_cxx/name_name.eo.c \
 tests/eolian_cxx/name_name.eo.h \
@@ -207,7 +204,6 @@ tests/eolian_cxx/docs.eo \
 

[EGIT] [core/efl] master 01/01: elementary: remove combobox from being generated in autotools

2019-01-17 Thread Daniel Kolesa
q66 pushed a commit to branch master.

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

commit 212c99f95718c09069ba03f8d4679afd6eab2674
Author: Daniel Kolesa 
Date:   Thu Jan 17 15:59:20 2019 +0100

elementary: remove combobox from being generated in autotools
---
 src/Makefile_Elementary.am | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/Makefile_Elementary.am b/src/Makefile_Elementary.am
index 48e9e7b897..872cd9b671 100644
--- a/src/Makefile_Elementary.am
+++ b/src/Makefile_Elementary.am
@@ -201,7 +201,6 @@ elm_legacy_eolian_files = \
lib/elementary/elm_calendar_item.eo \
lib/elementary/elm_clock.eo \
lib/elementary/elm_colorselector.eo \
-   lib/elementary/elm_combobox.eo \
lib/elementary/elm_conformant.eo \
lib/elementary/elm_ctxpopup.eo \
lib/elementary/elm_dayselector.eo \

-- 




[EGIT] [core/efl] master 01/01: elementary: remove leftover header include

2019-01-17 Thread Daniel Kolesa
q66 pushed a commit to branch master.

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

commit c4f05a03063a72455dc7d423665476a8b6f236b9
Author: Daniel Kolesa 
Date:   Thu Jan 17 15:56:33 2019 +0100

elementary: remove leftover header include
---
 src/lib/elementary/elc_combobox_legacy.h | 2 --
 1 file changed, 2 deletions(-)

diff --git a/src/lib/elementary/elc_combobox_legacy.h 
b/src/lib/elementary/elc_combobox_legacy.h
index 36fd5a5e13..0ad5cdf1ae 100644
--- a/src/lib/elementary/elc_combobox_legacy.h
+++ b/src/lib/elementary/elc_combobox_legacy.h
@@ -48,5 +48,3 @@ EAPI void elm_combobox_hover_begin(Elm_Combobox *obj);
  * @ingroup Elm_Combobox_Group
  */
 EAPI void elm_combobox_hover_end(Elm_Combobox *obj);
-
-#include "elm_combobox.eo.legacy.h"

-- 




[EGIT] [core/efl] master 01/01: elementary: internalize elm_combobox, expose legacy only

2019-01-17 Thread Daniel Kolesa
q66 pushed a commit to branch master.

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

commit 0976e9adf35046df03fcb63824d2aaade4b1ae95
Author: Daniel Kolesa 
Date:   Thu Jan 17 15:54:24 2019 +0100

elementary: internalize elm_combobox, expose legacy only

This is bad eo API, and won't remain like that, so completely
remove it from being managed by Eolian.
---
 src/bindings/mono/meson.build|  1 -
 src/lib/elementary/efl_ui_widget.c   |  2 +-
 src/lib/elementary/elc_combobox.c| 78 ++--
 src/lib/elementary/elc_combobox_legacy.h | 41 +
 src/lib/elementary/elm_combobox.eo   | 60 
 src/lib/elementary/elm_widget_combobox.h |  4 ++
 src/lib/elementary/meson.build   |  1 -
 7 files changed, 119 insertions(+), 68 deletions(-)

diff --git a/src/bindings/mono/meson.build b/src/bindings/mono/meson.build
index e5f2cf5869..b9d6879998 100644
--- a/src/bindings/mono/meson.build
+++ b/src/bindings/mono/meson.build
@@ -52,7 +52,6 @@ blacklisted_files = [
   'efl_object_override.eo',
   'elm_web.eo',
   'elm_map.eo',
-  'elm_combobox.eo',
   'elm_list.eo',
   'elm_genlist.eo',
   'elm_view_list.eo',
diff --git a/src/lib/elementary/efl_ui_widget.c 
b/src/lib/elementary/efl_ui_widget.c
index eec2bde180..415882af0d 100644
--- a/src/lib/elementary/efl_ui_widget.c
+++ b/src/lib/elementary/efl_ui_widget.c
@@ -19,7 +19,7 @@
 #include "elm_widget_container.h"
 #include "elm_interface_scrollable.h"
 #include "elm_part_helper.h"
-#include "elm_combobox.eo.h"
+#include "elm_widget_combobox.h"
 
 /* FIXME: remove this when we don't rely on evas event structs anymore */
 #define EFL_INTERNAL_UNSTABLE
diff --git a/src/lib/elementary/elc_combobox.c 
b/src/lib/elementary/elc_combobox.c
index 5256764b0f..cd98f3c8b4 100644
--- a/src/lib/elementary/elc_combobox.c
+++ b/src/lib/elementary/elc_combobox.c
@@ -11,10 +11,29 @@
 #include "elm_priv.h"
 #include "elm_widget_combobox.h"
 #include "elm_entry.eo.h"
-#include "elm_combobox.eo.h"
 #include "elm_genlist.eo.h"
 #include "elm_hover.eo.h"
 
+EOAPI void elm_obj_combobox_hover_begin(Eo *obj);
+EOAPI void elm_obj_combobox_hover_end(Eo *obj);
+
+static const Efl_Event_Description _ELM_COMBOBOX_EVENT_DISMISSED =
+   EFL_EVENT_DESCRIPTION("dismissed");
+static const Efl_Event_Description _ELM_COMBOBOX_EVENT_EXPANDED =
+   EFL_EVENT_DESCRIPTION("expanded");
+static const Efl_Event_Description _ELM_COMBOBOX_EVENT_ITEM_SELECTED =
+   EFL_EVENT_DESCRIPTION("item,selected");
+static const Efl_Event_Description _ELM_COMBOBOX_EVENT_ITEM_PRESSED =
+   EFL_EVENT_DESCRIPTION("item,pressed");
+static const Efl_Event_Description _ELM_COMBOBOX_EVENT_FILTER_DONE =
+   EFL_EVENT_DESCRIPTION("filter,done");
+
+#define ELM_COMBOBOX_EVENT_DISMISSED (&(_ELM_COMBOBOX_EVENT_DISMISSED))
+#define ELM_COMBOBOX_EVENT_EXPANDED (&(_ELM_COMBOBOX_EVENT_EXPANDED))
+#define ELM_COMBOBOX_EVENT_ITEM_SELECTED (&(_ELM_COMBOBOX_EVENT_ITEM_SELECTED))
+#define ELM_COMBOBOX_EVENT_ITEM_PRESSED (&(_ELM_COMBOBOX_EVENT_ITEM_PRESSED))
+#define ELM_COMBOBOX_EVENT_FILTER_DONE (&(_ELM_COMBOBOX_EVENT_FILTER_DONE))
+
 #define MY_CLASS ELM_COMBOBOX_CLASS
 
 #define MY_CLASS_NAME "Elm_Combobox"
@@ -574,9 +593,58 @@ _elm_combobox_efl_gfx_entity_size_set(Eo *obj, 
Elm_Combobox_Data *pd, Eina_Size2
 
 ELM_WIDGET_KEY_DOWN_DEFAULT_IMPLEMENT(elm_combobox, Elm_Combobox_Data)
 
-/* Internal EO APIs and hidden overrides */
+EOAPI EFL_FUNC_BODY_CONST(elm_obj_combobox_expanded_get, Eina_Bool, 0);
+EOAPI EFL_VOID_FUNC_BODY(elm_obj_combobox_hover_begin);
+EOAPI EFL_VOID_FUNC_BODY(elm_obj_combobox_hover_end);
 
-#define ELM_COMBOBOX_EXTRA_OPS \
-   EFL_CANVAS_GROUP_ADD_DEL_OPS(elm_combobox)
+static Eina_Bool
+_elm_combobox_class_initializer(Efl_Class *klass)
+{
+   EFL_OPS_DEFINE(ops,
+  EFL_OBJECT_OP_FUNC(elm_obj_combobox_expanded_get, 
_elm_combobox_expanded_get),
+  EFL_OBJECT_OP_FUNC(elm_obj_combobox_hover_begin, 
_elm_combobox_hover_begin),
+  EFL_OBJECT_OP_FUNC(elm_obj_combobox_hover_end, _elm_combobox_hover_end),
+  EFL_OBJECT_OP_FUNC(efl_constructor, 
_elm_combobox_efl_object_constructor),
+  EFL_OBJECT_OP_FUNC(efl_gfx_entity_visible_set, 
_elm_combobox_efl_gfx_entity_visible_set),
+  EFL_OBJECT_OP_FUNC(efl_gfx_entity_size_set, 
_elm_combobox_efl_gfx_entity_size_set),
+  EFL_OBJECT_OP_FUNC(efl_ui_widget_theme_apply, 
_elm_combobox_efl_ui_widget_theme_apply),
+  EFL_OBJECT_OP_FUNC(efl_ui_l10n_translation_update, 
_elm_combobox_efl_ui_l10n_translation_update),
+  EFL_OBJECT_OP_FUNC(efl_ui_widget_event, 
_elm_combobox_efl_ui_widget_widget_event),
+  EFL_OBJECT_OP_FUNC(efl_ui_autorepeat_supported_get, 
_elm_combobox_efl_ui_autorepeat_autorepeat_supported_get),
+  EFL_OBJECT_OP_FUNC(elm_obj_genlist_filter_set, 
_elm_combobox_elm_genlist_filter_set),
+  EFL_OBJECT_OP_FUNC(efl_access_widget_action_elm_actions_get, 

[EGIT] [core/efl] master 01/01: eolian: always enable regular-class-in-extensions-list checking

2019-01-17 Thread Daniel Kolesa
q66 pushed a commit to branch master.

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

commit 24df96b1b6904e51a72c7627e73e74cd19d8a28f
Author: Daniel Kolesa 
Date:   Thu Jan 17 15:30:37 2019 +0100

eolian: always enable regular-class-in-extensions-list checking

For now it just warns and doesn't error. It will become an error
once all occurences are fixed.
---
 src/lib/eolian/database_validate.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/lib/eolian/database_validate.c 
b/src/lib/eolian/database_validate.c
index c89ca232b8..8b0f538013 100644
--- a/src/lib/eolian/database_validate.c
+++ b/src/lib/eolian/database_validate.c
@@ -1136,7 +1136,7 @@ _validate_class(Validate_State *vals, Eolian_Class *cl,
required_classes = eina_list_append(required_classes, 
required_class);
}
   }
-if (!valid && vals->ext_regular) switch (icl->type)
+if (!valid) switch (icl->type)
   {
case EOLIAN_CLASS_REGULAR:
case EOLIAN_CLASS_ABSTRACT:
@@ -1146,7 +1146,8 @@ _validate_class(Validate_State *vals, Eolian_Class *cl,
 snprintf(buf, sizeof(buf), "regular classes ('%s') cannot 
appear in extensions list of '%s'",
  icl->base.name, cl->base.name);
 _obj_error(>base, buf);
-vals->warned = EINA_TRUE;
+if (vals->ext_regular)
+  vals->warned = EINA_TRUE;
 break;
  }
default:

-- 




[EGIT] [core/efl] master 02/03: efl-mono: Fix lots of warnings in tests

2019-01-17 Thread Felipe Magno de Almeida
bu5hm4n pushed a commit to branch master.

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

commit fc48e19b564c7b056e950b2943e0f7f4045696a6
Author: Felipe Magno de Almeida 
Date:   Thu Jan 17 11:32:21 2019 +

efl-mono: Fix lots of warnings in tests

Reviewed-by: Marcel Hollerbach 
Reviewed-by: Xavi Artigas 
Differential Revision: https://phab.enlightenment.org/D7675
---
 src/tests/efl_mono/libefl_mono_native_test.c | 12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/tests/efl_mono/libefl_mono_native_test.c 
b/src/tests/efl_mono/libefl_mono_native_test.c
index 9e58ab3dac..4c46e1e8dc 100644
--- a/src/tests/efl_mono/libefl_mono_native_test.c
+++ b/src/tests/efl_mono/libefl_mono_native_test.c
@@ -3861,7 +3861,7 @@ Eina_Future* _dummy_test_object_get_future(EINA_UNUSED Eo 
*obj, Dummy_Test_Objec
 return eina_future_new(pd->promise);
 }
 
-void _dummy_test_object_fulfill_promise(Eo *obj, Dummy_Test_Object_Data *pd, 
int data)
+void _dummy_test_object_fulfill_promise(Eo *obj EINA_UNUSED, 
Dummy_Test_Object_Data *pd, int data)
 {
 if (pd->promise == NULL)
   {
@@ -3874,7 +3874,7 @@ void _dummy_test_object_fulfill_promise(Eo *obj, 
Dummy_Test_Object_Data *pd, int
 eina_promise_resolve(pd->promise, v);
 }
 
-void _dummy_test_object_reject_promise(Eo *obj, Dummy_Test_Object_Data *pd, 
Eina_Error err)
+void _dummy_test_object_reject_promise(Eo *obj EINA_UNUSED, 
Dummy_Test_Object_Data *pd, Eina_Error err)
 {
 if (pd->promise == NULL)
   {
@@ -3885,7 +3885,7 @@ void _dummy_test_object_reject_promise(Eo *obj, 
Dummy_Test_Object_Data *pd, Eina
 eina_promise_reject(pd->promise, err);
 }
 
-Eina_Accessor *_dummy_test_object_clone_accessor(Eo *obj, 
Dummy_Test_Object_Data *pd, Eina_Accessor *acc)
+Eina_Accessor *_dummy_test_object_clone_accessor(Eo *obj EINA_UNUSED, 
Dummy_Test_Object_Data *pd, Eina_Accessor *acc)
 {
if (pd->list_for_accessor)
  eina_list_free(pd->list_for_accessor);
@@ -3900,17 +3900,17 @@ Eina_Accessor *_dummy_test_object_clone_accessor(Eo 
*obj, Dummy_Test_Object_Data
return eina_list_accessor_new(pd->list_for_accessor);
 }
 
-void _dummy_test_object_dummy_test_iface_emit_test_conflicted(Eo *obj, 
Dummy_Test_Object_Data *pd)
+void _dummy_test_object_dummy_test_iface_emit_test_conflicted(Eo *obj, 
Dummy_Test_Object_Data *pd EINA_UNUSED)
 {
 efl_event_callback_legacy_call(obj, DUMMY_TEST_IFACE_EVENT_CONFLICTED, 
NULL);
 }
 
-void _dummy_test_object_dummy_test_iface_emit_nonconflicted(Eo *obj, 
Dummy_Test_Object_Data *pd)
+void _dummy_test_object_dummy_test_iface_emit_nonconflicted(Eo *obj, 
Dummy_Test_Object_Data *pd EINA_UNUSED)
 {
 efl_event_callback_legacy_call(obj, DUMMY_TEST_IFACE_EVENT_NONCONFLICTED, 
NULL);
 }
 
-void _dummy_test_object_dummy_another_iface_emit_another_conflicted(Eo *obj, 
Dummy_Test_Object_Data *pd)
+void _dummy_test_object_dummy_another_iface_emit_another_conflicted(Eo *obj, 
Dummy_Test_Object_Data *pd EINA_UNUSED)
 {
 efl_event_callback_legacy_call(obj, DUMMY_ANOTHER_IFACE_EVENT_CONFLICTED, 
NULL);
 }

-- 




[EGIT] [core/efl] master 03/03: efl_ui_focus_object: Don't pass NULL to child_focus_set

2019-01-17 Thread Christopher Michael
bu5hm4n pushed a commit to branch master.

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

commit c98288c20ebaeb3ee115f316735a4e0fffa991a4
Author: Christopher Michael 
Date:   Thu Jan 17 07:52:15 2019 -0500

efl_ui_focus_object: Don't pass NULL to child_focus_set

When starting elementary_test, efl_ui_focus_object_child_focus_set is
getting passed NULL on startup because elm_test window has no parent.
This makes it difficult to debug and fix T7030 issues. In order to fix
the issue, this patch checks for a valid parent before calling
efl_ui_focus_object_child_focus_set so that it no longer gets passed
NULL on elm_test startup and we can set breakpoints on eo.c:637
without getting interrupted at startup.

ref T7030

Reviewed-by: Marcel Hollerbach 
Differential Revision: https://phab.enlightenment.org/D7677
---
 src/lib/elementary/efl_ui_focus_object.c | 12 ++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/src/lib/elementary/efl_ui_focus_object.c 
b/src/lib/elementary/efl_ui_focus_object.c
index 89e7af2a5d..37c65a0544 100644
--- a/src/lib/elementary/efl_ui_focus_object.c
+++ b/src/lib/elementary/efl_ui_focus_object.c
@@ -16,10 +16,14 @@ typedef struct {
 EOLIAN static void
 _efl_ui_focus_object_focus_set(Eo *obj, Efl_Ui_Focus_Object_Data *pd, 
Eina_Bool focus)
 {
+   Efl_Ui_Focus_Object *parent;
+
if (pd->old_focus == focus) return;
 
pd->old_focus = focus;
-   
efl_ui_focus_object_child_focus_set(efl_ui_focus_object_focus_parent_get(obj), 
focus);
+   parent = efl_ui_focus_object_focus_parent_get(obj);
+   if (parent)
+ efl_ui_focus_object_child_focus_set(parent, focus);
efl_event_callback_call(obj, EFL_UI_FOCUS_OBJECT_EVENT_FOCUS_CHANGED , 
(void*) (uintptr_t) focus);
 }
 
@@ -44,10 +48,14 @@ _efl_ui_focus_object_prepare_logical(Eo *obj, 
Efl_Ui_Focus_Object_Data *pd)
 EOLIAN static void
 _efl_ui_focus_object_child_focus_set(Eo *obj, Efl_Ui_Focus_Object_Data *pd, 
Eina_Bool child_focus)
 {
+   Efl_Ui_Focus_Object *parent;
+
if (child_focus == pd->child_focus) return;
 
pd->child_focus = child_focus;
-   
efl_ui_focus_object_child_focus_set(efl_ui_focus_object_focus_parent_get(obj), 
pd->child_focus);
+   parent = efl_ui_focus_object_focus_parent_get(obj);
+   if (parent)
+ efl_ui_focus_object_child_focus_set(parent, pd->child_focus);
 }
 
 EOLIAN static Eina_Bool

-- 




[EGIT] [core/efl] master 01/03: eolian-cxx: Fix order of initialization

2019-01-17 Thread Felipe Magno de Almeida
bu5hm4n pushed a commit to branch master.

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

commit d57a7df3b5ad731fe0bd4f9cd07b448955380e58
Author: Felipe Magno de Almeida 
Date:   Thu Jan 17 11:31:06 2019 +

eolian-cxx: Fix order of initialization

Make order of code the same as the order of initialization. This avoids 
warnings

efl-mono: Fix lots of warnings in tests

Reviewed-by: Xavi Artigas 
Differential Revision: https://phab.enlightenment.org/D7633
---
 src/lib/eolian_cxx/grammar/klass_def.hpp | 9 +
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/lib/eolian_cxx/grammar/klass_def.hpp 
b/src/lib/eolian_cxx/grammar/klass_def.hpp
index f69fca29d3..fc9d09519a 100644
--- a/src/lib/eolian_cxx/grammar/klass_def.hpp
+++ b/src/lib/eolian_cxx/grammar/klass_def.hpp
@@ -1061,11 +1061,12 @@ struct klass_def
 , std::string klass_get_name)
 : eolian_name(_eolian_name), cxx_name(_cxx_name)
 , namespaces(_namespaces)
-, functions(_functions), properties(_properties), inherits(_inherits), 
type(_type), unit(unit)
-, klass_get_name(klass_get_name)
+, functions(_functions), properties(_properties), inherits(_inherits), 
type(_type)
+, klass_get_name(klass_get_name), unit(unit)
   {}
-  klass_def(Eolian_Class const* klass, Eolian_Unit const* unit) : unit(unit)
-, klass_get_name( ::eolian_class_c_get_function_name_get(klass))
+  klass_def(Eolian_Class const* klass, Eolian_Unit const* unit)
+: klass_get_name( ::eolian_class_c_get_function_name_get(klass))
+, unit(unit)
   {
  for(efl::eina::iterator namespace_iterator( 
::eolian_class_namespaces_get(klass))
, namespace_last; namespace_iterator != namespace_last; 
++namespace_iterator)

-- 




[EGIT] [core/efl] master 01/01: eolian: add api to access the requires field

2019-01-17 Thread Marcel Hollerbach
felipealmeida pushed a commit to branch master.

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

commit 8e487069c9700c6e8f9d81a93bf5a09feabdc6ed
Author: Marcel Hollerbach 
Date:   Thu Jan 17 22:14:52 2019 +0900

eolian: add api to access the requires field

Summary:
This is needed in order to support checking the correct regular classes
in efl#.

ref T7240
Depends on D7673

Test Plan: run ninja test / make check

Reviewers: q66, felipealmeida, segfaultxavi

Reviewed By: felipealmeida

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7240

Differential Revision: https://phab.enlightenment.org/D7674
---
 src/lib/eolian/Eolian.h | 13 +
 src/lib/eolian/database_class_api.c |  6 ++
 src/tests/eolian/eolian_parsing.c   | 25 +++--
 3 files changed, 42 insertions(+), 2 deletions(-)

diff --git a/src/lib/eolian/Eolian.h b/src/lib/eolian/Eolian.h
index d4678715d1..fc28058c6b 100644
--- a/src/lib/eolian/Eolian.h
+++ b/src/lib/eolian/Eolian.h
@@ -1461,6 +1461,19 @@ EAPI Eina_Stringshare *eolian_class_data_type_get(const 
Eolian_Class *klass);
  */
 EAPI const Eolian_Class *eolian_class_parent_get(const Eolian_Class *klass);
 
+/*
+ * @brief Returns an iterator to the required classes of this mixin
+ *
+ * For none mixins this will return an empty iterator, for mixins this retuns 
a iterator that
+ * carries all the classes that are required by this passed mixin.
+ *
+ * @param[in] klass the class
+ * @return the iterator
+ *
+ * @ingroup Eolian
+ */
+EAPI Eina_Iterator *eolian_class_requires_get(const Eolian_Class *klass);
+
 /*
  * @brief Returns an iterator to the class extensions
  *
diff --git a/src/lib/eolian/database_class_api.c 
b/src/lib/eolian/database_class_api.c
index d96a7d7ecc..f79cdb800b 100644
--- a/src/lib/eolian/database_class_api.c
+++ b/src/lib/eolian/database_class_api.c
@@ -55,6 +55,12 @@ eolian_class_parent_get(const Eolian_Class *cl)
   return cl->parent;
 }
 
+EAPI Eina_Iterator *
+eolian_class_requires_get(const Eolian_Class *cl)
+{
+   return eina_list_iterator_new(cl->requires);
+}
+
 EAPI Eina_Iterator *
 eolian_class_extensions_get(const Eolian_Class *cl)
 {
diff --git a/src/tests/eolian/eolian_parsing.c 
b/src/tests/eolian/eolian_parsing.c
index d93906bc56..41c4790f81 100644
--- a/src/tests/eolian/eolian_parsing.c
+++ b/src/tests/eolian/eolian_parsing.c
@@ -1583,14 +1583,35 @@ EFL_START_TEST(eolian_mixins_require)
//check that implements contains this one class
{
   Eolian_Implement *impl;
-  Eina_Iterator *i = eolian_class_extensions_get (cl);
+  Eina_Iterator *i = eolian_class_implements_get(cl);
+  Eina_Array *tmp = eina_array_new(1);
 
   EINA_ITERATOR_FOREACH(i, impl)
 {
-   ck_assert_ptr_eq(eolian_implement_class_get(impl), base);
+   if (eolian_implement_class_get(impl) != cl)
+ {
+eina_array_push(tmp, eolian_implement_class_get(impl));
+ck_assert_ptr_eq(eolian_implement_class_get(impl), base);
+ }
 }
+  ck_assert_int_eq(eina_array_count(tmp), 1);
+  eina_array_free(tmp);
   eina_iterator_free(i);
}
+   //check that the mixins has the right require
+   {
+  Eina_Iterator *iter = eolian_class_requires_get(cl);
+  Eina_Array *tmp = eina_array_new(1);
+
+  EINA_ITERATOR_FOREACH(iter, cl)
+{
+   eina_array_push(tmp, cl);
+}
+  ck_assert_int_eq(eina_array_count(tmp), 1);
+  ck_assert_ptr_eq(eina_array_data_get(tmp, 0), base);
+  eina_array_free(tmp);
+  eina_iterator_free(iter);
+   }
eolian_state_free(eos);
 }
 EFL_END_TEST

-- 




[EGIT] [core/efl] master 01/01: eolian: warn as much as possible at once for unimplemented funcs

2019-01-17 Thread Daniel Kolesa
q66 pushed a commit to branch master.

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

commit ceac54b23b9db53c224e82d2bf79ccc6260c4149
Author: Daniel Kolesa 
Date:   Thu Jan 17 14:15:00 2019 +0100

eolian: warn as much as possible at once for unimplemented funcs

This also fixes some other potential errors, when there is a
failure about unimplemented methods but something up the stack
then uses those results.
---
 src/lib/eolian/database_validate.c | 6 ++
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/src/lib/eolian/database_validate.c 
b/src/lib/eolian/database_validate.c
index 5462f4abb2..c89ca232b8 100644
--- a/src/lib/eolian/database_validate.c
+++ b/src/lib/eolian/database_validate.c
@@ -1039,10 +1039,8 @@ _db_fill_inherits(Validate_State *vals, Eolian_Class 
*cl, Eina_Hash *fhash)
 
/* verify that all methods are implemented on the class */
if (!_db_check_implemented(vals, cl, fh))
- {
-eina_hash_free(fh);
-return EINA_FALSE;
- }
+ vals->warned = EINA_TRUE;
+
eina_hash_free(fh);
 
return EINA_TRUE;

-- 




[EGIT] [core/efl] master 01/01: Revert "evas: make efl_canvas_group abstract"

2019-01-17 Thread Marcel Hollerbach
bu5hm4n pushed a commit to branch master.

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

commit 9fefc3530883dd2334210b0204b293ae90a77020
Author: Marcel Hollerbach 
Date:   Thu Jan 17 13:46:03 2019 +0100

Revert "evas: make efl_canvas_group abstract"

This reverts commit ae65c64b8d52c3b3d032eb29474b750b7e5781cb.

It appears that abstract -> abstract enforcement is not needed anymore,
the other patches are fine. However, this one proposes a new object
which is not needed to exist.

Reviewed-by: Xavi Artigas 
Differential Revision: https://phab.enlightenment.org/D7676
---
 src/Makefile_Evas.am   | 1 -
 src/lib/elementary/efl_ui_pager.c  | 2 +-
 src/lib/evas/Evas_Eo.h | 1 -
 src/lib/evas/canvas/efl_canvas_group.eo| 2 +-
 src/lib/evas/canvas/efl_canvas_group_object.eo | 7 ---
 src/lib/evas/canvas/evas_object_smart.c| 3 +--
 src/lib/evas/canvas/meson.build| 1 -
 7 files changed, 3 insertions(+), 14 deletions(-)

diff --git a/src/Makefile_Evas.am b/src/Makefile_Evas.am
index b9a232dfee..12f9b31fd5 100644
--- a/src/Makefile_Evas.am
+++ b/src/Makefile_Evas.am
@@ -9,7 +9,6 @@ evas_canvas_eolian_pub_files = \
lib/evas/canvas/efl_canvas_text.eo \
lib/evas/canvas/efl_canvas_text_factory.eo \
lib/evas/canvas/efl_canvas_group.eo \
-  lib/evas/canvas/efl_canvas_group_object.eo \
lib/evas/canvas/efl_canvas_image_internal.eo \
lib/evas/canvas/evas_canvas3d_camera.eo\
lib/evas/canvas/evas_canvas3d_texture.eo\
diff --git a/src/lib/elementary/efl_ui_pager.c 
b/src/lib/elementary/efl_ui_pager.c
index 9ef79d3cc9..921d7676f9 100644
--- a/src/lib/elementary/efl_ui_pager.c
+++ b/src/lib/elementary/efl_ui_pager.c
@@ -351,7 +351,7 @@ _efl_ui_pager_efl_object_constructor(Eo *obj,
 
elm_widget_can_focus_set(obj, EINA_TRUE);
 
-   pd->page_root = efl_add(EFL_CANVAS_GROUP_OBJECT_CLASS, 
evas_object_evas_get(obj));
+   pd->page_root = efl_add(EFL_CANVAS_GROUP_CLASS, evas_object_evas_get(obj));
efl_content_set(efl_part(obj, "efl.page_root"), pd->page_root);
 
efl_event_callback_add(pd->page_root, EFL_GFX_ENTITY_EVENT_RESIZE, 
_resize_cb, pd);
diff --git a/src/lib/evas/Evas_Eo.h b/src/lib/evas/Evas_Eo.h
index 903da2ee7c..9cea6ddc77 100644
--- a/src/lib/evas/Evas_Eo.h
+++ b/src/lib/evas/Evas_Eo.h
@@ -179,7 +179,6 @@ struct _Efl_Canvas_Object_Animation_Event
  * @{
  */
 #include "canvas/efl_canvas_group.eo.h"
-#include "canvas/efl_canvas_group_object.eo.h"
 /**
  * @}
  */
diff --git a/src/lib/evas/canvas/efl_canvas_group.eo 
b/src/lib/evas/canvas/efl_canvas_group.eo
index eb9fc15aff..eecb255ad3 100644
--- a/src/lib/evas/canvas/efl_canvas_group.eo
+++ b/src/lib/evas/canvas/efl_canvas_group.eo
@@ -1,4 +1,4 @@
-abstract Efl.Canvas.Group (Efl.Canvas.Object)
+class Efl.Canvas.Group (Efl.Canvas.Object)
 {
[[A group object is a container for other canvas objects. Its children
  move along their parent and are often clipped with a common clipper.
diff --git a/src/lib/evas/canvas/efl_canvas_group_object.eo 
b/src/lib/evas/canvas/efl_canvas_group_object.eo
deleted file mode 100644
index 42650b10b7..00
--- a/src/lib/evas/canvas/efl_canvas_group_object.eo
+++ /dev/null
@@ -1,7 +0,0 @@
-class Efl.Canvas.Group_Object(Efl.Canvas.Group)
-{
-  [[A class which makes Efl.Canvas.Group instanceable.
-For further information, please see @Efl.Canvas.Group.
-  ]]
-  data: null;
-}
diff --git a/src/lib/evas/canvas/evas_object_smart.c 
b/src/lib/evas/canvas/evas_object_smart.c
index a8dbacb833..7f0daf7331 100644
--- a/src/lib/evas/canvas/evas_object_smart.c
+++ b/src/lib/evas/canvas/evas_object_smart.c
@@ -675,7 +675,7 @@ evas_object_smart_add(Evas *eo_e, Evas_Smart *s)
 
eo_e = evas_find(eo_e);
EINA_SAFETY_ON_FALSE_RETURN_VAL(efl_isa(eo_e, EVAS_CANVAS_CLASS), NULL);
-   eo_obj = efl_add(EFL_CANVAS_GROUP_OBJECT_CLASS, eo_e, 
efl_canvas_object_legacy_ctor(efl_added));
+   eo_obj = efl_add(EFL_CANVAS_GROUP_CLASS, eo_e, 
efl_canvas_object_legacy_ctor(efl_added));
evas_object_smart_attach(eo_obj, s);
return eo_obj;
 }
@@ -1849,4 +1849,3 @@ EOAPI EFL_VOID_FUNC_BODYV(efl_canvas_group_clipped_set, 
EFL_FUNC_CALL(enable), E
EFL_OBJECT_OP_FUNC(efl_canvas_group_clipped_set, 
_efl_canvas_group_group_clipped_set)
 
 #include "canvas/efl_canvas_group.eo.c"
-#include "canvas/efl_canvas_group_object.eo.c"
diff --git a/src/lib/evas/canvas/meson.build b/src/lib/evas/canvas/meson.build
index 1b384c03f7..c7e8810f63 100644
--- a/src/lib/evas/canvas/meson.build
+++ b/src/lib/evas/canvas/meson.build
@@ -74,7 +74,6 @@ pub_eo_files = [
   'efl_canvas_vg_gradient_radial.eo',
   'efl_canvas_vg_gradient_linear.eo',
   'efl_canvas_group.eo',
-  'efl_canvas_group_object.eo',
   'efl_gfx_map.eo',
   'efl_canvas_event_grabber.eo',
   'efl_canvas_text.eo'

-- 




[EGIT] [core/efl] master 01/01: efl-mono: Enable selecting to build @beta items

2019-01-17 Thread Lauro Moura
felipealmeida pushed a commit to branch master.

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

commit 586bc5207e63bd8f622f466749781e397fc5e921
Author: Lauro Moura 
Date:   Thu Jan 17 21:43:57 2019 +0900

efl-mono: Enable selecting to build @beta items

Summary:
For autotools, use --enable-csharp-beta to enable the generation of beta
methods and properties, for meson use -Dmono-beta=true.

By default, no beta method or property is generated.

Reviewers: woohyun, segfaultxavi, bu5hm4n, lauromoura

Reviewed By: woohyun

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7637
---
 configure.ac   | 16 ++
 meson_options.txt  |  6 ++
 src/Makefile_Eolian_Mono_Helper.am |  4 
 .../eolian/mono/async_function_definition.hh   |  4 ++--
 src/bin/eolian_mono/eolian/mono/blacklist.hh   | 25 +-
 .../eolian/mono/function_declaration.hh|  2 +-
 .../eolian_mono/eolian/mono/function_definition.hh |  6 +++---
 .../eolian/mono/function_registration.hh   |  2 +-
 .../eolian_mono/eolian/mono/generation_contexts.hh |  4 
 src/bin/eolian_mono/eolian/mono/klass.hh   |  7 +++---
 src/bin/eolian_mono/eolian_mono.cc | 13 +--
 src/bindings/mono/meson.build  |  9 ++--
 12 files changed, 83 insertions(+), 15 deletions(-)

diff --git a/configure.ac b/configure.ac
index 576a1afc71..34f71f32ca 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1349,6 +1349,17 @@ EFL_LIB_END_OPTIONAL([Eo_Js])
  End of Eo JS
 
  Efl C Sharp Bindings
+want_csharp_beta="no"
+AC_ARG_ENABLE([csharp-beta],
+  [AS_HELP_STRING([--enable-csharp-beta],[enable C Sharp bindings. 
@<:@default=disabled@:>@])],
+  [
+if test "x${enableval}" = "xyes" ; then
+  want_csharp_beta="yes"
+else
+  want_csharp_beta="no"
+fi
+  ],
+  [want_csharp_beta="no"])
 
 want_csharp="no"
 AC_ARG_ENABLE([csharp-bindings],
@@ -1372,6 +1383,11 @@ AC_DEFINE_IF([HAVE_CSHARP], [test "x${want_csharp}" = 
"xyes"],
   [1], [Compiling bindings for C Sharp])
 AC_SUBST([want_csharp])
 
+AM_CONDITIONAL([HAVE_CSHARP_BETA], [test "x${want_csharp_beta}" = "xyes"])
+AC_DEFINE_IF([HAVE_CSHARP_BETA], [test "x${want_csharp_beta}" = "xyes"],
+  [1], [Compiling bindings for C Sharp with beta methods, properties and 
classes])
+AC_SUBST([want_csharp_beta])
+
 if test "x${have_windows}" = "xyes"; then
   eflmonodlldir="$prefix/bin"
 else
diff --git a/meson_options.txt b/meson_options.txt
index a8aabda212..651fbcc01e 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -317,6 +317,12 @@ option('bindings',
   description : 'Add values here to enable the bindings',
 )
 
+option('mono-beta',
+  type: 'boolean',
+  value: false,
+  description: 'Flag for enabling @beta Eo methods in the api'
+)
+
 option('native-arch-optimization',
   type: 'boolean',
   value: true,
diff --git a/src/Makefile_Eolian_Mono_Helper.am 
b/src/Makefile_Eolian_Mono_Helper.am
index 6097c447b3..3ada3b2a0b 100644
--- a/src/Makefile_Eolian_Mono_Helper.am
+++ b/src/Makefile_Eolian_Mono_Helper.am
@@ -8,7 +8,11 @@ EOLIAN_MONO = EFL_RUN_IN_TREE=1 
$(top_builddir)/src/bin/eolian_mono/eolian_mono$
 _EOLIAN_MONO_DEP = bin/eolian_mono/eolian_mono${EXEEXT}
 endif
 
+if HAVE_CSHARP_BETA
+EOLIAN_MONO_FLAGS = -b -M @VMAJ@ -m @VMIN@
+else
 EOLIAN_MONO_FLAGS = -M @VMAJ@ -m @VMIN@
+endif
 
 AM_V_EOLMONO = $(am__v_EOLMONO_@AM_V@)
 am__v_EOLMONO_ = $(am__v_EOLMONO_@AM_DEFAULT_V@)
diff --git a/src/bin/eolian_mono/eolian/mono/async_function_definition.hh 
b/src/bin/eolian_mono/eolian/mono/async_function_definition.hh
index 1dc705ad3a..5164311ee7 100644
--- a/src/bin/eolian_mono/eolian/mono/async_function_definition.hh
+++ b/src/bin/eolian_mono/eolian/mono/async_function_definition.hh
@@ -48,7 +48,7 @@ struct async_function_declaration_generator
   {
 if (f.is_static)
   return true;
-if (blacklist::is_function_blacklisted(f.c_name))
+if (blacklist::is_function_blacklisted(f, context))
   return true;
 if (!f.return_type.original_type.visit(is_future{}))
   return true;
@@ -76,7 +76,7 @@ struct async_function_definition_generator
 
 if(do_super && f.is_static) // Static methods goes only on Concrete 
classes.
   return true;
-if(blacklist::is_function_blacklisted(f.c_name))
+if(blacklist::is_function_blacklisted(f, context))
   return true;
 if(!f.return_type.original_type.visit(is_future{}))
   return true;
diff --git a/src/bin/eolian_mono/eolian/mono/blacklist.hh 
b/src/bin/eolian_mono/eolian/mono/blacklist.hh
index fff61c7231..c11437b2df 100644
--- a/src/bin/eolian_mono/eolian/mono/blacklist.hh
+++ b/src/bin/eolian_mono/eolian/mono/blacklist.hh
@@ -2,7 +2,9 @@
 #define EOLIAN_MONO_BLACKLIST_HH
 

[EGIT] [core/efl] master 01/03: efl-mono: Add proper test for interface inheritance

2019-01-17 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

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

commit 92aab7830cbc3e8697d56440972835b6d8c67aba
Author: Felipe Magno de Almeida 
Date:   Tue Jan 15 09:07:49 2019 +0900

efl-mono: Add proper test for interface inheritance

Reviewers: segfaultxavi, bu5hm4n, woohyun, Jaehyun_Cho, lauromoura

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7634
---
 src/tests/efl_mono/Inheritance.cs| 53 
 src/tests/efl_mono/dummy_inherit_helper.eo   | 17 +
 src/tests/efl_mono/dummy_inherit_iface.eo| 10 ++
 src/tests/efl_mono/libefl_mono_native_test.c | 24 +
 src/tests/efl_mono/meson.build   |  5 +--
 5 files changed, 107 insertions(+), 2 deletions(-)

diff --git a/src/tests/efl_mono/Inheritance.cs 
b/src/tests/efl_mono/Inheritance.cs
new file mode 100644
index 00..30ca391e87
--- /dev/null
+++ b/src/tests/efl_mono/Inheritance.cs
@@ -0,0 +1,53 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Runtime.InteropServices;
+using System.Runtime.CompilerServices;
+
+using EinaTestData;
+using static EinaTestData.BaseData;
+
+namespace TestSuite
+{
+
+class TestInheritance
+{
+internal class Inherit1 : Dummy.TestObject
+{
+override public void IntOut (int x, out int y)
+{
+y = 10*x;
+}
+}
+
+internal class Inherit2 : Dummy.TestObject, Dummy.InheritIface
+{
+override public void IntOut (int x, out int y)
+{
+y = 10*x;
+}
+
+public string StringshareTest (string i)
+{
+return "Hello World";
+}
+}
+
+public static void test_inherit_from_regular_class()
+{
+var obj = new Inherit1();
+int i = Dummy.InheritHelper.ReceiveDummyAndCallIntOut(obj);
+Test.AssertEquals (50, i);
+}
+
+public static void test_inherit_from_iface()
+{
+var obj = new Inherit2();
+int i = Dummy.InheritHelper.ReceiveDummyAndCallIntOut(obj);
+string s = Dummy.InheritHelper.ReceiveDummyAndCallInStringshare(obj);
+Test.AssertEquals (50, i);
+Test.AssertEquals ("Hello World", s);
+}
+}
+
+}
diff --git a/src/tests/efl_mono/dummy_inherit_helper.eo 
b/src/tests/efl_mono/dummy_inherit_helper.eo
new file mode 100644
index 00..101c759390
--- /dev/null
+++ b/src/tests/efl_mono/dummy_inherit_helper.eo
@@ -0,0 +1,17 @@
+class Dummy.Inherit_Helper extends Efl.Object
+{
+  methods {
+receive_dummy_and_call_int_out @class {
+  params {
+@in x: Dummy.Test_Object;
+  }
+  return: int;
+}
+receive_dummy_and_call_in_stringshare @class {
+  params {
+@in x: Dummy.Inherit_Iface;
+  }
+  return: stringshare;
+}
+  }
+}
diff --git a/src/tests/efl_mono/dummy_inherit_iface.eo 
b/src/tests/efl_mono/dummy_inherit_iface.eo
new file mode 100644
index 00..6333a86f42
--- /dev/null
+++ b/src/tests/efl_mono/dummy_inherit_iface.eo
@@ -0,0 +1,10 @@
+interface Dummy.Inherit_Iface {
+   methods {
+  stringshare_test {
+ params {
+@in v: stringshare;
+ }
+ return: stringshare @owned;
+  }
+   }
+}
diff --git a/src/tests/efl_mono/libefl_mono_native_test.c 
b/src/tests/efl_mono/libefl_mono_native_test.c
index fc4e3cbae6..d0109dbad2 100644
--- a/src/tests/efl_mono/libefl_mono_native_test.c
+++ b/src/tests/efl_mono/libefl_mono_native_test.c
@@ -39,6 +39,8 @@
 #include "dummy_child.eo.h"
 #include "dummy_test_iface.eo.h"
 #include "dummy_another_iface.eo.h"
+#include "dummy_inherit_iface.eo.h"
+#include "dummy_inherit_helper.eo.h"
 
 #include 
 
@@ -71,6 +73,13 @@ typedef struct Dummy_Child_Data
 {
 } Dummy_Child_Data;
 
+typedef struct Dummy_Inherit_Helper_Data
+{
+} Dummy_Inherit_Helper_Data;
+
+typedef struct Dummy_Inherit_Iface_Data
+{
+} Dummy_Inherit_Iface_Data;
 
 static
 void *_new_int(int v)
@@ -3928,9 +3937,24 @@ _dummy_child_class_destructor(Efl_Class *klass)
 (void)klass;
 }
 
+// Inherit
+int _dummy_inherit_helper_receive_dummy_and_call_int_out(Eo *obj EINA_UNUSED, 
void *pd EINA_UNUSED, Dummy_Test_Object *x)
+{
+  int v = 8;
+  dummy_test_object_int_out (x, 5, );
+  return v;
+}
+
+const char* _dummy_inherit_helper_receive_dummy_and_call_in_stringshare(Eo 
*obj EINA_UNUSED, void *pd EINA_UNUSED, Dummy_Test_Object *x)
+{
+  return dummy_inherit_iface_stringshare_test (x, eina_stringshare_add("hello 
world"));
+}
+
 #include "dummy_test_object.eo.c"
 #include "dummy_numberwrapper.eo.c"
 #include "dummy_child.eo.c"
 #include "dummy_test_iface.eo.c"
 #include "dummy_another_iface.eo.c"
+#include "dummy_inherit_helper.eo.c"
+#include "dummy_inherit_iface.eo.c"
 
diff --git a/src/tests/efl_mono/meson.build b/src/tests/efl_mono/meson.build
index 

[EGIT] [core/efl] master 02/03: eolian_mono: fix inheriting from efl types not considering additional interfaces

2019-01-17 Thread Vitor Sousa
felipealmeida pushed a commit to branch master.

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

commit 7b342e8fddaff50dd62354f357a3d249afc77498
Author: Vitor Sousa 
Date:   Fri Dec 14 15:06:12 2018 -0200

eolian_mono: fix inheriting from efl types not considering additional 
interfaces

Reviewers: segfaultxavi, bu5hm4n, Jaehyun_Cho, lauromoura

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7635
---
 src/bin/eolian_mono/eolian/mono/klass.hh|  17 ++-
 src/bin/eolian_mono/eolian/mono/name_helpers.hh |  31 ++--
 src/bindings/mono/eo_mono/iwrapper.cs   | 192 ++--
 src/tests/efl_mono/libefl_mono_native_test.c|  11 ++
 4 files changed, 230 insertions(+), 21 deletions(-)

diff --git a/src/bin/eolian_mono/eolian/mono/klass.hh 
b/src/bin/eolian_mono/eolian/mono/klass.hh
index a22a5a0256..5dc22f5d38 100644
--- a/src/bin/eolian_mono/eolian/mono/klass.hh
+++ b/src/bin/eolian_mono/eolian/mono/klass.hh
@@ -128,6 +128,11 @@ struct klass
  if(!as_generator(documentation).generate(sink, cls, iface_cxt))
return false;
 
+ // Mark the interface with the proper native Efl_Class* getter
+ if(!as_generator(lit("[") << 
name_helpers::interface_native_getter_attr_name(cls) << "]\n")
+.generate(sink, attributes::unused, iface_cxt))
+   return false;
+
  if(!as_generator
 (
  "public " /*<< class_type*/ "interface" /*<<*/ " " << string << " : "
@@ -272,6 +277,16 @@ struct klass
 
  if(!as_generator("}\n").generate(sink, attributes::unused, 
concrete_cxt)) return false;
 
+ // Attribute getter of the native 'Efl_Class *' handle (for proper 
inheritance from additional explicit interfaces)
+ if(!as_generator(lit("public class ") << 
name_helpers::interface_native_getter_attr_name(cls) << " : 
Efl.Eo.NativeGetterAttr\n"
+  << "{\n"
+  << scope_tab << "public override IntPtr GetEflClass()\n"
+  << scope_tab << "{\n"
+  << scope_tab << scope_tab << "return " << 
name_helpers::klass_get_full_name(cls) << "();\n"
+  << scope_tab << "}\n"
+  << "}\n")
+.generate(sink, attributes::unused, concrete_cxt))
+   return false;
}
 
  // Inheritable class
@@ -560,7 +575,7 @@ struct klass
  << scope_tab << scope_tab << scope_tab << "if (target_klass == 
System.IntPtr.Zero) {\n"
  << scope_tab << scope_tab << scope_tab << scope_tab << "lock 
(klassAllocLock) {\n"
  << scope_tab << scope_tab << scope_tab << scope_tab << scope_tab 
<< "if (target_klass == System.IntPtr.Zero) {\n"
- << scope_tab << scope_tab << scope_tab << scope_tab << scope_tab 
<< scope_tab << "target_klass = 
Efl.Eo.Globals.register_class(class_initializer, klass_name, base_klass);\n"
+ << scope_tab << scope_tab << scope_tab << scope_tab << scope_tab 
<< scope_tab << "target_klass = 
Efl.Eo.Globals.register_class(class_initializer, klass_name, base_klass, 
this.GetType());\n"
  << scope_tab << scope_tab << scope_tab << scope_tab << scope_tab 
<< scope_tab << "if (target_klass == System.IntPtr.Zero) {\n"
  << scope_tab << scope_tab << scope_tab << scope_tab << scope_tab 
<< scope_tab << scope_tab << "throw new 
System.InvalidOperationException(\"Failed to initialize class '" << 
inherit_name << "'\");\n"
  << scope_tab << scope_tab << scope_tab << scope_tab << scope_tab 
<< scope_tab << "}\n"
diff --git a/src/bin/eolian_mono/eolian/mono/name_helpers.hh 
b/src/bin/eolian_mono/eolian/mono/name_helpers.hh
index 801d721008..a5cf5c0149 100644
--- a/src/bin/eolian_mono/eolian/mono/name_helpers.hh
+++ b/src/bin/eolian_mono/eolian/mono/name_helpers.hh
@@ -274,14 +274,14 @@ struct klass_interface_name_generator
   {
 return utils::remove_all(klass.eolian_name, '_');
   }
-
+
   template 
   bool generate(OutputIterator sink, Attr const& attribute, Context const& 
context) const
   {
 return as_generator((*this).operator()(attribute)).generate(sink, 
attributes::unused, context);
   }
-} klass_interface_name;
-  
+} const klass_interface_name;
+
 struct klass_full_interface_name_generator
 {
   template 
@@ -289,13 +289,13 @@ struct klass_full_interface_name_generator
   {
 return join_namespaces(klass.namespaces, '.', managed_namespace) + 
klass_interface_name(klass);
   }
-
+
   template 
   bool generate(OutputIterator sink, Attr const& attribute, Context const& 
context) const
   {
 return as_generator((*this).operator()(attribute)).generate(sink, 
attributes::unused, context);
   }
-} klass_full_interface_name;
+} const klass_full_interface_name;
 
 template
 inline std::string klass_concrete_name(T const& klass)
@@ -313,13 +313,13 @@ struct klass_full_concrete_name_generator
   {
 return 

[EGIT] [core/efl] master 03/03: eolian-mono: Add interface registration to inherited classes

2019-01-17 Thread Felipe Magno de Almeida
felipealmeida pushed a commit to branch master.

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

commit adc2e674af528c01ca5bb11d56edc475bce5cc4d
Author: Felipe Magno de Almeida 
Date:   Thu Jan 17 21:33:09 2019 +0900

eolian-mono: Add interface registration to inherited classes

Summary: Depends on D7635, D7634

Reviewers: woohyun, bu5hm4n, segfaultxavi, lauromoura

Reviewed By: woohyun

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7636
---
 .../eolian_mono/eolian/mono/function_definition.hh |  10 +-
 .../eolian/mono/function_registration.hh   |  30 ++--
 src/bin/eolian_mono/eolian/mono/klass.hh   | 178 +
 src/bin/eolian_mono/eolian/mono/name_helpers.hh|  12 --
 src/bindings/mono/eo_mono/iwrapper.cs  | 104 ++--
 src/tests/efl_mono/Inheritance.cs  |   4 +-
 6 files changed, 196 insertions(+), 142 deletions(-)

diff --git a/src/bin/eolian_mono/eolian/mono/function_definition.hh 
b/src/bin/eolian_mono/eolian/mono/function_definition.hh
index 763bbc451f..2d9e1b5d5a 100644
--- a/src/bin/eolian_mono/eolian/mono/function_definition.hh
+++ b/src/bin/eolian_mono/eolian/mono/function_definition.hh
@@ -71,7 +71,11 @@ struct native_function_definition_generator
 
if(!as_generator(eolian_mono::type(true)).generate(std::back_inserter(return_type),
 f.return_type, context))
   return false;
 
-std::string klass_inherit_name = name_helpers::klass_inherit_name(*klass);
+std::string klass_cast_name;
+if (klass->type != attributes::class_type::interface_)
+  klass_cast_name = name_helpers::klass_inherit_name(*klass);
+else
+  klass_cast_name = name_helpers::klass_interface_name(*klass);
 
 if(!as_generator
(scope_tab
@@ -89,7 +93,7 @@ struct native_function_definition_generator
 << scope_tab << scope_tab << "if(wrapper != null) {\n"
 << scope_tab << scope_tab << scope_tab << 
eolian_mono::native_function_definition_preamble()
 << scope_tab << scope_tab << scope_tab << "try {\n"
-<< scope_tab << scope_tab << scope_tab << scope_tab << (return_type != 
" void" ? "_ret_var = " : "") << "((" << klass_inherit_name << ")wrapper)." << 
string
+<< scope_tab << scope_tab << scope_tab << scope_tab << (return_type != 
" void" ? "_ret_var = " : "") << "((" << klass_cast_name << ")wrapper)." << 
string
 << "(" << (native_argument_invocation % ", ") << ");\n"
 << scope_tab << scope_tab << scope_tab << "} catch (Exception e) {\n"
 << scope_tab << scope_tab << scope_tab << scope_tab << 
"Eina.Log.Warning($\"Callback error: {e.ToString()}\");\n"
@@ -98,7 +102,7 @@ struct native_function_definition_generator
 << eolian_mono::native_function_definition_epilogue(*klass)
 << scope_tab << scope_tab << "} else {\n"
 << scope_tab << scope_tab << scope_tab << (return_type != " void" ? 
"return " : "") << string
-<< "(Efl.Eo.Globals.efl_super(obj, " << "EoKlass)" << *(", " << 
argument) << ");\n"
+<< "(Efl.Eo.Globals.efl_super(obj, " << "GetEflClass())" << *(", " << 
argument) << ");\n"
 << scope_tab << scope_tab << "}\n"
 << scope_tab << "}\n"
)
diff --git a/src/bin/eolian_mono/eolian/mono/function_registration.hh 
b/src/bin/eolian_mono/eolian/mono/function_registration.hh
index 0b8da4a05a..78f2d718c7 100644
--- a/src/bin/eolian_mono/eolian/mono/function_registration.hh
+++ b/src/bin/eolian_mono/eolian/mono/function_registration.hh
@@ -20,10 +20,10 @@
 
 namespace eolian_mono {
 
-template 
+// template 
 struct function_registration_generator
 {
-  I index_generator;
+  // I index_generator;
   attributes::klass_def const* klass;
   
   template 
@@ -34,7 +34,7 @@ struct function_registration_generator
   return true;
 else
   {
-auto index = index_generator();
+// auto index = index_generator();
 
 if(!as_generator(
 scope_tab << scope_tab << f.c_name << "_static_delegate = new " << 
f.c_name << "_delegate(" <<
@@ -43,12 +43,13 @@ struct function_registration_generator
   return false;
 
 if(!as_generator
+   (scope_tab << scope_tab << "descs.Add(new Efl_Op_Description() {"
 #ifdef _WIN32
-   (scope_tab << scope_tab << "descs[" << index << "].api_func = 
Marshal.StringToHGlobalAnsi(\"" << string << "\");\n"
+<< "api_func = Marshal.StringToHGlobalAnsi(\"" << string << "\")"
 #else
-   (scope_tab << scope_tab << "descs[" << index << "].api_func = 
Efl.Eo.Globals.dlsym(Efl.Eo.Globals.RTLD_DEFAULT, \"" << string << "\");\n"
+<< "api_func = Efl.Eo.Globals.dlsym(Efl.Eo.Globals.RTLD_DEFAULT, \"" 
<< string << "\")"
 #endif
-<< scope_tab << scope_tab << "descs[" << index << "].func = 
Marshal.GetFunctionPointerForDelegate(" << string << "_static_delegate);\n"
+

[EGIT] [apps/evisum] master 01/01: process: fix bogus state names on other OS.

2019-01-17 Thread Alastair Poole
netstar pushed a commit to branch master.

http://git.enlightenment.org/apps/evisum.git/commit/?id=8a9dfad6631fe330a7f5959b3553d68320333f06

commit 8a9dfad6631fe330a7f5959b3553d68320333f06
Author: Alastair Poole 
Date:   Thu Jan 17 11:13:09 2019 +

process: fix bogus state names on other OS.
---
 src/process.c | 16 
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/src/process.c b/src/process.c
index ce55f3a..42796c7 100644
--- a/src/process.c
+++ b/src/process.c
@@ -78,40 +78,40 @@ _process_state_name(char state)
 statename = "idle";
 break;
 
-  case Srun:
+  case SRUN:
 statename = "run";
 break;
 
-  case Ssleep:
+  case SSLEEP:
 statename = "sleep";
 break;
 
-  case Sstop:
+  case SSTOP:
 statename = "stop";
 break;
 
 #if !defined(__MacOS__)
 #if !defined(__OpenBSD__)
-  case Swait:
+  case SWAIT:
 statename = "wait";
 break;
 
-  case Slock:
+  case SLOCK:
 statename = "lock";
 break;
 
 #endif
-  case Szomb:
+  case SZOMB:
 statename = "zomb";
 break;
 
 #endif
 #if defined(__OpenBSD__)
-  case Sdead:
+  case SDEAD:
 statename = "dead";
 break;
 
-  case Sonproc:
+  case SONPROC:
 statename = "onproc";
 break;
 #endif

-- 




[EGIT] [apps/evisum] master 01/01: UI: Visual changes to improve layout.

2019-01-17 Thread Alastair Poole
netstar pushed a commit to branch master.

http://git.enlightenment.org/apps/evisum.git/commit/?id=ca767ac87bc5a7f45867f808f20b4d299723e3dd

commit ca767ac87bc5a7f45867f808f20b4d299723e3dd
Author: Alastair Poole 
Date:   Thu Jan 17 10:57:58 2019 +

UI: Visual changes to improve layout.

Minor changes to improve rendering of process information
text.
---
 src/main.c|  2 +-
 src/process.c | 48 
 src/ui.c  | 12 ++--
 3 files changed, 31 insertions(+), 31 deletions(-)

diff --git a/src/main.c b/src/main.c
index 397ed06..e76964c 100644
--- a/src/main.c
+++ b/src/main.c
@@ -30,7 +30,7 @@ _win_add(void)
icon = elm_icon_add(win);
elm_icon_standard_set(icon, "evisum");
elm_win_icon_object_set(win, icon);
-   evas_object_resize(win, 768 * elm_config_scale_get(), 500 * 
elm_config_scale_get());
+   evas_object_resize(win, 800 * elm_config_scale_get(), 500 * 
elm_config_scale_get());
elm_win_title_set(win, "System Information");
elm_win_center(win, EINA_TRUE, EINA_TRUE);
evas_object_show(win);
diff --git a/src/process.c b/src/process.c
index 755ddfc..ce55f3a 100644
--- a/src/process.c
+++ b/src/process.c
@@ -43,76 +43,76 @@ _process_state_name(char state)
switch (state)
  {
   case 'D':
-statename = "DSLEEP";
+statename = "dsleep";
 break;
 
   case 'I':
-statename = "IDLE";
+statename = "idle";
 break;
 
   case 'R':
-statename = "RUN";
+statename = "run";
 break;
 
   case 'S':
-statename = "SLEEP";
+statename = "sleep";
 break;
 
   case 'T':
   case 't':
-statename = "STOP";
+statename = "stop";
 break;
 
   case 'X':
-statename = "DEAD";
+statename = "dead";
 break;
 
   case 'Z':
-statename = "ZOMB";
+statename = "zomb";
 break;
  }
 #else
switch (state)
  {
   case SIDL:
-statename = "IDLE";
+statename = "idle";
 break;
 
-  case SRUN:
-statename = "RUN";
+  case Srun:
+statename = "run";
 break;
 
-  case SSLEEP:
-statename = "SLEEP";
+  case Ssleep:
+statename = "sleep";
 break;
 
-  case SSTOP:
-statename = "STOP";
+  case Sstop:
+statename = "stop";
 break;
 
 #if !defined(__MacOS__)
 #if !defined(__OpenBSD__)
-  case SWAIT:
-statename = "WAIT";
+  case Swait:
+statename = "wait";
 break;
 
-  case SLOCK:
-statename = "LOCK";
+  case Slock:
+statename = "lock";
 break;
 
 #endif
-  case SZOMB:
-statename = "ZOMB";
+  case Szomb:
+statename = "zomb";
 break;
 
 #endif
 #if defined(__OpenBSD__)
-  case SDEAD:
-statename = "DEAD";
+  case Sdead:
+statename = "dead";
 break;
 
-  case SONPROC:
-statename = "ONPROC";
+  case Sonproc:
+statename = "onproc";
 break;
 #endif
  }
diff --git a/src/ui.c b/src/ui.c
index 380c067..dd16405 100644
--- a/src/ui.c
+++ b/src/ui.c
@@ -1299,7 +1299,7 @@ _ui_system_view_add(Ui *ui)
elm_table_pack(table, button, 0, 0, 1, 1);
 
ui->entry_pid = entry = elm_entry_add(parent);
-   elm_entry_text_style_user_push(entry, "DEFAULT='font=default:style=default 
size=12 align=center'");
+   elm_entry_text_style_user_push(entry, "DEFAULT='align=center'");
evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, 0);
elm_entry_scrollable_set(entry, 0);
@@ -1315,7 +1315,7 @@ _ui_system_view_add(Ui *ui)
elm_table_pack(table, button, 1, 0, 1, 1);
 
ui->entry_uid = entry = elm_entry_add(parent);
-   elm_entry_text_style_user_push(entry, "DEFAULT='font=default:style=default 
size=12 align=center'");
+   elm_entry_text_style_user_push(entry, "DEFAULT='align=center'");
evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, 0);
elm_entry_editable_set(entry, 0);
@@ -1330,7 +1330,7 @@ _ui_system_view_add(Ui *ui)
elm_table_pack(table, button, 2, 0, 1, 1);
 
ui->entry_size = entry = elm_entry_add(parent);
-   elm_entry_text_style_user_push(entry, "DEFAULT='font=default:style=default 
size=12 align=right'");
+   elm_entry_text_style_user_push(entry, "DEFAULT='align=right'");
evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, 0);
elm_entry_scrollable_set(entry, 0);
@@ -1346,7 +1346,7 @@ _ui_system_view_add(Ui *ui)
elm_table_pack(table, button, 3, 0, 1, 1);
 
ui->entry_rss = entry = elm_entry_add(parent);
-   elm_entry_text_style_user_push(entry, "DEFAULT='font=default:style=default 
size=12 align=right'");

[EGIT] [core/efl] master 01/01: Fix cut error in docs

2019-01-17 Thread Xavi Artigas
xartigas pushed a commit to branch master.

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

commit 64a2ef0260148f35dde86215a56fb632a71e1fb9
Author: Xavi Artigas 
Date:   Thu Jan 17 11:49:01 2019 +0100

Fix cut error in docs
---
 src/lib/eina/eina_value.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib/eina/eina_value.h b/src/lib/eina/eina_value.h
index b3a702456e..faca4bfde1 100644
--- a/src/lib/eina/eina_value.h
+++ b/src/lib/eina/eina_value.h
@@ -724,7 +724,7 @@ static inline Eina_Bool eina_value_setup(Eina_Value *value,
  const Eina_Value_Type *type) 
EINA_ARG_NONNULL(1, 2);
 
 /**
- * @brief Creates generic value storage.
+ * @brief Empties a generic value storage.
  *
  * @param[in] value Value object
  *

-- 




[EGIT] [core/efl] master 01/01: elm_panel: fix visibility when switching scrollable mode

2019-01-17 Thread Yeongjong Lee
jaehyun pushed a commit to branch master.

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

commit d44c7713cc60dab461a374961debdab1e7c271d5
Author: Yeongjong Lee 
Date:   Thu Jan 17 17:40:37 2019 +0900

elm_panel: fix visibility when switching scrollable mode

Summary:
There are two proplem when switching scrollable mode.
1. a previous layout does not disappear.
2. internal evas_box(sd->bx) should set on "elm.swallow.content" part.

This patch hide remained previous layout and set evas_box to 
"elm.swallow.content"
part directly.

Thanks to arosis for reporting and sample code.

Test Plan: P262

Reviewers: arosis, eunue, Jaehyun_Cho

Reviewed By: eunue

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7667
---
 src/lib/elementary/elm_panel.c | 11 +++
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/lib/elementary/elm_panel.c b/src/lib/elementary/elm_panel.c
index 204dc2e89a..1265e127ee 100644
--- a/src/lib/elementary/elm_panel.c
+++ b/src/lib/elementary/elm_panel.c
@@ -743,7 +743,7 @@ _elm_panel_content_set(Eo *obj, Elm_Panel_Data *sd, const 
char *part, Evas_Objec
  ERR("elm.swallow.event is being used for panel internally. Don't 
touch this part!");
  return EINA_FALSE;
   }
-if (strcmp(part, "elm.swallow.content") || (content == sd->bx))
+if (strcmp(part, "elm.swallow.content"))
   {
  Eina_Bool int_ret = EINA_TRUE;
  int_ret = efl_content_set(efl_part(efl_super(obj, MY_CLASS), 
part), content);
@@ -856,7 +856,7 @@ _elm_panel_efl_canvas_group_group_add(Eo *obj, 
Elm_Panel_Data *priv)
  CRI("Failed to set layout!");
else
  {
-elm_layout_content_set(obj, "elm.swallow.content", priv->bx);
+efl_content_set(efl_part(efl_super(obj, MY_CLASS), 
"elm.swallow.content"), priv->bx);
 
 if (edje_object_part_exists
 (wd->resize_obj, "elm.swallow.event"))
@@ -1319,8 +1319,10 @@ _elm_panel_scrollable_set(Eo *obj, Elm_Panel_Data *sd, 
Eina_Bool scrollable)
 
if (scrollable)
  {
-elm_layout_content_unset(obj, "elm.swallow.content");
+efl_content_unset(efl_part(efl_super(obj, MY_CLASS), 
"elm.swallow.content"));
 
+//Hide previous resize object
+evas_object_hide(sd->panel_edje);
 elm_widget_resize_object_set(obj, NULL);
 elm_widget_sub_object_add(obj, sd->panel_edje);
 
@@ -1434,8 +1436,9 @@ _elm_panel_scrollable_set(Eo *obj, Elm_Panel_Data *sd, 
Eina_Bool scrollable)
 
 elm_widget_resize_object_set(obj, sd->panel_edje);
 
+evas_object_hide(sd->scr_ly);
 elm_layout_content_unset(sd->scr_ly, "elm.swallow.content");
-elm_layout_content_set(obj, "elm.swallow.content", sd->bx);
+efl_content_set(efl_part(efl_super(obj, MY_CLASS), 
"elm.swallow.content"), sd->bx);
 if (sd->content) elm_widget_sub_object_add(obj, sd->content);
  }
 }

--