Hermet Park [Tue, 30 Jul 2019 08:04:22 +0000 (17:04 +0900)]
Revert "meson: Enable dlog logging system only if dlog library available"
This reverts commit
12969299a1870b0a07f9a5c483551e9bc09b55d5.
Change-Id: I05ac0272de06bf89dff9399302d4a26548205d5c
Hermet Park [Tue, 30 Jul 2019 08:04:05 +0000 (17:04 +0900)]
Revert "meson: remove unnecessary depenadancy"
This reverts commit
8a718e1b13521734d0329d442dc65f2e3ef5d16f.
Change-Id: I65c4cfe695049c2f9c270a1ebb3fe1565a61c661
Hermet Park [Tue, 30 Jul 2019 08:03:50 +0000 (17:03 +0900)]
Revert "meson: move tizen configuration from meson_options to efl.spec"
This reverts commit
b2e77cf9955f0c1a96eab566a01249124cfde720.
Change-Id: Ie123dd91799f35a1ce6f974575159635ae9098df
Hermet Park [Tue, 30 Jul 2019 08:03:32 +0000 (17:03 +0900)]
Revert "meson: move all tizen specific dependancy to 'tizen' option"
This reverts commit
f8fe674efbf578262fdd7f3befa4f396531cbb77.
Change-Id: I5d2492b722f203b3f08120ca85275e90550cb9d2
Hermet Park [Tue, 30 Jul 2019 08:03:19 +0000 (17:03 +0900)]
Revert "Backported missing svg loader from upstream"
This reverts commit
d5619bcf6707e1fe737505afb5a38da70ca420a0.
Change-Id: I79113e506fa2b368f0d85692a2d619ec76516b6c
Hermet Park [Tue, 30 Jul 2019 08:03:04 +0000 (17:03 +0900)]
Revert "remove unnecessary dependancy from elementary module to keep it same as upstream."
This reverts commit
55fb93d46bfc8e1c8e672404d2e6c702c7c2a28b.
Change-Id: I020afa40e39b1033588f4ad0eae1bfd70021fcc1
Hermet Park [Tue, 30 Jul 2019 08:02:52 +0000 (17:02 +0900)]
Revert "move tizen specific structure to its own header"
This reverts commit
f2efb7fc0d2b8d9242d1a74663d53a0fc58d362b.
Change-Id: I57e63d5d16bf66faf87f7f107475c9efbc44b348
Hermet Park [Tue, 30 Jul 2019 08:01:36 +0000 (17:01 +0900)]
Revert "fix build break when wayland2 is not enabled"
This reverts commit
cd7d98ce738e075996d4d0845e59fe03ce0d9ab2.
Change-Id: Id5bde3262cca6d344010a9e3fea4eb43010c9da9
Hermet Park [Tue, 30 Jul 2019 08:01:14 +0000 (17:01 +0900)]
Revert "ecore_wl2_input: do not generate duplicated mouse in events"
This reverts commit
29998e606393c7f4852320e3ce3e48f252f5020c.
Change-Id: I7e076fc1023d68b5c8593dd210f96915dbf50b3f
Hosang Kim [Tue, 30 Jul 2019 06:42:42 +0000 (15:42 +0900)]
efl_ui_win: fix condition of using precreated window
First window has parent now, so fix condition of checking parent.
@tizen
Change-Id: I7a15db139c51c46c17a0c66f6be39022c5af5acc
Woochanlee [Tue, 30 Jul 2019 06:37:49 +0000 (15:37 +0900)]
config: Changed the order in which the _elm_recache() called
@tizen_fix
Change-Id: Ia6aa50a99fefbff63cd7e2f1322395fba470acfb
jeon [Mon, 29 Jul 2019 05:34:15 +0000 (14:34 +0900)]
ecore_wl2_input: do not generate duplicated mouse in events
- touch down call _pointer_cb_enter()
- So touch down generate mouse in events twice when a mouse is connected
- if mouse is connected, the server generate and send pointer_enter / leave events
when touched window is changed.
Change-Id: I57c64188d62f02382c54ade8b4582664d3b666ee
subhransu mohanty [Wed, 24 Jul 2019 10:37:09 +0000 (19:37 +0900)]
fix build break when wayland2 is not enabled
the structure was defined inside LEMENTARY_WL2 macro
move it outside.
Change-Id: I9de4e185ed1d562d9aa94e8257eaf3e618d39b49
subhransu mohanty [Wed, 24 Jul 2019 09:37:35 +0000 (18:37 +0900)]
move tizen specific structure to its own header
don't polute the common header and then put work around to fixit.
just create a new header and use it instead.
Change-Id: I651fac5d3f5dbf13a5d8d5b76ab177d9e55d6bb4
subhransu mohanty [Wed, 24 Jul 2019 07:52:25 +0000 (16:52 +0900)]
remove unnecessary dependancy from elementary module to keep it same as upstream.
Change-Id: I9ad0d8f5b872fee4e8a1b252cb0563e2ab8a2222
subhransu mohanty [Wed, 24 Jul 2019 06:45:49 +0000 (15:45 +0900)]
Backported missing svg loader from upstream
Change-Id: Ie1aff1cc8a597d3ad20502aa914de153e339fab3
subhransu mohanty [Wed, 24 Jul 2019 06:06:35 +0000 (15:06 +0900)]
meson: move all tizen specific dependancy to 'tizen' option
Change-Id: I3dd32b5aebb89a7276cf6f58d93bc9b77238bd4b
subhransu mohanty [Wed, 24 Jul 2019 04:35:25 +0000 (13:35 +0900)]
meson: move tizen configuration from meson_options to efl.spec
instead of poluting the meson_options.txt file we can move the tizen
related configuration to the spec file and configure while invoking meson.
Change-Id: I9b05bb1c552d1f1cc2508bd83e7f125d49d1b592
subhransu mohanty [Wed, 24 Jul 2019 03:51:49 +0000 (12:51 +0900)]
meson: remove unnecessary depenadancy
I hope this is a copy paste error not actual dependancy.
It build but no idea if it will fail at runtime :)
Change-Id: I863110a5be61dbcd92dcc3e3ded1ff1e0d52c66c
subhransu mohanty [Wed, 24 Jul 2019 03:50:33 +0000 (12:50 +0900)]
meson: Enable dlog logging system only if dlog library available
Change-Id: I76b5125489c3bef004ffc7bba3342c485c1a03b6
Hermet Park [Fri, 26 Jul 2019 07:49:45 +0000 (16:49 +0900)]
ecore_evas: prevent double free evas.
When user manually free the ecore evas,
it could delete evas internally,
then evas_invalidate would be triggered,
invalidate callback would try free evas again,
this causes double free evas.
TEST SCENARIO:
ee = ecore_evas_new(...);
...
ecore_evas_free(ee);
-> free evas
-> invalidated cb
-> free evas (**double free)
This is a regression bug by
5847886a3fdb7c470bd55e215b822bbbaf109080
Change-Id: I954f605e69c2c92270c4e0c17f8d2198cedac3b5
Hermet Park [Fri, 26 Jul 2019 06:33:30 +0000 (15:33 +0900)]
efl_ui_animation_view: + null check.
The transit handle could be danglinged,
User could stop the animation in "play,start" callback.
Change-Id: I5279fbf5271248e80a123645a77a646c1c0cbc82
SubhransuSekhar Mohanty [Thu, 25 Jul 2019 06:17:05 +0000 (15:17 +0900)]
efl_canvas_vg svg: free the svg tree returned by eet_data_read()
The eet_data_read() api creates the structure by referencing the wwt data structure
and reading from eet file. So the structure should be deleted by the user of the function.
As eet_data_read() api documentation dosen't specify about the ownership I guess
we need to free this structure to avoid memory leak.
Change-Id: I0a9341d046d2a2b46cb920cfbe3e6588259f5cea
Hermet Park [Wed, 24 Jul 2019 12:29:28 +0000 (21:29 +0900)]
Revert "elm/scrollable: avoid unnecessary edje recalcs"
This reverts commit
4279f75f0b0ba7a259badf2c33356201bf7869ba.
This totally breaks popup control in Tizen,
Need to consider necessity of this patch,
further potential side effects possibilities.
Change-Id: Ic6752023e2b10e81c57b604f8990cfaae125fa56
Hermet Park [Wed, 24 Jul 2019 05:28:00 +0000 (14:28 +0900)]
textpath: + null handling.
Change-Id: I8963a33752fca6e2d045783cac2ed5231276e43d
Jongmin Lee [Mon, 22 Jul 2019 23:27:21 +0000 (08:27 +0900)]
spec: remove unused files
Spec example files were worked only for autotools.
Since, EFL now use meson instead of autotools, they are not valid anymore.
Change-Id: Ide710fdb93f22fdd5d00f98cc0ef06ebf67bec51
SangHyeon Jade Lee [Tue, 23 Jul 2019 05:21:24 +0000 (14:21 +0900)]
evas : resolve conflict on upstream merge
Change-Id: I3dbb6cffedb054182beda333419313a0d00eff70
Signed-off-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
Mike Blumenkrantz [Mon, 22 Jul 2019 13:57:39 +0000 (15:57 +0200)]
efl_ui/scroll_manager: mimic feel of legacy scroller
Summary:
previously this used a hard linear scroll with a fixed animation time for
mouse wheel events, resulting in an unnatural scroll feel due to abrupt
animation termination
using the decelerate interpolator improves this, and we should be using the
config to determine animation speed
Depends on D9347
Reviewers: bu5hm4n, segfaultxavi
Reviewed By: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9354
Carsten Haitzler (Rasterman) [Mon, 22 Jul 2019 14:10:40 +0000 (15:10 +0100)]
Revert "efl_ui_layout: set needs_size_calc flag at constructor"
This reverts commit
98b19244329725c76ba601ea66ad5161841a68b9.
This totally broke elm widget min size calcs, e dialogs... sizing is
totally broken and unusable as a result. this is a major break and
needs immediate reverting back to a working state. Sorry Woki. You
need to test this... elementary_Test out of the box is totally broken
as all hell not to mention a lot more.
Christopher Michael [Mon, 22 Jul 2019 14:05:27 +0000 (10:05 -0400)]
Revert "tests/ecore_wl2: Reduce calls to ecore_wl2_display_connect"
Reverting this as it causes tests to stall (essentially 'meson test
ecore_wl2-suite' just hangs) when run inside a compositor.
This reverts commit
a526285db4dd281148a8d4ffd347bbc2dec881e3.
Christopher Michael [Mon, 22 Jul 2019 13:48:19 +0000 (09:48 -0400)]
tests/ecore_wl2: Reduce calls to ecore_wl2_display_connect
In order to reduce display setup time during test execution, we can
just connect once and run all the window tests after that.
ref T8016
Christopher Michael [Mon, 22 Jul 2019 13:34:30 +0000 (09:34 -0400)]
tests/ecore_wl2: Combine tests of ecore_wl2_window_surface functions
ref T8016
Christopher Michael [Mon, 22 Jul 2019 13:34:03 +0000 (09:34 -0400)]
tests/ecore_wl2: Add wayland protocol as a dep for ecore_wl2 tests
ref T8016
Subodh Kumar [Mon, 22 Jul 2019 13:09:00 +0000 (09:09 -0400)]
[elm] Add missing sizing eval hook at radio
Summary:
radio is not shown in our Tizen demo.
sizing eval missing.
@fix
Reviewers: Hermet, bu5hm4n, cedric, zmike
Reviewed By: zmike
Subscribers: akanad, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9356
Wonki Kim [Mon, 22 Jul 2019 13:08:55 +0000 (09:08 -0400)]
efl_ui_layout: set needs_size_calc flag at constructor
Summary:
even if there is a min definition on theme for some object,
the objects don't have the min size if we do nothing after creating it.
elm_layout_sizing_eval will return with doing nothing while executing contructor
so that _sizing_eval in _layout_group_calculate will never be invoked without calling hint_set, text_set, content_set, etc.
this patch modifies a initial state of needs_size_calc flag
so that object will doing _sizing_eval after executing constructor.
Test Plan:
1. remove lines that call apis such as content_set, hint_set, text_set
in radio test on elementary_test
2. observe that radios don't have min size
Reviewers: bu5hm4n, Hermet, zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9368
Christopher Michael [Mon, 22 Jul 2019 13:02:10 +0000 (09:02 -0400)]
tests/ecore_wl2: Add test for ecore_wl2_window_display_get
ref T8016
Christopher Michael [Mon, 22 Jul 2019 13:00:17 +0000 (09:00 -0400)]
tests/ecore_wl2: Add test for ecore_wl2_window_aux_hints_supported_get
ref T8016
Christopher Michael [Mon, 22 Jul 2019 12:57:33 +0000 (08:57 -0400)]
tests/ecore_wl2: Add test for ecore_wl2_window_output_find
ref T8016
Christopher Michael [Mon, 22 Jul 2019 12:55:04 +0000 (08:55 -0400)]
tests/ecore_wl2: Add test for ecore_wl2_window_rotation_get
ref T8016
Christopher Michael [Mon, 22 Jul 2019 12:40:34 +0000 (08:40 -0400)]
tests/ecore_wl2: Add test case for ecore_wl2_window_surface_id_get
ref T8016
Christopher Michael [Mon, 22 Jul 2019 12:37:08 +0000 (08:37 -0400)]
tests/ecore_wl2: Add test for ecore_wl2_window_surface_get function
ref T8016
Christopher Michael [Mon, 22 Jul 2019 12:34:11 +0000 (08:34 -0400)]
tests/ecore_wl2: Remove use of macros for display setup & connect
ref T8016
Marcel Hollerbach [Mon, 22 Jul 2019 08:43:12 +0000 (10:43 +0200)]
efl_ui_widget: fix warning
Mike Blumenkrantz [Tue, 16 Jul 2019 17:40:15 +0000 (13:40 -0400)]
efl_ui_widget: add safety checks to verify parents aren't being added as children
somehow it was never checked to see if a parent was being added as a subobject
of a parent's own child object (recursive hierarchy)
@fix
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9333
Cedric BAIL [Mon, 22 Jul 2019 08:27:10 +0000 (10:27 +0200)]
ecore_evas_convert: add the ability to split large jpeg file.
Summary:
After trying convert to split very large image and running out of
memory, this few line of code did seems like the best solution. Maybe
there is some benefit to try to make Ecore_Evas_Convert more useful.
Reviewers: zmike, raster, segfaultxavi
Reviewed By: segfaultxavi
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9337
Hermet Park [Mon, 22 Jul 2019 08:31:06 +0000 (17:31 +0900)]
efl_canvas_vg image: changed image parameter type.
it's still in improvement stage in beta.
Hermet Park [Mon, 22 Jul 2019 08:14:10 +0000 (17:14 +0900)]
ecore_evas buffer: fix a deadlock issue.
We encountered a deadlock case in ecore_evas_image_object in ecore_evas_buffer
that only happens if the ecore_evas_buffer has nothing changed to render,
though it's triggered to rendering.
See this normal scenario that is working fine as our intention.
being ecore_evas_render()
...
-> ecore_evas_buffer_prepare()
-> evas_object_image_data_get()
-> increment lock by backend engine. (egl/tbm ...)
-> render()
-> render_post()
-> _ecore_evas_buffer_update_image()
-> evas_object_image_data_set()
->decrement lock by backend engine (egl/tbm ...)
...
end ecore_evas_render()
The problem is, if the ecore_evas_buffer canvas doesn't changed at all,
render post will be skipped, it could lose the chance to unlock the image data.
Now the host can't render anymore since it's image source lost the lock.
@fix
Hermet Park [Mon, 22 Jul 2019 08:01:45 +0000 (17:01 +0900)]
efl_ui_textpath: deprecate elm_textpath_circle_set()
Summary:
this api can be replaced with elm_textpath_circular_set()
Depends on {D9260}
Reviewers: #committers, kimcinoo
Reviewed By: #committers, kimcinoo
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9314
Hermet Park [Mon, 22 Jul 2019 07:47:43 +0000 (16:47 +0900)]
efl_ui_textpath: introduce efl_ui_textpath_circular_set() interface.
Summary:
This patch revises efl_ui_textpath_circle_set() interface.
Current circle_set() behavior is wrongly working,
it makes object minimal size with (x * 2, y * 2).
Insanely, how big size if the object is far from the screen origin.
Secondly, current interface requires center position,
How this center position could be guranteed if user wants to put it into a container?
Third, actual textpath output could be out of the textpath boundary,
since the textpath is originated to middle of text height.
the display boundary can be outside of the textpath geometry by (half of text height).
All in all, put altogether in fix,
I confirmed there is no methods without any compatibility break.
This brings elm_textpath_circular_set() api introduced.
@feature
Reviewers: #committers, kimcinoo, jsuya
Subscribers: zmike, bu5hm4n, segfaultxavi, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9260
JunsuChoi [Mon, 22 Jul 2019 04:54:25 +0000 (13:54 +0900)]
evas_vg_json: Add image embedded example
Summary:
add example code and json resource.
plus)
Add ECTOR_BACKEND="default" Environment variable
because cairo backend is not supported.
Depends on
D9218 Ector.Renderer : Implement Ector.Renderer.(Software).Image class
D9219 Efl.Canvas.Vg : Implement Efl.Canvas.Vg.Image class
D9220 vg_common_json : Support image data of node
Test Plan:
cd .src/examples/evas/
gcc -o evas_vg_json evas-vg-json.c `pkg-config --libs --cflags evas ecore ecore-evas eina ector eo efl`
./evas_vg_json
Reviewers: Hermet, kimcinoo, smohanty
Subscribers: bu5hm4n, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9351
JunsuChoi [Mon, 22 Jul 2019 04:53:21 +0000 (13:53 +0900)]
vg_common_json : Support image data of node
Summary:
When node has image data, it creates Efl.Canvas.Vg.Image class
and set transform information and data information.
Depends on
D9218 Ector.Renderer : Implement Ector.Renderer.(Software).Image class
D9219 Efl.Canvas.Vg : Implement Efl.Canvas.Vg.Image class
Test Plan: N/A
Reviewers: Hermet, smohanty, kimcinoo
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9220
JunsuChoi [Mon, 22 Jul 2019 04:37:47 +0000 (13:37 +0900)]
Efl.Canvas.Vg : Implement Efl.Canvas.Vg.Image class
Summary:
Implements a vector class that can support image.
User can use this class to output an image with a vector object.
Depends on D9218:Ector.Renderer : Implement Ector.Renderer.(Software).Image class
Test Plan: N/A
Reviewers: Hermet, smohanty, kimcinoo
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9219
JunsuChoi [Mon, 22 Jul 2019 04:29:02 +0000 (13:29 +0900)]
Ector.Renderer : Implement Ector.Renderer.(Software).Image class
Summary:
Implement a class and drawer that outputs image data from the Ector.
Image data is output with a vector object and supports transform.
Test Plan: N/A
Reviewers: Hermet, smohanty, kimcinoo
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9218
Carsten Haitzler (Rasterman) [Sun, 21 Jul 2019 23:36:07 +0000 (00:36 +0100)]
ecore wl2 - fall back to shm if dmabuf fails in buf init
so even if shm was an allowed mode/flag, we never fell back to shm if
dmabufs were not possible (/dev/dri/renderD128 didn't exist or wansn't
open-able). that's decidedly a bad thing to do.
@fix
Carsten Haitzler (Rasterman) [Sat, 20 Jul 2019 10:52:52 +0000 (11:52 +0100)]
ecore - efl thread - remove mroe error case cnp code and share it
more cnp code de-duplication
Carsten Haitzler (Rasterman) [Sat, 20 Jul 2019 10:48:30 +0000 (11:48 +0100)]
ecore - efl thread - move duplicate code into shared func to reduce cnp
more copy & paste code - put into shared func.
Carsten Haitzler (Rasterman) [Sat, 20 Jul 2019 10:46:07 +0000 (11:46 +0100)]
ecore - efl thread - remove more copy & paste in fd in clearing handling
move to common shared function to reduce c&p
Carsten Haitzler (Rasterman) [Sat, 20 Jul 2019 10:44:05 +0000 (11:44 +0100)]
ecore - efl thread - reduce copy & paste and merge into single func
the call and call sync stuff was almost entirely copy & paste - this
moves all the common code into shared funcs that reduce code bloat. it
also moved from heap to stack for sync reply struct location.
Mike Blumenkrantz [Fri, 19 Jul 2019 19:44:08 +0000 (15:44 -0400)]
evas/map: permit evas_map_free(NULL)
free functions in efl should always handle null pointers gracefully
@fix
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9363
Mike Blumenkrantz [Fri, 19 Jul 2019 19:47:51 +0000 (15:47 -0400)]
tests/elm: fix event starter helper function to handle elm_win objects
this class implements EFL_CANVAS_SCENE_INTERFACE but is not an Evas,
so the evas must still be fetched
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9366
Mike Blumenkrantz [Fri, 19 Jul 2019 19:44:58 +0000 (15:44 -0400)]
evas: fix type checking of Evas pointers in legacy functions
many of these functions go directly to evas internals with no eo checks,
and the existing "MAGIC_CHECK" macro has somehow become a useless null
check
type checking here is important in order to avoid crazy behavior when the
wrong object types are passed
@fix
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9364
Mike Blumenkrantz [Fri, 19 Jul 2019 19:42:09 +0000 (15:42 -0400)]
ecore: avoid breaking next main loop start if quit occurs outside of loop
in the case where ecore_main_loop_quit() was called before ecore_main_loop_begin(),
the latter call would exit immediately without ever iterating the main loop
@fix
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9360
Mike Blumenkrantz [Fri, 19 Jul 2019 20:55:03 +0000 (16:55 -0400)]
tests/eldbus: fix broken unit test
this callback isn't called during the main loop, so attempting to
quit the loop has no effect and the test deadlocks
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9367
Mike Blumenkrantz [Fri, 19 Jul 2019 19:43:21 +0000 (15:43 -0400)]
edje: add some null checks for nonexistent objects
minor cleanup to fix EVAS_DEBUG_ABORT usage
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9361
Mike Blumenkrantz [Fri, 19 Jul 2019 19:46:35 +0000 (15:46 -0400)]
tests/elm: fix a couple unit tests to use event starter helper function
these tests seem to have relied upon a callback being triggered which
would call ecore_main_loop_quit() prior to ecore_main_loop_begin() starting
the main loop
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9365
Mike Blumenkrantz [Fri, 19 Jul 2019 19:41:20 +0000 (15:41 -0400)]
meson: fix debug-threads option
it doesn't matter if this doesn't work with eina_debug since this isn't
meant to be used for that kind of debugging
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9359
Mike Blumenkrantz [Wed, 17 Jul 2019 18:08:41 +0000 (14:08 -0400)]
elm_test: add efl.ui.scroller test with big table
same as the simple efl.ui.scroller test but with a 2 column table
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9347
Mike Blumenkrantz [Wed, 17 Jul 2019 17:12:23 +0000 (13:12 -0400)]
efl_ui/table: optimize position_set operations with tables
if a table is moved and no other changes are made to the table or its children,
e.g., if the table is scrolled, then there is no need to loop over the table's
items repeatedly in order to accurately calculate all the item geometries
and positions.
instead, simply apply an offset from the last table calc position to each child
item and handle the position changes more transparently
this yields roughly a 12% perf improvement to the 'efl.ui.scroller simple2' test
and brings rendering up to nearly 60fps
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9346
Mike Blumenkrantz [Wed, 17 Jul 2019 17:59:35 +0000 (13:59 -0400)]
elm_test: rename efl.ui.scroller simple test function name
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9345
Mike Blumenkrantz [Wed, 17 Jul 2019 17:08:58 +0000 (13:08 -0400)]
efl_ui/table: avoid exploding stack with lots of subobjects
using alloca like this without any limits is dangerous, so switch to
malloc here in such cases
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9344
Marcel Hollerbach [Tue, 16 Jul 2019 13:29:56 +0000 (15:29 +0200)]
eo: add helper for checking the ownable state
if a object is ownable, then there is one free reference. If not, a
error will be printed.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9332
Mike Blumenkrantz [Tue, 16 Jul 2019 19:31:46 +0000 (15:31 -0400)]
evas/box: avoid triggering smart_move callback
any time an evas box is moved, it flags itself to do a recalc on all of
its contents in the next render. evas box also inherits from smart clipped
class, however, which means that it will also move all of its contents
immediately on every single move. this results in something like:
move(box) -> for content in box { move(content) } -> render ->
recalc(box) -> for content in box { calc(content); move(content); }
which is massively inefficient and results in box being completely unusable
once it has a large number of contents
by skipping immediate move() calls for all the box contents, we can bring this
performance back to usable levels
@fix
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9336
Xavi Artigas [Fri, 19 Jul 2019 16:37:12 +0000 (18:37 +0200)]
Add missing Slider header to Efl_Ui.h
Summary: Without this, apps need to include Elementary.h to use unified sliders, which is bad.
Test Plan: Create an app that uses sliders and only include Efl_Ui.h. Magic!
Reviewers: zmike, bu5hm4n, cedric
Reviewed By: cedric
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9358
Xavi Artigas [Fri, 19 Jul 2019 14:31:14 +0000 (16:31 +0200)]
README Whitespace
ali [Fri, 19 Jul 2019 14:29:31 +0000 (16:29 +0200)]
README: update COMPILING AND INSTALLING section
Reviewers: segfaultxavi
Reviewed By: segfaultxavi
Subscribers: raster, vtorri, segfaultxavi, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9302
Mike Blumenkrantz [Thu, 18 Jul 2019 17:21:26 +0000 (19:21 +0200)]
efl_ui/scroll_manager: fix int overflow in animation duration calc
Summary:
Evas_Coord is a regular int, so this will overflow easily for large
scrollers and return NaN for scroll duration and break the scroll
Reviewers: segfaultxavi
Reviewed By: segfaultxavi
Subscribers: segfaultxavi, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9355
Vincent Torri [Thu, 18 Jul 2019 04:05:50 +0000 (04:05 +0000)]
Eina vpath: remove support of ~username vpath on Windows
On Windows, one must be in kernel mode to obtain informations of other users
Reviewed-by: Carsten Haitzler (Rasterman) <rasterman.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9339
Vitor Sousa [Wed, 17 Jul 2019 22:32:32 +0000 (19:32 -0300)]
cxx: remove a compilation warning for g++ 7.x
Remove a compilation warning about an unsupported warning category for g++ 7.x.
A `#pragma` directive was used to suppress a `-Wcast-function-type` warning
in g++.
Versions older than 8.x do not have this warning category and raises a warning
because of this directive.
Now this directive is only enabled for g++ version 8.x or newer.
Cedric BAIL [Wed, 17 Jul 2019 18:12:18 +0000 (11:12 -0700)]
eina: set EINA_VALUE_EMPTY during library init.
This is a work around compiler/linker limit on some system as reported
by Romain Naour.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9348
Cedric BAIL [Fri, 12 Jul 2019 19:24:58 +0000 (12:24 -0700)]
elementary: add a test for Efl.Ui.View interface.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9308
Cedric BAIL [Fri, 12 Jul 2019 18:24:02 +0000 (11:24 -0700)]
elementary: simplify example by using Efl.Model_Provider.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9307
Cedric BAIL [Thu, 11 Jul 2019 22:53:54 +0000 (15:53 -0700)]
elementary: fix potential race condition by using Eina_Future attached to the object.
I get some random segfault in elementary test suite pointing to this code. Most likely
we do not properly destroy the timer during destruction. Could be because we initiate
a delay while destruction is going on or something like that. Anyway, it is easier and
more robust to get it fixed by linking the lifetime of the timeout to the lifetime of
the widget as future allow us to do easily.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9298
Cedric BAIL [Thu, 11 Jul 2019 22:34:31 +0000 (15:34 -0700)]
ecore: remove efl_loop_{un,}register from .eo.
We have to keep this as an API, but binding do not need to see it at this point.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9297
Cedric BAIL [Thu, 11 Jul 2019 22:18:34 +0000 (15:18 -0700)]
eo: use efl_provider_{un,}register infrastructure instead of Efl_Loop one.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9296
Cedric BAIL [Thu, 11 Jul 2019 22:03:05 +0000 (15:03 -0700)]
elementary: add a test for Efl.Model_provider.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9295
Cedric BAIL [Thu, 11 Jul 2019 21:59:05 +0000 (14:59 -0700)]
ecore: rely on efl_provider_{un,}register to do the job of efl_loop_{un,}register.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9294
Cedric BAIL [Thu, 11 Jul 2019 22:10:41 +0000 (15:10 -0700)]
elementary: first search on ourself instead of our parent for all providers.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9293
Cedric BAIL [Thu, 11 Jul 2019 21:53:19 +0000 (14:53 -0700)]
eo: add ability to register provider on the Eo object directly.
This should reduce the need for custom implementation of efl_object_provider_bind.
It also enable the ability to register provider from user code on any Efl_Object.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9292
Cedric BAIL [Thu, 11 Jul 2019 17:56:51 +0000 (10:56 -0700)]
elementary: Efl.Ui.Layout now rely on model change event to track the model.
This means that this will work nicely with model provider too.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9291
Cedric BAIL [Thu, 11 Jul 2019 01:03:46 +0000 (18:03 -0700)]
efl: add a Efl.Model_Provider that every widget will look up for in their parent tree.
This is done to simplify code as you only need to set the model on the
provider and all the widget that are using it as a provider will automatically be
updated. The child will find a provider during at the time the first property binding
is set on the widget by checking if the parent have an Efl.Model_Provider set. It is
not necessary to set a model to have a valid lookup on a Efl.Model_Provider. To disable
a widget lookup, you can just force set a model on it (even NULL) and it will disable
the lookup.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9290
Cedric BAIL [Thu, 11 Jul 2019 00:56:20 +0000 (17:56 -0700)]
elementary: Efl.Ui.Image now rely on event to update model binding.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9289
Cedric BAIL [Thu, 11 Jul 2019 00:54:46 +0000 (17:54 -0700)]
efl: implement notification for when the model is changed on a widget.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9288
Daniel Kolesa [Wed, 17 Jul 2019 18:14:46 +0000 (20:14 +0200)]
eolian: remove support for old free() syntax
Now freefuncs can only be specified on type declarations but not
on types themselves. Also remove transitiveness of freefuncs.
Mike Blumenkrantz [Wed, 17 Jul 2019 17:30:11 +0000 (13:30 -0400)]
efl_ui/table: emit EFL_PACK_EVENT_LAYOUT_UPDATED on layout updates
this should be emitted.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9343
Mike Blumenkrantz [Tue, 16 Jul 2019 19:30:09 +0000 (15:30 -0400)]
elm/scrollable: avoid unnecessary edje recalcs
in this case we just want to trigger pending edje calcs and not force new
ones. this avoids doing a full edje recalc constantly when scrolling
@fix
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9335
Mike Blumenkrantz [Wed, 17 Jul 2019 13:33:05 +0000 (09:33 -0400)]
efl/scroll manager: stop clearing animators on every wheel event
if scrolling is supposed to continue then just reuse the existing animator
callback and avoid emitting a scroll,start/stop event pair for every new
input event
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9340
Mike Blumenkrantz [Wed, 17 Jul 2019 17:12:23 +0000 (13:12 -0400)]
efl_ui/box: optimize position_set operations with boxes
if a box is moved and no other changes are made to the box or its children,
e.g., if the box is scrolled, then there is no need to loop over the box's
items repeatedly in order to accurately calculate all the item geometries
and positions.
instead, simply apply an offset from the last box calc position to each child
item and handle the position changes more transparently
this yields roughly a 12% perf improvement to the 'efl.ui.scroller simple' test
and brings rendering up to nearly 60fps
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9342
Mike Blumenkrantz [Wed, 17 Jul 2019 17:08:58 +0000 (13:08 -0400)]
efl_ui/box: avoid exploding stack with lots of subobjects
using alloca like this without any limits is dangerous, so switch to
malloc here in such cases
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9341
Mike Blumenkrantz [Tue, 16 Jul 2019 17:41:47 +0000 (13:41 -0400)]
elm_test: add comparable "simple" scroller tests
this should be roughly identical and can be more directly compared in
terms of performance (which is not good in either case)
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9334
Marcel Hollerbach [Mon, 15 Jul 2019 20:06:06 +0000 (22:06 +0200)]
efl_ui_win: optimize shutdown
in case we are having a scroller with a lot of elements on it, we are
spending a lot of time in stuff like recalculating clips, even if they
will never be used again.
With this freeze here, we are saving 9s shutdown time in item_container.
Which brings the overall closing time from 10s down to 1s, which is a
win IMO.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9325