Xavi Artigas [Wed, 30 Oct 2019 14:26:08 +0000 (15:26 +0100)]
docs: Polish Efl.Canvas.Animation_Group and sons
Summary: These docs were almost empty.
Reviewers: bu5hm4n, zmike, cedric, Jaehyun_Cho
Reviewed By: cedric
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10564
Marcel Hollerbach [Mon, 4 Nov 2019 12:44:29 +0000 (13:44 +0100)]
efl_canvas_animation: improve generally
Summary:
to be taken over by doccop
Depends on D10559
Reviewers: Jaehyun_Cho, bu5hm4n
Reviewed By: bu5hm4n
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10560
Xavi Artigas [Mon, 4 Nov 2019 12:06:41 +0000 (13:06 +0100)]
docs: Polish Efl.Canvas.Animation_*
Summary:
These docs were lacking a lot of detail.
Depends on D10562
Reviewers: bu5hm4n, cedric, zmike, Jaehyun_Cho
Reviewed By: cedric
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10565
Marcel Hollerbach [Wed, 30 Oct 2019 14:30:20 +0000 (15:30 +0100)]
efl_canvas_animation_translate: move from x&y to container types
Summary:
this now uses Eina.Position2D so its easier to pass arround other
positions.
ref T8288
Depends on D10559
Reviewers: segfaultxavi
Reviewed By: segfaultxavi
Subscribers: segfaultxavi, cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8288
Differential Revision: https://phab.enlightenment.org/D10562
Marcel Hollerbach [Wed, 30 Oct 2019 14:30:18 +0000 (15:30 +0100)]
efl_canvas_animation_scale: move from 2 doubles to vectors
Summary:
with this the passing of positions is getting more easy. Additionally,
Reading the API call gets easier, as parameters are semantically
grouped.
Depends on D10558
Reviewers: segfaultxavi, Jaehyun_Cho
Reviewed By: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8288
Differential Revision: https://phab.enlightenment.org/D10559
Marcel Hollerbach [Wed, 30 Oct 2019 14:30:09 +0000 (15:30 +0100)]
efl_canvas_animation: be more explicit with errors
Summary:
with this commit invalid values are not accepted silently anymore. But
rather a error will be raised.
Depends on D10350
Reviewers: segfaultxavi, Jaehyun_Cho
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8288
Differential Revision: https://phab.enlightenment.org/D10558
Marcel Hollerbach [Wed, 30 Oct 2019 14:29:59 +0000 (15:29 +0100)]
efl_canvas_animation_rotate: adjust API
Summary:
in task T8288 we concluded that a few APIs need to be adjusted in order
to stabelize animation classes at some point. This also adds a new macro
to eina in order to create EINA_VECTOR2 values more easily.
ref T8288
Reviewers: Jaehyun_Cho, segfaultxavi, zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8288
Differential Revision: https://phab.enlightenment.org/D10350
Yeongjong Lee [Fri, 1 Nov 2019 20:13:57 +0000 (17:13 -0300)]
eo_mono: make Efl.EventDescription, Efl.Event, Efl.EventCb internal
Summary:
Hide struct and delegate related to `IntPtr`.
Depends on D10585
Depends on D10586
Test Plan: meson setup -Dbindings=mono,cxx -Dmono-beta=true
Reviewers: lauromoura, Jaehyun_Cho
Reviewed By: lauromoura
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10587
Yeongjong Lee [Fri, 1 Nov 2019 20:03:56 +0000 (17:03 -0300)]
mono: blacklist efl_thread
Summary:
C# developers are already familar with C# Thread`System.Threading.Thread`, We
don't need to provide Wrapped `Efl.Thread` class.
Also, we can't ensure compatibility between C# Thread and EFL Thread.
Test Plan: meson setup -Dbindings=mono,cxx -Dmono-beta=true
Reviewers: lauromoura, Jaehyun_Cho
Reviewed By: lauromoura
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10586
Yeongjong Lee [Fri, 1 Nov 2019 19:01:49 +0000 (16:01 -0300)]
mono: blacklist functions related to native event
Summary:
`efl_event_callback_forwarder_priority_del`
=> It can be replaced with `obj.XXXEvent -= callback;`.
Furthermore, `efl_event_callback_forwarder_priority_add` is already in blacklist.
`efl_ui_widget_input_event_handler`
=> It can be replaced with `obj.DownEvent`, `obj.UpEvent` and `obj.PointerWhellEvent`.
`efl_access_object_event_handler_add`
`efl_access_object_event_handler_del`
`efl_access_object_event_emit`
=> They are functions to handle global event related to access(E.g. `elm_atspi_bridge`).
It should be generated to `static event` in C#.
Test Plan: meson setup -Dbindings=mono,cxx -Dmono-beta=true
Reviewers: lauromoura, Jaehyun_Cho
Reviewed By: lauromoura
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10585
Lauro Moura [Fri, 1 Nov 2019 13:04:04 +0000 (10:04 -0300)]
csharp: Refactor MarshalOwn
Summary:
Instead of using the empty interface as tag, split MarshalOwn into two
marshalers that can be used directly.
Fixes T8395 (CA1040)
Test Plan: no new functionality. Use existing tests
Reviewers: felipealmeida, brunobelo, segfaultxavi, YOhoho
Reviewed By: YOhoho
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8395
Differential Revision: https://phab.enlightenment.org/D10457
Carsten Haitzler (Rasterman) [Fri, 1 Nov 2019 10:12:30 +0000 (10:12 +0000)]
Revert "elm/genlist: don't process entire item queue on each item add"
First - the big problem. This breaks enlightenment's bluez5 popup. it
does a sortyed inert using the item data and the item data for one of
the itmes to compare in _cb_insert_cmp() in e_mod_popup.c when it
calls elm_object_item_data_get(0 returns a junk ptr for the item data
after this patch. i haven't managed to figure out exactly why in my
last 30 mins of looking.
But a closer look... this disables immediate processing of:
1. the first block of items (32items) which was intended so for
short/small lists you have some content by the time you go to the
first frame, and at least the first block of itso you seem to have
visual contnt and not a blank list until idlers can process further
content. so the patch being reverted would have gotten rid of this
logic that gets you content as opposed to blank:
while ((sd->queue) && ((!sd->blocks) || (!sd->blocks->next)))
2. if it's a homogenous list, all items have the same size so we do
have to realize the first item of each class type but ONLY that one.
further items should not need realizing as we can ASSUME the height to
be the same as the first item... that's the point of homogenous +
compress lists - all items of the same class have the same height and
width thus shortcutting further need to calculate nd realize. if we
are reizing everything in a homogenous list then the issue lies with
something going wrong with this above logic. we shokuld be able to
handle such lists super fastif this logic was working.
that's the 2nd while:
while ((sd->queue) && (sd->blocks) &&
(sd->homogeneous) && (sd->mode == ELM_LIST_COMPRESS))
so overall, this should not have been realizing every item. either
just the first block of 32, OR just the first item of any class and
thus assume all further items are the same size without realizing
being needed. if these broke then the solution is not commenting this
out but finding out why this logic is breaking :)
and not to mention... this commenting out also caused segfaults in
existing applications which are doing the right thing. perhaps the
sorting logic also needed updating as well if this above is commented out...
but i didn't have time to chase it more than this.
---
This reverts commit
0777b74f07857c86408bc0929e3391ced0e098e4.
JunsuChoi [Fri, 1 Nov 2019 03:46:24 +0000 (12:46 +0900)]
ecore_event: Remove unused goto define
Summary:
For remove -Wunused-label warning
Test Plan: N/A
Reviewers: Hermet, kimcinoo, YOhoho
Reviewed By: YOhoho
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10584
Yeongjong Lee [Thu, 31 Oct 2019 21:30:23 +0000 (18:30 -0300)]
mono: blacklist elm_general.eot
Summary:
Prevent generating legacy eot.cs
Depends on D10580
Test Plan: meson setup -Dbindings=mono,cxx -Dmono-beta=true
Reviewers: lauromoura, Jaehyun_Cho
Reviewed By: lauromoura
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10581
Yeongjong Lee [Thu, 31 Oct 2019 21:25:32 +0000 (18:25 -0300)]
mono: blacklist efl_ui_text_context_menu_item_add
Summary: Blacklist a method which has `IntPtr` parameters.
Reviewers: woohyun, segfaultxavi, YOhoho, felipealmeida
Reviewed By: felipealmeida
Subscribers: segfaultxavi, zmike, q66, bu5hm4n, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10579
Yeongjong Lee [Thu, 31 Oct 2019 21:21:42 +0000 (18:21 -0300)]
mono: remove duplicated EinaFreeCb delegate
Summary: Use Eina.Claabacks.EinaFreeCb instead.
Reviewers: lauromoura
Reviewed By: lauromoura
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10577
Cedric BAIL [Thu, 31 Oct 2019 19:43:16 +0000 (15:43 -0400)]
efl: fix include due to stale files.
Reviewers: zmike
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10583
Yeongjong Lee [Thu, 31 Oct 2019 17:38:08 +0000 (13:38 -0400)]
efl_ui_text: remove elm_general.eot
Summary: remove legacy dependency in eo file.
Test Plan: ninja
Reviewers: woohyun, Jaehyun_Cho, zmike
Reviewed By: zmike
Subscribers: zmike, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10580
Cedric Bail [Thu, 31 Oct 2019 17:20:52 +0000 (13:20 -0400)]
evas: move watching over destruction of device to custom logic due to high use.
Summary:
This specific EFL_EVENT_DEL handler was registered thousand of time alone on
an Evas device. Potential solution are to improve handling of this kind of large
scale callback logic or just not take that path. I find it easier to have a custom
code in this case to handle the destruction of Evas device and avoid this
thousand of callback.
Depends on D10492
Reviewers: zmike, raster, bu5hm4n, Hermet
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8321
Differential Revision: https://phab.enlightenment.org/D10493
Cedric Bail [Thu, 31 Oct 2019 17:20:45 +0000 (13:20 -0400)]
evas: deprecate evas_device_parent_set.
Summary:
It is unlikely that the code was working before and it was a bad idea
anyway. There is no user of this API in EFL.
Depends on D10490
Reviewers: zmike, raster, bu5hm4n, Hermet
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8321
Differential Revision: https://phab.enlightenment.org/D10491
Cedric Bail [Thu, 31 Oct 2019 17:20:39 +0000 (13:20 -0400)]
evas: move exposed internal structure of Efl_Input_Device to be private.
Summary: Depends on D10489
Reviewers: zmike, raster, bu5hm4n, Hermet
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8321
Differential Revision: https://phab.enlightenment.org/D10490
Cedric Bail [Thu, 31 Oct 2019 17:20:33 +0000 (13:20 -0400)]
evas: move efl_input_device into evas/Efl_Canvas.h
Summary:
The internal and the API we would like is mostly a canvas API. A lot of the code
in evas is working around the fact that efl_input_device is not defined inside Evas.
This patch is the first step to try to clean this up.
Depends on D10487
Reviewers: zmike, raster, bu5hm4n, Hermet
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8321
Differential Revision: https://phab.enlightenment.org/D10488
Mike Blumenkrantz [Wed, 9 Oct 2019 17:20:43 +0000 (13:20 -0400)]
tests/eina: use #ifdef guard for block which can only occur inside ifdef
this value is set in the corresponding #ifdef block above, so use the same
guard here to make code more readable
CID 1400948
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10321
Marcel Hollerbach [Thu, 31 Oct 2019 16:48:27 +0000 (12:48 -0400)]
eo_base_class: move shift init to the first call
Summary:
this cannot be evalulated in compile time, so this must be evalulated in
runtime, at the first call.
This should fix OSX build.
Co-authored-by: Cedric Bail <cedric.bail@free.fr>
Reviewers: zmike, cedric, raster
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10582
Cedric Bail [Fri, 18 Oct 2019 16:24:47 +0000 (09:24 -0700)]
eo: add debug ability to detect long chain of event handler.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10484
Cedric Bail [Thu, 17 Oct 2019 19:09:14 +0000 (12:09 -0700)]
eo: reduce memory use to track event registration and callback call.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10482
Cedric Bail [Wed, 16 Oct 2019 23:47:47 +0000 (16:47 -0700)]
ecore: remove custom code for generating Eina_Future_Schedule attached on Efl.Loop.
This leverage the new infrastructure from Eo that provide a scheduler for any event
attached to any object.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10481
Cedric Bail [Wed, 16 Oct 2019 23:47:10 +0000 (16:47 -0700)]
eo: add infrastructure to attach an Eina_Future_Scheduler to any source of event.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10480
Cedric Bail [Wed, 16 Oct 2019 23:45:50 +0000 (16:45 -0700)]
eina: only the type need to be NULL to assume EINA_VALUE_EMPTY.
This avoid comparison with potentially uninitialized byte.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D10479
Cedric Bail [Wed, 16 Oct 2019 19:14:20 +0000 (12:14 -0700)]
ecore: remove unecessary code for Eina_Future scheduler.
As we do not rely on legacy Ecore Event directly anymore, we do not
need to mind the shutting down of EFL.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10477
Cedric Bail [Wed, 16 Oct 2019 17:04:29 +0000 (10:04 -0700)]
ecore: remove unecessary field in data structure.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10476
Cedric Bail [Wed, 16 Oct 2019 00:04:32 +0000 (17:04 -0700)]
eo: prevent unecessary callback call walk.
This patch introduce a small hash (64 or 32bits) that cache all existing
Efl_Event_Description callback handler registered on an object. It slightly
reduce the time needed to do an unecessary call and cost just a few bytes
per object.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10475
Cedric Bail [Thu, 31 Oct 2019 13:17:53 +0000 (09:17 -0400)]
elementary: handle case when XFIXES is not available.
Summary:
ECORE_X_EVENT_FIXES_SELECTION_NOTIFY is only initialized when XFIXES
is available. If ecore_event_handler_add is called with type == 0, it
will trigger an abort and elementary would not initialize properly.
Depends on D10491
Reviewers: zmike, raster, bu5hm4n, Hermet
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8321
Differential Revision: https://phab.enlightenment.org/D10492
Cedric Bail [Thu, 31 Oct 2019 13:17:46 +0000 (09:17 -0400)]
edje: load edje seat callback only when necessary.
Summary:
This reduce in elementary_test the number of callback registered on the
canvas from hundreds to around 10.
Depends on D10486
Reviewers: zmike, raster, bu5hm4n, Hermet
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8321
Differential Revision: https://phab.enlightenment.org/D10487
Cedric Bail [Thu, 31 Oct 2019 13:17:40 +0000 (09:17 -0400)]
edje: improve callback count on Evas canvas.
Summary:
This reduce by 3 the amount of callback registered on the canvas. Another
potential improvement would be to only register those callback if someone
is listening for a 'seat,*' event or if the edje file define seat filters.
Depends on D10484
Reviewers: zmike, raster, bu5hm4n, Hermet
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8321
Differential Revision: https://phab.enlightenment.org/D10486
Mike Blumenkrantz [Thu, 31 Oct 2019 13:02:56 +0000 (09:02 -0400)]
tests/spec: pre-create a ton of widgets during test init
Summary:
similar to existing mechanics for elm/efl_ui tests, this pre-creates
all the widgets used as test contents for all the test cases so they
can be forked and reused without needing to spend time in every single
test creating the same test contents
Depends on D10573
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10574
Mike Blumenkrantz [Thu, 31 Oct 2019 13:02:54 +0000 (09:02 -0400)]
tests/elm: add utils for detecting buffer engine and setting fork init cb
Summary:
this allows use of the global win object prior to actually being inside a
test for the purpose of doing additional setup
Depends on D10572
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10573
Mike Blumenkrantz [Thu, 31 Oct 2019 13:02:52 +0000 (09:02 -0400)]
tests/spec: use wrefs to automatically unset global pointers
Summary:
these may end up being reused in the future, so unset them only on
object destruction
Depends on D10571
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10572
Mike Blumenkrantz [Thu, 31 Oct 2019 13:02:51 +0000 (09:02 -0400)]
tests/spec: assert success of content_set during setup
Summary: Depends on D10570
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10571
Mike Blumenkrantz [Thu, 31 Oct 2019 13:02:49 +0000 (09:02 -0400)]
tests/spec: store test class and reuse globally to avoid needing efl_isa
Summary: Depends on D10569
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10570
Mike Blumenkrantz [Thu, 31 Oct 2019 13:02:47 +0000 (09:02 -0400)]
tests/elm: add util function for detecting whether current test is forked
Summary:
this is useful for determining whether we can use extra hacks because nobody's
supervising our pointer (ab)use
Depends on D10568
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10569
Mike Blumenkrantz [Thu, 31 Oct 2019 13:02:45 +0000 (09:02 -0400)]
tests/spec: reduce looping of pack content tests
Summary:
this was hugely over-testing before; simply verifying one item outside
the limit is sufficient here
Depends on D10567
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10568
Mike Blumenkrantz [Thu, 31 Oct 2019 13:02:44 +0000 (09:02 -0400)]
tests/spec: merge some loops in linear pack tests
Summary:
these are small loops, but iterating small loops hundreds of times leads to
big slowdowns
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10567
Carsten Haitzler (Rasterman) [Thu, 31 Oct 2019 12:21:59 +0000 (12:21 +0000)]
evas - revert evas variation sequence support - out of bound accesses
This code is filled with out of bounds accesses now after the reverted
patch. All those base_char+1, itr+1 etc. in
evas_common_font_query_run_font_end_get() are accessing BEYOND
the end of the run. textgrid shows this instantly to fall over as it
uses single unicode codepoint chars with no nul terminator. As this
api takes an explicit run_len we should never access beyond the end of
the run_len.
Please revisit this code and keep in mind proper memory/bounds
accessing. If there was ano run_len and it assumed strings were
regular strings that had to be nul terminated... then it might be ok,
but not here.
of course if i put in guards for these +1's then it ends up in
infintie loops, so enough debugging and send it back for a rethink. :)
....
Revert "evas_object_textblock: add support for variation sequences"
This reverts commit
46f2d8acdcda3f374c9e393ecb734ff9d00fef7d.
Bruno da Silva Belo [Thu, 31 Oct 2019 10:45:01 +0000 (07:45 -0300)]
csharp: space after keywords.
Reviewers: felipealmeida, lauromoura, YOhoho
Reviewed By: lauromoura
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10576
Mike Blumenkrantz [Tue, 29 Oct 2019 17:08:21 +0000 (13:08 -0400)]
tests/efl_app: add port of intensive timer recursion
this is roughly the same as the similarly-named ecore_timer unit test
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10556
Mike Blumenkrantz [Tue, 29 Oct 2019 14:07:53 +0000 (10:07 -0400)]
tests/evas: prune directory scan in mesh loader/saver test
this test should use a hardcoded list of files, but until it does we
can at least attempt to reduce failure rates which may occur from random
garbage in the tree
ref T6857
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10552
Mike Blumenkrantz [Tue, 29 Oct 2019 14:05:06 +0000 (10:05 -0400)]
tests/evas: replace macro with function in mesh loader/saver test
this was totally impossible to debug
no functional changes
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10551
Mike Blumenkrantz [Mon, 28 Oct 2019 19:50:02 +0000 (15:50 -0400)]
tests/ecore: add intensive test for recursive timer usage
this recurses the mainloop to a depth of 8, continually creating and
triggering timers as it progresses and tracking the states to ensure that
everything is working as expected regardless of depth
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10547
Mike Blumenkrantz [Mon, 28 Oct 2019 19:03:28 +0000 (15:03 -0400)]
tests/ecore: do not create global test timeout timer if running unforked
this is a pita for debugging
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10546
Mike Blumenkrantz [Mon, 28 Oct 2019 18:59:11 +0000 (14:59 -0400)]
ecore/timer: correctly handle recursive deletion of legacy timers
if a legacy timer callback returns false, the timer is deleted. in the
case where the legacy timer is deleted inside the callback while the same
timer is ticking recursively, however, the deletion must be deferred until
the outer-most frame of the timer's callstack has returned from the callback
in order to avoid improperly handling the timer
@fix
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10545
Mike Blumenkrantz [Thu, 17 Oct 2019 14:28:55 +0000 (10:28 -0400)]
evas/font: simplify handling strings when constructing font names
no need to strcpy here when we can just pass the length to stringshare directly
CID 1382854
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10441
Mike Blumenkrantz [Mon, 28 Oct 2019 12:36:07 +0000 (08:36 -0400)]
efl_ui: mark Efl.Ui.Focus.Autoscroll_Mode beta
this cannot currently be used for anything and was not explicitly stabilized
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10540
Mike Blumenkrantz [Mon, 28 Oct 2019 12:35:25 +0000 (08:35 -0400)]
efl_ui: remove Efl.Ui.Slider_Indicator_Visible_Mode
this cannot be used for anything and serves no purpose
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10539
Cedric BAIL [Fri, 25 Oct 2019 16:11:06 +0000 (09:11 -0700)]
eina: introduce a simple malloc near implementation for Chained Mempool.
This actually seems to significantly and reliably improve speed result with
expedite in a higher way than I expected (~10%) which is neat, I guess.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D10537
Cedric BAIL [Fri, 25 Oct 2019 15:00:23 +0000 (08:00 -0700)]
eina: make use of the new near allocation policy for Eina_List.
The idea is to improve memory locality and hopefully get better cache hit
in general.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D10536
Cedric BAIL [Fri, 25 Oct 2019 15:01:35 +0000 (08:01 -0700)]
eina: introduce an API for requesting memory near already allocated memory from an Eina_Mempool.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D10535
Cedric BAIL [Fri, 25 Oct 2019 14:58:31 +0000 (07:58 -0700)]
eina: change default policy of Chained Mempool to recycle memory right away.
Until now, Chained Mempool would first empty its pool and the started to
recycle memory. Now it does always try to recycle first. This should limit
memory fragmentation to some extend.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D10534
Mike Blumenkrantz [Wed, 30 Oct 2019 13:29:56 +0000 (09:29 -0400)]
elm/widget: error on null params for tree_unfocusable functions
Summary: these should error so the user can detect that they screwed up
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10563
Woochanlee [Wed, 30 Oct 2019 12:10:09 +0000 (08:10 -0400)]
edje_calc: Remove unused flag.
Summary: This has marked remove me.
Reviewers: raster, Hermet, zmike, devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10561
Lauro Moura [Wed, 30 Oct 2019 11:39:11 +0000 (12:39 +0100)]
csharp: FunctionWrapper doc fixes
Reviewers: felipealmeida, brunobelo, segfaultxavi, woohyun
Reviewed By: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10430
Mike Blumenkrantz [Tue, 29 Oct 2019 18:52:58 +0000 (14:52 -0400)]
eina: add comparison macros for Eina_Size2D and Eina_Position2D
Summary:
I'm tired of typing all this out. it's exhausting.
also add a couple usages internally to verify that this works as expected
@feature
Reviewers: cedric, bu5hm4n, devilhorns
Reviewed By: devilhorns
Subscribers: devilhorns, bu5hm4n, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10557
Mike Blumenkrantz [Tue, 29 Oct 2019 17:42:07 +0000 (18:42 +0100)]
interfaces: replace doubles with Efl.Gfx.Align where appropriate
Summary:
this makes the types more explicit
Depends on D10554
Reviewers: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10555
Mike Blumenkrantz [Tue, 29 Oct 2019 17:42:04 +0000 (18:42 +0100)]
efl/gfx: add Efl.Gfx.Align type
Summary:
this can be used to more explicitly specify that a double is intended to
be a value of 0.0 to 1.0 for the purpose of aligning objects. it also avoids
the need to copy and paste the same docs around everywhere
Reviewers: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10554
Marcel Hollerbach [Tue, 29 Oct 2019 16:52:07 +0000 (17:52 +0100)]
meson: add embryo as a dep of edje
if you want to build a edje theme without building all of efl, you can
do that now. Before embryo was missing and no scripts could be compiled.
Now this is possible and works.
Marcel Hollerbach [Tue, 29 Oct 2019 16:54:55 +0000 (12:54 -0400)]
meson: redo evas building
Summary:
before recent times we had to support static and shared building based
on the options of the user, which forced us to complicate our build with
the evas_goal hack. the evas_goal hack more or less was the idea of
"faking" the evas build in the evas directory, finish all the .eo
generation there, then build the modules and make all the static files
ready. Then build everything in evas_goal.
Now, that we just build everything the same always, we can simply build
it in the evas way (removing the evas_goal hack FINALLY), as the same modules
are build statically and shared.
This also gives us the possibility to build the shared image loaders
*again* the the modules directory, which unbreaks peoples build scripts
who packaged loader files seperatly.
Reviewers: zmike, raster, cedric, stefan_schmidt
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10548
Mike Blumenkrantz [Tue, 29 Oct 2019 16:20:33 +0000 (12:20 -0400)]
ci: remove existing base_dir ccache config on osx build before adding new one
Summary: ensure that this file does not balloon to infinite size
Reviewers: bu5hm4n
Reviewed By: bu5hm4n
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10538
Lauro Moura [Tue, 29 Oct 2019 14:57:55 +0000 (11:57 -0300)]
mono: encapsulate internal workaround members
Summary: Depends on D10345
Test Plan: meson setup -Dbindings=mono,cxx -Dmono-beta=true
Reviewers: segfaultxavi, Jaehyun_Cho, YOhoho
Reviewed By: YOhoho
Subscribers: cedric, #reviewers, woohyun, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10346
Lauro Moura [Tue, 29 Oct 2019 14:56:38 +0000 (11:56 -0300)]
mono: encapsulate internal iwrapper members
Summary: Depends on D10339
Test Plan: meson setup -Dbindings=mono,cxx -Dmono-beta=true
Reviewers: segfaultxavi, Jaehyun_Cho, YOhoho
Reviewed By: YOhoho
Subscribers: cedric, #reviewers, #committers, woohyun
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10345
Lauro Moura [Tue, 29 Oct 2019 14:56:04 +0000 (11:56 -0300)]
mono: encapsulate internal delegates
Summary: Depends on D10337
Test Plan: meson setup -Dbindings=mono,cxx -Dmono-beta=true
Reviewers: segfaultxavi, Jaehyun_Cho, YOhoho, brunobelo
Reviewed By: YOhoho
Subscribers: cedric, #reviewers, #committers, woohyun
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10339
Mike Blumenkrantz [Thu, 10 Oct 2019 17:49:45 +0000 (13:49 -0400)]
edje: selectively inhibit content,changed events when changing swallowed parts
ref T8321
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10508
Mike Blumenkrantz [Fri, 25 Oct 2019 14:06:56 +0000 (10:06 -0400)]
tests/genlist: add behavior testing for nearly all genlist events
this simulates a number of user interactions to ensure that various
functionalities of genlist actually work, including but not limited to:
* selection
* highlighting
* item focus
* scrolling
* filtering
* dragging
* item reordering
ref T8433
Differential Revision: https://phab.enlightenment.org/D10528
Mike Blumenkrantz [Fri, 25 Oct 2019 17:56:04 +0000 (13:56 -0400)]
tests/loop_timer: add port of ecore_timer behavior tests for loop_timer
ensure that the behavior here is also working exactly as expected
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10531
Mike Blumenkrantz [Fri, 25 Oct 2019 16:50:48 +0000 (12:50 -0400)]
tests/ecore: make timer behavior test even more strict
we need to also verify that timers will process out of order solely based
on their timestamps and ignoring whether they are "recently-added"
additionally verify the behavior of timer interval changing and re-instantiating
ref T8434
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10530
Mike Blumenkrantz [Mon, 28 Oct 2019 19:45:56 +0000 (15:45 -0400)]
elm/genlist: fix item focus unregister on item move
if the block is realized, its items have been registered into the focus
manager and must be unregistered to avoid double-registering
@fix
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10544
Mike Blumenkrantz [Mon, 28 Oct 2019 19:48:08 +0000 (15:48 -0400)]
elm/genlist: hide cached item contents and mark content unfocusable during calc
cached item contents should already be hidden by the edje clipper, so this simply
changes their visible state to break them out of the focus calcs
contents must also be explicitly marked as unfocusable during calc-only realize
operations in order to avoid triggering a full focus recalc which will error due
to missing focus adapter in the item block
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10543
Mike Blumenkrantz [Fri, 25 Oct 2019 19:05:29 +0000 (15:05 -0400)]
elm/genlist: set pan need recalc during item move on item position change
item move operations require pan recalc in order to process the item block
positioning updates
@fix
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10533
Mike Blumenkrantz [Thu, 24 Oct 2019 15:36:30 +0000 (11:36 -0400)]
elm/genlist: fix "drag" smart callback
this is only a smart callback and not an eo callback
@fix
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10527
Mike Blumenkrantz [Wed, 23 Oct 2019 14:38:53 +0000 (10:38 -0400)]
elm/genlist: trigger filter,done callback immediately if no filter queue exists
the documentation says this should trigger when filtering is done, and if
no filtering is pending then it is done
@fix
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10526
Mike Blumenkrantz [Wed, 23 Oct 2019 14:36:01 +0000 (10:36 -0400)]
elm/genlist: slightly simplify use of _item_filtered_get()
passing the smart data here (which we always have) makes the function
a little clearer to read. similarly, we can check whether the filter_data
pointer is set inside the function to avoid having to check it everywhere else
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10525
Mike Blumenkrantz [Wed, 23 Oct 2019 14:27:04 +0000 (10:27 -0400)]
elm/genlist: defer recalc when applying a name filter
this may be called successively during the same mainloop iteration,
so it's important to defer this as much as possible
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10524
Mike Blumenkrantz [Mon, 21 Oct 2019 20:05:33 +0000 (16:05 -0400)]
elm/genlist: remove calc jobs
now that we have a sane and consistent sizing calc mechanism, we no longer
need to be randomly creating jobs to do additional side calcs in addition
to our other multiple bespoke calculation methods
instead, we can now call the calc function directly during the group calc
to perform all the calcs at once and avoid the overhead of constantly triggering
calc jobs
a possible future improvement here could be to remove the _calc_job() call in
the internal pan object's group_calculate, as this is likely a duplicated op
but it will require additional testing to verify
unit test performance (e.g., tree) increases roughly 50-80% after this patch
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10523
Mike Blumenkrantz [Mon, 21 Oct 2019 20:03:56 +0000 (16:03 -0400)]
elm/genlist: don't process entire item queue on each item add
this is a colossal waste of time. it ends up realizing every single item
immediately even if it won't be visible, which defeats the purpose of all
the batching and viewport calculations that genlist explicitly does to
avoid exactly this type of behavior
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10522
Mike Blumenkrantz [Mon, 21 Oct 2019 20:01:34 +0000 (16:01 -0400)]
elm/genlist: freeze/thaw canvas when processing item queue
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10521
Mike Blumenkrantz [Mon, 21 Oct 2019 19:53:35 +0000 (15:53 -0400)]
elm/genlist: only add calc job on theme apply if already finalized
not a required operation otherwise
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10519
Mike Blumenkrantz [Mon, 21 Oct 2019 18:02:34 +0000 (14:02 -0400)]
elm/genlist: remove misleading "changed" signal
this was never implemented or documented anywhere and serves only to be
misleading for anyone reading the code
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10518
Mike Blumenkrantz [Mon, 21 Oct 2019 15:02:18 +0000 (11:02 -0400)]
elm/genlist: fix item highlight/unhighlight eventing on clicks
* highlight should only be triggered on mouse down, as that is the point of
interaction with an item which indicates it is "in use"; a mouse-up event
cannot occur on an item which has not previously received a mouse-down event,
so toggling this on mouse-up will be wrong/duplicated 100% of the time
* unhighlight should only be triggered during mouse-up events if the list is
in no-select mode, as it will otherwise be implicitly during selection if
necessary
this should ensure that these events are emitted exactly one time and correctly
for each click event
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10517
Mike Blumenkrantz [Thu, 24 Oct 2019 18:26:24 +0000 (14:26 -0400)]
tests/ecore: add more grueling timer throughput test
this verifies that:
* newly-created timers are not triggered in the next loop iteration
* newly-created timers can be triggered the second loop after created
* multiple timers can be triggered in a single loop iteration
* timers are effectively added to the pending timer list
ref T8434
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10516
Mike Blumenkrantz [Thu, 24 Oct 2019 15:22:49 +0000 (11:22 -0400)]
efl/timer: correctly handle recursion for timer processing
if the currently-processed timer is recursively deleted (efl_del) while
it is inside the timer tick event callback, we must correctly handle this
case:
* in the place where a timer's inlist is de-linked, we must check to see
if the timer is the current timer and then update that pointer with the next
timer in the list
* in the post-tick part of timer processing, we must NOT update the current timer
pointer if we detect that it has been updated recursively
this fixes processing of timers in the mainloop to trigger more than one legacy timer
per mainloop iteration and likely has some (positive) impact on mainloop throughput
@fix
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10515
Mike Blumenkrantz [Thu, 24 Oct 2019 15:22:17 +0000 (11:22 -0400)]
efl/timer: don't attempt instantiating timers until they're finalized
this will fail anyway so don't bother
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10514
Mike Blumenkrantz [Mon, 21 Oct 2019 19:52:17 +0000 (15:52 -0400)]
tests/genlist: fix tree test sizing
for some reason I used 10px as the base height of a genlist item when clearly
they are more like 30px
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10513
Mike Blumenkrantz [Thu, 24 Oct 2019 15:37:32 +0000 (11:37 -0400)]
tests/elm: add utility function to trigger a mouse drag
a drag may require a lot of internal calculating to successfully trigger
the intended test behavior, so this has a flag which allows it to perform
loop iterations and canvas calcs in order to be more universal, along with
a global #define for determining exactly how many mouse moves were triggered
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10512
Mike Blumenkrantz [Mon, 21 Oct 2019 19:51:28 +0000 (15:51 -0400)]
tests/elm: make argv a static char so it never goes out of scope and crashes
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10511
Mike Blumenkrantz [Mon, 21 Oct 2019 14:34:57 +0000 (10:34 -0400)]
tests/elm: add util functions for clicking objects/parts with event flags
this is useful for synthesizing e.g., double click events
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10510
Mike Blumenkrantz [Mon, 21 Oct 2019 14:30:45 +0000 (10:30 -0400)]
tests/elm: add util callback for incrementing an int data
this is a common functionality
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10509
Woochanlee [Tue, 29 Oct 2019 13:47:48 +0000 (09:47 -0400)]
efl_ui_win: Delete useless geometry set for legacy.edje
Summary:
It will be resized on window_resize_job. when the window got specific size.
I don't think this is needed here. It cause doing a calc in vain.
Test Plan: Launching Test applications.
Reviewers: raster, Hermet, zmike
Reviewed By: zmike
Subscribers: zmike, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10550
Woochanlee [Tue, 29 Oct 2019 13:37:56 +0000 (09:37 -0400)]
edje_calc: Delete duplicated conditional statement.
Summary: this is identical to the conditional above and can be merged
to improve code clarity
Reviewers: raster, Hermet, zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10549
Xavi Artigas [Tue, 29 Oct 2019 13:56:01 +0000 (14:56 +0100)]
Replace tabs with spaces
As our coding conventions mandate.
JunsuChoi [Tue, 29 Oct 2019 04:17:05 +0000 (13:17 +0900)]
vg_common_svg: Free node tree for memory leak after eet write.
Summary:
The node tree created from vg_common_svg_create_svg_node is not used after eet_data_write().
Therefore, to prevent memory leaks, free the node tree.
Test Plan: N/A
Reviewers: Hermet, smohanty, kimcinoo
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10443
Lauro Moura [Mon, 28 Oct 2019 23:35:39 +0000 (20:35 -0300)]
eolian_cxx: Add key/value to function_def
Summary:
This commit adds explicit eolian key/value/return info to function_def. The
original parameter/return types are kept for compatibility.
parameter/return -> Mimics the behavior of the generated C API (i.e.
single-valued getters have their lone value translated to be their
return type)
explicit_return -> The actual return value for that block in the EO
file.
keys/values -> The values for respectively key and values blocks.
This should help working with properties in the generators instead of
fumbling with paremeter/return directly
Fixes T8431
Test Plan: extra tests in the diff
Reviewers: felipealmeida, brunobelo, segfaultxavi, YOhoho
Reviewed By: brunobelo
Subscribers: cedric, #reviewers, #committers, woohyun
Tags: #efl
Maniphest Tasks: T8431
Differential Revision: https://phab.enlightenment.org/D10494