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:
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
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:
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
this now all migrated to Efl.Canvas.Object.Animation
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10667
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
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:
These APIs to get and set frames for a specific section for playing section.
Depends on D10505
Test Plan: N/A
Reviewers: Hermet, smohanty, kimcinoo
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10506
Summary:
These APIs to get and set frames for a specific section in vg animation.
get API looks for a sector by name in the markerlist of VG_File_Data.
Then return start and end frames.
Depends on D10504
Test Plan: N/A
Reviewers: Hermet, smohanty, kimcinoo
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10505
Summary: If json data has marker information, it is stored in vg file data.
Test Plan: N/A
Reviewers: Hermet, smohanty, kimcinoo
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10504
Summary:
start_delay and duration both have to be > 0.0 otherwise there should be
an error. This also adds the neccessary checks, to ensure that.
For now this is only added to the normal evas test suite, maybe we eed
to refactor these efl_* API tests into theire own test suite. However,
not for now.
Reviewers: segfaultxavi
Reviewed By: segfaultxavi
Subscribers: segfaultxavi, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10617
This reverts commit 2f676a6591.
This causes segv's in edje_cc - i suspect the eet changes (or in combo
to how they are used in edje):
AddressSanitizer:DEADLYSIGNAL
=================================================================
==8991==ERROR: AddressSanitizer: SEGV on unknown address 0x000001010000 (pc 0xffff9f002604 bp 0xfffffa747700 sp 0xfffffa747700 T0)
==8991==The signal is caused by a READ memory access.
#0 0xffff9f002600 in _eet_hash_gen ../src/lib/eet/eet_utils.c:25
#1 0xffff9efdd024 in eet_dictionary_string_add ../src/lib/eet/eet_dictionary.c:103
#2 0xffff9efbe324 in eet_data_put_string ../src/lib/eet/eet_data.c:849
#3 0xffff9efc1c4c in eet_data_put_type ../src/lib/eet/eet_data.c:1427
#4 0xffff9efd9128 in eet_data_put_unknown ../src/lib/eet/eet_data.c:4730
#5 0xffff9efdb320 in _eet_data_descriptor_encode ../src/lib/eet/eet_data.c:5108
#6 0xffff9efd5958 in eet_data_put_variant ../src/lib/eet/eet_data.c:4309
#7 0xffff9efdb320 in _eet_data_descriptor_encode ../src/lib/eet/eet_data.c:5108
#8 0xffff9efd9270 in eet_data_put_unknown ../src/lib/eet/eet_data.c:4739
#9 0xffff9efdb320 in _eet_data_descriptor_encode ../src/lib/eet/eet_data.c:5108
#10 0xffff9efd8ca0 in eet_data_put_array ../src/lib/eet/eet_data.c:4692
#11 0xffff9efdb320 in _eet_data_descriptor_encode ../src/lib/eet/eet_data.c:5108
#12 0xffff9efc7768 in eet_data_write_cipher ../src/lib/eet/eet_data.c:2403
#13 0xffff9efc78a4 in eet_data_write ../src/lib/eet/eet_data.c:2420
#14 0xaaaabb151dcc in data_thread_group ../src/bin/edje/edje_cc_out.c:2045
#15 0xaaaabb152130 in data_write_groups ../src/bin/edje/edje_cc_out.c:2086
#16 0xaaaabb157734 in data_write ../src/bin/edje/edje_cc_out.c:2866
#17 0xaaaabb14122c in main ../src/bin/edje/edje_cc.c:456
#18 0xffff9dbd92a0 in __libc_start_main (/usr/lib/aarch64-linux-gnu/libc.so.6+0x242a0)
#19 0xaaaabb13ea00 (/home/raster/C/git/efl/build/src/bin/edje/edje_cc+0x38a00)
AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV ../src/lib/eet/eet_utils.c:25 in _eet_hash_gen
==8991==ABORTING
Aborted (core dumped)
When compiling breaks... it's certainly time to revert ASAP :(
Summary:
Instead of a getter with an explicit return type, change it to be a
single-valued property.
The eolian C generator takes care of making this single value the actual
return value of the C function.
This also makes these properties able to be reflected on.
The stack properties returns just a pointer and not a new ref, so no
@move needed.
Beta properties will be handled in a future commit.
Depends on D10601
Reviewers: segfaultxavi, bu5hm4n, q66, cedric
Reviewed By: segfaultxavi
Subscribers: #reviewers, #committers, brunobelo, felipealmeida
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10602
Summary:
This makes sure the user is warned if it ignores a return value that
could potentially be a memory leak.
This also makes possible to use `value {}` blocks with `@move` instead
of value-less properties with `@no_unused`.
Also removed the `@move` from canvas_text_async_layout as it is ignored
in the only place it is used.
Reviewers: q66
Reviewed By: q66
Subscribers: #reviewers, #committers, bu5hm4n, felipealmeida, cedric, segfaultxavi
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10601
Summary: This is the first version of inverse color filter both GL and SW.
Test Plan:
1. Create filter_example with following .
efl_gfx_filter_program_set(image, "inverse_color ()", "inverse color");
2. Run.
./filter_example (Use ELM_ACCEL=gl for GL engine)
Reviewers: Hermet, jsuya
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10335
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
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
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
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
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
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
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
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
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 46f2d8acdc.
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
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
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
Summary:
Dynamic content are likely to trigger an image state change at pretty
much every frame. This lead to unecessary attempt by Eina_Cow to
deduplicate/cleanup data that are changing all the time. This reduce
memory consumption in Expedite tests that in some small amount. The
gain get bigger the more animation you get on screen. There might be
other potential gain for heavy animated case.
Reviewers: zmike, Hermet, bu5hm4n, smohanty
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8302
Differential Revision: https://phab.enlightenment.org/D10532
Summary:
this variable is already only changed inside an #ifdef, so declare and
free it only inside the same ifdef for clarity
ref 9d9aa8b6ae
CID 1400807
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10389
Summary:
D7762
Searching for event what is using in gesture manager.
But the value was wrong.
And now D10437 made it better.
Reviewers: Hermet, smohanty, zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10438
Summary:
The current color is affected by the parent's opacity.
If p_opacity is set, it will be applied to the current color.
Test Plan: N/A
Reviewers: Hermet, smohanty, kimcinoo
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10399
Summary:
only call these if they are subscribed to now
ref T8321
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8321
Differential Revision: https://phab.enlightenment.org/D10361
Summary:
this is an error, and it should be printed
Depends on D10355
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10356
Summary:
we know these ahead of time since they're hardcoded, so we can block their
emission just like we do for eo events
ref T8321
Depends on D10354
Reviewers: cedric
Reviewed By: cedric
Subscribers: bu5hm4n, cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8321
Differential Revision: https://phab.enlightenment.org/D10355
Summary:
these are not strictly related to the event callback types and should not
have their emission tied to the corresponding event
also add unit test to verify all of these
@fix
Reviewers: cedric
Reviewed By: cedric
Subscribers: bu5hm4n, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10353
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:
The filter did not use text source color. Whatever color a text has, filter
used white color instead of it.
Test Plan: efl_gfx_filter_program_set(non_white_color_text, "code", "name");
Reviewers: Hermet, jsuya, cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10336
Summary:
When a newly created Image_Entry works for instead of an old one,
we need to drop it. And we did dorp it.
The line calling ref and drop was added by following commit.
d550190 evas image cache - add lots more locking to try stamp out
any thread bug
But it is missed by following commit.
9f99ab1 evas cache: clear up caching locking and reference count.
Reviewers: Hermet, raster, jsuya, cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10333
Summary:
this variable is already only changed inside an #ifdef, so declare and
free it only inside the same ifdef for clarity
CIDs 1401016, 1400807
Reviewers: cedric
Reviewed By: cedric
Subscribers: bu5hm4n, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10320
Summary:
when we are returning 0 in a animation callback, the animator will be
deleted.
This fixes a crash in tab_pager.
Depends on D10306
Reviewers: segfaultxavi
Reviewed By: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10307
Summary:
Even if the same window, the same file, and the same size,
different images may be requested due to property changes caused by value_provider.
Test Plan: N/A
Reviewers: Hermet, smohanty, kimcinoo
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10303
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.
due to meson's insistence on naming even moudles libmodule.so, and our
complexity of build as in the previous commits ... have a special case
for in tree module loading for these.
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
this includes all the efl.canvas headers and adds some compilation tests
for the header to the unit test suite
ref T8274
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10226
Summary:
Initial version implementing grayscale filter in pure GL.
This patch needs a logt of love as 5bce712 did.
Grasyscale formula:
https://www.tutorialspoint.com/dip/grayscale_to_rgb_conversion.htm
Test Plan:
1. Create filter_example with following .
efl_gfx_filter_program_set(image, "grayscale ()", "grayscale");
2. Run.
ELM_ACCEL=gl ./filter_example
Reviewers: Hermet, jsuya
Subscribers: ali.alzyod, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9858
Summary:
It is not correct to change the parent and hope that refcount will work
for you. The parent chain is a decision made by the user, not something
a widget can touch. Only ref count are to be used when given an outside
object. As things where not triggering destruction, there was also no
point where the image buffer would be getting to zero and be freed. This
commit also fix this.
Reviewers: Hermet, zmike
Reviewed By: Hermet
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10169
Summary:
evas_object_callbacks_finalized could take NULL obj because
_efl_canvas_object_efl_object_finalize could call it with NULL obj.
Reviewers: bu5hm4n, jsuya, Hermet
Reviewed By: bu5hm4n
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10141
this is a bit of an overhaul wherein the existing 'play' mechanics are
all inverted. 'pause' is a state which stops playback but does not affect
the playback_position property.
this patch also includes implementations of Efl.Player::playing for
a couple classes which (now) only implement pause, as this is a requirement
for the objects to actually activate their animations
test cases:
* unit tests
* all elm_test animation cases
* elm_test video
* rage
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10114
this has some overlap with the existing 'play' property which will
soon be renamed. the intent here is that there is a property for
controlling the 'playing' state and then another property for managing
'pausing' the play state
ref T7877
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10113
efl.playable implements a number of properties which are also present
in efl.player. playable was intended to be separate, so enforce this
split in all classes which use player
ref T7877
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D10109
division of integer by integer results integer.
this patch fix the case to make a division result more precise.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D10039
Summary:
Eolian supports reporting the defaults for parameters and return values, but in some
places we have been writing this information in the documentation instead.
This patch moves it to its proper place, where documentation generators can pick it up
and render it in a consistent manner.
Ref T8171
Reviewers: zmike, bu5hm4n, lauromoura
Reviewed By: lauromoura
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8171
Differential Revision: https://phab.enlightenment.org/D10051
We need to keep in mind that the Manager and the Recognizers are not visible to the user.
The user only sees the events and the different Efl.Canvas.Gesture_* payloads.
Summary: This patch improves single line descriptions described on T7717
Test Plan: NA
Reviewers: segfaultxavi, woohyun, Hermet, cedric
Reviewed By: Hermet
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D10002
Summary:
this reduces the necessary event subscriptions for cases where someone
is likely to want to listen on these events
ref T7875
Depends on D9996
Subscribers: cedric, #reviewers, #committers
Tags: #efl_api
Maniphest Tasks: T7875
Differential Revision: https://phab.enlightenment.org/D9997
Summary:
this is a clearer name which makes the intent of the API more obvious at
a glance
ref T7875
Subscribers: cedric, #reviewers, #committers
Tags: #efl_api
Maniphest Tasks: T7875
Differential Revision: https://phab.enlightenment.org/D9996
Summary:
rename this to match its function
ref T7926, T7875
Depends on D9932
Subscribers: cedric, #reviewers, #committers
Tags: #efl_api
Maniphest Tasks: T7926, T7875
Differential Revision: https://phab.enlightenment.org/D9933
Eolian @properties should be documented at the property level, and
documentation at the setter or getter level should be left to setter-
or getter-specific comments. There is usually no need at all to have
setter- or getter- specific comments.
Also, a property is not a method so descriptions should match that.
This patch removes lots of duplicated text, and will allow enabling
by default the eolian check that ensures that properties have proper
property-level docs.
No functional changes.
the problem here is that we might subscribe to an event before
evas_object_callbacks_init has happened. This sounds like something
which might not happen. However, with the interfaces project this
definitly will start to happen because someone will some day overwrite
the evas object and do something before the constructor, which will not
raise a error or something but will simply just not work.
With this commit we are not listening to the event callbacks via event
emission but rather via inheritance. With this there is no "earlier than
we listend" point, and the issue in the task is solved by itself.
fix T8202
Reviewed-by: Jaehyun Cho <jae_hyun.cho@samsung.com>
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9841
Ector buffer allocates memory in default,
We don't need to allocate buffer memory additionally to handle over outside.
We can map/unmap ector buffer for reusing this.
Summary:
Vg_entry is shared by different child windows.
When two or more objects load the same file
When resizing, cache_vg_entry_render can delete an active entry
while creating a new entry and deleting an existing entry.
Therefore, use cache data added evas
Test Plan:
[enable json loader]
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -203,7 +203,7 @@ option('evas-loaders-disabler',
type : 'array',
description : 'List of modular image/vector load .....
choices : ['gst', 'pdf', 'ps', 'raw', 'svg', 'rs .....
- value : ['webp', 'json']
+ value : ['webp']
[Test]
elementary_test -> Animation View click -> play -> Animation View click again -> ...
Reviewers: Hermet, smohanty, kimcinoo
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9740
Without this, the prefix would get pointed to something like
/path/to/efl/build/share/evas, which is not a valid path when
building. That would cause the docs build to fail.
Current vector drawing requires several methods for compositing,
it's shouldnt have only masking but other blending functions
such as matte in lottie, porter&duff in android, etc.
Previously we didn't specify this method name,
just reserved the options and now we started to define the methods
with ector_renderer_composite_method() with Efl.Gfx.VG_Composite_Method
instead of mask_set().
Summary:
Cluster consist of one glyph, expected to be removed on backspace or delete key.
Cluster consist of multible glyph, expectd to remove part of on backspace or delete key.
This is behaviour founded in Android. (our current way of handling similar to Qt)
**New Behaviour**
{F3750386}
**Old Behaviour**
{F3750387}
Test Plan:
Auto Testing is challenging because there are no easy way to emulate keyboard down on elm_entry
```
#include <Elementary.h>
EAPI_MAIN int
elm_main(int argc, char **argv)
{
Evas_Object *win,*box,*entry;
elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
win = elm_win_util_standard_add("", "");
elm_win_autodel_set(win, EINA_TRUE);
box = elm_box_add(win);
entry = elm_entry_add(box);
evas_object_size_hint_weight_set(box,EVAS_HINT_EXPAND,EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(box,EVAS_HINT_FILL,EVAS_HINT_FILL);
elm_entry_entry_set(entry,"<font=NotoColorEmoji wrap=mixed >🇧🇬อั🇧🇬อั😀😀😀😀😀อั</font>");
evas_object_size_hint_weight_set(entry,EVAS_HINT_EXPAND,0.9);
evas_object_size_hint_align_set(entry,EVAS_HINT_FILL,EVAS_HINT_FILL);
evas_object_show(entry);
evas_object_show(box);
elm_box_pack_end(box,entry);
elm_win_resize_object_add(win,box);
evas_object_resize(win,320,480);
evas_object_size_hint_weight_set(entry,EVAS_HINT_EXPAND,0.1);
evas_object_size_hint_align_set(entry,EVAS_HINT_FILL,EVAS_HINT_FILL);
evas_object_show(win);
elm_run();
return 0;
}
ELM_MAIN()
```
Reviewers: tasn, woohyun, bowonryu
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9628
Lots of improvements to the focus-related classes.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9828
Summary:
When target is changed, its event callback related `animation_player` should be
deleted.
Reviewers: Jaehyun_Cho
Reviewed By: Jaehyun_Cho
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9814
Summary:
Prerequisite: Partial rendering ON + Evas VG content set in elm_layout + color/alpha animation of layout
It seems that expected clip rects were not merged when color change was taking place on vg object.
@fix
Summary:
This is detected by static analysis tool.
The variable last could be NULL when it is dereferenced.
Reviewers: Hermet, zmike, bu5hm4n
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9796
unload is a crucial method for classes that implement load, as this is
the method which is called during e.g., efl_file_simple_load() when
a new file is specified in order to destroy the previous object data
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9786
In the end this was just a failed experiment that didn't turn
out to be practical. For now, revert back to ptr(const(T)) until
a proper replacement for pointer syntax is added.
Summary:
allocator use same heap if it is large enough
I am also think to move this struct/functionality into common place, I think we can use it in other parts too
Reviewers: smohanty, Hermet, bowonryu, SanghyeonLee
Reviewed By: smohanty, SanghyeonLee
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9770
Summary:
Enum and object decleared in efl_canvas_vg_object_eo.legacy.*
use Efl_Canvas_Vg_* nameing rule.
This skips the definition of type declared in Efl.Canvas.Vg.Object class.
So change these to legacy names.
Test Plan: N/A
Reviewers: Hermet, smohanty, kimcinoo
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9718
Summary:
This fixes an issue that inproper mapped object in/out events triggering.
The previous mouse event logic didn't care the transformed cooridates
if a child object belongs to a mapped parents in its hierarchy.
When checking the object boundary for the child on mouse moving,
it must consider if the child were belonged to the mapped parent space.
Plus, this improves the coordiates to be transformed properly for the prev cooridates,
So that user could compare cur/prev cooridnates properly in the same space
in its events callbacks.
@fix
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9751
this flag can be used to indicate that a user activly interacted with
this widget.
ref T7893
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9663
the sci may still be in the list then we free it because sci->im is
NULL .. it may always have been null. this should guard against that
and fix it.
@fix
Summary: `Efl.Canvas.Text_Style` is not used in eo world.
Reviewers: zmike, tasn
Reviewed By: tasn
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9565
Summary:
efl_canvas_vg_shape is set to miterlimit with Efl.Gfx.Shape.stroke_miterlimit
and pass the value from rasterizer to freetype.
NOTE: The default value is 4. It only refers to the standard of web svg.
https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/stroke-miterlimit
Depends D9657
Test Plan: N/A
Reviewers: Hermet, smohanty, kimcinoo
Subscribers: cedric, #committers, #reviewers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9665
this scenario means, more or less, that the user just wants the widget
to be as close to the max size hint as possible. widgets should (and do)
handle this properly
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9682
in 1 situation at least we delete the eina file (close it) but keep
the ptr around (during destruction) which could cause issues with
callbaks and events on del and so on.... which may lead to multiple
closes where only one should happen ... which would explain my invalid
eina file ref problems i'm seeing. i carefully matched eina file
handle stores/opens/dups to closes in edje/evas and they seemed to all
match up so this audit with comments and fixes seems to have plugged
that now.
@fix
so if you use sw and gl enignes in a process and have color font
glyphs.. *BOOM* because the color glyph code used ext dat that was
intended for engines to extend with a gotcha of "only 1 engine can
extend this"... commented already.
so this unfortunately adds an extra ptr per glyph to store color data
explicitly. but now it both renders right and doesn't crash. we still
have a limit of 1 engine alone can extend glyphs with ext_dat though.
@fix
Current vector drawing requires several methods for compositing,
it's shouldnt have only masking but other blending functions
such as matte in lottie, porter&duff in android, etc.
Previously we didn't specify this method name,
just reserved the options and now we started to define the methods
with ector_renderer_composite_method() instead of mask_set().
Improve handling invalid escape characters.
(*) When '&' character founded in Markup text.
Old Behavior : Any text after '&' (if it is not escape), all text will be discarded
New Behavior : Any text after '&' (if it is not escape), will be processes as normal plain text.
Example:
Markup Text : Hello X & Y & Z 1 2 3
Old output : Hello
New output : Hello X & Y & Z 1 2 3
This is related to T8077
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9489
evas_common_format_color_parse: support rgb()/rgba() format
efl user can now specify colors in text formats and styles as rgb(0-255,0-255,0-255) & rgba(0-255,0-255,0-255,0-255) format.
This is related to task: T8068
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9309
**_evas_textblock_changed** is internal function that mark that the textblock has changed.
When make call for
evas_object_textblock_text_markup_set(txtblock,"This is Line<br>THis is other Line<br>");
Old behaviour:
multible calles for _evas_textblock_changed will happend, for each text/format appended.
New behaviour:
Single call for _evas_textblock_changed will happend.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9376
Summary:
integrate mman.h to make Evil private to the EFL, as mman.h does not exist on Windows. After a discussion with raster, i include sys/mman.h only on non Windows platform.
One issue, though, is that src/modules/emotion/generic/Emotion_Generic_Plugin.h has inlined functions using mmap()
Test Plan: compilation on Windows
Reviewers: cedric, raster, zmike
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9542
these function the same as the min size hint versions and enable
distinction between internally-set max size hints and user-set max size
hints
@feature
ref T8122
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D9553
Summary:
canvas objects do not need localization because they are not directly user-facing
this should only be inherited by objects which need to be localized
Depends on D9559
Reviewers: q66
Reviewed By: q66
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9560
Summary:
When a map property is changed, map draws it.
Before drawing, evas_object_map_update updates map->spans which is data for
actual drawing. But if changed_map is false, then evas_object_map_update does
not update map->spans.
Usually mapped object has following step.
(1) change map data (evas_map_point_coord_set)
(2) render_pre
(3) evas_object_map_update updates map->spans if changed_map is true.
(4) render
(5) render_post -> evas_object_cur_prev -> "map->prev = map->cur"
But if mapped object hides at step(1), then step(3),(4) does not happen. But
step(4) map->prev keeps changed map data. After this point, If same map data
comes, then map does not draw it. Because the new data is same with map->prev.
The issue occurs with following step.
(A) point_coord_set with point A.
(B) (2)(3)(4)(5) works.
(C) point_coord_set with point B. And hide.
(D) (2)(5) wokrs.
(E) point_coord_set with point A. still hide, so none of (2)(3)(4)(5) work.
(F) point_coord_set with point B. And show.
(G) (2)(3)(4)(5) works. BUT step(3) does not update map->spans because
changed_map is false. So you can see image of point A.
The changed_map is changed to false after updating map->spans at step(3).
So usually changed_map is false before deciding changed_map of next render.
In case of not rendering (but render_pre/post) after map data is changed, the
changed_map keeps true. So this patch was suppose to make changed_map
false if changed_map is already ture before _evas_map_calc_map_geometry
decides changed_map which occurs step(1). true changed_map indicates that
you need to draw even though new map data is same with previous map data.
Test Plan: {F3739770}
Reviewers: Hermet, jsuya
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9476
the main user of textblock_style_set() api is the edje whcih keeps its owen edje_textblock_style
tags( string_shared string) by changing the textblock to keep the string_shared string will improve
the chance of sharing the same string hence reducing memory.
By removing the Eina_StrBuf usage inside the loop in textblock_style_set() api we can avoid lot
of temporary memory allocation and deallocation hence will improve performance.
Note: I see lot of places we use Eina_Strbuf inside a loop (eina_strbuf_new() does 2 allocation)
We need to be extra carefull while reviewing when the code uses those construct to see if its really necessary.
Data: it reduces memory allocation by 7000 in elementary_test launch time.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9545
Summary:
textblock format parsing creates/delets eina_TempStr for each
token. Eina_TempStr is even worse than malloc/free because it also
takes a lock/unlock along with malloc/free each time we create it.
Just use a stack bufefr and create string in it if the string is too big
then it will fall back to heap which is anyway we are doing right now.
Tested this in Tizen List view the number of allocation reduced by 16000.
Reviewers: Hermet, ali.alzyod, woohyun
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9534
if a proxy is not being proxied, it's optimal to create a surface for only
the necessary dimensions and then only draw within those dimensions.
when a proxy is clipped to a size smaller than the proxy object, the required
size for the proxy render becomes smaller as the proxy has less visible area.
this enables us to draw only the clipped region and thus gives a performance
boost
this can only be enabled if the clipper is marked as static
Reviewed-by: Hermet Park <hermetpark@gmail.com>
Differential Revision: https://phab.enlightenment.org/D8881
there's no point in allocating a massive mask surface if it's going to
be clipped to a smaller size, so instead just allocate the smaller size
and position it where the clipped size would be
this can only be enabled if the clipper is known to not be changing size,
as performance would be impacted if the clipper was forcing a full mask
redraw due to regular resizing
Reviewed-by: Hermet Park <hermetpark@gmail.com>
Differential Revision: https://phab.enlightenment.org/D8841
this provides a hint for rendering that the object is not going to resize
for as long as the flag is set and allows for some optimizations to
be made during rendering based on this knowledge
@feature
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8887
do it once and remember the result from the first one. drops overhead
for sure by a chunk i actually could see in perf reports like about 1-2%
of cpu...
Summary: This is for backward compatibility for TIZEN Test cases for legacy
Reviewers: woohyun
Reviewed By: woohyun
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9519
Summary:
the ids of the structs here are never negative
ref T7976
Reviewers: zmike, segfaultxavi, cedric
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7976
Differential Revision: https://phab.enlightenment.org/D9497
Sorry to touch stable eo classes. there is name conflict issue between class and
property when binding language is generated from eo. for example in C#, compiler
error occurs.
```
src/bindings/mono/efl_input_hold.eo.cs(166,17): error CS0542:
`Efl.Input.Hold.Hold': member names cannot be the same as their enclosing type
```
This patch changes Efl.Input.Hold.GetHold/SetHold to
Efl.Input.Hold.GetInputHold/SetInputHold and generates Efl.Input.Hold.InputHold
property.
Note that CAPI is not changed.
ref T8093
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Lauro Neto <lauromauro_>
Differential Revision: https://phab.enlightenment.org/D9484
People without X11 background would have a hard time understanding the difference
between key, key_name, key_code, etc.
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Reviewed-by: YeongJong Lee <yj34.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D9487
tracking some seemingly not so good asan hits on the eina file where
we're accessing an eina file already closed... so be extra paranoid
about it and set things to null after free/close...
Summary:
Sorry to touch stable eo classes. there is name conflict issue between class and
property when binding language is generated from eo. for example in C#, compiler
error occurs.
```
src/bindings/mono/efl_input_key.eo.cs(272,26): error CS0542:
`Efl.Input.Key.Key': member names cannot be the same as their enclosing type
```
This patch changes Efl.Input.Key.GetKey/SetKey method to
Efl.Input.Key.GetKeySym/SetKeySym and generates Efl.Input.Key.KeySym
property.
Note that CAPI is not changed.
ref T8093
Test Plan: meson setup -Dbindings=mono,cxx -Dmono-beta=true
Reviewers: lauromoura, woohyun, zmike, segfaultxavi
Reviewed By: segfaultxavi
Subscribers: bu5hm4n, cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8093
Differential Revision: https://phab.enlightenment.org/D9483
zmike note: this class was not released at the point of this patch, the class
was only recently marked as stable
There was a weird profiling result that rectangles drawing is much much slower than images.
Checked reason, the computation rect clip area is the overload point.
I don't think it's necesary but we can simplely improve the performance here
by replacing native function.
I tested this by drawing 400 number of rectangles,
and this patch improved up abt 10 fps(sw), 20fps(gl).
@TEST CODE
MAX_SIZE = 400;
for(int i=0; i< MAX_SIZE; i++)
{
Evas_Object *rect = evas_object_rectangle_add(layout);
int x = rand() % WINDOW_WIDTH;
int y = rand() % WINDOW_HEIGHT;
evas_object_resize(rect, ELM_SCALE_SIZE(200), ELM_SCALE_SIZE(200));
evas_object_move(rect, x, y);
evas_object_color_set(rect, (rand() % 256), (rand() % 256), (rand() % 256), 255);
evas_object_show(rect);
Elm_Transit *transit = elm_transit_add();
elm_transit_object_add(transit, rect);
int dX = rand() % WINDOW_WIDTH;
int dY = rand() % WINDOW_HEIGHT;
elm_transit_effect_translation_add(transit, 0, 0, dX - x, dY - y);
elm_transit_repeat_times_set(transit, -1);
elm_transit_duration_set(transit, 1.0);
elm_transit_go(transit);
}
Summary:
The repeated counter in Efl.Input.Clickable_Clicked can be used to
identify double click or triple click.
Previously, the repeated counter in Efl.Input.Clickable_Clicked was
calculated within the time interval 0.1 second.
Now, the time interval for the repeated counter is increased to 0.25
second. It seems that 0.25 second is more appropriate to identify if the
two consecutive clicks should be considered together.
(e.g. considered as double click or triple click)
Moreover, in ecore_event and edje, 0.25 second is already used as a time
interval for double click.
Test Plan:
1. Run Efl.Ui.Button in elementary_test
2. Do double click or triple click the buttons
Reviewers: segfaultxavi, bu5hm4n, YOhoho
Reviewed By: segfaultxavi, YOhoho
Subscribers: YOhoho, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9485
add a wrapper function for glFramebufferTexture.
some bugs were fixed.
I tested on Ubuntu 14.04(x64) and nVidia 375 driver with VK-GL-CTS
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D4831
Now, a specific class which uses efl_input_clickable_util is able
to cancel ongoing longpress event by calling longpress_abort.
This commit shows how efl_ui_text uses longpress_abort to satisfy
its own longpress use case
ref T7847
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9455
Currently:
User cannot change font size only, he needs to set both font and font size with (**efl_text_font_font_set**)
To change size only, you need to make two calls, one to get font (**efl_text_font_font_get**) , then pass it again with new size to (**efl_text_font_font_set**).
New Behaviour:
If user want to change size only, then he passes NULL as font argument to keep same font.
If user want to change font only, then he passes 0 as font-size argument, to keep same font-size.
Notes:
This is not best solution, but it better than current behaviour.
I think best solution to have separate function to set font size, but It might break current api or duplicate functions.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9158
update font processing to handle variation sequences unicodes to select proper glypg in respect to variation seqences
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9053
Summary:
T8088
if escape character sequence not found for example **&123;** :
* (Old Behaviour) : Draw nothing
* (New Behaviour) : Draw Text like it plain text
I think this is the right behaviour since:
1- We print output as it is, so user can detect what was the problem.
For example user write &gf; (by mistake, he wanted to write >)
== if we nothing is printed he would not know exactly where is the real problem.
it can be font file, textblock is not visible, he may think bug in efl
== if we printed &gf; as it is, it will direclty show that this is not valid escape char.
2- If user made mistake in text, it is better to show it instead of hide it, maybe there are new sequences that we do not know about.
This behaviour was checked on multible systems:
1- Web Browsers like chrome
2- Qt
3- Android
They all have same as our new behaviour
Example :
markup text = ">&gf;
Old : >
New : >&gf;
Test Plan:
```
#define EFL_EO_API_SUPPORT 1
#define EFL_BETA_API_SUPPORT 1
#include <Eina.h>
#include <Elementary.h>
#include <Efl_Ui.h>
static void
_gui_quit_cb(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED)
{
efl_exit(0);
}
static void
_gui_setup()
{
Eo *win, *box;
win = efl_add(EFL_UI_WIN_CLASS, efl_main_loop_get(),
efl_ui_win_type_set(efl_added, EFL_UI_WIN_TYPE_BASIC),
efl_text_set(efl_added, "Hello World"),
efl_ui_win_autodel_set(efl_added, EINA_TRUE));
// when the user clicks "close" on a window there is a request to delete
efl_event_callback_add(win, EFL_UI_WIN_EVENT_DELETE_REQUEST, _gui_quit_cb, NULL);
box = efl_add(EFL_UI_BOX_CLASS, win,
efl_content_set(win, efl_added),
efl_gfx_hint_size_min_set(efl_added, EINA_SIZE2D(360, 240)));
efl_add(EFL_UI_TEXT_CLASS, box,
efl_text_markup_set(efl_added,
">&gf;"),
efl_text_interactive_selection_allowed_set(efl_added, EINA_FALSE),
efl_gfx_hint_weight_set(efl_added, 1.0, 0.9),
efl_gfx_hint_align_set(efl_added, 0.5, 0.5),
efl_text_multiline_set(efl_added,EINA_FALSE),
efl_pack(box, efl_added));
efl_add(EFL_UI_BUTTON_CLASS, box,
efl_text_set(efl_added, "Quit"),
efl_gfx_hint_weight_set(efl_added, 1.0, 0.1),
efl_pack(box, efl_added),
efl_event_callback_add(efl_added, EFL_UI_EVENT_CLICKED,
_gui_quit_cb, efl_added));
}
EAPI_MAIN void
efl_main(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
{
_gui_setup();
}
EFL_MAIN()
```
Reviewers: woohyun, bowonryu, segfaultxavi, bu5hm4n
Reviewed By: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9428
Summary:
If you call efl_gfx_filter_program_set in a mouse event callback,
it does not work. Because render_pre removes area uisng evas_render_update_del.
Reviewers: Hermet, jpeg, jsuya, cedric
Reviewed By: Hermet, cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9301
Summary:
Implements a vector class that can support image.
User can use this class to output an image with a vector object.
Depends on D9218:Ector.Renderer : Implement Ector.Renderer.(Software).Image class
Test Plan: N/A
Reviewers: Hermet, smohanty, kimcinoo
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9219
many of these functions go directly to evas internals with no eo checks,
and the existing "MAGIC_CHECK" macro has somehow become a useless null
check
type checking here is important in order to avoid crazy behavior when the
wrong object types are passed
@fix
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9364
any time an evas box is moved, it flags itself to do a recalc on all of
its contents in the next render. evas box also inherits from smart clipped
class, however, which means that it will also move all of its contents
immediately on every single move. this results in something like:
move(box) -> for content in box { move(content) } -> render ->
recalc(box) -> for content in box { calc(content); move(content); }
which is massively inefficient and results in box being completely unusable
once it has a large number of contents
by skipping immediate move() calls for all the box contents, we can bring this
performance back to usable levels
@fix
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9336
This is just the plumbing that feed data provided along android 9 patch image for example
into Evas object image new stretch and content region infrastructure for rendering them
properly.
Reviewed-by: Hermet Park <hermetpark@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9102
This is the first step into introducing support for Android 9 patch
format (extension: .9.png). The principle is to expose a new property
on image object that define a complete behavior incompatible with other
border and fill logic. The reason is that 9 patch allow for any number
of stretchable area inside an image, not just for each corner. The way
to define this is by giving a pointer to an array of the proper type
that define stretchable region relative to each other.
The logic being slightly more complex than the border and fill logic,
it is slightly slower. If you are just defining corner on your image
for something like a button, you would still get better performance
using border. I will try to make edje_cc detect those case and fallback
to border when possible.
Reviewed-by: Hermet Park <hermetpark@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9096
The first step with this API is to use the information provided when setting
the border on an image to define the content area inside it. Improvement will
be to use more flexible stretch region area to make it more customizable and
finally read the information from a 9patch file (.9.png).
Reviewed-by: Hermet Park <hermetpark@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9093
Summary:
Decrement grab count of mouse event when mouse up happen during a freeze state.
Currently as grab count is not reduced in this scenario, further touches gets ignored.
Signed-off-by: Godly T.Alias <godlytalias@yahoo.co.in>
Test Plan: (on scenario where proxy exists) mouse down -> freeze events -> mouse up -> unfreeze events
Reviewers: cedric, raster, zmike, Hermet
Reviewed By: zmike
Subscribers: zmike, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9214
Summary:
Efl.Gfx.Image_Orientable and Efl.Ui.Layout_Orientable have same property name.
So when class extends both interfaces, it makes conflict.
Relates to T7924
Reviewers: woohyun, segfaultxavi
Reviewed By: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9299
given the following scenario:
* object is added to smartobj
* smartobj is otherwise unchanged
* render occurs
object will never render due to smartobj's render cache not including object
by clearing this cache when reinserting smartobj into the render tree for a
followup render, the object chain will be correctly processed on the next pass
fix T7990
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D9287
Summary: Now Textblock has the ability to parse color names same as hex value strings.
Reviewers: segfaultxavi, woohyun, bowonryu
Reviewed By: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9250
Summary:
We are adding A object area to the redraws rect when object stack is changed
from (1) to (2) if A object is not mapped.
(1)
┌────────┐
│Object A│┐
└────────┘│
└────────┘
(2)
┌────────┐
│┌────────┐
└│Object B│
└────────┘
But if A object is mapped, then we are adding only part of A object area.
(part of A)
┌───────┐
│┌──────┘
└┘
So the result of stack change is (1) not (2).
This patch set is adding restacked mapped object to the restack_objects array,
after changing the stack of mapped object to add correct redraws rect.
Test Plan:
{F3727281}
{F3727280}
{F3727279}
(1) Build and Run attached example on software_x11 engine
(2) Mouse down on upper image - the image starts to use map.
(3) Then mouse up - upper image should go under the below image.
But, the changed result is NOT rendered.
Reviewers: Hermet, jsuya, zmike
Reviewed By: zmike
Subscribers: zmike, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9183
EFL_EVENT_FOCUS_IN is wrong here, EFL_EVENT_FOCUS_IN is called on object
that received object focus. Not canvas focus, however, the code in the
callback there seems to be mainly for canvas focus handling.
Additionally, in evas_events, the event handler that was listening for
the canvas focus in / out events expected a event type, which is also
not correct, because the canvas focus in / out does not have one. In
order to catch such errors later more easily, there is now a safety
check, so we really fetched the correct seat.
Reviewed-by: YeongJong Lee <yj34.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D9191
it looks like this was left out during initial writing of eo-based eventing,
but based on the description, the intent was to have a separate cancel event
which was emitted just prior to the 'up' event using the existing state
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D9184
Summary:
this also adds tests verifying that EFL_EVENT_KEY_DOWN / EFL_EVENT_KEY_UP are emitted
and passed with the correct event types, and fields on the event object.
Depends on D9166
Reviewers: zmike, segfaultxavi
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9167
Summary:
efl user can now specify colors by there names ( not only Hex RGB/RGBA values), which is very convenient specially for first time users (where user may think it is supported by default)
<color=#FF0000> == <color=red> == <color==RED>
there are two main types of color names and values ( X11, web colors), here we are using X11 color.
============
Update for documentation pages should be added like:
https://www.enlightenment.org/_legacy_embed/evas_textblock_style_page.html#evas_textblock_style_color
I do not know how to update it :(
Test Plan:
```
#define EFL_EO_API_SUPPORT 1
#define EFL_BETA_API_SUPPORT 1
#include <Eina.h>
#include <Elementary.h>
#include <Efl_Ui.h>
static void
_gui_quit_cb(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED)
{
efl_exit(0);
}
static void
_gui_setup()
{
Eo *win, *box;
win = efl_add(EFL_UI_WIN_CLASS, efl_main_loop_get(),
efl_ui_win_type_set(efl_added, EFL_UI_WIN_TYPE_BASIC),
efl_text_set(efl_added, "Hello World"),
efl_ui_win_autodel_set(efl_added, EINA_TRUE));
// when the user clicks "close" on a window there is a request to delete
efl_event_callback_add(win, EFL_UI_WIN_EVENT_DELETE_REQUEST, _gui_quit_cb, NULL);
box = efl_add(EFL_UI_BOX_CLASS, win,
efl_content_set(win, efl_added),
efl_gfx_hint_size_min_set(efl_added, EINA_SIZE2D(360, 240)));
efl_add(EFL_UI_TEXT_CLASS, box,
efl_text_markup_set(efl_added,
"<color=red>this is red color line(color = red)<color><br>"
"<color=#0000FF>this is blue color line (color = #0000FF)<color><br>"
"<color=gray>this is gray color line (color = gray)<color><br>"),
efl_gfx_hint_weight_set(efl_added, 1.0, 0.9),
efl_gfx_hint_align_set(efl_added, 0.5, 0.5),
efl_text_multiline_set(efl_added,EINA_TRUE),
efl_pack(box, efl_added));
efl_add(EFL_UI_BUTTON_CLASS, box,
efl_text_set(efl_added, "Quit"),
efl_gfx_hint_weight_set(efl_added, 1.0, 0.1),
efl_pack(box, efl_added),
efl_event_callback_add(efl_added, EFL_UI_EVENT_CLICKED,
_gui_quit_cb, efl_added));
}
EAPI_MAIN void
efl_main(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
{
_gui_setup();
}
EFL_MAIN()
```
Reviewers: woohyun, bowonryu, segfaultxavi, vtorri
Reviewed By: segfaultxavi, vtorri
Subscribers: vtorri, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9153
Summary:
This patch extends efl_canvas_vg_object class to implement efl_gfx_frame_controller
to suppor any playable animation on it.
Plus, vector object takes care of lottie animation by using json loader.
it's caching mechanism is changed to cache only static frame, not all frames.
vg_cache supports json loader and make it animation request properly.
This feature has been stabilized enough, it's using in Samsung Galaxy Watch active product,
proved its stability enough.
Depends on {D8940}
Co-authored-by: JunsuChoi <jsuya.choi@samsung.com>
Reviewers: #committers, jsuya
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8941
Summary:
Introduce a new evas json loader to support lottie animation.
This json loader uses rlottie library which is a new github open project.
These days most ui frameworks (windowpws, skia, qt, xamarin, react, nativescript) supports lottie,
the rlottie was designed to support lottie as a standalone library and compatible with efl as well.
To enable this,please install rlottie library then remove json disabler in meson_options.txt
For more information, See lottie/rlottie project and its a introdcution article:
https://airbnb.io/lottie/#/https://github.com/samsung/rlottiehttps://hermet.pe.kr/143
Co-authored-by: JunsuChoi <jsuya.choi@samsung.com>
{D8941}
{D8944}
Reviewers: #committers, jsuya, bu5hm4n
Subscribers: bu5hm4n, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8940
rename this property, as this name was considered better.
ref T7964
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D9141
it seems we have done here something wrong, EFL_EVENT_FOCUS_IN is meant
to be emitted on objects that RECEIVE focus. This function here however
is called each time the window gets focus, which then might lead to a
object getting focus. However, those are two different things.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D9137
tool was not very helpfull, and additionally, the docuemtnation of it
was completly wrong. After searching through the code where tool was
actaully set (efl_ui_win.c) it turned out that it is actaully the "id"
of the pointer when there are multiple touch events.
ref T7963
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D9135
Summary:
Use more descriptive parameter names.
l, r, t, b it my confused with rgb value or something similar.
Reviewers: segfaultxavi, woohyun, bowonryu
Reviewed By: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9131
mouse in/out feeds can call callabcks that can then go delete objects
- ref them all to ensure they stay alive while we use them. this will
fix a segv apbbb saw.
Summary:
When the precomp layer(parent layer) has alpha transparency and has more than 1 child layer
and they overlap each other if vg object just propagate the alpha to child layer
it will be applied twice in overlapped area.
Even if the child layer does not have alpha transparency, parent alpha is applied to each child.
Test Plan: N/A
Reviewers: Hermet, smohanty
Reviewed By: Hermet
Subscribers: cedric, #reviewers, kimcinoo, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9072
Summary:
If an input buffer and an output buffer for the curve filter are same, it reads
and writes to the same texture which behavior is not defined. I could not find
good reference for this, but following could be a reference.
https://stackoverflow.com/questions/11410292/opengl-read-and-write-to-the-same-texture
The texture gets 0 color value as a result. So the curve filter does not work.
This patch makes the curve filter use different input and output buffer.
Test Plan:
This attached file could explain what 'read and write to the same texture' is.
{F3724537}
Reviewers: Hermet, jpeg, jsuya
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9085
i missed 1 rare case where we start in the middle of the list and have
to walk to the end. testing didnt show it up. fix. this fixes up that
case in b5ed76ba9f
to walk inreverse we need to jump to last first then walk backwards...
what we were doing is calling eina_inlist_last() which is defined to
walk rather than that using list->last ... this totally got rid of
_evas_event_object_list_raw_in_get() from my perf list ... and i was
wondering how it got there to start with.
this is such an obvious optimization...
Summary:
The vg object (container, shape, ...) follows color of VG node data.
The color of node data is not initialized. it can set the required color for each object.
vg container should be layer with an alpha value of 255.
Test Plan: N/A
Reviewers: Hermet, smohanty
Reviewed By: Hermet
Subscribers: cedric, #reviewers, kimcinoo, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9083
Previously, final_state_keep did not work correctly with animation
repeat.
e.g. repeat mode is restart and repeat count is 1, then final_state_keep
did not work.
Now, final_state_keep logic has been fixed to work correctly.
Previously, for a single canvas animation, map effect was applied in
animator callback without resetting previously applied map effect.
This increased numerical error because each time map effect factors
(e.g. scale, degree) should be calculated based on the current map
coordinates.
To resolve this numerical error, now the previously applied map effect
is reset before applying the current map effect in animator callback.
Summary:
now that various other bugs related to clipping/masking/drawing have
been fixed, this "just works"
@feature
Reviewers: Hermet, cedric
Reviewed By: Hermet, cedric
Subscribers: Hermet, cedric
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8852
Summary:
This file is full of functions called as:
foo(eo_obj, obj);
Most of them can be reduced to foo(obj); and internally get the eo_obj
with obj->object
This would make it impossible to screw up calling them passing an
unrelated pair, and make calling code a little more readable.
ref T7230
Depends on D9050
Reviewers: raster, cedric, zmike
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7230
Differential Revision: https://phab.enlightenment.org/D9051
Summary:
This file is full of functions called as:
foo(eo_obj, obj);
Most of them can be reduced to foo(obj); and internally get the eo_obj
with obj->object
This would make it impossible to screw up calling them passing an
unrelated pair, and make calling code a little more readable.
ref T7230
Depends on D9049
Reviewers: raster, cedric, zmike
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7230
Differential Revision: https://phab.enlightenment.org/D9050
Summary:
This file is full of functions called as:
foo(eo_obj, obj);
Most of them can be reduced to foo(obj); and internally get the eo_obj
with obj->object
This would make it impossible to screw up calling them passing an
unrelated pair, and make calling code a little more readable.
ref T7230
Depends on D9048
Reviewers: raster, cedric, zmike
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7230
Differential Revision: https://phab.enlightenment.org/D9049
Summary:
This file is full of functions called as:
foo(eo_obj, obj);
Most of them can be reduced to foo(obj); and internally get the eo_obj
with obj->object
This would make it impossible to screw up calling them passing an
unrelated pair, and make calling code a little more readable.
ref T7230
Depends on D9046
Reviewers: raster, cedric, zmike
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7230
Differential Revision: https://phab.enlightenment.org/D9048
Summary:
This file is full of functions called as:
foo(eo_obj, obj);
Most of them can be reduced to foo(obj); and internally get the eo_obj
with obj->object
This would make it impossible to screw up calling them passing an
unrelated pair, and make calling code a little more readable.
ref T7230
Depends on D9045
Reviewers: raster, cedric, zmike
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7230
Differential Revision: https://phab.enlightenment.org/D9046
Summary:
This file is full of functions called as:
foo(eo_obj, obj);
Most of them can be reduced to foo(obj); and internally get the eo_obj
with obj->object
This would make it impossible to screw up calling them passing an
unrelated pair, and make calling code a little more readable.
ref T7230
Reviewers: raster, cedric, zmike
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7230
Differential Revision: https://phab.enlightenment.org/D9045
Summary: clang reports a warning here. We compare the result of abs (casting to an int, returning an int) to a double value. Hence we should use fabs instead
Test Plan: compilation
Reviewers: Jaehyun, Hermet
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9024
@warn_unused in syntax is now called @no_unused - this is because
"warning about unused" is a C thing (or rather, an extension to C)
and various languages might want to use stricter behavior for this.
Its associated API does the reverse now - it lets you query whether
being unused is allowed at all. This is to match future behavior
of Eolian (once it supports versioning) that will likely reverse it.
@feature
This has been deprecated for a while and is not strictly necessary
- as a part of an effort to stabilize Eolian, remove this. Eolian
will eventually gain support for versioning and use a reversed
behavior (i.e. no NULL by default), but the API it wlll use for
that will be very different. Features can always be added, it's
much harder to drop them.
@feature
Summary:
a generated eolian c file cannot be included multiple times or else it will
create multiple definitions of symbols defined in that file and break the build
ref 54175998d5
fix T7960
Reviewers: devilhorns, vtorri
Reviewed By: vtorri
Subscribers: cedric, #reviewers, #committers
Tags: #efl_build
Maniphest Tasks: T7960
Differential Revision: https://phab.enlightenment.org/D8945
Summary:
when source_clip is disabled, the clipper used should be the one used by
the proxy object. previously this would never be the case, meaning that
disabling source_clip had no effect
@fix
Depends on D8879
Reviewers: Hermet
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8880
Summary:
This will help disambiguate later on when we rename Efl.Ui.Direction
to Efl.Ui.Layout_Orientation.
Relates to T7919
Test Plan: Everything still builds and passes tests.
Reviewers: zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8934
Summary:
how many times was this block of code copied around???
no functional changes
Depends on D8848
Reviewers: segfaultxavi
Reviewed By: segfaultxavi
Subscribers: segfaultxavi, cedric, #reviewers, #committers
Tags: #efl_rendering
Differential Revision: https://phab.enlightenment.org/D8849
Summary:
this is now handled entirely in the masking helper function
no functional changes
Depends on D8847
Reviewers: segfaultxavi
Reviewed By: segfaultxavi
Subscribers: segfaultxavi, cedric, #reviewers, #committers
Tags: #efl_rendering
Differential Revision: https://phab.enlightenment.org/D8848
Summary:
by adding a couple extra params to existing functions, we can reuse
existing code instead of copying it around and adding more bugs
no functional changes
Depends on D8846
Reviewers: segfaultxavi
Reviewed By: segfaultxavi
Subscribers: segfaultxavi, cedric, #reviewers, #committers
Tags: #efl_rendering
Differential Revision: https://phab.enlightenment.org/D8847
Summary:
And the Efl.Orientation interface -> Efl.Gfx.Orientable
(with proper c_prefix so it is not too cumbersome to use from C).
Also, turned the theme_rotation_apply() parameter into an int to avoid confusion.
Fixes T7919
Depends on D8912
Test Plan: Everything continues to build and pass tests
Reviewers: zmike, bu5hm4n, cedric, Hermet, Jaehyun_Cho
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7919
Differential Revision: https://phab.enlightenment.org/D8926
Summary:
This is similar to how it is in Evas, and simplifies the Efl.Orientation
interface, which only needs one property now.
Relates to T7919
Test Plan: Everything builds and tests pass. There's only one example of efl_orientation_set() so there's not much to test yet.
Reviewers: zmike, bu5hm4n, cedric, Hermet, Jaehyun_Cho
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7919
Differential Revision: https://phab.enlightenment.org/D8912
Summary:
if things are a array in a array, then flattening only seems to work
when the first element is a target object. But not when the first
element is then also an string, then the string in the array gets
concatted and added to root array. This is a meson bug, investigation
going on. Additionally, this fixes installed .eo files, as we might want
to installed gesture files when we require them in other objects.
Reviewers: Jaehyun_Cho, zmike
Reviewed By: zmike
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8910
Summary:
_node_change function is only executed
when the flag is none to prevent duplicate calls.
If CHANGE_MATRIX_FLAG is added to the flag in advance,
_node_change function does not operate normally.
Test Plan:
cd ./src/examples/evas
gcc -o evas_vg_simple evas-vg-simple.c `pkg-config --libs --cflags evas ecore ecore-evas eina ector eo efl` -lm
./evas_vg_simple
Reviewers: Hermet, kimcinoo, smohanty
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8895
Previously, halign_auto was AUTO_NORMAL when halign was set so the given
halign value could not be applied correctly.
Now, halign_auto is modified to AUTO_NONE before halign is set so the
given halign value is applied correctly.
Summary:
https://phab.enlightenment.org/T7544
Provides a way for a user to get a gesture manager, recognizer instance.
Supports different recognizer properties for each target(Eo).
Gesture, Touch Class Life-cycle re-implementation. for supporting multiple touches.
Add below gestures.
efl_canvas_gesture_tap
efl_canvas_gesture_double_tap
efl_canvas_gesture_triple_tap
efl_canvas_gesture_long_tap
efl_canvas_gesture_momentum
efl_canvas_gesture_zoom
efl_canvas_gesture_flick
Test Plan:
Simple test -> test_gesture_framework.c
More test cases will upload.
Reviewers: woohyun, smohanty, segfaultxavi, Jaehyun_Cho
Reviewed By: Jaehyun_Cho
Subscribers: Jaehyun_Cho, segfaultxavi, cedric
Tags: #efl, #do_not_merge
Differential Revision: https://phab.enlightenment.org/D7579
Summary:
if auto_fill is set (which is the default for image objects), manually setting
the fill for the image would previously only persist until the image was resized,
at which point the auto_fill would activate and re-set the image's fill to be
the same as the image's object geometry
this fixes the auto_fill behavior to stop modifying the image's fill geometry
if the fill is manually changed by the user, which fixes using fill on most
image objects
@fix
Reviewers: cedric, Hermet
Reviewed By: cedric
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8879
Summary:
this is already a risky call for larger scanlines, so use the clamped value
to further reduce the chance of blowing out the stack
Depends on D8839
Reviewers: cedric, segfaultxavi
Reviewed By: segfaultxavi
Subscribers: segfaultxavi, #reviewers, #committers
Tags: #efl_rendering
Differential Revision: https://phab.enlightenment.org/D8840
Summary:
the 'y' parameter is not relevant here. this clamping exists solely
to avoid reading outside the bounds of the mask, and 'y' is the scanline
at which to begin the masking
subtracting the mask size here does not make sense: we are attempting to clamp
to the size of the mask in order to avoid buffer over-read, so this means that
we are mapping the maximum y coordinate of the mask (mask_y + mask_h) to be
relative to the clipped y coordinate (dst_clip_y)
Depends on D8838
Reviewers: cedric, segfaultxavi
Reviewed By: segfaultxavi
Subscribers: segfaultxavi, #reviewers, #committers
Tags: #efl_rendering
Differential Revision: https://phab.enlightenment.org/D8839
Summary:
this was a bit confusing to read since the comparators are not ordered
as expected
no functional changes
Depends on D8837
Reviewers: cedric, segfaultxavi
Reviewed By: segfaultxavi
Subscribers: segfaultxavi, #reviewers, #committers
Tags: #efl_rendering
Differential Revision: https://phab.enlightenment.org/D8838
Summary:
this code block was repeated multiple times throughout the function
no functional changes
Reviewers: cedric, kimcinoo
Reviewed By: kimcinoo
Subscribers: kimcinoo, #reviewers, #committers
Tags: #efl_rendering
Differential Revision: https://phab.enlightenment.org/D8837
the animation itself does not implement the player interface, and
nothing forces it to do so. Additionally, we should ask the reference
object for the current progress. Not the animation object.
This fixes pos_set / pos_get.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D8783
u or v go below 0... sometimes. right now i don't know the full path
to there, bute crashes with flat theme when the busy spinner shows
over an ibar icon when you launch... this at least stops that.
this needs hunting in more detail than i'm going to do on my laptop
on the couch...
D8610 Makes API Testcase fault.
"<" is never searching.
@fix
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D8803
Summary:
evas_gl_common_image_content_hint_set makes RGBA_Image NULL if content hint
is EVAS_IMAGE_CONTENT_HINT_DYNAMIC with 'sec_tbm_surface' and 'egl_tbm_ext'.
efl_file_save(_efl_canvas_image_internal_efl_file_save_save) does not work
in this case because ENFN->image_data_direct_get returns FALSE.
This patch makes ENFN->image_data_direct_get work but you need to free its
returned data after using it.
Reviewers: Hermet, jsuya
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8516
Summary:
1. src_event_in should not be initialized when grabbed object exists.
2. when object of pointer grab is deleted and if object has proxy,
proxy object of pointer grab should be deleted together.
Reviewers: Hermet
Reviewed By: Hermet
Subscribers: zmike, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8698
Instead of using old way for linear search for Escape Strings or Escape values, we will sort these values and string in compile time then binary search them.
In simple words:
Instead of having one array with pair of {escapeChar,escapeValue} and linear search it.
We will have two arrays with pair of {escapeChar,escapeValue}, one with escapeChar Sorted, and one with escapeValue sorted.
and we will use one of the array to binary search escape chars, and use the other to binary search escape values,
1- This will increase the speed for the search a lot for both Escape characters and Escape values.
2- Make code more easy to understand and trace
3- This will also fix bug for
```
int value;
const char * value = evas_textblock_string_escape_get("",&value)
//because of some unhanded case in previous code, this will return "&qout;" , which is first element in predefined escape character array
```
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D8610
Previously, animation was not applied immediately when player starts
animation because elapsed time is 0.
This caused flickering object if animation begins with alpha 0 because
the alpha 0 animation is not applied immediately.
Now, animation is applied immediately when player start animation.
Summary:
it FINALLY happend! With this python bindings should be able to work
again with a meson build, you can also enable b_lundef right now. And it
appears to work, with this we can also get another step closer to a
windows build.
Depends on D8669
Reviewers: zmike, stefan_schmidt, cedric, vtorri
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8670
Summary:
with this we don't have any static module anymore in the engine
directory. This means either *all* modules in the enignes directory are
static OR shared. There is no mixture anymore. This is a requirement for
the directory to be build whenever we want it to be build.
Depends on D8667
Reviewers: zmike, stefan_schmidt, cedric, vtorri
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8668
evas map has used integer coodinate system since it's born,
since object's transition is jiggled, not perfectly smooth.
It's obvious because Positioning must be stepping with integer units
without any subpixel rendering.
Currently, this patch is a sort of preparatory to improve this,
only valid for high-quality evas map (smooth + anti-aliasing)
Summary:
the perspective could be handled in the gl backend,
Here map coordinates don't need to get perspective ones but
local coordinates instead as it does same to integer coordinates.
I have no idea origin issues exactly,
but this changed fx, fy values are working correctly in client side.
Reviewers: devilhorns, #committers
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8563
Issue with global list item, used to same styles. (in destructor we do not remove styles from it, which will cause memory leak)
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D8578
Summary:
If another mask is set in the mask source, the rendering of the mask is performed in order.
The mask will render one buffer in order.
And depending on some types, the initial values of the buffers may be different. (alpha zero or 255).
If the implementation for masking is
efl_canvas_vg_node_mask_set(layer, mask1, MASKADD);
efl_canvas_vg_node_mask_set(mask1, mask2, MASKSUBSTRACT);
efl_canvas_vg_node_mask_set(mask3, mask4, MASKINTERSECT);
Supports rendering for consecutive masks.
Reviewers: Hermet, cedric
Reviewed By: Hermet
Subscribers: #reviewers, #committers, smohanty, kimcinoo
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8517
We need a proper interface to toggle high-quality mapping,
until that, we disable the anti_aliasing feature.
Since adjecent polygons(such as textpath) shouldn't get this aa feature.
Remove old anti-alias code since high quality map is replaced with new one.
New anti-aliasing is logically same but having a regression bug,
it should be stablized.
Summary:
This new implementation of evas map texture mapping
is designed for high quality rendering same level to GL.
If you use a high-end device, performance is not too bad, you can turn this on.
You might have practical image quality even in software rendering.
Since this implementation still have a few optimization points (+simd)
and stablizings, it may be useful in somewhat limited envrionments right now.
However the functionality definitely works fine, so please turn this on by
demand (anti_alias + smooth) for a while.
{F3667773} {F3667776} {F3667778}
Reviewers: #committers, devilhorns, raster
Reviewed By: #committers, raster
Subscribers: raster, devilhorns, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8106
Summary:
When I add "efl_event_callback_add(btn, EFL_GFX_ENTITY_EVENT_VISIBILITY_CHANGED, _cb, NULL)",
_cb is not called. Because of callback_mask is not set correctly.
Test Plan: unit test
Reviewers: zmike, cedric
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8528
There is a wrong case that fails caching ector surfaces.
Those vector objects manually constructing shapes,
passed wrong pointer as the cacahing key instead of root node pointer.
This fixes it.
Summary:
The EVAS_CALLBACK_RENDER_POST callback has been deferred when the callback is registered during the render(inside_post_render flag on).
In the sync render case, the logic to call deferred callbacks is missing, and callbacks are not being called in certain cases.
@fix
Reviewers: ManMower, Hermet
Reviewed By: Hermet
Subscribers: zmike, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8478
Summary:
there have been wrong function calls, that did not work at all, since
the function pointer had the wrong type. This fixes the segfaulting
examples of evas3d. However, they still do not render, at least, they
don't crash anymore.
Depends on D8381
Reviewers: cedric, segfaultxavi, zmike, stefan_schmidt
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8382
this path should not be triggered for objects which are being deleted,
which was the case in all of the referenced bug reportst
fix T4904, T7100, T7421
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8445
Summary: Previous @since tags have already been removed from eo files.
Test Plan: Everything builds, but stable classes now have Since tags in the docs.
Reviewers: zmike, bu5hm4n
Reviewed By: bu5hm4n
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8446
Summary:
All legacy @since tags have already moved to the *.legacy.h files.
EO files are now devoid of @since tags (except some eldbus still
needed for legacy).
Upcoming patches will add @since 1.22 to those APIs which come out
of beta in this release.
APIs marked @beta do not need @since tags.
Test Plan: Everything builds, EO docs (like DocFX) have no Since tags.
Reviewers: zmike, bu5hm4n, lauromoura, cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8430
Coverity reports that both pname & file variables can be null here,
and that we are potentially passing NULL to strcmp. Check for valid
variables before passing to strcmp
Fixes Coverity CID1399423, CID1399421
@fix
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D8350
Summary:
Since we're now going to be shipping some eo classes as stable,
there is no point in keeping the eo api behind a macro, and it
should be enabled by default. Another case is beta classes, but
those are behind the EFL_BETA_API_SUPPORT guard.
This also changes includes around the place where things are
clearly broken (such as an included header needing something
from another header but that other header being guarded, notably
efl_ui_widget.h needing focus manager but focus manager being
behind beta in Elementary.h)
Reviewers: zmike, cedric, bu5hm4n, stefan_schmidt, segfaultxavi
Reviewed By: cedric, segfaultxavi
Subscribers: segfaultxavi, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8322
Summary:
This patch prevent that event_freeze_count is greater than 1 in
`evas_object_freeze_events_set`
Test Plan: make check
Reviewers: bu5hm4n, zmike
Reviewed By: zmike
Subscribers: zmike, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8325
Summary:
this is done because .eo files are not stable, and in order to stop
people depending on it, its better for now to disable the installation
of them for now.
ref T7676
Reviewers: stefan_schmidt, cedric, zmike, devilhorns
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7676
Differential Revision: https://phab.enlightenment.org/D7897
Coverity reports that 'pos' could be null here and we are potentially
dereferencing a NULL pointer, so lets add a check for 'pos' here
before trying to use it.
Fixes Coverity CID1399091
@fix
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D8313
Here is a replacement to use eina_file from a vg obj instance
to map file data by vg loaders.
This brings a benefit that integrated access to load data
between vg object and vg loaders.
Summary:
these types are not currently being released and eolian should not have
generated legacy code using them
Reviewers: segfaultxavi
Reviewed By: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl_api
Differential Revision: https://phab.enlightenment.org/D8288
Summary:
This enables all the checks unconditionally, without ignoring
classes that don't have an Efl namespace. This required a lot
of beta marking to make it build. It most likely doesn't
mark types correctly, as that is not fully enabled yet.
Reviewers: zmike, cedric, segfaultxavi, bu5hm4n
Reviewed By: segfaultxavi
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8266
This reverts commit c876ac52d9.
This is not safe to remove - this breaks enlightenment. perhaps test
with the reason efl exists in the first place before delcaring it
safe? specifically this removed some function symbols in
efl_canvas_event_grabber_eo.legacy.c ...
the tiles rotator is faster no matter what. this will fix D8099 by
movoing to tiled rotation and nuking the neon code and we end uop
being faster anyway in all cases.
@fix
Getter are usually not modifying there object. This is going to put a strong
limit on what a getter property for MVVM is, as it will prevent any side
effect on getting a property from a View.
Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D7969
this sucks but we've been using these types in legacy headers for years
and it's not something we can rush in a fix for
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8248
Summary:
these are all types that we do not currently want to release
Depends on D8102
Reviewers: segfaultxavi
Reviewed By: segfaultxavi
Subscribers: segfaultxavi, cedric
Tags: #efl_api
Differential Revision: https://phab.enlightenment.org/D8241
Summary:
This event can just be renamed, no need to handle legacy. The reason for
this, that this event is used to map to EVAS_CALLBACK_ enum fields,
which means, the legacy names of the event does not matter.
ref T7476
Reviewers: cedric, segfaultxavi, zmike, stefan_schmidt
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7476
Differential Revision: https://phab.enlightenment.org/D8242
Summary:
Since the removal of legacy interfaces from eo files, these files
contain nothing useful, and can safely be removed. One exception
is `efl_ui_layout.eo.legacy.h`, which will require more involved
work to remove, since a lot of things seem to depend on the
Efl_Ui_Layout typedef being present, wrongly (i suspect this
will break everything with `EFL_NOLEGACY_API_SUPPORT`).
Reviewers: cedric, zmike, bu5hm4n
Reviewed By: zmike
Subscribers: #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8251
The other alternative would be to move callback_register/
callback_unregister from evas.canvas3d.object to evas.canvas3d.node.
However doing this right now is a bit hard based on the fact that no
example currently does render / work. Therefore the empty implementation
is the solution that does require fewer code movements.
ref T5719
Depends on D7759
It may occur some threading corruption, since ector raster uses thread
internally. Unfortunately the issue is rarely occured, hardly catch
the exact point. But I guess this ector drawing range may be the root cause.
Commented out them as it did before, until we could make the issue sure.
this requires a type that looks very sketchy
ref T7726
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8240
this takes the current generated output from eolian for legacy code in
evas and adds it to the tree, then removes legacy references from the
corresponding eo files. in the case where the entire eo file was for
a legacy object, that eo file has been removed from the tree
ref T7724
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8121
this takes the current generated output from eolian for legacy code in
evas and adds it to the tree, then removes legacy references from the
corresponding eo files. in the case where the entire eo file was for
a legacy object, that eo file has been removed from the tree
ref T7724
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8119
this takes the current generated output from eolian for legacy code in
evas and adds it to the tree, then removes legacy references from the
corresponding eo files. in the case where the entire eo file was for
a legacy object, that eo file has been removed from the tree
ref T7724
Reviewed-by: Marcel Hollerbach <marcel-hollerbach@t-online.de>
Differential Revision: https://phab.enlightenment.org/D8107
Summary:
new api should not be bound to legacy values like this
ref T7718
Depends on D8064
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl_api
Maniphest Tasks: T7718
Differential Revision: https://phab.enlightenment.org/D8066
Summary:
instead of passing a string which requires reading docs to know which
arbitrary string key=value sets can be passed, use an extensible struct
which contains more easily referenced values
ref T7672
Depends on D8035
Reviewers: segfaultxavi
Reviewed By: segfaultxavi
Subscribers: segfaultxavi, cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7672
Differential Revision: https://phab.enlightenment.org/D8039
Summary:
api naming in efl uses 'del' when deleting an object and 'remove' when
removing something from an object
ref T7554
Depends on D8034
Reviewers: segfaultxavi, bu5hm4n
Reviewed By: segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl_api
Maniphest Tasks: T7554
Differential Revision: https://phab.enlightenment.org/D8035
Summary:
the previous implementation/api had a number of issues:
* "file" property contained both "file" and "key" values
- also performed file loading operation
* "load_error" property which was specific to image objects
* no methods for controlling file loading/unloading
this patch attempts the following changes:
* split "file" property into "file" and "key" properties
- also remove "key" from existing "mmap" property
* remove "load_error"
* directly return error codes from operations
* add "load" and "unload" methods for directly controlling load state
* add implicit file loading if file/mmap is set during construction
* rewrite all efl.file implementations to move file loading into load() method
* rewrite all usage of efl.file api based on these changes
* add C extension functions to mimic previous behavior
ref T7577
Reviewers: segfaultxavi, bu5hm4n, cedric
Reviewed By: segfaultxavi
Subscribers: vitor.sousa, #reviewers, #committers
Tags: #efl_api
Maniphest Tasks: T7577
Differential Revision: https://phab.enlightenment.org/D8018
Summary:
this requires some internal hackery to preserve legacy compatibility
and correctly translate the single new event into two legacy events
ref T7558
Depends on D8018
Reviewers: segfaultxavi, bu5hm4n
Reviewed By: segfaultxavi
Subscribers: bu5hm4n, segfaultxavi, cedric, #reviewers, #committers
Tags: #efl_api
Maniphest Tasks: T7558
Differential Revision: https://phab.enlightenment.org/D8019
Summary:
"group" is the name used for interfaces api, so be consistent by using
that naming here too
ref T7584
Depends on D8019
Reviewers: segfaultxavi
Reviewed By: segfaultxavi
Subscribers: segfaultxavi, cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7584
Differential Revision: https://phab.enlightenment.org/D8021
this is now done via Efl.Object.event_freeze / Efl.Object.event_thaw.
ref T7555
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D8011
it was decided that this property should be internal. So now it is
internal.
ref T7555
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D8010
the API is a little bit problematic. The API takes events as an
parameter. However, only the hide and show events can be used, because
move for example is not intercepted, which leads to a situation that you
cannot attach a translation animation to the event. Further more,
handling the animations directory instead of pipeing them through events
seems to be a little bit easier as the case study of the previous events
have shown. Further more, we should never ever overwrite the
callback_call function of a eo base object, those methods are an
incredible hotpath, by the time we would have 1-2 animations on a
object, the event submission would be significetly slowned down.
ref T7555
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D8009
Summary:
this makes it more obvious which events are legacy and makes them easier to remove
in the future
Reviewers: bu5hm4n
Reviewed By: bu5hm4n
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D8002
slight tweak to make this more consistent with meaning and docs
ref T7560
Reviewed-by: Marcel Hollerbach <marcel-hollerbach@t-online.de>
Differential Revision: https://phab.enlightenment.org/D7988
the convention for event naming is to use $property,changed where possible
and to always emit related data with the event to reduce function calls
ref T7558
Reviewed-by: Marcel Hollerbach <marcel-hollerbach@t-online.de>
Differential Revision: https://phab.enlightenment.org/D7987
Summary:
this interface only contains a single event which is implemented only by the
canvas object
ref T7561
Reviewers: cedric, segfaultxavi
Reviewed By: segfaultxavi
Subscribers: #reviewers, #committers
Tags: #efl
Maniphest Tasks: T7561
Differential Revision: https://phab.enlightenment.org/D7905
this patch is for selecting lua interpreter such as luajit, lua51
and in addition, little more changes to unify lua dependency over efl
Reviewed-by: Marcel Hollerbach <marcel-hollerbach@t-online.de>
Differential Revision: https://phab.enlightenment.org/D7564