platform/upstream/efl.git
5 years agoMark BETA classes individually
Wonki Kim [Thu, 7 Mar 2019 12:10:28 +0000 (21:10 +0900)]
Mark BETA classes individually

Summary:
Instead of surrounding all the #include "*.eo.h" lines in Efl.h
with #ifdef EFL_BETA_API_SUPPORT, include these files unconditionally, but mark
all classes as @beta in the eo files.
This will allow taking them out of beta one by one as we deem them stable enough.
Otherwise, the current procedure involves moving the #include line out of the
ifdef block, which is cumbersome and messes include order.

Depends on D7950
Fixes T7692

Test Plan: Nothing changes

Reviewers: zmike, bu5hm4n, cedric

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7692

Differential Revision: https://phab.enlightenment.org/D7951

Change-Id: Ifc2ccd97807c33e2e4927c38c14d494567d3bbca

5 years agoMark EFL_MAIN and EFL_MAIN_EX macros as stable
Xavi Artigas [Thu, 14 Feb 2019 16:09:23 +0000 (17:09 +0100)]
Mark EFL_MAIN and EFL_MAIN_EX macros as stable

They no longer require EFL_BETA_API_SUPPORT to be defined.

5 years agoMark efl_types.eot as stable
Xavi Artigas [Thu, 14 Feb 2019 15:11:32 +0000 (16:11 +0100)]
Mark efl_types.eot as stable

Summary:
This allows using Efl_Version without EFL_BETA_API_SUPPORT, which in turn
allows failing when trying to use restricted BETA API with a more meaningful
error message.
The error will now tell you which restricted API you are trying to use, instead
of Efl_Version symbol not found.

Fixes T7696
Depends on D7932

Test Plan:
make && make check && make examples continue working.
Building a BETA example while removing the EFL_BETA_API_SUPPORT define should
tell you which BETA API you tried to use.

Reviewers: zmike, bu5hm4n, cedric

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7696

Differential Revision: https://phab.enlightenment.org/D7948

5 years agoeo: declare Eo stable
Marcel Hollerbach [Thu, 14 Feb 2019 14:24:45 +0000 (15:24 +0100)]
eo: declare Eo stable

Summary:
This declares the main part of Eo.h as stable, except the domain api for
now. We don't have a user of that API for now, nor do we have bindings
supporting threads, lets wait with this bit until we have bindings for
this, so we can test it.

Further more, this does not stabilize the composition API of
efl_object.eo.h, reason for this is, that we might want to overthink the
solution we have with events, as we might want to forward events per
default.
Depends on D7931

Reviewers: stefan_schmidt, cedric, zmike, segfaultxavi

Reviewed By: cedric

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7932

5 years agodocs: Typo
Xavi Artigas [Thu, 14 Feb 2019 14:22:01 +0000 (15:22 +0100)]
docs: Typo

5 years agoEfl.Gfx.Stack: Rename raise and lower
Xavi Artigas [Thu, 14 Feb 2019 13:57:22 +0000 (08:57 -0500)]
Efl.Gfx.Stack: Rename raise and lower

Summary:
to move_to_top and move_to_bottom since the previous names seemed to indicate
that the object only moved one step instead of all the way through the top
or the bottom of the stack.

Ref T7560

Test Plan: make && make check && make examples work as before

Reviewers: cedric, zmike

Reviewed By: zmike

Subscribers: kimcinoo, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7560

Differential Revision: https://phab.enlightenment.org/D7934

5 years agodocs: Clarify docs for Efl.Screen.
Xavi Artigas [Thu, 14 Feb 2019 12:20:28 +0000 (13:20 +0100)]
docs: Clarify docs for Efl.Screen.

5 years agobuild: enable eolian_gen bootstrapping for cross compile
Marcel Hollerbach [Wed, 13 Feb 2019 12:48:24 +0000 (13:48 +0100)]
build: enable eolian_gen bootstrapping for cross compile

this enables travis to build eolian_gen before cross compiling in mingw.
This is done in order to make eolian_gen patches easier on CI.

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D7930

5 years agobuild: add a option to bootstrap eolian
Marcel Hollerbach [Wed, 13 Feb 2019 12:42:55 +0000 (13:42 +0100)]
build: add a option to bootstrap eolian

this is here in order to make cross compiling easier, and we can just
provide the *all the time changing* eolian_gen binary.

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D7929

5 years agobuild: fix autotools release tarbal generation
Marcel Hollerbach [Wed, 13 Feb 2019 11:36:12 +0000 (12:36 +0100)]
build: fix autotools release tarbal generation

this file was forgotten when initially writing this patch.

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D7928

5 years agotests: guard eina bool variable to avoid compilation failure on windows
Stefan Schmidt [Thu, 14 Feb 2019 09:40:13 +0000 (10:40 +0100)]
tests: guard eina bool variable to avoid compilation failure on windows

The timeout_reached bool is only used in this function when HAVE_FORK is
available. This is not the case on windows. Eina.h would only be
included with fork available so the Eina_Bool type causes a compilation
fail on windows. Guarding them as the other parts of the function using
it solves the problem.

Reviewed-by: Vincent Torri <vincent.torri@gmail.com>
Differential Revision: https://phab.enlightenment.org/D7947

5 years agoecore wl2 - remove pointless sntrcpys causing warnings
Carsten Haitzler (Rasterman) [Thu, 14 Feb 2019 09:31:02 +0000 (09:31 +0000)]
ecore wl2 - remove pointless sntrcpys causing warnings

again pointless:

strcpy(dest, x); -> len - strlen(x); strncpy(dest, x, len);

code put in causing new warnings. this kind of "get rid of strcpy" is
actua;;y dangerous as it's more likely a mistake is made along the way
and bugs are added. strcpy's  should be reviewed and if ok - left
as-is. doing otherwise makes the code worse, not better and raises
risk. it now also produces warnings at compile time which creates
noise we just shouldnt' have.

5 years agoefl_page_transition_scroll: avoid explicit null dereference
Jaeun Choi [Wed, 13 Feb 2019 12:22:59 +0000 (21:22 +0900)]
efl_page_transition_scroll: avoid explicit null dereference

5 years agoefl_pack: move layout,updated event to Efl.Pack_Layout
Yeongjong Lee [Thu, 14 Feb 2019 03:57:13 +0000 (12:57 +0900)]
efl_pack: move layout,updated event to Efl.Pack_Layout

Summary:
'layout,updated' event is more suitable for Efl.Pack_Layout which have
layout_update method.

Test Plan: make

Reviewers: segfaultxavi, cedric, Jaehyun_Cho

Reviewed By: segfaultxavi, Jaehyun_Cho

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7906

5 years agoeolian: allow tagging complete classes as BETA
Xavi Artigas [Wed, 13 Feb 2019 17:12:59 +0000 (18:12 +0100)]
eolian: allow tagging complete classes as BETA

Summary:
This allows using the @beta tag in classes, like this:
class @beta Efl.Foo extends Efl.Bar { ... }

This will surround the class definition in the .eo.h file with an
EFL_BETA_API_SUPPORT #define, equivalent to tag every method and
event with @beta.

Test Plan: Nothing changes since no class uses this tag yet

Reviewers: q66, bu5hm4n, zmike

Reviewed By: q66

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7933

5 years agoRemove individual class BETA guards
Xavi Artigas [Wed, 13 Feb 2019 10:58:33 +0000 (11:58 +0100)]
Remove individual class BETA guards

Summary:
Eolian adds a per-class BETA guard (like EFL_UI_WIN_BETA) to any method tagged
as @beta. This means that any app (and the EFL code) wanting to use BETA features
has to enable them class by class, which is cumbersome.
This commit replaces the individual guards with the global EFL_BETA_API_SUPPORT
guard, so apps only need to define one symbol to access BETA features.

Any usage of the per-class guards has been removed from the EFL code and examples.
When building EFL the global guard is defined by configure, so all EFL methods
already have access to BETA API.
Efl_Core.h and Efl_Ui.h no longer define EFL_BETA_API_SUPPORT. Apps wanting to
use BETA API have to define this symbol before including any EFL header
(It has been added to the examples requiring it).

Test Plan:
make && make check && make examples still work, but there's a lot less #defines
in the code

Reviewers: zmike, bu5hm4n, q66

Reviewed By: q66

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T6788

Differential Revision: https://phab.enlightenment.org/D7924

5 years agoecore-x: only modify _ecore_key_grabs when key is toggled
Thierry [Wed, 13 Feb 2019 16:28:01 +0000 (11:28 -0500)]
ecore-x: only modify _ecore_key_grabs when key is toggled

A New entry is added to _ecore_key_grabs even when no key was grabbed.

Summary:  The key grab and ungrab functions should return which keycode was used. Proposed by pascal@ordissimo.com

Reviewers: zmike

Reviewed By: zmike

Subscribers: zmike, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7923

5 years agoeo: remove class functions from eo
Marcel Hollerbach [Sun, 10 Feb 2019 15:57:00 +0000 (16:57 +0100)]
eo: remove class functions from eo

As in the previous commit explained, we want to get rid of class
functions in eo, and make them just c functions right away.

This commit removes the class parameter from the eo_class_function_set
call, and adjusts the tests to not depend on class functions anymore.
Class functions are now not tested anymore, tests that used them as a
way to test *things* are adjusted to test them now with object
functions, tests that just tested the working of class functions are
dropped.

This fixes T7675.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D7902

5 years agoTODO: squash into 'eolian_gen: fix generation of ...'
Wonki Kim [Thu, 7 Mar 2019 12:10:36 +0000 (21:10 +0900)]
TODO: squash into 'eolian_gen: fix generation of ...'

Change-Id: Ic2052fdce5e1fc5c6d153170153cd3d04dfdcf89

5 years agoeolian_gen: fix generation of legacy class functions
Marcel Hollerbach [Wed, 27 Feb 2019 09:04:56 +0000 (10:04 +0100)]
eolian_gen: fix generation of legacy class functions

we forgot to generate the legacy function. This no now added back.

ref D8029

Reviewed-by: YeongJong Lee <yj34.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D8037

5 years agoeolian: drop class function overriding
Wonki Kim [Thu, 7 Mar 2019 11:36:26 +0000 (20:36 +0900)]
eolian: drop class function overriding

Until this commit eo did class functions as part of the vtable, which
enabled those functions to be overwritten in classes inheriting another
class. However in task T7675 we decided that this is not really good for
bindings, as most OOP languages do not support this sort of feature.

After this commit eolian realizes class function completly outside of
the vtable, the c-symbol that is the class funciton is now just directly
redirecting to a implementation, without the involvement of the vtable.

This also means a change to the syntax created by eo:

Calling before:
  class_function(CLASS_A);
Calling after:
   class_function();

Implementation before:
   class_function(const Eo *obj, void *pd) { ... }
Implementation after:
   class_function(void) { ... }

This fixes T7675.

Co-authored-by: lauromauro <lauromoura@expertisesolutions.com.br>
Reviewed-by: Daniel Kolesa <daniel@octaforge.org>
Differential Revision: https://phab.enlightenment.org/D7901

Change-Id: Id02dd1780b5b0e613af1ae353b36752a5941a948

5 years agoTODO: squash into `efl_input: remove the API of efl_input_instance_get`
Wonki Kim [Thu, 7 Mar 2019 12:21:25 +0000 (21:21 +0900)]
TODO: squash into `efl_input: remove the API of efl_input_instance_get`

Change-Id: Iea41ea73b49af3f6a16633b040f689f47813594b

5 years agoefl_input: remove the API of efl_input_instance_get
Marcel Hollerbach [Sat, 9 Feb 2019 18:08:45 +0000 (19:08 +0100)]
efl_input: remove the API of efl_input_instance_get

there is basically no reason for this API. You can only use the API when
you know the class, when you know the class you can also just know the
function to call to get this API.
The reason this API needs to go is that we don't want to use
polymorphism on class-functions.

ref T7675

Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D7900

5 years agoRevert this as it should not have been pushed yet
Christopher Michael [Wed, 13 Feb 2019 15:01:22 +0000 (10:01 -0500)]
Revert this as it should not have been pushed yet

Revert "ecore_main: Add ECORE_FD_ALWAYS flag"

This reverts commit b5e90ebe0d49edc405e9a5ab60b3c1e7ea65a5fa.

5 years agoecore_main: Add ECORE_FD_ALWAYS flag
Derek Foreman [Tue, 12 Feb 2019 18:51:02 +0000 (13:51 -0500)]
ecore_main: Add ECORE_FD_ALWAYS flag

Summary:
This allows an fd handler to be called after select exits unconditionally.

Our wayland client code needs this to be thread safe, as it needs to
call prepare_read before entering select, and then either read or
cancel_read after select.

Reviewers: cedric

Reviewed By: cedric

Subscribers: zmike, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7914

5 years agoui.box: implement homogeneous mode
Yeongjong Lee [Wed, 13 Feb 2019 13:39:20 +0000 (08:39 -0500)]
ui.box: implement homogeneous mode

Summary:
On homogeneous mode, children are of the same weight and of the same min size
which is determined by maximum min size of children.

Depends on D7750

Reviewers: Jaehyun_Cho, zmike, jpeg

Reviewed By: zmike

Subscribers: segfaultxavi, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7889

5 years agotest/ui_box: add unittest for Efl.Ui.Box
Yeongjong Lee [Wed, 13 Feb 2019 13:39:07 +0000 (08:39 -0500)]
test/ui_box: add unittest for Efl.Ui.Box

Summary:
Testcase
{F3613173}
{F3613174}

ref T5487
Depends on D7750

Test Plan: make check

Reviewers: jpeg, barbieri, Jaehyun_Cho, zmike

Reviewed By: zmike

Subscribers: zmike, cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T5487

Differential Revision: https://phab.enlightenment.org/D7463

5 years agoui.box: refactor layout_update
Yeongjong Lee [Wed, 13 Feb 2019 13:38:58 +0000 (08:38 -0500)]
ui.box: refactor layout_update

Summary:
Current layout_update doesn't consider max hint priority. for example, if it
has hint_max, the size is hint_max value regardless of weight or fill.
moreover, if it has hint_aspect with hint_max, hint_min can be ignored.
(test that aspect(1,3) max(50,150), min(70, 70) then, size has (50, 150))
It seems that hint_max is considered as high priority. however, if hint_min
greater than hint_max, hint_max is ignored.

In order to resolve the hint priority conflict, this refactoring supports
following hint priority.
1) HintMin
2) HintMin + HintAspect
3) HintMargin
4) HintMax
5) HintAspect
6) HintWeight, HintFill
7) HintAlign

ref T5487

Specific unit test is D7463

Test Plan:
make check
elementary_test -to 'efl.ui.box'

Reviewers: jpeg, Jaehyun_Cho, zmike

Reviewed By: zmike

Subscribers: segfaultxavi, zmike, cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T5487

Differential Revision: https://phab.enlightenment.org/D7750

5 years agoefl_ui_pager: change data type
Jaeun Choi [Wed, 13 Feb 2019 11:36:55 +0000 (20:36 +0900)]
efl_ui_pager: change data type

5 years agomono examples: Fix after removing init method
Xavi Artigas [Wed, 13 Feb 2019 10:31:31 +0000 (11:31 +0100)]
mono examples: Fix after removing init method

This was preventing "make examples" from working.

5 years agoevas_image: fix pixels_dirty_set(False) makes wrong object-change-list.
Jiyoun Park [Wed, 13 Feb 2019 02:16:16 +0000 (11:16 +0900)]
evas_image: fix pixels_dirty_set(False) makes wrong object-change-list.

Summary:
evas_object_image_pixels_dirty_set(img B, False) means
1. app want to mark image object's data is not dirty anymore
2. app don't want to be called get_pixels callback.

that does not mean image need to be redraw.

evas_object_image_pixels_dirty_set(img B, True) means
1. image object's data is dirty, so image object need to be redraw.
2. app want to be called get_pixels callback.

but pixels_dirty_set(img B, FALSE) function also set o->changed to true,
it cause problem related with rendering

Below case is the example of problem.

1. Smart object A
2. Child image object B
3. app call pixels_dirty_set(FALSE) inside pixels_get_callback
   pixels_get_callback is called inside the image object B's rendering.

enlightenment's e_comp_object_render do upper job.

After adding preload fetch,
evas_object_image_render_post can call evas_object_change.

https://phab.enlightenment.org/D7157

evas_render_updates_internal

0. enlightenment call evas_object_image_pixels_dirty_set(img B, TRUE)
   o->changed = 1;
   evas_object_change(img B)
1. smart obj A is in render_objects
2. evas_object_image_render_pre B, o->change=0
3. evas_render_mapped (Smart A)
     3-1. evas_render_mapped (img B)
         : enlightenment call evas_object_image_pixels_dirty_set(img B, False)
         : o->changed=1

     3-2. evas_object_change_reset(img B)
4. pending_change(img B)
     4-1. evas_object_image_render_post(img B)
          o->changed=1 (3-1 step) evas_object_change(img B)->evas_object_change(Smart A)

5. render_post_reset
   smart A is chaged(4-1 step), so, called   evas_object_change_reset(Smart A)
   ###smart A is reset(5 step), img B is changed(4-1 step). after this case,
    img B never get change to be redraw.

Reviewers: Hermet, cedric, zmike, ManMower

Reviewed By: Hermet

Subscribers: zmike, ManMower, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7821

5 years agoRevert "Revert command line array object because it's broken by design"
Marcel Hollerbach [Tue, 12 Feb 2019 20:34:30 +0000 (21:34 +0100)]
Revert "Revert command line array object because it's broken by design"

This reverts commit a57c7f751023fe1d1edeabbf8683574ac7497e5e.

I pretty much hate to just revert your revert, but you failed to read my
replies, and failed to understand what i was talking about.

And YES we talked at fosdem about the platform issue, and do you
remember my answer, that back in time this might be the case, today is
different freebsd suppoerts setenv, and for windows we have a setenv
implementation in evil. And yes, vtorri also created a issue how bad and
evil this commit is, however, i still fail to see the issue since setenv
unsetenv and clearenv usages are taken as needed. (T7693)

The ownership question is answered in
https://phab.enlightenment.org/D7516#137367.

Can we please get into a state of technical discussions, and not *oh
shit, i am going to revert this* this has been in review for a long
time, a lots of people have tested it, we discussed things on it, and
there was 3 weeks of no reply from you.

The issues that exist will be dealed with. Feel free to create tasks if
you want :)

5 years agoRevert "Revert the env object because it's broken portability - please redo"
Marcel Hollerbach [Tue, 12 Feb 2019 20:34:27 +0000 (21:34 +0100)]
Revert "Revert the env object because it's broken portability - please redo"

This reverts commit d6294fa22b88187e44391c1c8ca64b1ebdf14533.

5 years agoRevert the env object because it's broken portability - please redo
Carsten Haitzler (Rasterman) [Tue, 12 Feb 2019 20:11:44 +0000 (20:11 +0000)]
Revert the env object because it's broken portability - please redo

setenv and unsetenv are not portable. i explained to you at fosdem
there are issues and it's why i used putenv in the original
implementation and even though it's a pain (the string tou pass to
putenv is a pointer used literallt from there on in and you get it
from getenv, thus making ownership a pain -this is a libc issue we
can't readily solve). use putenv like the original code. then put it
back in. vtorri now has windows porting issues with the setenv use. i
knew there was a reason that still existed...

in addition your in_sync stuff is broken.  psuedocode:

// assuming BLAGH env is not set to anything here
c = efl_core_env_get(global_env, "BLAH");
...
putenv("BLAH=10");
...
c = efl_core_env_Get(global_env, "BLAH");

i will get NULL in both cases for c ... but i should get "10" for the
2nd in reality. reality is lots of code across application code and
libraries will at times mess with the environment. it has to work with
this. the prior implementation did work with this.

Revert "ecore: here comes a env object"
  This reverts commit 2373d5db5b4cd5dfe139aa2a10017ef61b28b5ce.

Revert "efl_task: remove env from this object"
  This reverts commit c3d69f66a69c0def357a5c373a13343e1c01ff5d.

5 years agoRevert command line array object because it's broken by design
Carsten Haitzler (Rasterman) [Tue, 12 Feb 2019 19:54:22 +0000 (19:54 +0000)]
Revert command line array object because it's broken by design

Revert "ecore: get rid of commands in efl_task."
  This reverts commit 616381e9cfed41b83fef039b0e38c09b41fd3d7f.
Revert "ecore: here comes a command line object"
  This reverts commit 48e5684b3c37b337edd7004e68fc0690b58a84e6.

1. this is broken:

EOLIAN static const char*
_efl_core_command_line_command_get(const Eo *obj EINA_UNUSED, Efl_Core_Command_Line_Data *pd)
{
   return eina_strdup(pd->string_command);
}

it returns a const char * BUT it duplicates it on return. no. a big
fat honking NO. return a char * or don't duplicate. pick.

2. _efl_core_command_line_command_array_set() is broken by design. it
accepts an array of strings, but the strings are owned by the caller
who creates the array (requiring they free them up themselves after
this call) but the array becomes owned by the callee. the code here frees the
incoming array but doesn't care about the string content of it. it's
leak heaven waiting to happen (or bugs when someone wants to access
the array they create to walk it to free the strings they put into it
after it is set).

i brought this up and it was dismissed. now exactly he issue i brought
up is there with mixed ownership and the added complexity as well as
transfer of some ownership but not others.

go back and think about this so it isn't broken by design.

5 years agobuild: also build eo-tests with debug profile
Marcel Hollerbach [Mon, 11 Feb 2019 16:34:16 +0000 (17:34 +0100)]
build: also build eo-tests with debug profile

this checks that eo-dbg is also working in the same manner as normal eo

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D7911

5 years agoefl_ui_focus: delete elements on invalidate
Marcel Hollerbach [Sun, 13 Jan 2019 12:03:04 +0000 (13:03 +0100)]
efl_ui_focus: delete elements on invalidate

this lead to ERR's. A element is invalidated while the composition
element is invalidated, which means, not yet deleted, but the Pointer
will fail a call to efl_isa.

Differential Revision: https://phab.enlightenment.org/D7623

5 years agoeo: efl_isa with a EFL_OVERRIDE_CLASS should return true
Marcel Hollerbach [Mon, 11 Feb 2019 18:21:02 +0000 (19:21 +0100)]
eo: efl_isa with a EFL_OVERRIDE_CLASS should return true

this is important, as basically every single class etc. can be a
EFL_OVERRIDE_CLASS. This makes efl_override work with eo_debug.

Differential Revision: https://phab.enlightenment.org/D7910

5 years agoeo: the object size changes for the eo_debug profile
Marcel Hollerbach [Mon, 11 Feb 2019 18:20:45 +0000 (19:20 +0100)]
eo: the object size changes for the eo_debug profile

Differential Revision: https://phab.enlightenment.org/D7909

5 years agoeo: fix typo
Marcel Hollerbach [Mon, 11 Feb 2019 17:07:15 +0000 (18:07 +0100)]
eo: fix typo

this while loop is actaully iterating obj->xref, therefore we should not
take the pointer of data_xrefs.

Differential Revision: https://phab.enlightenment.org/D7908

5 years agoecore: get rid of commands in efl_task.
Marcel Hollerbach [Wed, 26 Dec 2018 16:51:17 +0000 (17:51 +0100)]
ecore: get rid of commands in efl_task.

Note that the usage in efl_thread.c should and could be removed.
the problem with its usage is that when the ARGUMENTS event is fired,
noone ever had the chance to subscribe to the loop of the thread yet. So
all in all this is unneccessary, since noone could ever touch that.

Differential Revision: https://phab.enlightenment.org/D7517

5 years agoecore: here comes a command line object
Marcel Hollerbach [Wed, 26 Dec 2018 14:31:57 +0000 (15:31 +0100)]
ecore: here comes a command line object

the mixin for now can carry a command, which can be setted as an string.
The string is then parsed again, this is done in order to make sure that
everything that needs escaping really is escaped or parsed correctly.

Differential Revision: https://phab.enlightenment.org/D7516

5 years agoefl_task: remove env from this object
Marcel Hollerbach [Wed, 26 Dec 2018 10:38:04 +0000 (11:38 +0100)]
efl_task: remove env from this object

the env operations are moved to the efl.core.env objects, which can be
used there.

Differential Revision: https://phab.enlightenment.org/D7514

5 years agoecore: here comes a env object
Marcel Hollerbach [Tue, 25 Dec 2018 15:57:21 +0000 (16:57 +0100)]
ecore: here comes a env object

the env object can be used to alter and edit the content of environment
variables. Additionally, the class efl.core.env can be used to to setup
a not applied set of environment variables, which then can be applied
later (in the future) to set it directly to a spawned process for
example, or as a general key/data storage. A efl.core.env object can
also be forked off, which makes it easy to customize predefined objects.

ref T7514

Differential Revision: https://phab.enlightenment.org/D7510

5 years agoefl_ui_format: fix to display %% and unknown format element
Jaehyun Cho [Fri, 1 Feb 2019 08:13:39 +0000 (08:13 +0000)]
efl_ui_format: fix to display %% and unknown format element

This fixes 2 things as follows.

1. Displays format string "%%" as "%".
   Like printf does, "%%" is displayed as "%".

2. Displays unknown format element as it is.
   In format string "(50%)", ")" is an unknown format element.
   Although format string has unknown format element, the format string
   is displayed like printf does.

The cause of the issue displaying "0%" which was mentioned on
a96933f964b1757b9d9f8a4cce14d883f35a6665 is as follows.

The default format string of progressbar is set as "%.0f%%".
Therefore, if progressbar's format string is not set, then "%" postfix
is always displayed.

This commit reverts commit a96933f964b1757b9d9f8a4cce14d883f35a6665.
This commit restores commit b4112b9735ce75bce95974a257aa1880fa52a6bf.
This commit restores commit be770d37fb05b8486907796dd16f4635bceb4ce1.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D7856

5 years agoelm_progressbar test: Add test for custom format strings to show when %% is not escap...
Stephen 'Okra' Houston [Thu, 24 Jan 2019 04:02:54 +0000 (04:02 +0000)]
elm_progressbar test: Add test for custom format strings to show when %% is not escaped correctly.

This adds a test that sets a custom progressbar format string that includes a custom percent (%%) that should be escaped to just one percent (%).  This case has been broken and fixed many times and is broken again so it makes sense to now add a check for it to try and prevent the continual breakage.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D7745

5 years agoedje: apply maps to textblock cursors and backgrounds
Mike Blumenkrantz [Wed, 16 Jan 2019 20:02:43 +0000 (15:02 -0500)]
edje: apply maps to textblock cursors and backgrounds

when a map is applied to an edje part, it is expected that all components of
the part respect the map attributes. this requires that, in the case of
textblock parts, all the sub-parts which are internal to the textblock
(entry) object also go through the map populate and apply codepaths

fix T4977
@fix

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D7648

5 years agoevas_object_smart: Speed up some cache invalidation calls
Derek Foreman [Mon, 11 Feb 2019 19:13:33 +0000 (14:13 -0500)]
evas_object_smart: Speed up some cache invalidation calls

Summary:
A large number of cache invalidation calls are doing pointer
indirection that is completely avoidable.
Depends on D7852

Reviewers: devilhorns, cedric

Reviewed By: devilhorns, cedric

Subscribers: devilhorns, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7853

5 years agoefl_ui : rename model connect and factory connect to bind property and factory.
SangHyeon Jade Lee [Thu, 31 Jan 2019 11:59:19 +0000 (11:59 +0000)]
efl_ui : rename model connect and factory connect to bind property and factory.

As we discussed in T7469 with V40,

efl_ui_model_connect
efl_ui_factory_model_connect

need to be renamed to

efl_ui_bind_property
efl_ui_bind_factory

for this work,
Efl.Ui.Model.Connect interface is changed as Efl.Ui.Bind,
and bind_property and bind_factory both method is supported by this interface.

bind_factory need Efl.Ui.Factory,
and Efl.Ui.Factory inheritted Efl.Ui.Bind,
so I little bit concerned about circular referencing, but so far, it works well.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D7529

5 years agoefl-csharp: Fix self in iface concrete functions
Lauro Moura [Mon, 11 Feb 2019 18:53:29 +0000 (16:53 -0200)]
efl-csharp: Fix self in iface concrete functions

Summary:
It was mistakenly being called as static functions.

Fixes T7619

Test Plan: See attached testcase.

Reviewers: segfaultxavi, bu5hm4n, vitor.sousa

Reviewed By: vitor.sousa

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7619

Differential Revision: https://phab.enlightenment.org/D7904

5 years agodocs: Add custom DocFX templates
Xavi Artigas [Wed, 30 Jan 2019 18:20:43 +0000 (19:20 +0100)]
docs: Add custom DocFX templates

Summary:
These templates add the following features:
- Collapsible sections for simpler reading
- Full class names in ancestors list
  (Could not make it work for descendants)
- Removed duplicated Implements section
- Removed huge Inherited Members section
- Extended maximum number of hierarchy levels from 5 to 10
  (because our hierarchy is really that big)

Test Plan:
Follow the doc/docfx README to generate the HTML pages and enjoy the improved
and slightly-more-usable docs.

Reviewers: lauromoura, bu5hm4n, zmike, cedric

Reviewed By: lauromoura

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7832

5 years agodocs: Update efl_object lifecycle docs
Xavi Artigas [Mon, 11 Feb 2019 13:00:04 +0000 (14:00 +0100)]
docs: Update efl_object lifecycle docs

Summary:
Explained the different phases, added method refs and removed outdated links.
Ref T7557

Reviewers: zmike, bu5hm4n

Reviewed By: bu5hm4n

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7557

Differential Revision: https://phab.enlightenment.org/D7903

5 years agoefl_gfx_color_class: make this a mixin and move color_class_code here
Mike Blumenkrantz [Mon, 11 Feb 2019 11:11:39 +0000 (12:11 +0100)]
efl_gfx_color_class: make this a mixin and move color_class_code here

Summary:
color_class_code seems to only have been added to efl_gfx_color in order to
share the hex conversion code, but this is trivial to do when it's in another
class and makes the api more sensible

ref T7559

Reviewers: segfaultxavi, bu5hm4n, cedric

Reviewed By: segfaultxavi

Subscribers: #reviewers, #committers

Tags: #efl_api

Maniphest Tasks: T7559

Differential Revision: https://phab.enlightenment.org/D7898

5 years agocanvas vg: prevent vector rendering corruption. 64/201064/1
Hermet Park [Thu, 7 Mar 2019 12:27:51 +0000 (21:27 +0900)]
canvas vg: prevent vector rendering corruption.

It may occur some threading corruption, since ector raster uses thread
internally. Unfortunately the issue is rarely occured, hardly catch
the exact point. But I guess this ector drawing range may be the root cause.
Commented out them as it did before, until we could make the issue sure.

Change-Id: Ie53b9d2ddf57fbb9da770e595f421e7a03dcc9be

5 years agoevas/vg: Adapt to the recent change in lottie api. 19/201019/2
subhransu mohanty [Thu, 7 Mar 2019 07:01:29 +0000 (16:01 +0900)]
evas/vg: Adapt to the recent change in lottie api.

Change-Id: Ia416bd4b50a27d02a88aa3b12083fa8a6f1cc9c9

5 years agoscrollable: fix page snap behavior. 13/200213/2
Hosang Kim [Tue, 19 Feb 2019 02:11:52 +0000 (11:11 +0900)]
scrollable: fix page snap behavior.

Sometimes page snap feature is not working.
Because there are two points to calculate the location of the current page.

@tizen_only
Change-Id: I5993d6c9d3b613fc095b6a1d4233d496d443f464

5 years agoecore_wl2: revert upstream patch. 36/200936/1
Hosang Kim [Wed, 6 Mar 2019 08:36:22 +0000 (17:36 +0900)]
ecore_wl2: revert upstream patch.

Tizen's enlightenment does not use multiplied value.

@tizen_only

Change-Id: I05788e26aa47eea307b7a5270bf5e35e30f14e90

5 years agoefl_ui_scroller: add dragging scrollbar feature 21/200921/2
Hosang Kim [Wed, 6 Mar 2019 04:30:25 +0000 (13:30 +0900)]
efl_ui_scroller: add dragging scrollbar feature

@tizen_only

Change-Id: I7bd6727222982320e4bb71f97099fe806aca5949

5 years agoevas map: ++safety anti-aliasing processing. 70/200870/1
Hermet Park [Tue, 5 Mar 2019 08:11:20 +0000 (17:11 +0900)]
evas map: ++safety anti-aliasing processing.

there was a potential case that overflow range.
here it kicks it out.

Change-Id: I43736457ee8c4278dbf2e9909d5dd7190f3aa11f

5 years agoevas map: fix wrong range in anti-aliasing processing. 21/200821/1
Hermet Park [Mon, 4 Mar 2019 11:35:31 +0000 (20:35 +0900)]
evas map: fix wrong range in anti-aliasing processing.

alpha value must be in 0 - 255.

Change-Id: Id152cdb4cb7b9beec99f949176bd3cb586ab1552

5 years agoevas map: fine-tune a case by anti-aliasing quality. 97/200797/1
Hermet Park [Mon, 4 Mar 2019 10:22:16 +0000 (19:22 +0900)]
evas map: fine-tune a case by anti-aliasing quality.

Change-Id: Ib2cf71f83a318bae53413d2425f55088f1e8ee8e

5 years agoeio: fix not to overflow data by performing arithmetic. 25/200625/1 accepted/tizen/unified/20190228.083550 submit/tizen/20190227.121232
Hermet Park [Wed, 27 Feb 2019 10:20:29 +0000 (19:20 +0900)]
eio: fix not to overflow data by performing arithmetic.

Change-Id: Id64560d2ac31b1b5b6dde0f520a5283fc37cfe1f

5 years agoevas vg: don't access a dangling pointer. 24/200624/1
Hermet Park [Wed, 27 Feb 2019 10:13:18 +0000 (19:13 +0900)]
evas vg: don't access a dangling pointer.

Change-Id: Iecac959e42257f7ba45444e3de4c7af5d7034afa

5 years agoevas vg: fix correct increment for tflags 20/200620/1
Yeongjong Lee [Thu, 21 Feb 2019 05:17:18 +0000 (14:17 +0900)]
evas vg: fix correct increment for tflags

Summary:
There is warning.

```
lib/evas/vg/evas_vg_cache.c: In function â€˜_vg_file_save’:
lib/evas/vg/evas_vg_cache.c:185:30: warning: pointer of type â€˜void *’ used in arithmetic [-Wpointer-arith]
         tflags = alloca(len) + 1;
```
Previous code of a8d5f275c78 is intended to increase flags length.

Reviewers: Hermet

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7972

Change-Id: I3c107dac3bbdf7863d42cf1abc2826bc02d1ed34

5 years agogengrid: fix wrong condition on next item search 19/200619/2
SangHyeon Jade Lee [Wed, 27 Feb 2019 09:56:25 +0000 (18:56 +0900)]
gengrid: fix wrong condition on next item search

Change-Id: I81b157092eb028d5bb27a4c01f34d20db3c31dcf
Signed-off-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
5 years agoRevert "evas_map: fix rendering bug 'mapped smart parent'+'image_object_update_add'" 15/200515/2
Shinwoo Kim [Tue, 26 Feb 2019 05:43:10 +0000 (14:43 +0900)]
Revert "evas_map: fix rendering bug 'mapped smart parent'+'image_object_update_add'"

This reverts commit 23de6660338021abb596bebd807b5e3889551748.

to fix auto scroll FPS issue.
You can check this on elm-demo-tizen-tv > Performance menu.
For more information please contact sungguk.na@samsung.com

Change-Id: I64983527ae5ce9439ee6bfaacf901027cefda2a3

5 years agoefl_access: Add class check for using access_parent_set 71/200371/3
JunsuChoi [Fri, 22 Feb 2019 08:49:05 +0000 (17:49 +0900)]
efl_access: Add class check for using access_parent_set

[dlog]
E/EFL     (  790): eo<790> lib/eo/eo.c:569 _efl_object_call_resolve() in lib/elementary/efl_access_object.eo.c:50: func 'efl_access_object_access_parent_set' (464) could not be resolved for class 'Efl.Canvas.Layout'.
E/EFL     (  790): eo<790> lib/eo/eo.c:569 _efl_object_call_resolve() in lib/elementary/efl_access_object.eo.c:50: func 'efl_access_object_access_parent_set' (464) could not be resolved for class 'Efl.Canvas.Layout'.
E/EFL     (  790): eo<790> lib/eo/eo.c:569 _efl_object_call_resolve() in lib/elementary/efl_access_object.eo.c:50: func 'efl_access_object_access_parent_set' (464) could not be resolved for class 'Efl.Canvas.Rectangle'.
E/EFL     (  790): eo<790> lib/eo/eo.c:569 _efl_object_call_resolve() in lib/elementary/efl_access_object.eo.c:50: func 'efl_access_object_access_parent_set' (464) could not be resolved for class 'Efl.Canvas.Layout'.
E/EFL     (  790): eo<790> lib/eo/eo.c:569 _efl_object_call_resolve() in lib/elementary/efl_access_object.eo.c:50: func 'efl_access_object_access_parent_set' (464) could not be resolved for class 'Efl.Canvas.Rectangle'.
E/EFL     (  790): eo<790> lib/eo/eo.c:569 _efl_object_call_resolve() in lib/elementary/efl_access_object.eo.c:50: func 'efl_access_object_access_parent_set' (464) could not be resolved for class 'Efl.Canvas.Layout'.
E/EFL     (  790): eo<790> lib/eo/eo.c:569 _efl_object_call_resolve() in lib/elementary/efl_access_object.eo.c:50: func 'efl_access_object_access_parent_set' (464) could not be resolved for class 'Efl.Canvas.Rectangle'.
E/EFL     (  790): eo<790> lib/eo/eo.c:569 _efl_object_call_resolve() in lib/elementary/efl_access_object.eo.c:50: func 'efl_access_object_access_parent_set' (464) could not be resolved for class 'Efl.Canvas.Layout'.
E/EFL     (  790): eo<790> lib/eo/eo.c:569 _efl_object_call_resolve() in lib/elementary/efl_access_object.eo.c:50: func 'efl_access_object_access_parent_set' (464) could not be resolved for class 'Efl.Canvas.Layout'.
E/EFL     (  790): eo<790> lib/eo/eo.c:569 _efl_object_call_resolve() in lib/elementary/efl_access_object.eo.c:50: func 'efl_access_object_access_parent_set' (464) could not be resolved for class 'Evas.Box'.
E/EFL     (  790): eo<790> lib/eo/eo.c:569 _efl_object_call_resolve() in lib/elementary/efl_access_object.eo.c:50: func 'efl_access_object_access_parent_set' (464) could not be resolved for class 'Efl.Canvas.Rectangle'.
E/EFL     (  790): eo<790> lib/eo/eo.c:569 _efl_object_call_resolve() in lib/elementary/efl_access_object.eo.c:50: func 'efl_access_object_access_parent_set' (464) could not be resolved for class 'Evas.Image'.
E/EFL     (  790): eo<790> lib/eo/eo.c:569 _efl_object_call_resolve() in lib/elementary/efl_access_object.eo.c:50: func 'efl_access_object_access_parent_set' (464) could not be resolved for class 'Efl.Canvas.Rectangle'.
E/EFL     (  790): eo<790> lib/eo/eo.c:569 _efl_object_call_resolve() in lib/elementary/efl_access_object.eo.c:50: func 'efl_access_object_access_parent_set' (464) could not be resolved for class 'Evas.Image'.# Please enter the commit message for your changes. Lines starting

Change-Id: I986b275e135320c77323dc0223d6d2e7065e57f1

5 years agoRevert "evas_image: fix pixels_dirty_set(False) makes wrong object-change..." 71/200471/1
Shinwoo Kim [Mon, 25 Feb 2019 12:09:59 +0000 (21:09 +0900)]
Revert "evas_image: fix pixels_dirty_set(False) makes wrong object-change..."

This reverts commit 55b5209f9e50a1dbe3a25aafe1194879057d7247.

to fix TCT issue.

The issue fixed by commit "55b5209f9 evas_image: fix pixels_dirty_set..."
would be fixed by "90e2fad evas_object_image: render_post returns if...".

Change-Id: I6511b94fb673b45c223742da068b117289d89bb1

5 years agospec: fix not to contain a unnecessary library 46/200446/1
Wonki Kim [Mon, 25 Feb 2019 05:39:10 +0000 (14:39 +0900)]
spec: fix not to contain a unnecessary library

libelementary.so.1.21.100 is a library for platform specific behavior for mobile
and it should not be installed by installing elementary.rpm.
so that this patch removes it from elementary definition.

Change-Id: I82cf7b9ebf60d98057fec73b7f2530f0467692bd
Signed-off-by: Wonki Kim <wonki_.kim@samsung.com>
5 years agoRevert "efl_ui_animation_view: update interfaces usages." 39/200439/2 accepted/tizen/unified/20190225.232721 submit/tizen/20190225.071954
Hermet Park [Mon, 25 Feb 2019 06:36:36 +0000 (15:36 +0900)]
Revert "efl_ui_animation_view: update interfaces usages."

This reverts commit 797a49f4092ed666aa2676ba64bb48fd12310cc9.

This patch must be applied with the latest efl upstream patches.

Change-Id: I8039500493c630a473a17ef76c3571239e83e717

5 years agomeson: add a option for selecting lua interpreter 40/200340/2
Wonki Kim [Thu, 14 Feb 2019 10:25:09 +0000 (10:25 +0000)]
meson: add a option for selecting lua interpreter

this patch is for selecting lua interpreter such as luajit, lua51
and in addition, little more changes to unify lua dependency over efl

Reviewed-by: Marcel Hollerbach <marcel-hollerbach@t-online.de>
Differential Revision: https://phab.enlightenment.org/D7564

Change-Id: I8f0d072d124638510c5245904b474da0aef0457d
Signed-off-by: Wonki Kim <wonki_.kim@samsung.com>
5 years agoeio: fix a potentional BOF problem 39/200339/2
Wonki Kim [Thu, 21 Feb 2019 05:25:09 +0000 (05:25 +0000)]
eio: fix a potentional BOF problem

if length of path arguments are longer than PATH_MAX,
there could be a BOF problem potentionally.
this patch fixes it.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D7919

Change-Id: Iaeff6a373d8c251b20264549be3fd350c71f3110
Signed-off-by: Wonki Kim <wonki_.kim@samsung.com>
5 years agoefl_ui_animation_view: replace naming, keyframe to progress. 26/200426/3
Hermet Park [Mon, 25 Feb 2019 04:52:40 +0000 (13:52 +0900)]
efl_ui_animation_view: replace naming, keyframe to progress.

To make consistency with Xamarin-Lottie interfaces,
here replace the api. Progress is more clear to understand.

Change-Id: If5afb780353bfbce5151c83ef4aa980f32f7dd09

5 years agoeio: cancel registered future before it's freed 27/200427/2 submit/tizen/20190225.055416
Shinwoo Kim [Mon, 25 Feb 2019 05:14:41 +0000 (14:14 +0900)]
eio: cancel registered future before it's freed

This is tizen only patch to solve TC issue quickliy
For more information, please refer to following upstream patch under reivew.

https://phab.enlightenment.org/D7970

This patch would be reverted when corrected patch is merged.

@tizen_only

Change-Id: I63e9faf43a848d597433fb0a74ab80118a44fa0c

5 years agoefl_ui_animation_view: update interfaces usages. 22/200422/1
Hermet Park [Mon, 25 Feb 2019 04:43:10 +0000 (13:43 +0900)]
efl_ui_animation_view: update interfaces usages.

Change-Id: Id353cc825525f44a2898a6149690dc9892d52995

5 years agoRevert "eo: fix to remove unreachable loop" 67/200367/1
Jaehyun Cho [Fri, 22 Feb 2019 07:45:06 +0000 (16:45 +0900)]
Revert "eo: fix to remove unreachable loop"

This reverts commit 86ea8f993dd576a8bbf1911d615a0720707df2c5.

Change-Id: I98f2da824e5ffca010dad149b9571c24be92a9cb

5 years agoecore_imf: Add since_tizen in keycode member of key event structs 49/200349/3
Jihoon Kim [Fri, 22 Feb 2019 05:02:03 +0000 (14:02 +0900)]
ecore_imf: Add since_tizen in keycode member of key event structs

Change-Id: I238c9c33627447c01846089d8e1b0b4280fccce8
Signed-off-by: Jihoon Kim <jihoon48.kim@samsung.com>
5 years agoRevert "eet: add counter for number of frees needed in each directory" 31/200331/2 submit/tizen/20190222.044455
Shinwoo Kim [Thu, 21 Feb 2019 23:13:42 +0000 (08:13 +0900)]
Revert "eet: add counter for number of frees needed in each directory"

This reverts commit 83be62392df0392be435b6d3c52db6d59b7efda6.

To solve heap memory usage problem.
Please refer to following massif result.

 n1: 236176 0x541A92C: edje_mmap_data_get (in /usr/lib/libedje.so.1.21.99)
   n1: 236176 0x4A5C038: _elm_theme_file_item_add (elm_theme.c:63)
    n1: 236176 0x4A5C886: _elm_theme_parse (elm_theme.c:485)
     n1: 236176 0x4981160: _config_apply (elm_config.c:1686)
      n1: 236176 0x498DFDE: _elm_config_init (elm_config.c:4755)
       n1: 236176 0x4A0E05A: elm_quicklaunch_sub_init (elm_main.c:867)
 n1: 58267 0x541A92C: edje_mmap_data_get (in /usr/lib/libedje.so.1.21.99)
  n1: 58267 0x4A5C038: _elm_theme_file_item_add (elm_theme.c:63)
   n1: 58267 0x4A5C886: _elm_theme_parse (elm_theme.c:485)
    n1: 58267 0x4981160: _config_apply (elm_config.c:1686)
     n1: 58267 0x498DFDE: _elm_config_init (elm_config.c:4755)
      n1: 58267 0x4A0E05A: elm_quicklaunch_sub_init (elm_main.c:867)

Change-Id: Ib3c1fd58c5e038da2059855ba644309e9bafb04e

5 years agoevas_object_image: render_post returns if preloading. 29/200329/2
Shinwoo Kim [Thu, 21 Feb 2019 06:57:17 +0000 (06:57 +0000)]
evas_object_image: render_post returns if preloading.

The render_post calls evas_object_change if o->changed is true which is added
by commit "36fc2e6 evas image: fix non-rendered preload image.".
But an image could lose chance to render. Please refer to the following.

(1) 1st render_updates_internal
  render_post - evas_object_change for image and its parents
  evas_object_reset - for its parent

(2) _evas_image_load_post_update - o->preload is changed to true here

(3) 2nd render_updates_internal
  evas_render_mapped cannot call render

The reason of (3) would be unchanged parents.

If render_post returns if an image is preloading, then evas_object_change works
for the image and its parents at (2). And finally (3) will call render.
It would be reasonable because render_pre, and render returns as well.

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D7973

Change-Id: Ifc84f6733bb7cc6a5e21c9686edba811270d1bab

5 years agoRevert "edje: add ability to reference images from other edje files" 28/200328/2
Shinwoo Kim [Thu, 21 Feb 2019 12:51:52 +0000 (21:51 +0900)]
Revert "edje: add ability to reference images from other edje files"

This reverts commit fdd4472129c4cf6d3d118e841bdf0b11497da9db.

To solve memory usage problem using 140(= 3564 - 3424)KB bigger than before.

sh-3.2# memps <pid of launchpad-loader>

 Before: 3424 00489000-0084e000 [heap]
 After : 3564 004e0000-008c6000 [heap]

Change-Id: Ib79eb9fc9f29da515bfa705343290c08e6a7e57e

5 years agoecore_imf: Add keycode in key down and key up event structs 42/200342/1
Jihoon Kim [Fri, 22 Feb 2019 02:05:56 +0000 (11:05 +0900)]
ecore_imf: Add keycode in key down and key up event structs

Change-Id: I5f81cfc054adb72c17ea69b7657637c3adddbcdc
Signed-off-by: Jihoon Kim <jihoon48.kim@samsung.com>
5 years agogengrid : fix missing circluar condition 78/200278/2 submit/tizen/20190222.001114
SangHyeon Jade Lee [Thu, 21 Feb 2019 05:26:52 +0000 (14:26 +0900)]
gengrid : fix missing circluar condition

Change-Id: I05d2135fdf5545d0e189dedd4843389a23320c84

5 years agoevas_map: fix rendering bug 'mapped smart parent'+'image_object_update_add' 58/200258/1
Jiyoun Park [Wed, 20 Feb 2019 11:39:41 +0000 (20:39 +0900)]
evas_map: fix rendering bug 'mapped smart parent'+'image_object_update_add'

Problem case:
1. there is smart object(e_comp_object) + mapped
2. e_comp_object's mapped size 400X400
3. image object A is child of e_comp_object
4. map surface is (800X800) , image_object size is also (800X800)
5. e_comp_object is mapped, so map surface (800X800) will be rendered 400X400 into evas by map image render.

step1: E20 calls evas_object_image_data_update_add(A,  100X100)

step2: e_comp_object and A are added "render_objects" list according below process
    -> _evas_render_phase1_object_process(e_comp_object)
        ->e_comp_object cahnged, and it is smart object and mapped ,
             so map_not_can_map=1 & obj_changed=1;
        ->_evas_render_phase1_object_mapped(e_comp_object)
           ->_evas_render_phase1_object_process(A)
             ->_evas_render_phase1_object_changed_normal(A)

step3: _evas_render_phase1_direct function
      -> 400X400 is added into rende area by e_comp_object's render pre function
      -> 800X800 is removed and 100X100 is added by evas_object_image_render_pre(A)

The problem is 800X800 is removed because
   o->pixels->pixel_updates=1   by update_add function.
   inside that condition evas_render_update_del(800X800)

I think evas update rect should not be affectey by render area related with inside map.

if image object's parent is mapped, image object will be rendered whole area in map render code,
I add code to check this

@tizen_only

Change-Id: Id0f3f56a3602481fa9d5761d922f89a107c7d397
Signed-off-by: Jiyoun Park <jy0703.park@samsung.com>
5 years agotest/efl_ui_pager: add NULL checking after calloc() function 08/200208/2
Jaeun Choi [Wed, 20 Feb 2019 05:28:54 +0000 (14:28 +0900)]
test/efl_ui_pager: add NULL checking after calloc() function

Change-Id: I410043dfd759bcfaf59004ab73a632b87a76992b

5 years agoelm_spinner: check focus manager using internal button visibility 44/192244/3
Yeongjong Lee [Thu, 1 Nov 2018 10:04:10 +0000 (19:04 +0900)]
elm_spinner: check focus manager using internal button visibility

spinner should get focus even if there is no focusable button.

@tizen_fix

Change-Id: Id2aec17d1b144c3168ff2d4776543c90baa2d820

5 years agoefl_page_transition_scroll: avoid explicit null dereference 04/200204/2
Jaeun Choi [Wed, 20 Feb 2019 04:53:32 +0000 (13:53 +0900)]
efl_page_transition_scroll: avoid explicit null dereference

Change-Id: If17fe18a92f7a5dbe85e4eb68841de9f1392086e

5 years agoefl_ui_pager: change data type 03/200203/1
Jaeun Choi [Wed, 20 Feb 2019 04:29:59 +0000 (13:29 +0900)]
efl_ui_pager: change data type

Change-Id: I52a6a4c849f7a7043a259f1dcb80f02682f9e479

5 years agoefl_ui : fix infinite loop in efl_ui_exact model 96/200196/1
SangHyeon Jade Lee [Thu, 14 Feb 2019 13:50:04 +0000 (08:50 -0500)]
efl_ui : fix infinite loop in efl_ui_exact model

Summary:
the loop in infinite because of wrong condition.
need to loop while the count of list_index.

Reviewers: cedric, zmike

Subscribers: zmike, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7925

Change-Id: Id209ee3c44ec8225dd2ad6a7a07b04ad2338ce0c

5 years agoEvas_GL: fix doxygen link. 86/200086/1
Hosang Kim [Tue, 19 Feb 2019 04:39:17 +0000 (13:39 +0900)]
Evas_GL: fix doxygen link.

Change-Id: I69bc80360e2e883e455e7db16e6ce060a35dde71

5 years agoelc_fileselector: add safety code for eina value 04/200004/2
Taehyub Kim [Mon, 18 Feb 2019 06:09:15 +0000 (15:09 +0900)]
elc_fileselector: add safety code for eina value

Change-Id: I6fa5ab0b3e70cdaf250b163498866fc2b9d3bc45

5 years agopng: fixed switch-case statement to initialize a variable in every case 60/199760/2
Jaeun Choi [Tue, 15 Jan 2019 06:48:39 +0000 (15:48 +0900)]
png: fixed switch-case statement to initialize a variable in every case

Change-Id: I6313b7f0034e69d19b724a763ddeddca7a6f5dc4

5 years agoevas vg: check for OOM when calloc() 12/200012/2
Hermet Park [Mon, 18 Feb 2019 06:17:41 +0000 (15:17 +0900)]
evas vg: check for OOM when calloc()

Change-Id: I9f0b43ad7d45d8263fa8ab48dca44d43d921a07d

5 years agoevas vg: check for OOM when calloc() 11/200011/2
Hermet Park [Mon, 18 Feb 2019 06:09:44 +0000 (15:09 +0900)]
evas vg: check for OOM when calloc()

Change-Id: I665ba9dd1d1955071f75ce0d57827c830829996e

5 years agoevas vg: check for OOM when calloc() 10/200010/2
Hermet Park [Mon, 18 Feb 2019 06:07:01 +0000 (15:07 +0900)]
evas vg: check for OOM when calloc()

Change-Id: Ib80ece5e912f176e91a85cb06f1b024dafdc2bbb

5 years agoevas vg: check for OOM when calloc() 09/200009/2
Hermet Park [Mon, 18 Feb 2019 06:02:47 +0000 (15:02 +0900)]
evas vg: check for OOM when calloc()

Change-Id: I0c5f9cbc407b508e3dd7a635bd4af6298879fc9c

5 years agoevas vg: avoid integral division not to loss precision. 08/200008/2
Hermet Park [Mon, 18 Feb 2019 05:53:09 +0000 (14:53 +0900)]
evas vg: avoid integral division not to loss precision.

Change-Id: I887043a78cc03202ec72e9da155440f6d89f1543

5 years agoevas vg: use strncpy() instead of strcpy() for better security. 07/200007/2
Hermet Park [Mon, 18 Feb 2019 05:47:14 +0000 (14:47 +0900)]
evas vg: use strncpy() instead of strcpy() for better security.

Change-Id: I950e52cd82ea92a644be4237a0f0724dafa3f504

5 years agoevas main: check for OOM when calloc(). 06/200006/2
Hermet Park [Mon, 18 Feb 2019 05:35:27 +0000 (14:35 +0900)]
evas main: check for OOM when calloc().

Change-Id: I091396e3dea3a48c0f3c2ff3460b2a1a1a2868db

5 years agoefl_io_model: fix not to cause memory overflow by strcpy 86/199986/2
Jaehyun Cho [Mon, 18 Feb 2019 04:48:39 +0000 (13:48 +0900)]
efl_io_model: fix not to cause memory overflow by strcpy

Since the destination string size is EINA_PATH_MAX, the string is copied
up to EINA_PATH_MAX size.

Change-Id: Ibc0c9b830af3b0befd648cea3dd3288212358ec1

5 years agoeo: fix to remove unreachable loop 84/199984/2
Jaehyun Cho [Mon, 18 Feb 2019 04:24:27 +0000 (13:24 +0900)]
eo: fix to remove unreachable loop

Change-Id: Ia8c0b3329faba15b699c3329377ee8c299b6af15