This patch use volatile model to make sure that a model is properly cleaned once it is not
used anymore.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10625
Figuring out why model fetch was sometime not working recursively allow to
reduce the amount of request that need to be made. In this case, notifying
the position manager or lack of notification was triggering a case where the
item would not show up (Joice of nested asynchronous behavior).
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10624
Summary:
play_sector method is API for playing section.
If the animation object has section information, user can play the section.
Get the start and end section name and get the frame of each section.
And set and play the min and max frames of the current animation object.
Depends on D10506
Test Plan:
For example. Animation objects have "first","second" and "third" sectors.
And sector "second" has duration information.
User can use it like this:
efl_ui_animation_view_play_sector(anim_view, "first", "second");
efl_ui_animation_view_play_sector(anim_view, "second", NULL);
efl_ui_animation_view_play_sector(anim_view, "first", NULL); // first sector ~ end frame of animation object.
efl_ui_animation_view_play_sector(anim_view, "second", "third");
efl_ui_animation_view_play_sector(anim_view, "second", "wrong name");
Reviewers: Hermet, smohanty, kimcinoo
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10507
this here is the same effect as in my previous commit:
When re retheme a object, we need to reset the signals, otherwise there
would be wrongly displayed scrollbars.
This fixes wrong scrollbars in enlightenment.
Differential Revision: https://phab.enlightenment.org/D10628
the scrolbars have been displayed wrongly before. Reason for this is
that the theme displays the bars per default, the code however works
with hidden by default. This was worked arround before with the fact
that we are explicitly hiding the vbar/hbar before.
The reason this previous code was not working proberly is that entry
decided to retheme a object that was already set to the interface
scrollable object. Which means, it was not detected by the code. With
the newly introduced reset function you can tell the interface, that you
have changed the group, signals will be emitted accordingly.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10622
Efl.Model can be nested and Efl.Ui.CollectionView use this ability. Listening
on the nested model instead of the nester model can lead to event being triggered
that shouldn't. Better listen on the top model.
Differential Revision: https://phab.enlightenment.org/D10621
This fix adding item not always showing up in the CollectionView right away.
The main issue comes down to the fact we can not chain a new request when one
is already resolved partially. The code now make sure to properly do this.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10614
ecore_file_cp can cause config data(eet file) invalid,
once multiple processes are trying to call elm_config_save.
this patch replaces it with ecore_file_mv to prevent the problem.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10578
efl_ui_position_manager_entity_entities_ready is expecting the end offset and not the
length of how many items have been updated. Sending the correct number fixes the problem.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D10590
Summary:
in case of setting a state of check by calling a API,
the flags that used for changed cb aren't changed.
which causes that the callback not invoked when it should be.
this patch resets the flags to make it work properly.
Reviewers: bu5hm4n
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10591
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 0777b74f07.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
* 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
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
Summary:
when the sportlight is hidden, the state should be applied to the
backclip and foreclip, in order to hide the subobjects correctly.
This fixes dangling showing widgets.
Reviewers: Jaehyun_Cho, zmike, segfaultxavi
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10468
Summary:
This is a temporary fix while Text is being revamped.
Efl.Ui.Text internally composites Efl.Text_Cursor (through some other interfaces)
but this was not being advertised in the EO file.
This caused no trouble to C but was preventing C# from using the Cursors API
(because C# relies on the EO composites section).
On top of this, the cursor_new() method has been removed, since it was redundant.
Test Plan:
Builds and passes tests, and C# is able to do things like:
```
Efl.TextCursorCursor cursor = screen.GetTextCursor(Efl.TextCursorGetType.Main);
screen.InsertCursorText(cursor, str);
```
Reviewers: lauromoura, cedric, tasn
Reviewed By: lauromoura
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10465
Summary:
when looping is enabled, we need to ensure that the correct arrows are
enabled.
ref D9906
Depends on D9908
Reviewers: zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9917
Summary:
our default theme defaults to show everything, the code here assumes
that everything is hidden by default, this fixes all this.
fix T4918
Depends on D9907
Reviewers: zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T4918
Differential Revision: https://phab.enlightenment.org/D9908
Summary:
if bounding is enabled, those values can get smaller and bigger than the
max value.
ref T4918
Depends on D9906
Reviewers: zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T4918
Differential Revision: https://phab.enlightenment.org/D9907
ensure that they haven't changed between time of check and time of open
CID 1396966
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10440
Summary:
if a legacy widget calls evas_object_size_hint_min_set, this actually sets
efl_gfx_hint_size_restricted_min now, which is supposed to be the hint that
is used internally by widgets. as a result, there is a conflict between the
size which the user expects and the size which the widget tries to calculate.
the user size should always be respected, however, so this adds some tracking
to determine whether the layout's min size was set by the layout during its own
calc or by something externally
@fix
Reviewers: eagleeye, CHAN, woohyun, Jaehyun_Cho, cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10373
Summary:
This is not the end of fixing eolian errors. I need to keep fixing
more.
Test Plan:
1. export EOLIAN_ENFORCE_SINCE=1
2. ninja
Reviewers: q66, segfaultxavi, zmike, bu5hm4n, Jaehyun_Cho
Reviewed By: segfaultxavi, Jaehyun_Cho
Subscribers: Jaehyun_Cho, stefan_schmidt, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10370
Summary:
Since legacy panes did not consider its content's min size, the
content's min size calculation logic is not done for legacy panes.
Reviewers: zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10372
Summary:
this is emitted a lot of times, which costs time. Most of the time they
are however not needed. With this commit, these events are not emitted
anymore.
ref T8321
Reviewers: zmike, cedric
Reviewed By: zmike, cedric
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8321
Differential Revision: https://phab.enlightenment.org/D10348
This should silence 32-bit warnings about long long stuff
Reviewers: vtorri, cedric, bu5hm4n
Reviewed By: cedric
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10214
Summary:
this is just a cosmetic change for ease of debugging since it will already
be clamped to max size during eval if it remains unchanged
for max size hints a value of -1 means that the hint is unset but a value
of 0 is technically valid depending on the implementation
Depends on D10296
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10297
Summary:
win objects should never permit the max size on any axis to be 0, otherwise
the window will be clamped to 1px on the given axis
fixes T8304
@fix
Depends on D10272
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8304
Differential Revision: https://phab.enlightenment.org/D10296
Lots of EO files had the same information at the property and set/get level.
Removed the redundant bits, and moved to the property level the common ones.
Set and Get documentation should be used only to clarify setter-only or
getter-only behavior.
Summary:
it is already picked up when datetime is invalidated, due to the correct
parent beeing set.
Reviewers: zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10291
Summary:
from https://en.cppreference.com/w/c/memory/realloc
```
On success, returns the pointer to the beginning of newly allocated memory.
To avoid a memory leak, the returned pointer must be deallocated with free()
or realloc(). The original pointer ptr is invalidated and any access to it
is undefined behavior (even if reallocation was in-place).
On failure, returns a null pointer. The original pointer ptr remains valid
and may need to be deallocated with free() or realloc(). ```
So a temporary to test if `realloc` failed
then use the original pointer to use `free`.
`CID1404749`
`CID1404741`
Reviewers: lauromoura, felipealmeida, zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10284
This group got lost at some point and resulted in broken link in our
doxygen documentation.
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D10273
Summary:
this is not a clickable widget, so it shouldn't use finger size
ref T8304
@fix
Reviewers: segfaultxavi
Reviewed By: segfaultxavi
Subscribers: segfaultxavi, cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8304
Differential Revision: https://phab.enlightenment.org/D10274
Summary:
This change `content_padding` parameter type to int from double for consistency
of size properties.
`scalable` should be handled in more common size API.
Co-authored-by: Mike Blumenkrantz <zmike@samsung.com>
ref T7864
Test Plan: ninja test
Reviewers: zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7864
Differential Revision: https://phab.enlightenment.org/D10154
Summary:
If value_provider is applied to Efl.Ui.Animation_View, it is passed as vector object.
The passed value_provider list passes to Vg_File_Data.
If there is a value_Provider list in Vg_File_Data,
it apply the property to Lottie_Animation using lottie_animation_property_override api.
Depends on D9874
Test Plan:
...
Eo *vp = efl_add(EFL_GFX_VG_VALUE_PROVIDER_CLASS, p);
efl_gfx_vg_value_provider_keypath_set(vp, "**");
efl_gfx_vg_value_provider_fill_color_set(vp, 100, 0 ,0 ,255);
efl_ui_animation_view_value_provider_override(anim_view, vp);
vp = efl_add(EFL_GFX_VG_VALUE_PROVIDER_CLASS, p);
efl_gfx_vg_value_provider_keypath_set(vp, "**");
efl_gfx_vg_value_provider_stroke_width_set(vp, 50.0);
efl_gfx_vg_value_provider_stroke_color_set(vp, 0, 255, 0, 100);
efl_ui_animation_view_value_provider_override(anim_view, vp);
...
Reviewers: Hermet, kimcinoo, smohanty
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9897
Summary:
Efl.Gfx.Vg.Value_Provider is an object for integrating and managing the properties of vector objects.
These values are dependent on the keypath.
Keypath is the target a specific content or a set of contents that will be updated.
It can include the specific name of the contents, wildcard(*) or Globstar(**).
The valueProvider is borrowed from another library that uses a vector object of type json, such as Efl.Ui.Animation_View
(5fc0e59e0c/lottie-swift/src/Public/iOS/AnimatedControl.swift (L50))
This feature should be used with some patches that apply to the vg json loader and Efl.Canvas.Vg.Object.
Test Plan: N/A
Reviewers: Hermet, kimcinoo, smohanty
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9874
in order to do that, we need to ensure that the internal box is
calculated, otherwise the position is still not updated correctly.
This fixes wrong cursor positions in edi.
fixes T8214
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D10225
otherwise we are setting a cursor from time to time at a uninitialized
position. Which causes disappeared cursors
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D10224
these require legacy types and headers, which should not be brought into
this header
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10235
the general headers here pull in legacy headers, which is bad
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10231
in revision D9859 the scroll events have been renamed. However this also
renamed the legacy widgets, which also renamed the evas smart events,
which is a bug. With this commit we are back to plain old
evas_smart_callback_call calls, as these just take the string, and do
not need the bypassing through the eo events.
This fixes:
- elm_test gengrid,toolbar,panel (the events are now shown correctly
again)
- scrolling in elm_code_widget
- elm_map in a touchscreen
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D10240
Summary:
"Dragable" is a misspelling:
https://en.wiktionary.org/wiki/dragable
We have it EVERYWHERE in EFL, even with jokes:
./src/lib/efl/interfaces/efl_ui_drag.eo:1
This patch only fixes the theme API so it does not get carved in stone for this release.
Depends on D10217
Test Plan: No functional changes.
Reviewers: zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10218
Summary:
To make clear the meaning, hbar and vbar are replaced to horizontal_bar
and vertical_bar.
Reviewers: zmike, woohyun, segfaultxavi
Reviewed By: zmike, segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10217
Summary:
this isn't strictly necessary at the moment
Depends on D10197
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10199
Summary:
be very explicit here so that users can immediately know how to resolve
the issue
Depends on D10193
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10194
Summary:
a variable with the same name is declared above
Depends on D10192
Reviewers: segfaultxavi
Reviewed By: segfaultxavi
Subscribers: segfaultxavi, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10193
Summary:
a layout (not layout_base) should not defer signals. theme groups loaded
by a layout widget can be anything, and are not subject to the versioning
requirements that efl widgets have
Depends on D10055
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10192
this is just a button and not the full clickable struct
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10198
Summary:
fixes T7871
fixes T7852
This also works arround a eolian issue where composites do not mark the
inherited API from the composites as implemented.
Reviewers: SanghyeonLee, cedric, segfaultxavi, zmike
Reviewed By: segfaultxavi
Subscribers: SanghyeonLee, cedric
Tags: #efl
Maniphest Tasks: T7871, T7852
Differential Revision: https://phab.enlightenment.org/D10184
Summary:
with this commit that api for single and multi selectable shares the
same prefix, which makes sense in c as we do not really differ between
those two types there anyway.
ref T7871
Reviewers: SanghyeonLee, segfaultxavi
Reviewed By: segfaultxavi
Subscribers: segfaultxavi, cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7871
Differential Revision: https://phab.enlightenment.org/D10183