Carsten Haitzler (Rasterman) [Thu, 22 Nov 2018 16:48:56 +0000 (16:48 +0000)]
elm perf tool - bring one back to efl
expedite is basically dead. because it's out of tree and because it
was ported to eo too early... but it's also not a great tool given it
requires manual addition of engines and can't test elm stuff (complex
widgets).
so this is an elm based performance tool. i've added some tests (taken
from expedite and modified a bit). to get the ball rolling. the idea
is to add all the important core tests (rects, images, text, video
etc.) and then add widget/smart object like tests that go beyond what
expedite did. the problem with these tests is they are dependent on
theme. there isn't really any way around that... but i might
categorize tests in the end.
@feature
Carsten Haitzler (Rasterman) [Thu, 22 Nov 2018 11:45:00 +0000 (11:45 +0000)]
ecore_evas - fix aninmator based frame render ticking to full framerate
so i was seeing ecore evas only rendering every 2nd frame... this is
because it was adding and deleting animatiors every time it rendered
instead of keeping one around as lon as updates where there to render
and then remove it afterwards. this caused nasty timing problems and
thus problems assessing framerate of rendered content etc. etc. ...
not good. this fixes that. this only happened if you only used pure
legacy ecore animators. if you used the efl animator tick events it
worked right.
@fix
Daniel Kolesa [Mon, 3 Dec 2018 09:41:43 +0000 (10:41 +0100)]
eolian tests: revert incorrect change resulting in failed parsing
Commit
98b716d0fa745fe5aa4d110615bf0dd90f695ddb modified this file
for no apparent reason, breaking tests.
Cedric BAIL [Fri, 23 Nov 2018 01:16:09 +0000 (17:16 -0800)]
ecore_con: simplify code by using helper that create future directly.
The new helper help replace call to eina_future_resolved and eina_future_rejected with
a scheduler lookup to just one function call.
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Reviewed-by: Vitor Sousa da Silva <vitorsousa@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D7342
Cedric BAIL [Fri, 23 Nov 2018 01:15:29 +0000 (17:15 -0800)]
ecore: simplify code by using helper that build future directly.
The new helper help replace call to eina_future_resolved and eina_future_rejected with
a scheduler lookup to just one function call.
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Reviewed-by: Vitor Sousa da Silva <vitorsousa@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D7341
Cedric BAIL [Fri, 23 Nov 2018 01:14:51 +0000 (17:14 -0800)]
eldbus: simplify code by using helper that create future directly.
The new helper help replace call to eina_future_resolved and eina_future_rejected with
a scheduler lookup to just one function call.
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Reviewed-by: Vitor Sousa da Silva <vitorsousa@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D7340
Cedric BAIL [Fri, 23 Nov 2018 01:14:16 +0000 (17:14 -0800)]
eio: simplify code by using helper that generate future directly.
The new helper help replace call to eina_future_resolved and eina_future_rejected with
a scheduler lookup to just one function call.
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Reviewed-by: Vitor Sousa da Silva <vitorsousa@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D7339
Cedric BAIL [Fri, 23 Nov 2018 01:13:43 +0000 (17:13 -0800)]
eio: we do not need to actually loop explicitely for the loop here.
Actually efl_loop_future_scheduler_get does lookup on the object and its provider
someone that could be a loop provider and find a scheduler. There is no need to
custom look for a loop provider.
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Reviewed-by: Vitor Sousa da Silva <vitorsousa@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D7338
Cedric BAIL [Fri, 23 Nov 2018 01:11:54 +0000 (17:11 -0800)]
ecore: add an helper on Efl.Loop_Consumer to build resolved and rejected future more easily.
This make all object that inherit from Efl.Loop_Consumer have an easy ability to create a future
from their link to a loop provider. This way there is no need to further lookup for a scheduler.
This can by applied after the patch series from T7471.
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D7337
Cedric BAIL [Fri, 23 Nov 2018 00:45:17 +0000 (16:45 -0800)]
elementary: simplify code by using proper helper.
efl_loop_promise_new is a helper function that does automatically figure out an
available scheduler and create a promise from it. Basically replacing the call to
eina_promise_new(efl_loop_future_scheduler_get(o), ...).
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Reviewed-by: Vitor Sousa da Silva <vitorsousa@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D7336
Cedric BAIL [Fri, 23 Nov 2018 00:45:03 +0000 (16:45 -0800)]
eldbus: simplify code by using proper helper.
efl_loop_promise_new is a helper function that does automatically figure out an
available scheduler and create a promise from it. Basically replacing the call to
eina_promise_new(efl_loop_future_scheduler_get(o), ...).
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Reviewed-by: Vitor Sousa da Silva <vitorsousa@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D7335
Cedric BAIL [Fri, 23 Nov 2018 00:44:37 +0000 (16:44 -0800)]
eio: simplify code by using proper helper.
efl_loop_promise_new is a helper function that does automatically figure out an
available scheduler and create a promise from it. Basically replacing the call to
eina_promise_new(efl_loop_future_scheduler_get(o), ...).
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Reviewed-by: Vitor Sousa da Silva <vitorsousa@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D7334
Cedric BAIL [Fri, 23 Nov 2018 00:44:12 +0000 (16:44 -0800)]
ecore_con: simplify code by using proper helper.
efl_loop_promise_new is a helper function that does automatically figure out an
available scheduler and create a promise from it. Basically replacing the call to
eina_promise_new(efl_loop_future_scheduler_get(o), ...).
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Reviewed-by: Vitor Sousa da Silva <vitorsousa@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D7333
Lauro Moura [Fri, 30 Nov 2018 21:34:43 +0000 (19:34 -0200)]
eolian-cxx: Add property_def
Summary:
While individual getters and setters are added to the list of methods of
a class, property_def will hold them as a pair.
This will help defining accessors like C#'s where they're grouped.
Also update some eolian-cxx tests that were commented out.
Depends: D7262
Test Plan: run eolian-cxx tests
Reviewers: vitor.sousa, felipealmeida
Reviewed By: vitor.sousa
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7389
Larry Lira [Thu, 29 Nov 2018 17:11:51 +0000 (15:11 -0200)]
Efl.Ui.List.View: fixed MVVM life-cycle
Fix bugs on Views and Model related with null items and proper ownership and
life-cycle of components.
Configure default theme for default factory on finalize.
Vitor Sousa [Tue, 6 Nov 2018 13:23:21 +0000 (11:23 -0200)]
elementary: rework Efl.Ui.Layout boolean signal-connection to Models
Add new feature to specify signal connection to boolean properties of Models.
This also fix some '%v' substitution problems.
Parsing EINA_VALUE_TYPE_BOOL as boolean in Efl.Ui.Layout signal updates from
Models (instead of EINA_VALUE_TYPE_UCHAR). UCHAR no longer has special handling
and falls to the general result of eina_value_to_string() as other types do.
Use EINA_VALUE_TYPE_BOOL instead of EINA_VALUE_TYPE_UCHAR to signal selection on
click events to the Model.
Update examples to make usage of the new property connection feature in order to
model selection of items on Views.
Stefan Schmidt [Fri, 30 Nov 2018 14:30:01 +0000 (15:30 +0100)]
Revert "eina: add locale-independent eina_convert_strtod_c function"
This reverts commit
bef1c5cc433b89add2cf0292e1098e1bd74ac640.
The commit breaks the build on macos. I gave it soem time to get fixed
up quickly, but its late Friday night in Korea now and this is unlikely
to get fixed until Monday. Revert here until fixed.
./src/lib/eina/eina_private.h:158:1: error: unknown type name 'locale_t'
https://travis-ci.org/Enlightenment/efl/jobs/
461790674
Daniel Kolesa [Fri, 30 Nov 2018 13:35:51 +0000 (14:35 +0100)]
eolian_aux: rename tests classes to avoid autotools conflict
Having these files would result in eolian cxx tests failing when
building using autotools, as eolian generators by default include
entire src directory and eolian cxx already had classes a/b/c.
In an ideal case this should not happen as eolian cxx should not
scan tests that are not its own, and it already behaves correctly
under meson but there is no good way to fix it for autotools, so
just rename as a workaround.
Daniel Kolesa [Fri, 30 Nov 2018 13:12:15 +0000 (14:12 +0100)]
eolian: add optional warning for regular classes in ext list
As per T7240, we intend to disallow multi-class inheritance in Eo
at some point. In order to achieve that, it is necessary to find
out which classes still use multi-class inheritance and change
them accordingly.
Eo multi-class inheritance is not actually multi-class, as doing
so will simply treat all the other classes as interfaces, which
is misleading and poor design on its own.
By setting EOLIAN_CLASS_REGULAR_AS_EXT_WARN environment variable,
Eolian will now warn about such classes, allowing them to be
fixed.
Closes T7365.
Youngbok Shin [Wed, 22 Aug 2018 01:53:11 +0000 (01:53 +0000)]
eina: add locale-independent eina_convert_strtod_c function
strtod's behavior is changed by system locale.
http://man7.org/linux/man-pages/man3/strtod.3.html
https://en.wikipedia.org/wiki/Decimal_separator
Because of this, strtod(0.5) returns 0.0 in some locales.
When a given value string is locale-independent, strtod has to be
replaced to eina_convert_strtod_c function.
Internally, it calls strtod_l function with "C" locale.
@feature
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Reviewed-by: Vincent Torri <vincent.torri@gmail.com>
Differential Revision: https://phab.enlightenment.org/D6644
Shinwoo Kim [Thu, 23 Aug 2018 05:56:58 +0000 (05:56 +0000)]
evas cache image: compare with cached image file
As cache2 knows cached image could be not matched even though
hash key is not different.
Please refer to the following comment of evas_cache2_image_open.
/* image we found doesn't match what's on disk (stat info wise)
* so dirty the active cache entry so we never find it again. this
* also implicitly guarantees that we only have 1 active copy
* of an image at a given key. we wither find it and keep re-reffing
* it or we dirty it and get it out */
The hash key is created base on the image file address.
If the image file address to find does not equal cached image file address
then it means that the cached image is no longer valid.
This case could happen with the following step.
(1) Call evas_object_image_memfile_set with content data A
(2) Call evas_object_image_memfile_set with content data B
(3) Add timer with short time (ex: 0.01 sec)
(4) Delete A image, and add A image in timer callback
(5) Delete B image, and add B image in timer callback
Sometimes you could see image of A from the B image, because newly created
image at step 5 has same address of setp 1.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D6870
Vitor Sousa [Tue, 6 Nov 2018 12:42:36 +0000 (10:42 -0200)]
ecore: fix bugs from composite models
Fix type error while getting boolean property from Efl.Model_Composite_Boolean.
Fix properties_get methods for all composite models.
Now properly call property.changed events when it is needed.
Use EINA_VALUE_TYPE_BOOL instead of EINA_VALUE_TYPE_UCHAR.
Remove some memory leaks.
Vitor Sousa [Tue, 6 Nov 2018 12:42:11 +0000 (10:42 -0200)]
ecore: forward internal Efl.Model events to Efl.Model.Composite
Vitor Sousa [Tue, 6 Nov 2018 12:10:13 +0000 (10:10 -0200)]
ecore: fix efl_model_container_private.h include guards
Lauro Moura [Thu, 29 Nov 2018 23:04:37 +0000 (21:04 -0200)]
csharp: Change to new class API.
Summary:
As discussed in T7204:
- Eo Interfaces/mixins -> C# Interfaces with concrete class
implementations
- Eo Regular/Abstracts -> Proper C# classes
- Added some new generators and helper methods.
- Refactored the class generator, splitting into helper methods
Eo handles now are stored only in the "root" class in any given
inheritance tree (generally, Efl.Object), and accessible to each child.
Methods also are defined in a single place instead of repeatedly
generated in everyfile, reducing the size of the generated .dll from
30MB to around 4.5MB.
Mixins are generated as C# interfaces but any regular class it inherits
from is lost, as we can't have interfaces inheriting from regular
classes. This will be dealt with in a later commit.
Summary of API Changes:
- Merged Inherit/Concrete classes. (These suffixes disappear from
regular classes).
- Interface still have implementations with 'Concrete' suffix for when
they are returned from methods.
- Removed 'I' from interface names.
- Removed interfaces for regular/abstract Eo classes.
- Concrete classes for interfaces/mixins hold the event argument struct.
- Removed '_' from classes, enums, structs, etc, as indicated in C#
naming conventions.
- Namespaces are now Camel.Cased.
- Renamed IWrapper's raw_handle/raw_klass to NativeHandle/NativeClass
Also renamed the test classes as after the namespace change, the
test namespace Test can conflict with the helper Test namespace.
(And use more meaningful names than Test.Testing...)
Also Fixes T7336 by removing a deprecated example and adding
efl_loop_timer_example to build system.
Fixes T7451 by hiding the class_get DllImports and renaming the IWrapper
fields. The native handlers are used in the manual binding.
Still need to work:
- As there are still some events names clashing (e.g. Efl.Ui.Bg with "resize"
from Efl.Gfx.Entity and Efl.Gfx.Image), Events are currently declared on
the interface and implemented "namespaced" in the classes,
requiring the cast to the interface to access the event.
- The Mixin Conundrum. Mixin inheritance will be dealt in a future
commit.
Depends on D7260
Reviewers: segfaultxavi, vitor.sousa, felipealmeida, Jaehyun_Cho
Reviewed By: vitor.sousa
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7451, T7336
Differential Revision: https://phab.enlightenment.org/D7262
Christopher Michael [Thu, 29 Nov 2018 19:09:09 +0000 (14:09 -0500)]
elementary: Support using no frame object
Summary:
Creation of the frame object can lead to significant delays in window
creation time on limited-power devices (watches, mobile, tv, etc).
This patch allows setting an environment variable and config value in
order to completely skip frame object creation.
This shaves about 50ms from startup on an i7 8600k, so should be more
substantial a saves on limited-power devices.
Reviewers: kimcinoo, ManMower
Reviewed By: ManMower
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7305
Daniel Kolesa [Sun, 4 Nov 2018 17:56:54 +0000 (18:56 +0100)]
eolian_aux: add initial eolian_aux APIs
eolian_aux is a set of auxiliary APIs for eolian that build on top
of the existing eolian APIs but do not belong in the main library.
Yeongjong Lee [Thu, 29 Nov 2018 12:05:22 +0000 (07:05 -0500)]
eldbus: add brackets
Summary: assignment expression is always true.
Test Plan: make
Reviewers: cedric, devilhorns
Reviewed By: devilhorns
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7357
Wonki Kim [Tue, 27 Nov 2018 04:49:27 +0000 (04:49 +0000)]
elm_config: fix elm_config_save not to wake idle processes up
there is a eio_monitor which is tracking on config directory.
and that is the reason why idle processes get waken up once some process call elm_config_save().
this patch fix the function not to wake idle processes up as it was before.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D7354
Wonki Kim [Sat, 24 Nov 2018 03:25:25 +0000 (03:25 +0000)]
elm_config: replace ecore_file_mv with ecore_file_cp
eio_monitor could miss what it is tracking on
in case of calling ecore_file_mv on the tracked file.
so that this patch replace move with copy.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D7352
Wonki Kim [Fri, 23 Nov 2018 11:12:01 +0000 (11:12 +0000)]
elm_config: remove profile name reading logic from data dir
Nothing writes any profile name on profile.cfg inside data dir
This patch removes the logic.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D7351
Marcel Hollerbach [Sun, 25 Nov 2018 11:46:35 +0000 (12:46 +0100)]
ecore_evas_buffer: register it in ecore_evas_input
this is done in order to make ecore_event_evas_key_down work with this.
The function can be used to simulate interactions with a efl_ui_win. If
this is not added, then the user of ecore_event_evas_key_down needs to
differentiate between buffer engines and the rest of the engines.
Differential Revision: https://phab.enlightenment.org/D7361
Dave Andreoli [Wed, 28 Nov 2018 20:52:22 +0000 (21:52 +0100)]
Fixed the docu generator for recent eolian changes
I also uploaded a fresh generated doc tree at:
http://www.gurumeditation.it/dokuwiki
Dave Andreoli [Wed, 28 Nov 2018 20:39:51 +0000 (21:39 +0100)]
Pyolian: fixes for recent eolian changes
Dave Andreoli [Wed, 28 Nov 2018 19:16:19 +0000 (20:16 +0100)]
Pyolian tests: 2 small improvements
1. properly use unittest infra to skip tests, otherwise we will
forgot the commented tests
2. split the new name collision test (failing, but really cool)
so it have a proper name and the results are more readable
Daniel Kolesa [Wed, 28 Nov 2018 13:45:31 +0000 (14:45 +0100)]
meson: include whole src/lib for eo file generation in ifaces
In autotools, src/lib is used as an include path for finding
eo files, which is the same behavior you would get as when using
a system directory. In meson, this was changed to include only
certain directories.
This presents a problem (
05682eed7d572874928424af82fba819790c4228)
as it is not possible to reference symbols from other paths within
documentation.
Since this is necessary for the time being, work around the problem
by doing a whole src/lib include for now, which fixes the parsing.
Longer term solution is to be discussed and implemented.
Xavi Artigas [Wed, 28 Nov 2018 12:33:46 +0000 (13:33 +0100)]
eo-docs: Remove Doxygen tags from efl*.eo files
Summary:
- Replace '\@ref name' with '@name'
- Remove unused \@internal tag
This tag affects text AFTER it, and there is no text after it.
- Remove \@note tag
Replaced with a simple NOTE: text, since eolian does not have an equivalent tag.
- Remove spurious \@Efl... tags
They should really be @Efl...
- Remove \@p tags
There is no eolian equivalent, and a simpler $ suffices in this case.
Fixes T7482
Reviewers: q66
Reviewed By: q66
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7482
Differential Revision: https://phab.enlightenment.org/D7372
Hermet Park [Wed, 28 Nov 2018 07:44:51 +0000 (16:44 +0900)]
ector: fix indentation.
Hosang Kim [Wed, 28 Nov 2018 05:32:39 +0000 (14:32 +0900)]
efl_ui_scrollable: implement efl_ui_scrollable_content_pos_get method.
Summary:
Applications want to know current position on scroller.
Also, it is necessary when calculate position of focusable object.
Reviewers: herdsman, akanad, YOhoho, bu5hm4n
Reviewed By: bu5hm4n
Subscribers: bu5hm4n, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7251
Lauro Moura [Tue, 27 Nov 2018 21:25:53 +0000 (22:25 +0100)]
pyolian: Fix tests after class renames and API change
Summary:
There is still a test failing as at least Ecore.Audio is both a
namespace and a class.
Test Plan: python test_pyolian.py
Reviewers: DaveMDS, q66
Reviewed By: q66
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7371
Hermet Park [Tue, 27 Nov 2018 02:24:10 +0000 (11:24 +0900)]
Revert "evas map: calc map geometry when it is out of screen"
This reverts commit
8a7817cdd9e3a347c301370c2d401a4c5691b6d8.
Sorry, I didn't intend this patch...
Shinwoo Kim [Tue, 27 Nov 2018 02:21:51 +0000 (11:21 +0900)]
evas map: calc map geometry when it is out of screen
Summary:
The map geometry(cur.map->normal_geometry) is calculated only if
evas_render_updates_internal_loop calls evas_render_mapped as below.
evas_render_mapped
-> evas_object_map_update
-> evas_object_map_update
-> _evas_map_calc_map_geometry
If the mapped object is not on screen, then evas_render_updates_internal_loop
does not call evas_render_mapped, because the mapped object is not active.
The mapped object is not active(i.e. is_active is 0) always because cache.clip
data including visilbe and geometry is not updated after the object goes out
of screen.
Usually the unmapped object updates its cache.clip data with updated geometry
even though it is out of screen as below.
_efl_canvas_object_efl_gfx_entity_position_set
-> evas_object_recalc_clippees
-> evas_object_clip_recalc
-> evas_object_clip_recalc_do
So the mapped object geometry(cur.map->normal_geometry) should be updated in
evas_object_clip_recalc_do if it is out of screen.
Test Plan:
Sample code
{
F3455674}
{
F3455673}
{
F3455672}
{
F3455671}
Reviewers: Hermet, jypark
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7344
Daniel Hirt [Thu, 15 Nov 2018 08:55:46 +0000 (10:55 +0200)]
Ui Scroller : remove unnecessary efl_del
Child objects are already destoryed during destruction of the parent
object.
This fixes ERR messages when doing `efl_del(sd->smanager)`
object, which is already destroyed at that point.
Daniel Hirt [Thu, 15 Nov 2018 08:52:16 +0000 (10:52 +0200)]
Scroll manager: remove unnecessary callback_del
Child objects are already destoryed during destruction of the parent
object.
This fixes ERR messages when doing operations on the `event_rect`
object, which is already destroyed at that point.
Daniel Hirt [Tue, 13 Nov 2018 14:14:58 +0000 (16:14 +0200)]
Ui text: remove unused code from internal scroller
Daniel Hirt [Tue, 13 Nov 2018 13:17:28 +0000 (15:17 +0200)]
Ui text: update text; use efl_text_set and not markup_set
Daniel Hirt [Mon, 12 Nov 2018 16:57:42 +0000 (18:57 +0200)]
Ui text: update inputfield test to reflect theme and part changes
Daniel Hirt [Mon, 12 Nov 2018 16:57:24 +0000 (18:57 +0200)]
Ui text: implement efl_part and part_text API to text_set
Daniel Hirt [Mon, 12 Nov 2018 13:15:33 +0000 (15:15 +0200)]
Ui text: have "inputfield" example use the default theme values
Daniel Hirt [Mon, 12 Nov 2018 13:14:11 +0000 (15:14 +0200)]
Ui text: read init text properties from theme
Daniel Hirt [Mon, 12 Nov 2018 13:14:53 +0000 (15:14 +0200)]
Ui text: add initial properties for theme
Daniel Hirt [Mon, 12 Nov 2018 13:13:09 +0000 (15:13 +0200)]
Ui text interactive: emit changed,user event correctly
Daniel Hirt [Mon, 12 Nov 2018 13:09:56 +0000 (15:09 +0200)]
Ui text scroller: add usage of a guide
Marcel Hollerbach [Thu, 22 Nov 2018 14:50:04 +0000 (15:50 +0100)]
efl_ui_focus_manager_sub: freeze manager when parent manager is frozen
a efl_ui_focus_manager_sub object is a manager object by itself. It
registeres the border elements of itself in the parent focus manager.
However, all elements that are registered in this manager object, are
also automatically children of the parent root object, which means, when
the root object of the parent manager object is moved, then those
children will also be moved. Which means, when the parent manager can
ignore those changes, we can also ignore them.
This improves the overall performance of the "Scroller 2" test case by
26%.
The change to the test is required in order to redirect the events so
the self_dirty bit is setted correctly
Differential Revision: https://phab.enlightenment.org/D7350
Marcel Hollerbach [Thu, 22 Nov 2018 14:47:52 +0000 (15:47 +0100)]
elm_interface_scrollable: freeze the manager object when content moves
this freezes the manager object of the user of the interface. This
improves the overall performance when moving arround focus in a
scrollable object, since no new relations are needed to be recalculated.
This safes up about 2% in the "Scroller 2" test. Additional
optimizations are added in another commit.
Differential Revision: https://phab.enlightenment.org/D7349
Marcel Hollerbach [Fri, 23 Nov 2018 11:38:00 +0000 (12:38 +0100)]
efl_ui_focus_manager_calc: ensure that the coords are marked dirty
this is needed when a object is unregistered, otherwise a user of the
event is not informed when a element is gone, and thus the border
elements might have changed.
Differential Revision: https://phab.enlightenment.org/D7353
Marcel Hollerbach [Thu, 22 Nov 2018 14:41:31 +0000 (15:41 +0100)]
efl_ui_focus_manager: introduce a new API
the new api can be used to freeze the cache. This means, when the
widgets of the focus manager are all equally moved, the cache can stay,
cause the relative positions did not change, this enables a whole new
set of available optimizations.
Differential Revision: https://phab.enlightenment.org/D7348
Marcel Hollerbach [Fri, 23 Nov 2018 08:49:55 +0000 (09:49 +0100)]
efl_ui_focus_object: introduce a new event for focus geometry changes
before the move and resize events have been used. However, this turned
out to not work well, because not all registered items are real
efl.gfx.entity objects, there is also a custom property for getting the
focus geometry, so now this property is completed with a event that is
emitted when the focus geometry changes. With this event we can
reintroduce relation caching. Since all events are marked correctly
dirty now.
Differential Revision: https://phab.enlightenment.org/D7347
Marcel Hollerbach [Thu, 22 Nov 2018 16:54:57 +0000 (17:54 +0100)]
elm_focus: implement missing functions
there is one function that needs to be implemented by the inheritor of
Efl.Ui.Focus.Object and that is focus_parent, otherwise child_focus
cannot be propagated correctly. This is now achived correctly for all
widgets.
This fixes from elm_object_focus_get results for toolbar and calendar.
Segmentcontrol inherits from the class, however, the widget itself does
not allow focus, so its never registered probebly.
Differential Revision: https://phab.enlightenment.org/D7331
Marcel Hollerbach [Wed, 21 Nov 2018 19:57:32 +0000 (20:57 +0100)]
efl_ui_focus_manager_calc: reduce the amount of list operations
it appears that the calculation of the unordered elements can be done a
lot easier here, when checking in the initial for loop for the right
parent safes us two more list walk later on.
Additionally, if all elements in this chain have the right parent, and
the amount of elements is the same as the parent has, then this list can
be used as a full replacement.
Differential Revision: https://phab.enlightenment.org/D7330
Daniel Zaoui [Mon, 26 Nov 2018 08:32:31 +0000 (10:32 +0200)]
FlipSelector: fix items creation when range is used
In the case step is 0, the application will enter in an infinite loop
where the max will never be reached. To fix this, step is set to 1 if 0
is given by the user.
Moreover, step is forced to positive. According to the given min and
max values, the step will be negative or positive. In this way, we are
sure to be inside the correct range.
Cedric BAIL [Thu, 22 Nov 2018 01:33:10 +0000 (17:33 -0800)]
eo: rename efl_future_Eina_FutureXXX_then in efl_future_then as this has been available for some time.
Reviewed-by: Vitor Sousa da Silva <vitorsousa@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D7327
Cedric BAIL [Thu, 22 Nov 2018 01:03:53 +0000 (17:03 -0800)]
eldbus: switch Eldbus.Model to inherit from Efl.Model_Loop.
Reviewed-by: Vitor Sousa da Silva <vitorsousa@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D7326
Cedric BAIL [Thu, 22 Nov 2018 01:03:34 +0000 (17:03 -0800)]
eio: switch Eio.Model to inherit from Efl.Model_Loop.
Reviewed-by: Vitor Sousa da Silva <vitorsousa@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D7325
Cedric BAIL [Thu, 22 Nov 2018 01:03:10 +0000 (17:03 -0800)]
ecore: switch all Efl.Model to inherit first from Efl.Model_Loop.
Reviewed-by: Vitor Sousa da Silva <vitorsousa@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D7324
Cedric BAIL [Thu, 22 Nov 2018 00:44:17 +0000 (16:44 -0800)]
ecore,efl: add Efl.Model.property_get helper which will suceed once when a property finally has a value.
Reviewed-by: Vitor Sousa da Silva <vitorsousa@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D7323
Cedric BAIL [Thu, 22 Nov 2018 00:43:10 +0000 (16:43 -0800)]
eio: use the right type of Eina_Value to report error.
Reviewed-by: Vitor Sousa da Silva <vitorsousa@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D7322
Cedric BAIL [Fri, 23 Nov 2018 16:25:19 +0000 (16:25 +0000)]
efl: make Efl.Model.properties_get return an Iterator<string>.
Reviewed-by: Vitor Sousa da Silva <vitorsousa@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D7289
Cedric BAIL [Fri, 16 Nov 2018 01:44:09 +0000 (17:44 -0800)]
eina: add tests for eina_multiple_iterator_new.
Reviewed-by: Vitor Sousa da Silva <vitorsousa@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D7287
Cedric BAIL [Fri, 16 Nov 2018 01:42:27 +0000 (17:42 -0800)]
eina: add eina_multi_iterator_new.
This will return an Iterator that will walk over a serie of iterator.
This technicaly take ownership of the iterator it is walking over and
destroy as it goes and doesn't need them anymore.
Reviewed-by: Vitor Sousa da Silva <vitorsousa@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D7286
Cedric BAIL [Thu, 15 Nov 2018 23:38:40 +0000 (15:38 -0800)]
eina: add test for Eina_Iterator over pure C array.
Reviewed-by: Vitor Sousa da Silva <vitorsousa@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D7285
Cedric BAIL [Thu, 15 Nov 2018 23:37:15 +0000 (15:37 -0800)]
eina: add a way to iterate over a pure C array with no NUL terminating element.
Reviewed-by: Vitor Sousa da Silva <vitorsousa@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D7284
Stefan Schmidt [Fri, 23 Nov 2018 16:11:05 +0000 (17:11 +0100)]
travis: temporarily disabled mingw job as hot fix
Since a recent commit eolian_gen from HEAD is needed to build efl.
So far the mingw cross build avoided the double build of efl for
bootstrapping purpose and used the 1.21 package for the cross build.
This does no longer work and all Travis jobs are now failung due to
this. As a hotfix I disable the build now (Friday evening) to have
working builds over the weekend and find a better solution next week.
Stefan Schmidt [Wed, 21 Nov 2018 15:49:14 +0000 (16:49 +0100)]
travis: reorder jobs to reduce overall build time per push
We currently have 6 jobs runnign after a git push, but only 5 parallel
workers available. The macos build takes way longer then the meson
builds for example which we will use to our advantage.
Starting the longest builds (macos and mingw) first and letting the
second meson build start after the first ones finishes. That way the
limitation is still the long running macos job.
Differential Revision: https://phab.enlightenment.org/D7321
Marcel Hollerbach [Wed, 7 Nov 2018 16:06:10 +0000 (17:06 +0100)]
ci: here comes ninja!
this updates the scripts in order to make ninja all / ninja test work as
expected. For now there are 2 new jobs options-enabled and
options-disabled. mingw and osx will follow in another commit.
Benchmarks are disabled for now, as the eina benchmark does not seem to
terminate.
Differential Revision: https://phab.enlightenment.org/D7255
Stefan Schmidt [Mon, 19 Nov 2018 13:22:10 +0000 (14:22 +0100)]
travis: merge wayland build into misc and rename to options-enabled
The misc build already had most of the extra options enabled for the EFL
build. Instead of wasting CPU cycles on a full seperate build for just
wayland options we merge these two together. In the process we rename
from misc (pretty vague) to options-enabled and options-disbaled.
Due to the combination of options we need to disable sdl for now. It
clashes with the OpenGL ES option we enable for wayland. Having build
for the different GL flavours is something we should look into at some
point.
Patch is based on the patches from Marcel in D7253 and D7254
Differential Revision: https://phab.enlightenment.org/D7320
Daniel Kolesa [Thu, 22 Nov 2018 16:17:29 +0000 (17:17 +0100)]
eolian: implement new syntax for inheritance
This new syntax separates the parent class from extensions, in
a familiar way to similar to e.g. Java. Since changing everything
at once is a lot of effort, implement it alongside for the time
being.
Daniel Kolesa [Thu, 22 Nov 2018 15:21:52 +0000 (16:21 +0100)]
eolian: implement new inherit behavior
Eolian now separates 'parent' and 'extensions'. For regular
classes, parent is the first item in the inherits list and
extesions is the rest. For interfaces and mixins, parent is
NULL and extends is the inherits list.
The reason for this is the separation of them in syntax in near
future. It also slightly changes the behavior; since for interfaces
and mixins, parent is always NULL now, you can freely inherit from
all types of classes without needing to manually put an interface
type as the first item of the inherits list.
Jaehyun Cho [Fri, 23 Nov 2018 12:26:00 +0000 (21:26 +0900)]
efl_interpolator: rename subclasses of Efl.Interpolator
Subclasses of Efl.Interpolator are renamed intuitively from backward
order to forward order.
Jaehyun Cho [Fri, 23 Nov 2018 10:30:36 +0000 (19:30 +0900)]
efl_interpolator: change Efl.Interpolator class to interface
Since Efl.Interpolator's subclasses are used as interpolator class,
Efl.Interpolator class is changed to be an interface.
This change allows Efl.Canvas.Animation to have Efl.Interpolator as its
property in efl_canvas_animation.eo.
Yeongjong Lee [Wed, 14 Nov 2018 06:30:10 +0000 (06:30 +0000)]
elm_gengrid: remove all_items_deselect call in _gengrid_element_focused
focus_changed doesn't mean select_changed. selection is handled the code below.
Differential Revision: https://phab.enlightenment.org/D7268
Derek Foreman [Tue, 20 Nov 2018 19:57:12 +0000 (13:57 -0600)]
elm: roll _tree_custom_chain_missing into main focus test function
Further reduction in eo overhead.
Differential Revision: https://phab.enlightenment.org/D7315
Signed-off-by: Derek Foreman <derek.foreman.samsung@gmail.com>
Derek Foreman [Tue, 20 Nov 2018 17:20:36 +0000 (11:20 -0600)]
elm: Compress more focus tests into the same list walk
Since we're already at the top of the list, we can do the WIN_CLASS test
much more cheaply.
Differential Revision: https://phab.enlightenment.org/D7314
Signed-off-by: Derek Foreman <derek.foreman.samsung@gmail.com>
Derek Foreman [Tue, 20 Nov 2018 16:49:40 +0000 (10:49 -0600)]
elm: Re-order focus tests
Placing the cheapest tests first can save on some heavy walks.
Differential Revision: https://phab.enlightenment.org/D7313
Signed-off-by: Derek Foreman <derek.foreman.samsung@gmail.com>
Derek Foreman [Tue, 20 Nov 2018 16:48:29 +0000 (10:48 -0600)]
elm: Walk parents instead of parent widget in focus test
This Should Work, right?
Differential Revision: https://phab.enlightenment.org/D7312
Signed-off-by: Derek Foreman <derek.foreman.samsung@gmail.com>
Derek Foreman [Mon, 19 Nov 2018 21:30:25 +0000 (15:30 -0600)]
elm: speed up _eval_registration_candidate
combining _tree_unfocusable and _tree_disabled into a single function
reduces eo overhead. This saves a few ms at startup in elementary_test.
Differential Revision: https://phab.enlightenment.org/D7308
Signed-off-by: Derek Foreman <derek.foreman.samsung@gmail.com>
Stefan Schmidt [Wed, 21 Nov 2018 08:28:04 +0000 (09:28 +0100)]
elm/themes: make sure the new grid.edc file ends up in the dist tarball
The new file has been added in
4b5304d7f2b400064c0896f7510f31850912e5af
but forgotten to be added to the list of edc files for the dist tarball.
https://travis-ci.org/Enlightenment/efl/jobs/
457510394
Differential Revision: https://phab.enlightenment.org/D7319
Yeongjong Lee [Thu, 22 Nov 2018 08:22:04 +0000 (17:22 +0900)]
Remove duplicated interface inheritance in eo
Summary:
Delete unnecessary interface inheritance
Efl.Ui.Base ==> Efl.Ui.Widget - Efl.Canvas.Group - Efl.Canvas.Object - Efl.Ui.Base
Efl.Text_Cursor ==> Efl.Text_Markup - Efl.Text_Cursor
Efl.Pack_Layout ==> Efl.Ui.Box - Efl.Pack_Layout
Efl.Ui.Translatable ==> Efl.Ui.Layout - Efl.Ui.Widget - Efl.Ui.Translatable
Efl.Part ==> Efl.Ui.Widget - Efl.Part
Efl.Ui.View ==> Efl.Ui.Layout.Object - Efl.Ui.View
Efl.Access.Value ==> Efl.Ui.Spin - Efl.Access.Value
Efl.Gfx.Buffer ==> Efl.Canvas.Image_Internal - Efl.Gfx.Buffer
Efl.Canvas.Pointer ==> Efl.Ui.Widget - Efl.Canvas.Group - Efl.Canvas.Object - Efl.Canvas.Pointer
Efl.Gfx.Size_Hint ==> Efl.Ui.Widget - Efl.Canvas.Group - Efl.Canvas.Object - Efl.Gfx.Size_Hint
Test Plan: make check
Reviewers: Jaehyun_Cho, Hermet, woohyun, segfaultxavi
Reviewed By: Jaehyun_Cho, segfaultxavi
Subscribers: segfaultxavi, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D7241
Chris Michael [Wed, 21 Nov 2018 16:06:51 +0000 (11:06 -0500)]
elementary: Reduce EO calls by using geometry_set
This patch reduces EO calls by using evas_object_geometry_set rather
than calling move & resize.
Chris Michael [Wed, 21 Nov 2018 16:05:41 +0000 (11:05 -0500)]
elementary: Reduce EO calls by using geometry_set
This patch reduces EO calls by using evas_object_geometry_set rather
than calling move & resize.
Chris Michael [Wed, 21 Nov 2018 16:03:35 +0000 (11:03 -0500)]
elementary: Reduce EO calls by using geometry_set
This patch reduces EO calls by using evas_object_geometry_set rather
than calling move & resize.
Chris Michael [Wed, 21 Nov 2018 15:59:17 +0000 (10:59 -0500)]
elementary: Reduce EO calls by using geometry_set
This patch reduces EO calls by using evas_object_geometry_set rather
than calling move & resize.
Chris Michael [Wed, 21 Nov 2018 15:58:14 +0000 (10:58 -0500)]
elementary: Reduce EO calls by using geometry_set
This patch reduces EO calls by using evas_object_geometry_set rather
than calling move & resize.
Chris Michael [Wed, 21 Nov 2018 15:56:46 +0000 (10:56 -0500)]
elementary: Reduce EO calls by using geometry_set
This patch reduces EO calls by using evas_object_geometry_set rather
than calling move & resize.
Chris Michael [Wed, 21 Nov 2018 15:53:11 +0000 (10:53 -0500)]
elementary: Reduce EO calls by using geometry_set
This patch reduces EO calls by using evas_object_geometry_set rather
than calling move & resize.
Chris Michael [Wed, 21 Nov 2018 15:51:43 +0000 (10:51 -0500)]
elementary: Reduce EO calls by using geometry_set
This patch reduces EO calls by using evas_object_geometry_set rather
than calling move & resize.
Chris Michael [Wed, 21 Nov 2018 15:49:14 +0000 (10:49 -0500)]
elementary: Reduce EO calls by using geometry_set
This patch reduces EO calls by using evas_object_geometry_set rather
than calling move & resize.
Chris Michael [Wed, 21 Nov 2018 15:48:30 +0000 (10:48 -0500)]
elementary: Reduce EO calls by using geometry_set
This patch reduces EO calls by using evas_object_geometry_set rather
than calling move & resize.
Chris Michael [Wed, 21 Nov 2018 15:47:38 +0000 (10:47 -0500)]
elementary: Reduce EO calls by using geometry_set
This patch reduces EO calls by using evas_object_geometry_set rather
than calling move & resize.
Chris Michael [Wed, 21 Nov 2018 15:46:31 +0000 (10:46 -0500)]
elementary: Reduce EO calls by using geometry_set
This patch reduces EO calls by using evas_object_geometry_set rather
than calling move & resize.