Summary:
for mvvm publizing,
caching factory and layout factory need to be out of beta.
Reviewers: cedric, bu5hm4n, segfaultxavi
Reviewed By: cedric
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10855
there was the request that this needs to be documented, here we are.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10874
the problem is that we only remove ourselfs from the focused list in the
invalidator. However, we allowed invalidated objects to be part of this
hash, which made everything go boom.
With this commit you at least only get one error and you should fix up
this case.
This fixes random errors in enlightenment (That are appearing theire
since seats have been introduced to evas, the problem before invalidate
was that the object was already destructor called, but not fully
destructed yet).
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10845
when content is deleted, we should not keep a dangling pointer of it.
Setting it to NULL here is enough, as later on a swtich_to reuest will
be sent.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10844
seriously, it sometimes might be worth at least *reading* what code
does, this was initializating a private data struct on one single global
boolean flag. How was that ever intended to work ? How could that ever
slip through review ?
This is not the only madness in these widget arround time and date, you
cannot even select hours in 24h mode, you also cannot cannot select the
0 hour, which is kind of normal for the one or another region? the
datetimemanager (which is IMO a complete misconcept) is full of FIXMEs
and API calls that are defined and never called at all. Again what is
this ? And how did that ever get into the codebase ?!
With this commit the widget *finally* can be created more than once
without exploding and erroring one.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10843
I do not know what i was thinking when i initially wrote that test.
It never worked, the test created a widget captured all elements, deleted
the widget, then checked if there are elements left that are not knon on
the canvas yet.
Not the test first captures all elements, then creates the widget, then
deletes the widget, and checks if there are more elements than expected.
This found all the fix leaks prior to this leak.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10842
this fixes leaking of membership to a pan object, additionally this also
fixes the leaking of the pan object. This code was written with the
thought that edje deletes its children, long story short: no it does
not. While fixing the leak of the pan object, the error was found that
the membership of the item to the pan object was leaked, which ended up
in the item beeing deleted, even if its not part of the object anymore.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10841
we need to free the object in the invalidate, not in the destructor.
Otherwise we might leak objects in bindings.
Reviewed-by: Jaehyun Cho <jae_hyun.cho@samsung.com>
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10840
edje will not take over this part, edje will just reparent it to the ML
and go on.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10839
pans implementation of Efl.Content is different to each other
implementation, setting the content to NULL is not really deleting the
obejct, since this is done at those widgets that are actaully using the
pan. This is weird and fine in the same way, as the pan is only
internal. However, when we are shutting down, we must free the content
here.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10838
for better precise buffer cache key,
We make a unique key name combining root node + size + frame index.
Now, we can reuse the root node for animation and caching buffers.
Summary:
1- Emitting changed event when adding text using cursors.
2- remove attribute,changed event since it is not used now
3- Emitting layout,finished event when finish layouting
Reviewers: woohyun, cedric, bu5hm4n
Reviewed By: cedric
Subscribers: bu5hm4n, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10834
Container must have a set parent after construction.
efl_add_ref() with a parent won't work this case
because container needs some jobs in overriding parent_set() after proper intialization.
If node_format_remove_pair frees node, then next for loop can lead
invalid memory accessing. This patch prevents from that case by keeping
the next node before freeing.
Summary:
The documentation tokenizer relies on proper separation of paragraphs,
and we were not doing that. This fixes detection of Note:, Warning:,
Remark: and TODO: tags.
Additionally, we were removing the blank line between the summary and
the description, artificially joining them.
Test Plan: Everything builds and passes tests, and docs with `Note:` tags are correctly rendered (like `Efl.Loop_Consumer.new_promise`, for example)
Reviewers: lauromoura
Reviewed By: lauromoura
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10868
Summary:
Usage example:
```
var (x, y) = somePos2D;
```
Not available on Mono environment due to [`mcs` not implementing
it](a3de0304a1/mcs/mcs/tuples.cs (L590)).
To keep tests from breaking because of it, a `MONO` preprocessor variable is
defined and checked during test compilation.
Ref T8489.
Reviewers: brunobelo, lauromoura, segfaultxavi
Reviewed By: lauromoura
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8489
Differential Revision: https://phab.enlightenment.org/D10809
Fix this error message
ERR<15404>:eo ../src/lib/eo/eo_base_class.c:710 efl_del()
Calling efl_del on object Efl.Ui.Win@0x400000a4b774[2]:hidden:children=0:'(null)':'(null)' with
no parent is not advised any more.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10863
Summary:
Also generates implicit conversion for 1-field structs.
Usage examples:
```
// With tuples
Point2D p = (1, 2);
obj.SetPoint((1, 2));
// With 1-field structs
StringWrapper sw = "Must be handled by wrapper.";
```
Due to limitations of MSC compiler, implicit conversions are generated
only if struct has 4 fields or less.
Ref T8489.
Reviewers: brunobelo, cedric, lauromoura, segfaultxavi
Reviewed By: lauromoura
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8489
Differential Revision: https://phab.enlightenment.org/D10801
This has never been tested because so far EO "Note:" tags are only recognized
when they appear at the beginning of a comment block.
It turns out the note already includes the "Note:" prefix so we were adding it
twice.
This patch removes one of the prefixes and used a nicer formatting.
Also works for "Warning:", "Remark:" and "TODO:".
When an EO property had multiple values or keys the C# generator
didn't generate a wrapping C# property. Therefore property references
in the documentation were changed to references to the getter.
Now multiple values are handled through tuples so the wrapping properties
ARE generated.
This patch removes the restriction for multiple values to doc refs
can more naturally reference the property instead of the getter method.
Properties with keys still reference the getter, since these are not wrapped.
Summary:
Container can have three configuration over `Own` and `OwnContent`:
`Own = true` and `OwnContent = true`;
`Own = true` and `OwnContent = false`;
`Own = false`and `OwnContent = false;
If someone try to instanciate the container with `Own = false` and `OwnContent = true`, a exception raises.
There is two Ownerships' behaviours in c#, where `IsReadOnly` is responsible and `IsReadOnly = !OwnContent`:
Full Ownership: User can use modify/Add/Remove operations over the container, this is implemented with `OwnContent = true`.
No Ownership: User **cannot** use modify/Add/Remove operations, this is implemented with `OwnContent = false`.
For the memory, `Own` frees the node, while `OwnContent` frees the data portion.
ref T8487
Reviewers: lauromoura, felipealmeida, YOhoho, segfaultxavi, jptiz
Reviewed By: lauromoura
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8487
Differential Revision: https://phab.enlightenment.org/D10742
freeing it in the destructor is not enough. This has to be done at the
invalidator stage, otherwise bindings might have a blocking element on
the screen for the time the object is not gargabe collected.
Reviewed-by: Jaehyun Cho <jae_hyun.cho@samsung.com>
Differential Revision: https://phab.enlightenment.org/D10837
This test accepts a style string (as defined in the style_apply method)
and continuously applies it to a sample text block.
Useful for debugging Efl.Canvas.Textblock styles.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10853
It doesn't have to flush all of the time when it iterating.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10858
This has been disabled since the move to meson and unlikely to have
built before with autotools either. Tizen never adopted this so we can
ease our maintenance burden here.
The Eeze sensor API itself is EAPI sadly and can't be removed. We will
keep the udev backend (temperature only) and the fake backend for
testing for now.
Signed-off-by: Stefan Schmidt <s.schmidt@samsung.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10805
Once the object are created, the CollectionView will do a few modifiction on them before
giving this object to the position manager to deal with. Reducing events should slightly
improve performance.
Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10686
We can not freeze the canvas in all scenario as we are sometime building widget fully
asynchronously which prevent holding events on the canvas. Still it is better to do it
for the case we can.
Reviewed-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10685
If the stretch zone are NULL to start with, there is no reason to modify
them and this should avoid us a trip to the GC.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10816
Evas image use a GC to reduce duplicated state accross multiple object.
Still during shutdown we do clean it up and free it. There is no point
to push that down the GC if we are to just free it after. Relying on
the fact that dynamic content will avoid triggering the GC altogether
as their content change to frequently and is expected to be uniq among
other objects, we can avoid unecessary allocation during the destruction
by just switching that early on during the destructor.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10815
This limit long chain of useless event forwarding when nobody is listening
at the end of the pipe.
Differential Revision: https://phab.enlightenment.org/D10813
Summary:
Small refactor. Keep it in a single header that other files could use.
Ref T8515
Reviewers: brunobelo, felipealmeida, jptiz
Reviewed By: jptiz
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8515
Differential Revision: https://phab.enlightenment.org/D10852
Summary:
links to images that this patch is modifying would be included in doxy docs
without pre or post process something in meson definition, if we applied this patch.
Reviewers: segfaultxavi, bu5hm4n
Reviewed By: segfaultxavi
Subscribers: bu5hm4n, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10821
Summary:
This class is the same as efl_ui_text, efl_ui_text is editable by default.
This class should be removed
Reviewers: woohyun
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10831
Summary:
Better names to convey their intent and formatting.
Removing the hardcoded `return` from them will also free the return list
to be used for `@out` parameters as they have similar semantics to
`return`, different from regular `@in` parameters. This change in
behavior will come in a future commit, and explains why are are keeping
both lists for now despite being essentially the same.
Ref T8515
Test Plan: Run existing tests
Reviewers: felipealmeida, brunobelo, jptiz, YOhoho
Reviewed By: jptiz
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8515
Differential Revision: https://phab.enlightenment.org/D10827
This has never been fully finished or really used. The GeoClue project
dbus API moved on to a newer version as well. We still have it marked as
beta so we should take the chance and get rid of it to cleanup our tree
a little bit.
Reviewed-by: Chris Michael <cp.michael@samsung.com>
Reviewed-by: Vincent Torri <vincent.torri@gmail.com>
Differential Revision: https://phab.enlightenment.org/D10788
Summary:
rename two movement enums
**paragraph_first**: to just **first** this will move the cursor to the beginning of the text
**paragraph_last**: to just **last** this will move the cursor to the end of the text
These two are not directly related to paragraph the will move the cursor depending on the whole content
or maybe **start** and **end** what do you think ?
Reviewers: woohyun, segfaultxavi
Reviewed By: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10810
Summary:
Change summary:
Removed :
- efl_ui_text_selectable.eo and add it functionality into efl_text_interactive.eo
- efl_ui_text_editable.eo because it is same as efl_ui_text.eo (just set one property by default)
Modifications:
- Move all Text Input enums and functionality from efl_ui_text class into its own interface, this interface will be implemented at efl_ui_internal_text_interactive class.
- Rename selection_allowed property to selectable (same as other "editable" property) in efl_text_interactive
- Add select_all function into efl_text_interactive interface
- Add have_selection property into efl_text_interactive interface
- Move user_change , selection_start/change/clear and undo/redo events into efl_text_interactive interface.
- Move methods and events of copy/paste/cut into efl_ui_text
- Fix password-related functionality
- Remove context menu clear and add_item methods. (these should be added later with better design)
- Remove Validation event from EFL_UI_TEXT. (these should be added later with better design)
Reviewers: woohyun, tasn, segfaultxavi, zmike, bu5hm4n
Subscribers: stefan_schmidt, a.srour, q66, zmike, segfaultxavi, cedric
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10711
at leats ibus seems to just not work for me on arch at least - even
with gtk apps, but scim does, so maybe make scim the main thing again?
also allows glib to be off by default. :)
Summary:
This was a X11 extension mainly developed for Tizen. By now I can only
find it packaged by Gentoo as the only Linux distribution and Tizen is
now longer using it either. Bringing it up during EDD and on the mailing
list did not come up with any users.
I think we can go ahead and deprecate the API and remove the
functionality.
Reviewers: raster, cedric, devilhorns, zmike
Reviewed By: devilhorns
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10823
sometimes the resize size is not in line with the size of the outer
widget, in this case the box should align its children at the very top,
otherwise the cursor grid is falling out of sync with the text content.
The duration of animation means how long the animation is executed.
Therefore, if duration is 0, then the final state of animation should be
applied to the target object immediately.
In this case, if final_state_keep is true, then the final state of
animation is preserved. Otherwise, the final state of animation is not
preserved.
ref T8436, T8513
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10812
This should convey better their intention of the setting taking
ownership of the passed value and the getter returning just a view to
them.
Fixes T8514
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10824
if there was a spacer around elm.swallow.content of scroller,
position of pan object would be different with position of the scroller obj.
this patch modifies a fomular that calculates some points relative to scroller
to a fomular that calculates the points relative to pan obj.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10745
assign signed int value on bigger unsigned variable
can make information of the varaible lost.
this patch fix the problem.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10723
Summary: remove the title part beta tag for the efl ui alert popup
Reviewers: Jaehyun_Cho, zmike, bu5hm4n, segfaultxavi
Reviewed By: Jaehyun_Cho
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10820
While we render vector drawing on ector,it uses ector buffers for subsequent compositions.
In this sequence, it switches ector buffer with a composition target,
while resuing the global ector context.
Previously, it trickly switched ector buffer, it broke the ector begin/end pair.
Now, it needs to recover global ector buffer once the composition finished.
Thus ector buffer need to return the current pixels information for this.
Summary:
When use with intersect mask, if span_count over span array size, composition is to be wrong.
So, In this case, we use dynamic array by span_count.
Test Plan: N/A
Reviewers: Hermet, smohanty, kimcinoo
Reviewed By: Hermet
Subscribers: vtorri, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10748
Summary: In accessibility enabled case click signal of legacy label is not triggered.
Test Plan: N/A
Reviewers: Hermet, kimcinoo
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10803
Summary:
If source_events is false, Evas object doesn't repeat events to source.
But events is always repeated to source in multi touch case.
Reviewers: Hermet, raster, cedric
Reviewed By: Hermet
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10807
in cases where the pan may change as a result of item size recalcs,
it's necessary to ensure that the pan object is recalculated
ref D10663
Differential Revision: https://phab.enlightenment.org/D10752
This seems to have been gone a long time ago and only references left
that have not been disturbing the build. Time to clean up!
Signed-off-by: Stefan Schmidt <s.schmidt@samsung.com>
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10793
There is no way to know about text changes in edc.
This signal will help developer to know about text changes
and do some operation based on that.
@feature
Co-authored-by: Cedric BAIL <cedric.bail@free.fr>
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10780
We have Gstreamer 1.x support for a long time already. We used to keep
this around as fallback. By now Linux distributions start to actually no
longer ship the Gstreamer 0.10.x packages and upstream has not seen a
release in in 5 years. Time to remove it on our side as well.
Signed-off-by: Stefan Schmidt <s.schmidt@samsung.com>
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10779
This has not been used for a while and is not even buildable after our
switch to meson. It was a niche to start with given that it needed the
PS3 OS to run on. I asked for any remaining users at EDD and on the list
but heard nothing. Time to remove.
Signed-off-by: Stefan Schmidt <s.schmidt@samsung.com>
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10778
Summary:
playing backwards is also working, this is simply shown here, the
handcrafted backwards animation wasnt showing the correct animation
either.
Depends on D10799
Reviewers: segfaultxavi
Reviewed By: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10802
Summary:
play_count is a tad simpler to understand, since it means the TOTAL number of
times the animation will play.
The default value is now 1, and 0 means INFINITE (instead of -1). This allows
removing yet another constant from header files.
Depends on D10799
Test Plan: Everything builds and passes tests. Elm_test Animation.Repeat has been adjusted accordingly.
Reviewers: bu5hm4n
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10800
this will automatically be optimized by smart callback internals and fix
emission of this event
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10750
this must be emitted automatically during finalize if theme_set is
not directly called during construction
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10741
ensure that this callback is emitted exactly one time if the theme is
set during construction
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10740
the group previously used (efl/win/background) no longer exists, and
this test never verified that the theme_set call succeeded so this has
been failing silently for a long time
now we check and verify that the call succeeds in addition to using a
valid group
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10739
in the case where a layout object was created and had a theme manually set
with efl_ui_layout_theme_set() during construction, the layout would then
call theme_apply() a second time internally during finalize which, if the
theme has not changed (as can only be the case if this flag is unset),
results in a repeated theme_apply for the existing theme
@fix
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10738
these classes are after a long naming discussion stable.
fixes T7871
fixes T8265
fixes T7922
Reviewed-by: Daniel Kolesa <daniel@octaforge.org>
Differential Revision: https://phab.enlightenment.org/D10734
you could set the duration of the group to all children, however, the
default behaviour was to not do that. This is however a bit probeblatic,
and needs to be more expclicit. If this is needed again, then this can
be reintroduced, however, not in this form.
ref T8437
Depends on D10798
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D10799
the floating point infinite builtin should also work cross languages (so
this is better for bindings).
ref T8437
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D10797
before this commit the standard time was 0, which results in no
animation played at all. Now its 0.2 and a app that does not like it can
adjust it.
ref T8436
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D10796
this also refreshes the documentation of all this.
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D10795
In the specific case where you had "class A extends B composites C"
the correct composites branch was ignored and instead the implements
branch was used. This was entirely wrong/an oversight that did not
appear until now. Other combinations were handled correctly.
When a class composites an interface, we need to ignore all of
its extends (and extends of those) as well as the main interface
when doing API checks, as composites essentially provides a
guarantee that this *will* be implemented at runtime, which
further extends to the whole inheritance tree of that interface.
Fixes T8491.
Summary:
fix the wrong method signature famliy font get and font size get for evas_textgrid
the method parameter should be changed to return type
@fix
Reviewers: Hermet, ali.alzyod, woohyun
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10794
we should not use lists directly, ownership issues etc. etc..
This moves it to iterators
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D10787
Summary:
When converting plain_text to '*' in retrieve_surrounding_cb,
always convert it to '*' in 1 byte unit.
For example,
2 byte character is converted to "* *"
and 3 byte character is converted to "* * *"
However, this does not match the number of '*' printed in the entry.
Because, '*' in the entry is printed according to number of unicode characters.
This patch converts plain_text into unicode units
when converting plain_text to '*'
Test Plan: N/A
Reviewers: woohyun
Reviewed By: woohyun
Subscribers: cedric, #reviewers, jihoon, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10792
we also need to reemit the position of current active element. Otherwise
the indicator will display a wrong value.
This is already done in any other spotlight manager.
fixes T8499
Differential Revision: https://phab.enlightenment.org/D10782
before this commit, push would add before the current element, pop would
return to the next higher element.
after this commit, push would add after the current element, pop would
return to the previous element.
ref T7991
Differential Revision: https://phab.enlightenment.org/D10781
Revert "eina: remove no longer used function _eina_thread_queue_msg_block_real_free"
This reverts commit 695b44526c.
Revert "eina/threadqueue: use mempool_del for hash free function"
This reverts commit b0cb3b935a.
Revert "eina_thread_queue: use normal mempools for block allocation"
This reverts commit 14ae3e3dec.
Why? Threadqueue is a highly performance sensitive API.
_eina_thread_queue_msg_block_new() may be called quite often. Doing a
hash lookup to then find a mempool handle to then allocate from was
not the same as what was there and was going to be far more costly.
This would have actual performance impact as we have to compute a hash
and rummage through a hash, hunt for an environment var too. The
original code looked at a spare block pool where blocks *MAY* be of
different sizes (not always the same size so using a mempool is
actually wrong and will stop threadqueue from being able to send
larger messages at all). If you send large messages, larger blocks would
have been allocated and put in this pool. In almost all cases the first
item in the pool would be big enough so we don't hunt and the find pulls
out the first memory, resets the fields that are needed and returns that
block. If it needs a bigger one, it does hunt. This is going to be
rare that such big blocks are needed so I never tried to optimize this
(but it could be done with an array of sizes to make a walk to find
the right sized element cheap if the need arises).
Performance dropped quite a lot. On aarch64 The above mempool usage
dropped message rate from 1037251 msg/sec to 610316. On x86 it was even
worse. It dropped from 2815775 msg/sec to 378653.
So backing this out sees the message rate is 7.4 times faster and on
aarch64 it's 1.7 times faster.
So moving to a mempool was actually just wrong (size is not always the
same). Also this ended up with a mempool of 64k for thread queue blocks even
if we only sent messages sporadically, as opposed to a single 4kb
block. So backing this out saves memory by only having 1 or 2 4k blocks
around most of the time, not a 64k mempool.
So the above patch then follow-on patches were done without accounting
for the performance implications. There were good reasons to do what I
did - because this code was highly tuned even to the point where I
used atomics instead of locks specifically to cut down some contention
overhead. Beware when you change something that there may be steep
performance implications. 7.4 times faster to go back to what was
there is a great example.
This file is identical with test_naviframe.c and has no reference in our
build system. Found by the use of the Duplo duplicated code checker
tool.
Signed-off-by: Stefan Schmidt <s.schmidt@samsung.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10777
The filter_event function calling a lot of times when it runs.
This can help performance by reducing the number of calls to the efl_data_scope_get() function.
Reviewed-by: Hermet Park <hermetpark@gmail.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10437
Small patch to fix issue where merge of patch did not go so well, and
thus caused Coverity to report an issue where window was not being
initialized.
ref T8016
fixes CID1408311
They are just helpers, so a user does not need to handcreate spotlight
managers. This also leaves us the possibility of letting
spotlight_managers beeing @beta.
ref T7991
Differential Revision: https://phab.enlightenment.org/D10773
this introduces the test requested in D10701. And checks that all
signals are correctly delivered even if animations are frozen
Differential Revision: https://phab.enlightenment.org/D10767
the spotlight now is setting the overall correct min and max size on
itself. Additionally, the page size is now clamped to the size of the
container.
Correct min size of the container is defined to the MAX min size of all
the content.
The correct max size of the container is defined to the MIN max size of
all the content.
ref T7991
Differential Revision: https://phab.enlightenment.org/D10766
before we inherited from layout, however the theme of the layout was
basically just the event part, and the holder part for the indicator.
The indicator part is going to be refactored into something else
anyways, since the indicator should be useable on other widgets as well.
Which means, only the event part is left, which is only used by the
scroller spotlight manager, (and now moved there).
With the move from this away we are saving round about 0.2KB of pure
edje accounting. Additionally, we are saving in perf 4% that is spend in
_efl_canvas_layout_efl_gfx_entity_size_set, which also makes this less
CPU intensive when resizing (Or even just starting is also enough).
ref T7991
Differential Revision: https://phab.enlightenment.org/D10765
the main widget before presented a layout to hold the indicator,
however, for the causual case, this is not really needed. The indicator
itself is anyways going to be a more general prupose widget soon, where
the layout here can be taken as an starting point.
Additionally, this fixes general displaying of the indicator, before the
box padding refactor, a padding would have changed the minsize of the
mix, this is not the case anymore, which forces us to calculate the
minsize of the indicator theme.
Differential Revision: https://phab.enlightenment.org/D10764
for now the eventrect was a swallow part, created by the container, set
to the edje layout. However, the only real user for this is the scroll
spotlight manager.
Which means, we have mostly unneeded element resized by edje, which is
quite an overhead. With this commit, this is moved to the scroll
manager, which makes the usage with stack and plain less memory heavy.
Differential Revision: https://phab.enlightenment.org/D10763
if something is just repositioned, but not resized, it would not have
been placed correctly. This fixes that.
Differential Revision: https://phab.enlightenment.org/D10762
Summary:
In simple words:
when we create efl_canvas_text object, efl_text_password_get will return TRUE.
which is wrong,
efl_text_password_get should return FALSE, unless user change the password using efl_text_password_set
Reviewers: woohyun, zmike, segfaultxavi, tasn
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10735
again 37b55172b0 broke min size calc.
this time it was for mouse cursors. the entry cursor was 0 sized after
commit 37b55172b0. this disables the
"don't cacle if its 0 sized) which isnt a valid thing to skip - you
caqn min size calc a 0x0 edje ... and it should then return a valid
min size given that design/layout.
Summary:
Value types are already assumed to be stored by pointer (e.g.
`int val = *(node->data);`)
This commit just changes the current usage of the `ptr` modifier in the
ptr, not affecting the parser.
Reviewers: q66, segfaultxavi, bu5hm4n, felipealmeida
Reviewed By: q66
Subscribers: cedric, #reviewers, #committers, brunobelo
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10769
This fixes the issue of zero division when columns is zero.
Sometimes columns can be zero when "pd->viewport.w = 0".
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10768
Since the vector file data is shareable among the multiple vg instances,
vfd could keep the requested frame data already by the other instance.
This case vector cache quickly return the vector data withouth any further progress.
Summary:
compose event field was encoded in UTF-16 and not UTF-8. Also string
event field was not correctly defined and was generating eina error
messages
Test Plan: running a test
Reviewers: raster, cedric, zmike
Reviewed By: raster
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10753
Summary:
Based on comments in D10607
Update code responsible for parsing "style=" :
-Update string parsing code
-Make the old and new code more readable
-Add tests
Reviewers: segfaultxavi, bu5hm4n, woohyun, ali.alzyod
Subscribers: zmike, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10715
We need a more precise caching mechanism to save memory.
Current root node(key) is limited for caching buffers,
when to share by the multiple animated instances.
This patch is a step for further optmization work,
at the moment we disable the caching buffers for the animated instances.
Summary:
This patch defines the way style property will work at canvas_text object
1- Changing canvas_text style property using Font/Format/Style interfaces or with efl_canvas_text style property are the same.
Example:
```
efl_text_font_set(tb, "Arial", 30);
//is same as
efl_canvas_text_style_set(tb, "font=Arial font_size=30");
//which means calling
char * font;
int size;
int font_size;
efl_text_font_get(tb, &font, &size);
// calling this after any of the top two functions will return same result
```
2- style_get_property
Will return string that contains full details about all the current applied style at canvas_text level.
3- style_set_property
Will only override passed styles and leave everything else as it is
```
efl_canvas_text_style_set(tb, "font=Arial"); // overrider font name to Arial and leave everthing else
efl_canvas_text_style_set(tb, "font_size=30"); // overrider font size to 30 and leave everthing else (font name will stay arial)
```
Reviewers: ali.alzyod, woohyun, tasn, segfaultxavi, bu5hm4n, zmike
Reviewed By: woohyun
Subscribers: zmike, bu5hm4n, segfaultxavi, a.srour, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10607
37b55172b0 breaks min size calc. elm
toolbar was being squashed. e toolbars also were becoming 0 sized.
Just because a swallow does not have content does not mean it does not
affect the minimum size. there still could be a min size set on it
anyway etc. ...
close all fd's starting at a given fd and then leving out an exception
list specially passed, if any. useful for fork+exec. this uses it in
efl's fork+exec paths.
@feat
that mirrors the name of the widget.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D10706
there is no need to listen to them, they are already listent to by the
container, and new sizes are told via the size property.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D10704
when we refactored check boxes, cases that used unified events on legacy
obejcts broke, which is okay. So the usage needed fixing.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D10703
i do not know why its there, it caused a bug in the past (in regards of
clippers and visibility). Now we can get rid of it completly, the state
of it is always compatible to the one of the widget itself, soooo ...
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D10702
this new API makes it possible to stop animations beeing executed in the
spotlight manager. (The logic in the spotlight managers itself are
already implemented).
The animation will also be frozen during construction time of the
spotlight.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D10701
Summary:
The filter_event function calling a lot of times when it runs.
This can help performance by reducing the number of calls to the efl_data_scope_get() function.
Reviewers: Hermet, smohanty, bu5hm4n
Reviewed By: Hermet
Subscribers: zmike, bu5hm4n, q66, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10437
Summary:
Implementation of new Efl.Text.Attribute_Factory class which replace the annotation interface.
Currently, we have two public methods:
```
void efl_text_attribute_factory_attribute_insert(const Efl_Text_Cursor *start, const Efl_Text_Cursor *end, const char *format)
unsigned int efl_text_attribute_factory_attribute_clear(const Efl_Text_Cursor *start, const Efl_Text_Cursor *end);
```
Other methods will be internal methods, for the time being, we will redesign internal methods
Reviewers: woohyun, tasn, segfaultxavi, bu5hm4n, zmike
Subscribers: zmike, q66, cedric, segfaultxavi, bu5hm4n, a.srour, #committers, #reviewers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10646
Summary:
Using the naive approach of checking if the name ends with `Flags`.
Ref T8411
Depends on D10708
Reviewers: brunobelo, segfaultxavi, felipealmeida, YOhoho
Reviewed By: felipealmeida
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8411
Differential Revision: https://phab.enlightenment.org/D10709
Summary:
The inheritance test depends on the objects being actively destroyed.
Currently this happens in a two step process, where first the C#
object is collected from the GC. As this happens in a separate thread,
we schedule a callback to run in the main loop to actually unref the
EO object.
This commit adds more iterations to make sure the EO of the parent is
unref'd and releases the child.
This should be the last C#-related CI test failure
Ref T8313
Reviewers: stefan_schmidt, brunobelo, felipealmeida
Reviewed By: felipealmeida
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8313
Differential Revision: https://phab.enlightenment.org/D10612
Summary:
These two functions encapsulate some code that commonly is repeated
through pyolian scripts.
With these, a minimal example (provided `src/scripts/pyolian` is in
the PYTHONPATH) could be done with:
```
import os
from pyolian import eolian
SCAN_FOLDER = os.path.join(eolian.in_tree_src_dir(), 'src', 'lib')
eolian_db = eolian.parse_folders(SCAN_FOLDER)
for cls in eolian_db.classes:
print(cls)
```
Reviewers: segfaultxavi, DaveMDS, felipealmeida
Reviewed By: felipealmeida
Subscribers: cedric, #reviewers, #committers, felipealmeida, brunobelo
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10589
Summary:
To be used by the test generator
Depends on D10420
Test Plan: test in the diff
Reviewers: DaveMDS, herb, segfaultxavi, felipealmeida
Reviewed By: felipealmeida
Subscribers: cedric, brunobelo, #reviewers, felipealmeida, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10421
When timer is not created, a crash occurs.
For example, when user create ecore timer in the pthread..
Of course this is not the correct usage, but printing ERR message is enough.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10714
`efl_access_action_actions_get`
the list is created by `eina_list_append`
`efl_ui_format_values_set`
the accessor is freed in that function.
`efl_ui_format_values_get`
The accessor is created by `eina_inarray_accessor_new`
`efl_core_command_line_command_access`
The accessor is created by `eina_array_accessor_new`
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10720
It is impossible to reuse iterator after `EINA_ITERATOR_FOREACH`(`eina_iterator_next`).
E.g.
```
eina_init();
eina_file_dir_list("/home/", EINA_FALSE, _print_cb, NULL);
it = eina_file_ls("/home/");
EINA_ITERATOR_FOREACH(it, f_name)
{
printf("%s\n", f_name);
eina_stringshare_del(f_name);
}
EINA_ITERATOR_FOREACH(it, f_name)
{
printf("Again %s\n", f_name);
eina_stringshare_del(f_name);
}
eina_iterator_free(it);
```
`Agian ...` is never printed.
Therefore, iterator always need `@move` tag to avoid unexpected behavior without
any error message.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10719
Summary: edje_recalc_do() needs to be executed regardless of the size of edje in order to deliver edje properties for the API that the user calls.
Reviewers: cedric, Hermet, Jaehyun_Cho, smohanty
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10724
Summary:
Sector is a property with start, end frame and sector name information
that can be used when playing a specific section.
Sector play is not supported for Efl.Canvas.Image yet.
So we add skeleton code with comments.
This is also for full implements of the Efl.Gfx.Frame_Controller interface.
Test Plan: N/A
Reviewers: Hermet, bu5hm4n
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10718
this commit merges common functions from efl_ui_multi_selectable and
efl_ui_multi_selectable_async. Additionally, the two different aspects
of accessing the elements in a multi_selectable widget (numerical or
object based) are now abstracted into interfaces called range_numeric and
range_object. numeric APIs are also prefixed with id's, so its possible
for one widget to implement both (if there will ever be the demand to do
that in future).
The main reason for this split is:
- there is no good common path between mvvm based multi_selectable and
object based multi_Selectable, so there is no way that both sides would
benefit, without the other one suffering.
- If we find later on the demand to implement both on one widget, we now
can fully do that
- Common API is available for both types, so its less API and less
confusion for the API user.
ref T7871
ref T8265
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10675
Summary:
All nodes reset their visibility when they are reused.
Therefore, visibility must be set true if mVisibile is true.
Test Plan: N/A
Reviewers: Hermet, kimcinoo, smohanty
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10731
Summary: Was failing if the suffix were equal to the source string
Reviewers: felipealmeida, segfaultxavi, YOhoho, brunobelo
Reviewed By: brunobelo
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10708
Summary:
Efl_Text_Cursor_Handle was being declared twice, confusing the C#
generator. This commits updates it to be singly defined in the
text_types eot file.
Reviewers: segfaultxavi, ali.alzyod
Reviewed By: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10726
Summary:
pad.h/v are integer varaibles, and also parameters h/v are too.
so that it is not needed to compare them like they are floating pointer.
Reviewers: bu5hm4n, segfaultxavi
Reviewed By: segfaultxavi
Subscribers: segfaultxavi, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10722
Summary:
Implementation of new cursor text object.
This Patch Contains :
1- Remove Efl.Text.Cursor & Efl.Text_Markup_Interactive interfaces and replace them with one Class Efl.Text.Cursor
=> there are some modifications on cursor methods
2- Update all related classes to use Efl.Text.Cursor object instead of the old interfaces
3- If class uses Efl.Text_Cursor_Cursor (handle), mainly annotation it will stay as it is until we update other annotations into attribute_factory
4- Add main cursor property into efl.text.interactive
5- Add cursor_new method in efl.ui.text (I think we may move it into efl.text.interactive interface)
There still some parts that need discussion: especially cursor movement functionality, I prefer to move function with Enum, instead of special function for each movement.
```
enum @beta Efl.Text.Cursor_Move_Type
{
[[Text cursor movement types]]
char_next, [[Advances to the next character]]
char_prev, [[Advances to the previous character]]
cluster_next, [[Advances to the next grapheme cluster]]
cluster_prev, [[Advances to the previous grapheme cluster]]
paragraph_start, [[Advances to the first character in this paragraph]]
paragraph_end, [[Advances to the last character in this paragraph]]
word_start, [[Advance to current word start]]
word_end, [[Advance to current word end]]
line_start, [[Advance to current line first character]]
line_end, [[Advance to current line last character]]
paragraph_first, [[Advance to current paragraph first character]]
paragraph_last, [[Advance to current paragraph last character]]
paragraph_next, [[Advances to the start of the next text node]]
paragraph_prev [[Advances to the end of the previous text node]]
}
move {
[[Move the cursor]]
params {
@in type: Efl.Text.Cursor_Move_Type; [[The type of movement]]
}
return: bool; [[True if actually moved]]
}
```
or old way:
```
char_next {
[[Advances to the next character]]
// FIXME: Make the number of characters we moved by? Useful for all the other functions
return: bool; [[True if actually moved]]
}
char_prev {
[[Advances to the previous character]]
return: bool; [[True if actually moved]]
}
char_delete {
[[Deletes a single character from position pointed by given cursor.]]
}
cluster_next {
[[Advances to the next grapheme cluster]]
return: bool; [[True if actually moved]]
}
cluster_prev {
[[Advances to the previous grapheme cluster]]
return: bool; [[True if actually moved]]
}
// FIXME: paragraph_end is inconsistent with word_end. The one goes to the last character and the other after the last character.
paragraph_start {
[[Advances to the first character in this paragraph]]
return: bool; [[True if actually moved]]
}
paragraph_end {
[[Advances to the last character in this paragraph]]
return: bool; [[True if actually moved]]
}
word_start {
[[Advance to current word start]]
return: bool; [[True if actually moved]]
}
word_end {
[[Advance to current word end]]
return: bool; [[True if actually moved]]
}
line_start {
[[Advance to current line first character]]
return: bool; [[True if actually moved]]
}
line_end {
[[Advance to current line last character]]
return: bool; [[True if actually moved]]
}
paragraph_first {
[[Advance to current paragraph first character]]
return: bool; [[True if actually moved]]
}
paragraph_last {
[[Advance to current paragraph last character]]
return: bool; [[True if actually moved]]
}
paragraph_next {
[[Advances to the start of the next text node]]
return: bool; [[True if actually moved]]
}
paragraph_prev {
[[Advances to the end of the previous text node]]
return: bool; [[True if actually moved]]
}
```
Reviewers: woohyun, tasn, segfaultxavi
Reviewed By: woohyun
Subscribers: a.srour, bu5hm4n, segfaultxavi, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10542
now if one of the event handlers calls animation_stop in a callback to
EFL_CANVAS_OBJECT_ANIMATION_EVENT_ANIMATION_PROGRESS_UPDATED, then
pd->in will be freeed. Which means, in the next event handler the
address taken by &pd->in->progress might be invalid, leading to a crash.
With this commit this is a address on the stack, which should fix this.
Summary:
when a callback is called, the in pointer might be free'ed, we should be
more carefull with that.
fix CID1407682
Reviewers: segfaultxavi
Reviewed By: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10713
Summary:
After the item is packed into the box,
the min of the item can be initialized with content_set working.
content_set calls parent_set and checks the theme when calling parent_set.
At that time, if theme is changed in the parent of layout using hoversel,
call theme_apply(efl_ui_layout) to make min value 0, 0.
This patch can avoid it.
Test Plan: N/A
Reviewers: YOhoho, Hermet, woohyun, zmike, Jaehyun_Cho
Reviewed By: Jaehyun_Cho
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10712
Summary:
cos function is much much more accurate than cosf.
this patch replaces cosf by cos to gain more accuracy.
Reviewers: cedric, jsuya, vtorri
Subscribers: vtorri, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10695
Since vector tree nodes are reusing instead of reconstrucion,
We make it sure that dangling nodes invisible by clearing all nodes visibility.
Only valid nodes will be reset to visible while setting up in the progress.
we are going to add this description anyways, no need to count here
again. I think this is not really making anything really faster, its
more keeping things consistance.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10689
this now all migrated to Efl.Canvas.Object.Animation
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10667
Summary:
i was not able to run the example before this commit, nor after this
commit. However, i had to migrate this, as i want to remove the player
object.
Depends on D10637
Reviewers: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Reviewed-by: Hermet Park <hermetpark@gmail.com>
Differential Revision: https://phab.enlightenment.org/D10666
with this commit we move from using the player object to using the mixin
that was introduced a few commits before. The new mixin is way easier to
use here, we safe a lot of code, we also only need 1 object instead of
4. (And overall, everything just gets sooooo much more easier).
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10637
the mixin can handle the same things as the player. Additionally, the
usage of the mixin simplifies the animation usage alot.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10636
this brings the animation to the canvas object. All the controls of the
animation now do now require a player object anymore, you can just use
the API that is directly on the Efl.Canvas.Object object.
wip animation player replacement
Differential Revision: https://phab.enlightenment.org/D10615
There exist several flags to indicate whether an object should be animated, with inconsistent names:
Efl.Canvas.Layout.animation: bool indicating if Edje animations should be played
Efl.Ui.Spotlight_Manager.animation_enabled: bool indicating if page transitions should be animated
Efl.Canvas.Animation_Player.animation: Efl.Canvas.Animation object
This commit unifies all of them: "animated" is now a flag, and "animation" is an object.
Note: Animation_Player is in the process of being replaced by an "animation" property in the
Efl.Canvas.Object, hence the need for non-clashing animation flags.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10645
Summary:
The vertical slider(!horizontal) should not be inverted when mirrored.
This patch fixes and cleans up this.
Test Plan:
elementary_test -to slider
elementary_test -to efl.ui.slider
UI-Mirroring on/off and observe vertical slides.
Reviewers: woohyun, cedric, bu5hm4n
Reviewed By: woohyun
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10693
It turns out ector engine doesn't use any color mixing with gradients fill.
Removed unnecessarities unless we can find a way to use them in the future.
Summary:
When the slider moves using step,
_drag_value_fetch(), _val_fetch() calculates a value from position of edje_part.
Then the calculated value is updated.
However, this causes a slight error.
This patch updates value first when moving with steps.
* Test Example
```
Evas_Object *sl = elm_slider_add(bx);
elm_slider_min_max_set(sl, -5, 5);
elm_slider_value_set(sl, 0.0);
elm_slider_step_set(sl, 0.1);
evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_smart_callback_add(sl, "changed", _change_cb, NULL);
```
```
void
_change_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
{
double val = elm_slider_value_get(obj);
if (val == -5.0) printf("val[%f] == -5.0 \n", val);
if (val == -4.0) printf("val[%f] == -4.0 \n", val);
if (val == -3.0) printf("val[%f] == -3.0 \n", val);
if (val == -2.0) printf("val[%f] == -2.0 \n", val);
if (val == -1.0) printf("val[%f] == -1.0 \n", val);
if (val == 0.0) printf("val[%f] == 0.0 \n", val);
if (val == 1.0) printf("val[%f] == 1.0 \n", val);
if (val == 2.0) printf("val[%f] == 2.0 \n", val);
if (val == 3.0) printf("val[%f] == 3.0 \n", val);
if (val == 4.0) printf("val[%f] == 4.0 \n", val);
if (val == 5.0) printf("val[%f] == 5.0 \n", val);
}
```
If you move the slider using step in this test,
You can see that some logs are not visible. (Some values are incorrect)
Test Plan:
elementary_test -to slider
elementary_test -to efl.ui.slider
Reviewers: woohyun, cedric, bu5hm4n
Reviewed By: woohyun, bu5hm4n
Subscribers: bu5hm4n, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10662
Anything starting with http://, ftp:// or file:// is automatically
converted into a link by doxygen. However, we have a few instances
where we do not want this. Fortunately, doxygen allows using % to
forbid specific words from being linked.
Summary:
i was not able to run the example before this commit, nor after this
commit. However, i had to migrate this, as i want to remove the player
object.
Depends on D10637
Reviewers: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10666
This should slightly improve speed in theory. In practice, I have not seen
a benchmark which would budge by 5%, so I am not sure it improve speed that
much.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10660