platform/upstream/efl.git
4 years agoefl_ui_table: remove inlist items in EINA_INLIST_FREE macro
Yeongjong Lee [Fri, 23 Aug 2019 17:22:33 +0000 (13:22 -0400)]
efl_ui_table: remove inlist items in EINA_INLIST_FREE macro

Summary:
Check the EINA_INLIST_FREE document
```
in eina_inlist.h

NOTE: it is the duty of the body loop to properly remove the item from the
inlist and free it. This function will turn into a infinite loop if you
don't remove all items from the list.
```

This will avoid infinite loop when Efl.Ui.Table is invalidated.

ref T8145

Test Plan: See the test file in T8145

Reviewers: brunobelo, Jaehyun_Cho, zmike

Reviewed By: zmike

Subscribers: zmike, cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T8145

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

4 years agoefl_ui/scroll_util: block scroll calc tsunamis caused by repeat signal emits
Mike Blumenkrantz [Fri, 23 Aug 2019 17:22:31 +0000 (13:22 -0400)]
efl_ui/scroll_util: block scroll calc tsunamis caused by repeat signal emits

Summary:
the 'efl,action,scroll' signal should only occur (at most) one time during
each signal process loop, so restrict it for this case

furthermore, the bar pos_changed and size_changed callbacks are always
triggered sequentially, so there's no need to emit the signal in both
callbacks

this fixes infinite edje embryo errors and massively improves scroll perf

Reviewers: cedric

Reviewed By: cedric

Subscribers: cedric, #reviewers, #committers

Tags: #efl_widgets

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

4 years agotheme/scroller: don't "check" bar positions randomly in other programs
Mike Blumenkrantz [Fri, 23 Aug 2019 17:22:24 +0000 (13:22 -0400)]
theme/scroller: don't "check" bar positions randomly in other programs

Summary:
this should be correctly triggered from the widget in order to avoid
recursive program/calc loops

Reviewers: cedric

Reviewed By: cedric

Subscribers: cedric, #reviewers, #committers

Tags: #efl_widgets

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

4 years agotests/eio: unlink tmpfiles after tests
Mike Blumenkrantz [Fri, 23 Aug 2019 17:22:17 +0000 (13:22 -0400)]
tests/eio: unlink tmpfiles after tests

Summary:
my tmpdir is full of thousands of these things
Depends on D9710

Reviewers: cedric

Reviewed By: cedric

Subscribers: #reviewers, #committers

Tags: #efl

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

4 years agotests/eio: verify that the model monitor test's file is successfully created
Mike Blumenkrantz [Fri, 23 Aug 2019 17:22:11 +0000 (13:22 -0400)]
tests/eio: verify that the model monitor test's file is successfully created

Summary:
if this fails then the test will hang until timeout, so catch it earlier
Depends on D9709

Reviewers: cedric

Reviewed By: cedric

Subscribers: #reviewers, #committers

Tags: #efl

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

4 years agoeio/poll: avoid ever dereferencing the backend's parent in a thread
Mike Blumenkrantz [Fri, 23 Aug 2019 17:22:04 +0000 (13:22 -0400)]
eio/poll: avoid ever dereferencing the backend's parent in a thread

Summary:
when a monitor is destroyed, it unconditionally and immediately deletes
the monitor struct. this means that as soon as the monitor is dead, the
backend must never access the parent pointer again if its lifetime exceeds
the lifetime of the monitor (such as in threads)

the only member of the monitor data used by the fallback monitor is the
monitor path, so we can just copy it to the fallback data to avoid ever
needing to dereference this pointer

fixes reliability issues with efl sentry unit tests

@fix

Depends on D9708

Reviewers: cedric

Reviewed By: cedric

Subscribers: #reviewers, #committers

Tags: #efl

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

4 years agoefl/io: fix race condition with child model deletion
Mike Blumenkrantz [Fri, 23 Aug 2019 17:21:58 +0000 (13:21 -0400)]
efl/io: fix race condition with child model deletion

Summary:
if an event is emitted for a child that is added to the model during a
call to _efl_io_model_children_list(), it's possible that this child
will never be detected by the model's monitor/sentry if it is deleted
before the monitor can detect it, which means there will never be a
corresponding eio event emitted

in this case, ensure that we manually remove this child from the model
since we know we've just deleted it

this fixes reliability issues with efl io model monitor unit test

@fix

Reviewers: cedric

Reviewed By: cedric

Subscribers: #reviewers, #committers

Tags: #efl

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

4 years agoefl_ui_scrollbar_direction: replace with efl_ui_layout_orientation
Yeongjong Lee [Thu, 22 Aug 2019 12:41:58 +0000 (08:41 -0400)]
efl_ui_scrollbar_direction: replace with efl_ui_layout_orientation

Summary: ref T7924, T7884

Reviewers: segfaultxavi, bu5hm4n

Subscribers: zmike, cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7924, T7884

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

4 years agocsharp: add legacy eo in mono blacklist
Yeongjong Lee [Fri, 23 Aug 2019 17:29:04 +0000 (14:29 -0300)]
csharp: add legacy eo in mono blacklist

Summary: It is unnecessary to generate cs file of legacy class.

Test Plan: meson setup -Dbindings=mono,cxx

Reviewers: felipealmeida, lauromoura

Reviewed By: lauromoura

Subscribers: cedric, #reviewers, #committers, woohyun

Tags: #efl

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

4 years agoeolian-mono: Add support for partial classes
Felipe Magno de Almeida [Fri, 23 Aug 2019 17:27:28 +0000 (14:27 -0300)]
eolian-mono: Add support for partial classes

Summary:
Add the -p command to eolian to create a class as a partial
class. Create a list in meson build of Eolian files that should be
built with partial classes.

This allows creating more specific method overloads for C#, manually,
by generating the class as partial and adding in manual binding the
partial class with the new methods and properties.

T8034

Reviewers: segfaultxavi, lauromoura, woohyun, Jaehyun_Cho

Reviewed By: lauromoura

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agocsharp: Only build extension methods for beta
Lauro Moura [Fri, 23 Aug 2019 17:18:42 +0000 (14:18 -0300)]
csharp: Only build extension methods for beta

Reviewers: felipealmeida, SanghyeonLee

Reviewed By: SanghyeonLee

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agocsharp: Add bindable factory parts support
Lauro Moura [Fri, 23 Aug 2019 17:12:08 +0000 (14:12 -0300)]
csharp: Add bindable factory parts support

Summary:
This commit makes parts that implement `Efl.IContent` use BindFactory
instead of property binding.

```
var factory = new Efl.Ui.ItemFactory<Efl.Ui.ListDefaultItem>();
var iconFactory = new Efl.Ui.ImageFactory(null);
iconFactory.PropertyBind("filename", "modelProperty");
factory.IconPart().BindFactory(iconFactory);
```

Fixes T7628

Reviewers: cedric, felipealmeida, SanghyeonLee

Reviewed By: felipealmeida

Tags: #efl

Maniphest Tasks: T7628

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

4 years agoeolian-mono: Add support for multi-value properties with tuples
Felipe Magno de Almeida [Fri, 23 Aug 2019 17:00:26 +0000 (14:00 -0300)]
eolian-mono: Add support for multi-value properties with tuples

Summary: T8133

Reviewers: woohyun, segfaultxavi, felipealmeida

Reviewed By: felipealmeida

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agoslider_cxx_example: Fix use wrong api
JunsuChoi [Fri, 23 Aug 2019 09:08:39 +0000 (18:08 +0900)]
slider_cxx_example: Fix use wrong api

Summary:
   d50fdc0, e84ecd95 changes cause build errors.
   this is a patch to fix it.

Test Plan: N/A

Reviewers: zmike, Jaehyun_Cho

Reviewed By: Jaehyun_Cho

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agoevas events: fix corrupted mouse events behavior on mapped object. 59/212859/2
Hermet Park [Tue, 27 Aug 2019 08:22:18 +0000 (17:22 +0900)]
evas events: fix corrupted mouse events behavior on mapped object.

Summary:
This fixes an issue that inproper mapped object in/out events triggering.
The previous mouse event logic didn't care the transformed cooridates
if a child object belongs to a mapped parents in its hierarchy.

When checking the object boundary for the child on mouse moving,
it must consider if the child were belonged to the mapped parent space.

Plus, this improves the coordiates to be transformed properly for the prev cooridates,
So that user could compare cur/prev cooridnates properly in the same space
in its events callbacks.

@fix

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

Change-Id: Ic2ca6e1302175dffca07ccb4683c532085cbc878

4 years agoeina_vpath: add null checking logic on vpath_resolve api 12/212812/3 accepted/tizen/unified/20190828.010608 submit/tizen/20190826.045105
Wonki Kim [Tue, 27 Aug 2019 03:54:17 +0000 (12:54 +0900)]
eina_vpath: add null checking logic on vpath_resolve api

Summary:
there is a patch that add vpath_resolve() call before eina_file_open()
because `path` arg could be NULL, the patch kills some applications.
this patch add null checking logic on vpath_resolve api

Reviewers: bu5hm4n, cedric

Subscribers: #reviewers, #committers

Tags: #efl

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

Change-Id: I542c99aadcd3b1be466cad9fb0d1bd79df22738d

4 years agoeina_list: fix to check a null argument 11/212811/2
Wonki Kim [Tue, 27 Aug 2019 04:27:54 +0000 (13:27 +0900)]
eina_list: fix to check a null argument

Summary:
data should be checked regardless of EINA_MAGIC define,
because it is dereferenced in the following logic.

Reviewers: cedric, bu5hm4n

Subscribers: #reviewers, #committers

Tags: #efl

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

Change-Id: I74d97bda83dd45444bade5c0ae1066292ebadfd4

4 years agoextn: Fix a potentional error for fd on ecore_evas_extn 86/212786/2
Wonki Kim [Tue, 27 Aug 2019 01:44:07 +0000 (10:44 +0900)]
extn: Fix a potentional error for fd on ecore_evas_extn

fd from _compositor_socket_get could be negative in some case.
so that this patch appends a logic to handle the case.

Change-Id: Iebd92f224faf2300c9bbac2b7a70ca05c0167cd9

4 years agocanvas map: remove logically dead code. 45/212745/1
Hermet Park [Mon, 26 Aug 2019 10:30:06 +0000 (19:30 +0900)]
canvas map: remove logically dead code.

the value was overflow, reduce its size.

Change-Id: If99b71109f30352d9942e8fdd326157aab172d96

4 years agocanvas map: code refactoring. 44/212744/1
Hermet Park [Mon, 26 Aug 2019 10:23:43 +0000 (19:23 +0900)]
canvas map: code refactoring.

remove dead code that unreachable looping.

Change-Id: Ic44fa880c7d880a01f77e19bb7993ab986b6f65a

4 years agoedje_cc_out: comment out program name(id) checker. 98/212698/1
JunsuChoi [Mon, 26 Aug 2019 06:43:05 +0000 (15:43 +0900)]
edje_cc_out: comment out program name(id) checker.

A patch(fdec1b5) was added long ago to supplement the logic of this checker.
But the patch caused some side effects.
Of course, this function is a checker, so we need to fix the problem code.
But it was put on hold a long time ago because it could cause another potential problem.
So that patch was reverted (2a26e53).
Since then, some patches(1247cb2, dbce6ac) have been added to the logic, but as a result,
the below logic has not worked for a long time.
Because 'if condition' is incorrectly written as always 'true' and that is why it is unreached code.
Fixing this should fix some side effects and other potential flaws that occurred in the past.

Comment out this code because it is not actually used.
If this code needs to be used again, we need a guide to fix the code in edc.

@tizen_only

Change-Id: I9df58db627faa3a9faf09ee8aeda841201e87860

4 years agoRevert "edje_cc: Fix always true condition." 69/212669/1
Wonki Kim [Mon, 26 Aug 2019 04:30:58 +0000 (13:30 +0900)]
Revert "edje_cc: Fix always true condition."

This reverts commit 6b2803d2a55306821168d8972a58e7562eb1bf78.

Change-Id: If4d2ae18d9e2d7d0a1aadb9ebf649cc10338e2d3

4 years agoeina_debug: remove unused variable 54/212254/2
Yeongjong Lee [Mon, 19 Aug 2019 09:40:22 +0000 (18:40 +0900)]
eina_debug: remove unused variable

Change-Id: Icff2a5e7bf03fd948790cd69b8f661698a516e7f

4 years agoefl_ui_widget: fix regression of legacy object creation 62/212662/1
Shinwoo Kim [Mon, 26 Aug 2019 02:35:52 +0000 (11:35 +0900)]
efl_ui_widget: fix regression of legacy object creation

It was allowed to use non widget object as a parent of Efl.Ui.Image_Legacy.
Please refer to following error messages.

eo<896> ../src/lib/eo/eo.c:947 _efl_add_internal_start_do() in ../src/lib/elementary/efl_ui_image.c:2303: Object of class 'Efl.Ui.Image_Legacy' - Error while constructing object
eo<896> ../src/lib/eo/eo.c:579 _efl_object_call_resolve() in src/lib/elementary/efl_ui_widget.eo.c:268: func 'efl_ui_widget_sub_object_add' (579) could not be resolved for class 'Evas.Canvas'.

It seems that application is using Evas.Canvas to add Efl.Ui.Image_Legacy.
We could not see some images after commit aa2d94f.

aa2d94f efl_ui_widget: add a place to share data
This patch makes the commit aa2d94f work only for non legacy object.

Reason of tizen only: D9713
*tizen-fix

Change-Id: I1b96ddc6e79af3c4100f5034741b9280f17c3c6b

4 years agoevas_gl_context: fix dereference after null check 98/212398/5
Shinwoo Kim [Wed, 21 Aug 2019 06:42:08 +0000 (15:42 +0900)]
evas_gl_context: fix dereference after null check

From the following commit every *_push function has used
evas_gl_common_shader_program_get which could set prog to NULL.

   38ad8fd Evas GL: Implement runtime generation and load of shaders

   @@ -1781,28 +1618,26 @@ evas_gl_common_context_line_push(Evas_Engine_GL_Context *gc,
                                     int r, int g, int b, int a)

   +   prog = evas_gl_common_shader_program_get(gc, SHD_LINE, NULL, 0, r, g, b, a,
   +                                            0, 0, 0, 0, EINA_FALSE, NULL, EINA_FALSE,
   +                                            mtex, mask_smooth, mw, mh, NULL, NULL, &masksam);

   -   prog = gc->shared->shader[shader].prog;

   @@ -3114,20 +2919,23 @@ shader_array_flush(Evas_Engine_GL_Context *gc)

   +        Evas_GL_Program *prog;
   +
            if (gc->pipe[i].array.num <= 0) break;

   +        prog = gc->pipe[i].shader.prog;
            setclip = EINA_FALSE;
            pipe_done++;
            gc->flushnum++;

            GLERRV("<flush err>");
   -        if (gc->pipe[i].shader.cur_prog != gc->state.current.cur_prog)
   +        if (prog && (prog != gc->state.current.prog))

This is pretty unexpected and unusual case should not exist.
But I would like to update evas_gl_context to make system reliable.

@tizen_fix

Change-Id: Iacdb3f60d73b9fdbf44e129c74da7f034ba3ce7b

4 years agoefl_mono: update meson.build to build efl_mono_model_internal.c 09/212609/2 submit/tizen/20190826.011117
Jaehyun Cho [Fri, 23 Aug 2019 09:23:43 +0000 (18:23 +0900)]
efl_mono: update meson.build to build efl_mono_model_internal.c

To build efl_mono_model_internal.c, efl_mono_model_internal.eo and
efl_mono_model_internal_child.eo are built by eolian_gen.

Change-Id: I2bf6aaf6879925c4e3fd9131243b1995e5835942

4 years agoRevert "elm_popup: Fix text is not shown in small toast popup." 28/212628/2
wonki kim [Fri, 23 Aug 2019 11:22:03 +0000 (11:22 +0000)]
Revert "elm_popup: Fix text is not shown in small toast popup."

This reverts commit f4b9fc277730914b59d29597bd07688ee7fd3313.

Change-Id: Ic7069869707a6675621aefa6991eeff581d743f4

4 years agoRevert "edje/style: refactor to avoid creating temporary strings."
Wonki Kim [Fri, 23 Aug 2019 10:54:53 +0000 (19:54 +0900)]
Revert "edje/style: refactor to avoid creating temporary strings."

This reverts commit b4456107d12da288a794073b4edb962d7f224b29.

Change-Id: I73db100a08973cd09912d2b6d5da783e6cccd948

4 years agoefl_ui/image: explicitly mark 'drop' event @beta
Mike Blumenkrantz [Thu, 22 Aug 2019 12:37:14 +0000 (08:37 -0400)]
efl_ui/image: explicitly mark 'drop' event @beta

this should probably be removed altogether but until dnd exists ensure
that this doesn't accidentally get released

ref T7873

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

4 years agoefl_ui/image: scalable -> efl.gfx.image::can_up/downscale
Mike Blumenkrantz [Thu, 22 Aug 2019 12:35:44 +0000 (08:35 -0400)]
efl_ui/image: scalable -> efl.gfx.image::can_up/downscale

this removes the property from the image class to use the properties
from the interface

ref T7873

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

4 years agoefl/gfx.image: add can_upscale and can_downscale properties
Mike Blumenkrantz [Thu, 22 Aug 2019 12:26:06 +0000 (08:26 -0400)]
efl/gfx.image: add can_upscale and can_downscale properties

these are more granular properties which allow blocking of image
upscaling and/or downscaling regardless of scale hint

ref T7875

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

4 years agoefl/gfx: redo image scale_type enum
Mike Blumenkrantz [Wed, 21 Aug 2019 19:27:53 +0000 (15:27 -0400)]
efl/gfx: redo image scale_type enum

this is ideally a bit more clear and flexible than the previous enum names

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

4 years agoefl_ui/image: implement efl.gfx.arrangement content_align to replace align prop
Mike Blumenkrantz [Wed, 21 Aug 2019 16:59:30 +0000 (12:59 -0400)]
efl_ui/image: implement efl.gfx.arrangement content_align to replace align prop

this is effectively the same thing. no uses of this functionality exist anywhere

ref T7873

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

4 years agoefl_ui/image: remove geometry from internal struct, clean up geometry methods
Mike Blumenkrantz [Wed, 21 Aug 2019 16:53:46 +0000 (12:53 -0400)]
efl_ui/image: remove geometry from internal struct, clean up geometry methods

these methods exist only to trigger efl_canvas_group_change on geometry
change and apply image sizing policies, there's no need to duplicate existing
functionality as well

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

4 years agoefl_ui/image: add group_calc implementation, use deferred calc for sizing
Mike Blumenkrantz [Wed, 21 Aug 2019 16:31:35 +0000 (12:31 -0400)]
efl_ui/image: add group_calc implementation, use deferred calc for sizing

this changes image internals to use the more standardized group_calc method
of sizing and causes all previous operations on the image which would have
resulted in an immediate recalc to instead defer the calc until the
group_calc function is called

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

4 years agoelm: fix macro for group_calc function naming
Mike Blumenkrantz [Wed, 21 Aug 2019 16:22:21 +0000 (12:22 -0400)]
elm: fix macro for group_calc function naming

this should be efl_canvas_group_group_calculate to match eolian function
naming

no functional changes

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

4 years agoefl_ui/popup: remove text_alert class
Mike Blumenkrantz [Wed, 21 Aug 2019 13:38:39 +0000 (09:38 -0400)]
efl_ui/popup: remove text_alert class

this can now be done by simply calling
efl_ui_widget_scrollable_content_scrollable_text_set on an alert popup

tests have been adjusted for this

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

4 years agoefl_ui/scrollable_content: add scrollable_text property
Mike Blumenkrantz [Wed, 21 Aug 2019 13:32:09 +0000 (09:32 -0400)]
efl_ui/scrollable_content: add scrollable_text property

this creates a label with a scroller and manages sizing calcs

note that efl_ui_text cannot be used here because its sizing calc model
is incompatible with efl

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

4 years agoefl_ui/popup: remove scroll_alert class
Mike Blumenkrantz [Tue, 20 Aug 2019 17:14:00 +0000 (13:14 -0400)]
efl_ui/popup: remove scroll_alert class

this can now be done by simply calling efl_ui_widget_scrollable_content_set
on an alert popup

tests have been adjusted for this

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

4 years agoefl_ui: add scrollable_content mixin
Mike Blumenkrantz [Tue, 20 Aug 2019 17:11:21 +0000 (13:11 -0400)]
efl_ui: add scrollable_content mixin

this allows content to be set with a scroller that automatically handles
its own sizing calcs so that widgets/apps don't have to

@feature

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

4 years agoefl_ui_spotlight: add null check for manager stack data
Jaehyun Cho [Fri, 23 Aug 2019 03:46:10 +0000 (12:46 +0900)]
efl_ui_spotlight: add null check for manager stack data

Like other functions, null check for manager stack data is added before
referencing manager stack data.

4 years agotest_ui_spotlight: remove dead default in switch
Jaehyun Cho [Fri, 23 Aug 2019 02:41:17 +0000 (11:41 +0900)]
test_ui_spotlight: remove dead default in switch

4 years agoedje/style: Enable lazy computaion of styles.
subhransu mohanty [Fri, 23 Aug 2019 02:11:05 +0000 (11:11 +0900)]
edje/style: Enable lazy computaion of styles.

Summary:
Instead of updating all the styles in an Edje_File just mark them
dirty so that subsequent  call to style will recompute the new style before
returning the style.

Reviewers: ali.alzyod, Hermet, raster, cedric

Reviewed By: cedric

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agoecore_con/memleak: due to checking refcount using postfix decrement operator
subhransu mohanty [Fri, 23 Aug 2019 02:09:42 +0000 (11:09 +0900)]
ecore_con/memleak: due to checking refcount using postfix decrement operator

Reviewers: Hermet, raster, cedric

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agoemotion - webcam fix deletion of webcam still left in webcam list
Carsten Haitzler (Rasterman) [Thu, 22 Aug 2019 13:03:07 +0000 (14:03 +0100)]
emotion - webcam fix deletion of webcam still left in webcam list

we may destroy webcams but leave them in the list. this fixes that by
removing them from our global list when we do unref to 0.

@fix

4 years agoedje - signal callback matches/patterns try fix number 2
Carsten Haitzler (Rasterman) [Thu, 22 Aug 2019 10:00:59 +0000 (11:00 +0100)]
edje - signal callback matches/patterns try fix number 2

so i think there was also another bug as i saw this again now. this
should hopefully plug the signal/mtach memory bugs now by removing
and adding back to hash as the hash key relies on the memory addresses
of signal/src in the matches array which change on realloc. a bit
brute-forceey but... better than crashes.

@fix

4 years agoefl_ui_slider_interval: cut off the dependency with efl_ui_slider
WooHyun Jung [Thu, 22 Aug 2019 08:16:11 +0000 (08:16 +0000)]
efl_ui_slider_interval: cut off the dependency with efl_ui_slider

efl_ui_slider_interval is totally different widget from efl_ui_slider.
Now, it extends efl_ui_layout_base and implements all efl_ui_slider's
functionalities by its own.
This class needs to be marked to @beta till reviewing whole class
definitions again.

@ref T7893

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

4 years agoelm/config: avoid unnecessary elm cache flush
subhransu mohanty [Thu, 22 Aug 2019 12:14:13 +0000 (08:14 -0400)]
elm/config: avoid unnecessary elm cache flush

Summary:
in config_apply() we load the deafult theme and then
elm_recache() just throws it away.

so just move it before config_apply for time being.
We need to revisit to check if we really need that elm_recache() in that
function or not.

Reviewers: Hermet, raster, cedric, zmike

Reviewed By: zmike

Subscribers: zmike, cedric, #reviewers, #committers

Tags: #efl

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

4 years agoefl_ui_widget: correct the comparison parameter in scroll_freeze_pop
Yeongjong Lee [Thu, 22 Aug 2019 11:17:03 +0000 (07:17 -0400)]
efl_ui_widget: correct the comparison parameter in scroll_freeze_pop

Summary:
It is copy/paste error.
See also, e7986cc6468b4f99b4c8abdb4a900992d9e525ad

Reviewers: bu5hm4n, zmike

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agoedje_cc: Fix always true condition.
JunsuChoi [Thu, 22 Aug 2019 11:15:30 +0000 (07:15 -0400)]
edje_cc: Fix always true condition.

Summary:
   The condition at 742 line is always true. So I fix it.
   If action is not ACTION_STOP or ACTION_TYPE_SCRIPT, go to continue.

Test Plan: N/A

Reviewers: bu5hm4n, Hermet, zmike

Reviewed By: zmike

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

Tags: #efl

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

4 years agoedje/style: fix memory leak because of typo.
subhransu mohanty [Thu, 22 Aug 2019 05:22:22 +0000 (14:22 +0900)]
edje/style: fix memory leak because of typo.

Summary:
We already have a escaped string for the font_source so
this code is unnecessary.

Reviewers: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agoexamples: shut up edc build warnings.
Hermet Park [Thu, 22 Aug 2019 05:01:28 +0000 (14:01 +0900)]
examples: shut up edc build warnings.

This might not be proper fix (at least they are fine by me),
if these textblocks actually have something wrong sizing.

4 years agoelementary: remove an unused variable.
Hermet Park [Thu, 22 Aug 2019 04:21:40 +0000 (13:21 +0900)]
elementary: remove an unused variable.

4 years agoefl shape: add missing interpolation of miterlimit property.
Hermet Park [Thu, 22 Aug 2019 04:12:19 +0000 (13:12 +0900)]
efl shape: add missing interpolation of miterlimit property.

4 years agoefl_canvas_vg_shape/ector_software : Set and use stroke miterlimit
JunsuChoi [Thu, 22 Aug 2019 04:00:01 +0000 (13:00 +0900)]
efl_canvas_vg_shape/ector_software : Set and use stroke miterlimit

Summary:
efl_canvas_vg_shape is set to miterlimit with Efl.Gfx.Shape.stroke_miterlimit
and pass the value from rasterizer to freetype.

NOTE: The default value is 4. It only refers to the standard of web svg.
      https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-miterlimit

Depends D9657

Test Plan: N/A

Reviewers: Hermet, smohanty, kimcinoo

Subscribers: cedric, #committers, #reviewers

Tags: #efl

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

4 years agovg_common_json: Support stroke miterlimit
JunsuChoi [Thu, 22 Aug 2019 03:51:53 +0000 (12:51 +0900)]
vg_common_json: Support stroke miterlimit

Summary:
Apply miterlimit received from the node to vg_shape.

Depends D9657
        D9665

Test Plan: N/A

Reviewers: Hermet, smohanty, kimcinoo

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agoefl_gfx_shape: Add stroke_miterlimit property
JunsuChoi [Thu, 22 Aug 2019 03:45:09 +0000 (12:45 +0900)]
efl_gfx_shape: Add stroke_miterlimit property

Summary:
Sets limit on ratio of miter value of the stroke join.
If a miter join exists, it must be supported.

Test Plan: N/A

Reviewers: Hermet, smohanty, kimcinoo

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agoector_software_rasterizer: Change default value of stroke linejoin
JunsuChoi [Thu, 22 Aug 2019 03:38:57 +0000 (12:38 +0900)]
ector_software_rasterizer: Change default value of stroke linejoin

Summary:
SW_FT_STROKER_LINEJOIN_MITER is same SW_FT_STROKER_LINEJOIN_MITER_VARIABLE
We pass miterlimit values in fixed-point type.
Therefore, change the default value to SW_FT_STROKER_LINEJOIN_MITER_FIXED.

Test Plan: N/A

Reviewers: Hermet, smohanty, kimcinoo

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agogesture_manager: Avoid dereferencing null pointer.
Woochanlee [Thu, 22 Aug 2019 02:11:26 +0000 (11:11 +0900)]
gesture_manager: Avoid dereferencing null pointer.

Summary:
fix coverity report. dereference before null check

CID: 1065090

Reviewers: Jaehyun_Cho, Hermet

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agoedje/style: Avoid unnecessary evas_textblock_style computation.
subhransu mohanty [Thu, 22 Aug 2019 01:53:36 +0000 (10:53 +0900)]
edje/style: Avoid unnecessary evas_textblock_style computation.

Summary:
If the style is not readonly we always compute the style again when
requested by edje. so this computation is unnecessary.
By avoiding the computation here we will avoid style computation of all the styles in the edje
that is not readonly hence saving memory.

Reviewers: ali.alzyod, Hermet, cedric, raster

Subscribers: cedric, #reviewers, #committers

Tags: #efl

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

4 years agofix e did again after crash from dnd fix
Carsten Haitzler (Rasterman) [Wed, 21 Aug 2019 23:47:10 +0000 (00:47 +0100)]
fix e did again after crash from dnd fix

4 years agoelm - efl ui - dont crash if parent is not an elm widget
Carsten Haitzler (Rasterman) [Wed, 21 Aug 2019 23:22:12 +0000 (00:22 +0100)]
elm - efl ui - dont crash if parent is not an elm widget

4 years agoevas/object: remove errors when user min/max size hints conflict
Mike Blumenkrantz [Wed, 21 Aug 2019 16:06:50 +0000 (12:06 -0400)]
evas/object: remove errors when user min/max size hints conflict

this scenario means, more or less, that the user just wants the widget
to be as close to the max size hint as possible. widgets should (and do)
handle this properly

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

4 years agoefl_ui_spec_suite: that fixture is unneeded
Marcel Hollerbach [Tue, 20 Aug 2019 13:28:37 +0000 (15:28 +0200)]
efl_ui_spec_suite: that fixture is unneeded

items are already getting added from the fixture added for the single
selectable interface

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

4 years agoelm_test: fix background radio usage
Mike Blumenkrantz [Wed, 21 Aug 2019 18:27:53 +0000 (14:27 -0400)]
elm_test: fix background radio usage

radio group apis need to use the radio group

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

4 years agoeina list - make eina list magic optional and for now turn it off
Carsten Haitzler (Rasterman) [Wed, 21 Aug 2019 13:24:21 +0000 (14:24 +0100)]
eina list - make eina list magic optional and for now turn it off

this should bring our list nodes back to 32bytes (or 16 on 32bit)
which is the rounded up libc allocation size anyway expected. less mem
usage but less safety. i haven't seen any magic complainets to do with
eina list for a while now... so let's see.

4 years agoeina file refs in edje/evas - audit them and plug holes where refs stay
Carsten Haitzler (Rasterman) [Tue, 20 Aug 2019 23:32:38 +0000 (00:32 +0100)]
eina file refs in edje/evas - audit them and plug holes where refs stay

in 1 situation at least we delete the eina file (close it) but keep
the ptr around (during destruction) which could cause issues with
callbaks and events on del and so on.... which may lead to multiple
closes where only one should happen ... which would explain my invalid
eina file ref problems i'm seeing. i carefully matched eina file
handle stores/opens/dups to closes in edje/evas and they seemed to all
match up so this audit with comments and fixes seems to have plugged
that now.

@fix

4 years agoevas - font rendering - dont crash if we have color fonts and gl and sw
Carsten Haitzler (Rasterman) [Tue, 20 Aug 2019 23:30:23 +0000 (00:30 +0100)]
evas - font rendering - dont crash if we have color fonts and gl and sw

so if you use sw and gl enignes in a process and have color font
glyphs.. *BOOM* because the color glyph code used ext dat that was
intended for engines to extend with a gotcha of "only 1 engine can
extend this"... commented already.

so this unfortunately adds an extra ptr per glyph to store color data
explicitly. but now it both renders right and doesn't crash. we still
have a limit of 1 engine alone can extend glyphs with ext_dat though.

@fix

4 years agoelm theme - handle error cases and eina file handles properly
Carsten Haitzler (Rasterman) [Tue, 20 Aug 2019 14:16:04 +0000 (15:16 +0100)]
elm theme - handle error cases and eina file handles properly

@fix

4 years agoedje - handle errors and eina file handles and vpath properly
Carsten Haitzler (Rasterman) [Tue, 20 Aug 2019 14:15:28 +0000 (15:15 +0100)]
edje - handle errors and eina file handles and vpath properly

@fix

4 years agoedje calc - merge 2 switch statements that are doing 2 phases
Carsten Haitzler (Rasterman) [Tue, 20 Aug 2019 09:57:02 +0000 (10:57 +0100)]
edje calc - merge 2 switch statements that are doing 2 phases

we have nigh identical switch logic, so merge these to avoid multiple
switches and type matches. it localises per-type logic too which is
nicer.

4 years agoedje recalc - move rare recalc code out of hot path
Carsten Haitzler (Rasterman) [Tue, 20 Aug 2019 08:43:52 +0000 (09:43 +0100)]
edje recalc - move rare recalc code out of hot path

we rarely use tables in edje, so move it out of the hot path for
intruction prefetch/cache. also for calc single - move things to sub
funcs so things like mesh, light and so on code is always out of the
hot path as much as possible. we probably can merge our 2 switch
statements as well. this really just restructures the code to move
stuff into sub functions which also does make the calc funcs look
simpler and easier to read.

4 years agoevas table - use geom set instead of move+resize for fewer oe calls
Carsten Haitzler (Rasterman) [Tue, 20 Aug 2019 08:43:07 +0000 (09:43 +0100)]
evas table - use geom set instead of move+resize for fewer oe calls

4 years agoedje signal matches/patterns - handle re/alloc errors and missing ptrs
Carsten Haitzler (Rasterman) [Mon, 19 Aug 2019 17:20:19 +0000 (18:20 +0100)]
edje signal matches/patterns - handle re/alloc errors and missing ptrs

also a general cleanup of the code to make it easier to follow/read as
this seems to have problems but i cant reproduce them enough to find
them. i noted a realloc would have invalidated pre-stored pattern
ptrs that would cause segv's for sure. also code paths where reallocs may
fail and not handling those cases at all etc.

@fix

4 years agoEcore : does not build linux-only ecore modules on Windows
Vincent Torri [Wed, 21 Aug 2019 05:43:30 +0000 (05:43 +0000)]
Ecore : does not build linux-only ecore modules on Windows

while tizen module is disabled and systemd is not build on Windows, upower is built and run

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

4 years agoefl: mark Efl.Ui.Factory.create a protected method.
Cedric BAIL [Fri, 16 Aug 2019 23:17:57 +0000 (16:17 -0700)]
efl: mark Efl.Ui.Factory.create a protected method.

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

4 years agoefl: use a @static function so that binding can pick it up.
Cedric BAIL [Fri, 16 Aug 2019 22:59:36 +0000 (15:59 -0700)]
efl: use a @static function so that binding can pick it up.

Reviewed-by: Lauro Neto <Lauro Moura <lauromoura@expertisesolutions.com.br>>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9604

4 years agoelementary: use the right function for creating object from Efl.Ui.Factory.
Cedric BAIL [Mon, 19 Aug 2019 22:06:03 +0000 (15:06 -0700)]
elementary: use the right function for creating object from Efl.Ui.Factory.

Reviewed-by: Lauro Neto <Lauro Moura <lauromoura@expertisesolutions.com.br>>
Differential Revision: https://phab.enlightenment.org/D9635

4 years agoelementary: prefer use of Efl unified API.
Cedric BAIL [Fri, 16 Aug 2019 22:31:59 +0000 (15:31 -0700)]
elementary: prefer use of Efl unified API.

Reviewed-by: Lauro Neto <Lauro Moura <lauromoura@expertisesolutions.com.br>>
Differential Revision: https://phab.enlightenment.org/D9603

4 years agoelementary: Efl.Ui.Layout_Factory should not set the theme if there isn't any defined.
Cedric BAIL [Fri, 16 Aug 2019 18:50:24 +0000 (11:50 -0700)]
elementary: Efl.Ui.Layout_Factory should not set the theme if there isn't any defined.

Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D9602

4 years agoelementary: allow Efl.Ui.Factory to have a chance to call constructor function.
Cedric BAIL [Fri, 16 Aug 2019 18:40:38 +0000 (11:40 -0700)]
elementary: allow Efl.Ui.Factory to have a chance to call constructor function.

Reviewed-by: Lauro Neto <Lauro Moura <lauromoura@expertisesolutions.com.br>>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9599

4 years agoelementary: switch Efl.Ui.Factory API to a batch API and update all class using it.
Cedric BAIL [Fri, 16 Aug 2019 03:45:09 +0000 (20:45 -0700)]
elementary: switch Efl.Ui.Factory API to a batch API and update all class using it.

Reviewed-by: Lauro Neto <Lauro Moura <lauromoura@expertisesolutions.com.br>>
Differential Revision: https://phab.enlightenment.org/D9579

4 years agoefl_ui_widget: fix model listenting logic
Marcel Hollerbach [Wed, 21 Aug 2019 16:30:53 +0000 (18:30 +0200)]
efl_ui_widget: fix model listenting logic

if we are walking this method twice (spoiler we do!) then we subscribe
twice to the event, which leads (depending on the order of executed
deletion) to the accessing of obj after its deleted.

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

4 years agoefl_ui_widget: remove self reference
Marcel Hollerbach [Wed, 21 Aug 2019 15:26:03 +0000 (17:26 +0200)]
efl_ui_widget: remove self reference

as an example: elm_test uses roughly 500 widgets, this pointer takes 8
bytes, this is wasting quite some time, which can be perfectly safed by
just structuring the code a little bit more. In some callbacks we need
to call one more time efl_data_scope_get but that is not a that big
issue, as most calls after that are also doing a eo call on that object,
so the eo_id is already cached.

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

4 years agoefl_ui/popup: remove anchor_popup class
Mike Blumenkrantz [Wed, 21 Aug 2019 14:41:57 +0000 (10:41 -0400)]
efl_ui/popup: remove anchor_popup class

Summary:
all functionality is now merged into the base popup class. this greatly
simplifies the codebase and deduplicates a lot of code

ref T7902
Depends on D9651

Reviewers: cedric

Reviewed By: cedric

Subscribers: herb, cedric, #reviewers, #committers

Tags: #efl_widgets

Maniphest Tasks: T7902

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

4 years agoefl_ui_widget: ensure that tree_unfocusable is binary number in its getter
Yeongjong Lee [Wed, 21 Aug 2019 10:11:10 +0000 (10:11 +0000)]
efl_ui_widget: ensure that tree_unfocusable is binary number in its getter

since 2dd596084b3906cf85eeab5b010913839aa252e2, tree_unfocusable is changed from
Eina_Bool to int.
Double negation ensure binary return value of `elm_widget_tree_unfocusable_get`

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

4 years agoefl_ui_slider : remove all the legacy checking
WooHyun Jung [Wed, 21 Aug 2019 10:14:56 +0000 (19:14 +0900)]
efl_ui_slider : remove all the legacy checking

Summary:
Legacy checking is not needed because elm_slider
was separated from efl_ui_slider.

@ref T7893

Reviewers: Jaehyun_Cho, bu5hm4n, zmike

Reviewed By: Jaehyun_Cho

Subscribers: YOhoho, cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7893

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

4 years agoefl_ui_widget: fixup field counting
Marcel Hollerbach [Wed, 21 Aug 2019 09:30:11 +0000 (11:30 +0200)]
efl_ui_widget: fixup field counting

this has to use tree_unfocusable not disabled.

ref D9644

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

4 years agoefl_ui_panel: remove dependency with elm_interface_scrollable
Yeongjong Lee [Tue, 20 Aug 2019 04:43:15 +0000 (04:43 +0000)]
efl_ui_panel: remove dependency with elm_interface_scrollable

`elm_interface_scrollable` is replaced with `efl_ui_scrollable_interative`.

Legacy code related to `SCROLL` event is removed because eo `SCROLL` event have
`void` event info.
```
in lib/efl/inferfaces/efl_ui_scrollable.eo

scroll: void; [[Called when scrolling]]

```
I think we need to add new `PANEL_SCROLL` event that have `Efl_Ui_Panel_Scroll_Info`

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

4 years agoefl_ui_widget: correct the comparison parameter in scroll_freeze_push
Yeongjong Lee [Wed, 21 Aug 2019 08:44:20 +0000 (08:44 +0000)]
efl_ui_widget: correct the comparison parameter in scroll_freeze_push

I guess it is copy/paste error.

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

4 years agoexample: replace svg resource and load it properly.
Hermet Park [Wed, 21 Aug 2019 09:14:48 +0000 (18:14 +0900)]
example: replace svg resource and load it properly.

4 years agoelementary_test: Add the animation view test
JunsuChoi [Wed, 21 Aug 2019 08:53:14 +0000 (17:53 +0900)]
elementary_test: Add the animation view test

Summary:
Add an animation view item to test vector animation on elementary_test.
If Evas Vg Json(Lottie) Loader is not supported,
use the vector class to output the svg file.

Depends {D9451}

Test Plan:
elementart_test
Animation View

Reviewers: Hermet, smohanty, kimcinoo, zmike

Subscribers: zmike, cedric, #reviewers, #committers

Tags: #efl

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

4 years agoefl_ui_widget: fix dereference null return value issues
Yeongjong Lee [Wed, 21 Aug 2019 07:43:55 +0000 (07:43 +0000)]
efl_ui_widget: fix dereference null return value issues

Dereference null return value issues is reported by Coverity.

If `sd` is NULL, it will return zero values.

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

4 years agoefl_ui_collection: use length value for even parameter of eina_spans_intersect
Yeongjong Lee [Wed, 21 Aug 2019 02:52:06 +0000 (02:52 +0000)]
efl_ui_collection: use length value for even parameter of eina_spans_intersect

Parameter of `eina_spans_intersect` are pairs of point and length.

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

4 years agoefl_ui_position_manager_common: generalize code
Marcel Hollerbach [Sun, 18 Aug 2019 16:27:37 +0000 (18:27 +0200)]
efl_ui_position_manager_common: generalize code

move the same code to a common header file.

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

4 years agoreplace item_container benchmark
Marcel Hollerbach [Sun, 18 Aug 2019 11:51:30 +0000 (13:51 +0200)]
replace item_container benchmark

the new one has the correct name, can test grid and list, has a
changable amount of items. Additionally, it prints the pid on startup, which is usefull for perf related debugging.

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

4 years agoefl_ui_position_manager_grid: start to honor group items
Marcel Hollerbach [Sat, 17 Aug 2019 12:32:36 +0000 (14:32 +0200)]
efl_ui_position_manager_grid: start to honor group items

This commit introduces the correct placement of group items and normal
items. The gruop items are also floating on the top of there child items
in case they are not visible on theire own. Items without group items
between items with groups are right now a little bit troublesome and
might display the wrong group, we *need* to check later on if this case
is even needed or not.

The whole placement code now uses 2 different caches, one cache is
counting how many groups we have, and how many items each group has.
Additionally, the size of the header + the state of the header is
safes. The second cache does translate that into how much size one full
group needs on the screen to be placed, this makes the calculation of
the correct item placement a lot faster.
The invalidation of the caches is also quite good. The size cache only
depends on the viewport size and the group cache, which means its
*never* recaclulated on a normal scroll operation. Only if items are
added, or the widget is resized (The later case can also be more
optimized). The group cache is only invalidated when new items are
added (Which is normally not happening during rendering)

ref T8115

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

4 years agoefl_ui_position_manager_common: fix buffer_id
Marcel Hollerbach [Sat, 17 Aug 2019 13:59:54 +0000 (15:59 +0200)]
efl_ui_position_manager_common: fix buffer_id

the buffer was accessed with the wrong id, buffer_id should be used.

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

4 years agoefl_ui_position_manager_list: make it handle group items
Marcel Hollerbach [Fri, 16 Aug 2019 15:44:58 +0000 (17:44 +0200)]
efl_ui_position_manager_list: make it handle group items

this makes the group items stick at the top of the viewport, if the
corresponding items in there do have the item available.
For now items between two groups are not really handled, the group
header will still just be displayed.

The code for this feature is explicitly written in a single block, it
was said that we might want to have this able to be enabled / disabled
later on.

This commit also shuffels the code here a bit, one single method just
got too long.

ref T8115

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

4 years agoefl_ui_position_manager: pass on information about group ids
Marcel Hollerbach [Fri, 16 Aug 2019 12:06:46 +0000 (14:06 +0200)]
efl_ui_position_manager: pass on information about group ids

every batched call will now contain the id of the first item, if the
conditions in the documentation are met.

ref T8115

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