Sometimes display ref count is not zero after wl_display_dispatch_pending.
For example, wl_data_source_listener's callback is called by wl_display_dispatch_pending.
Display ref count is not zero but display is cleaned up, it makes double free corruption.
Reviewed-by: Christopher Michael <devilhorns@comcast.net>
Differential Revision: https://phab.enlightenment.org/D12109
in theory signal handlers could kick in after fork and before exec...
so block them until we're exec'd or exited so they don't change any
program state.
this won't happen as the setup should not have the # of fd's found in
2st pass and 2nd pass for a dirfd change as nothing should interfere.
comment to that effect and add a paranoid change num_closes to the
number found
post flush doesnt cleanr evas->rendering until after it calls post
flush callbacks. any post flush callback that neexts so access data
and block waiting for an async render tyo be done thus blocks forever.
this adds a 0.2 sec timeout in case so we at last march on with
hiccups instead of totally stalling AND clears evas->rendering before
calling the callbacks.
@fix
while it requires an extra wakeup from vsync thread -> e and this adds
a bit of jitter, it's mroe reliable in the face of "missed a frame"
timings and doesnt degrade as badly.
At least on Windows (didn't have the time to test on Linux yet),
running tests, even if they passed, there would be an Eina error on logs
pointing that a temporary file wasn't closed:
```
ERR:eina_file ../src/lib/eina/eina_file_common.c:1137 eina_file_shutdown() File [C:/Users/joao_/AppData/Local/Temp/aaaa_file_test_EBpVea] still open 1 times !
```
In the end, it was the `eina_file_test_unlink` that would create a temporary
file but never close it, being caught only by `eina_shutdown()`.
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Reviewed-by: Vincent Torri <vincent.torri@gmail.com>
Differential Revision: https://phab.enlightenment.org/D12062
Reviewed-by: João Paulo Taylor Ienczak Zanette <joao.tiz@expertisesolutions.com.br>
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D12108
In some systems (such as Windows), OpenSSL raises an error about "No Applink"
(see ["I've compiled a program under Windows and it crashes: why?" in OpenSSL
FAQ](https://www.openssl.org/docs/faq.html#PROG3)). Including only
openssl/applink.c didn't work, so the solution was to replace `FILE*`
interfaces with OpenSSL's BIO API which also contains file operations.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D12103
Summary: Resolve rendering e vowel (0x1031) with Myanmar(Burmese) with zero width non joiner (0x200C)
Test Plan: ninja test
Reviewers: woohyun, bowonryu
Reviewed By: bowonryu
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12102
Summary:
If shadow format changed using style_apply , the event EFL_CANVAS_TEXTBLOCK_EVENT_CHANGED will not be fired.
also added tests for it.
Reviewers: ali.alzyod, woohyun
Reviewed By: ali.alzyod
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11078
I found wrong API group name in elm_win and elm_glview and fixed them.
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D12075
if this is set to 0 the next iteration in the upper frame event would
decrement the 0 again leading to a overflow making the iteration and
callback array overflow.
Long story short: set ifx to 1 to prevent overflow, test added.
fixes T8787
Differential Revision: https://phab.enlightenment.org/D12101
If we don't have a buffer here you CAN lose the race when scrolling.
As there is a check later in the flow, we can just use a padding
of 64 instead of checking the range. This ensures that scrolling is
smooth and content is always rendered throughout an aggressive
scroll.
Summary:
Current version checking is done with GetVersion, which is now deprecated and issues the warning:
```
'GetVersion' is deprecated [-Wdeprecated-declarations]
```
The first approach of this commit was to replace GetVersion call with the newer (and more reliable) `IsWindowsVistaOrGreater()` from versionhelpers.h, but nowadays it makes more sense to actually not even make that check, since it is more than unlinkely to happen that someone tries to compile/run EFL in Windows XP.
Reviewers: vtorri, stefan_schmidt, raster
Reviewed By: vtorri, raster
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12095
Summary:
By default a sub-suface is synchronized mode.
So when a sub-surface is created, its sync value should be TRUE.
If the E works as specification, user cannot make it work as
desynchronized mode by calling subsurface.set_sync(FALSE).
[Reference]
https://github.com/wayland-project/wayland/blob/master/protocol/wayland.xml
is telling "A sub-surface is initially in the synchronized mode."
signed-off-by: Shawn Lee <shiin.lee@samsung.com>
Reviewers: Hermet, zmike, devilhorns, raster
Reviewed By: devilhorns
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12098
we have these special counts which are > 0 when there is a callback
subscribed. THey are currently evalulated in _callback_call. However,
we can also skip the entire call from inside eo_base_class as we are
having the fields there as well.
This way we are skipping the obj pointer lookup and vtable lookup.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D12079
a little overfiew to how eos event emission is working:
- In eo there are 2 types of events restart events and normal events.
Normals are *always* emitted from callback_max to 0
Restarts are emitted from the previous emissions current idx to 0. The
previous emission will stop then
- To keep track of the previous event emissions for restarts there was
an eina inlist.
- To keep track of other things in eo, there was an additional eo event
stack frame (newly inserted events etc. etc.)
This commit now uses this event stack frame for implementing the details
about the restart events. This has the advatage that every
efl_object_data contains one byte less, and the up to date keeping of
the id's in the restart infrastructure is not needed anymore, making the
whole event emission code less instructions and faster.
How this now works:
- Every emission has a event emission frame, when the emission starts,
the frame is added, next points to the next older event emission. In
this event stack frame we are storing the current idx, the description
and a few other things that are not really relevant at this point.
- when a restart event is started, this event stack is searched from the
current frame up to the next one featuring the same event description.
The event frame stack is then remembered, if the event emission is
done, the current idx (normally 0 or something higher when callback
was stopped) is then copyied back to the earlier frame.
- Based on the nature of the event frame stacks, the idx is updated
every iteration. And for the restart events, we only need to know the
next, which removes the need of permanently updating the idx in the
current stack.
- The event frame stack is not allocated on the heap, hence more things
in there does not matter at all.
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D12097
this is a patch to fix a potentional error by null dereferencing.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D12087
this is a patch to fix a potentional error by null dereferencing.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D12093
Summary: this is a patch to fix a potentional error by null dereferencing.
Reviewers: jsuya, bu5hm4n, Hermet
Reviewed By: jsuya
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12086
Summary: this is a patch to fix a potentional error by null dereferencing.
Reviewers: jsuya, bu5hm4n, cedric, Hermet
Reviewed By: jsuya
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12090
Summary:
This patch is increasing safty code by handling following case.
sc_compile > OH!! there is uninitialized loacal variable "outfname"!! >
setopt > about > longjmp > setjmp returns 3 > goto cleanup >
then uninitialized data is read from local variable "outfname".
Reviewers: raster, Hermet, jsuya, herb
Reviewed By: jsuya
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12074
Summary:
Add a null check for cases where the param passed
from the filter instruction can be a null pointer.
Test Plan: N/A
Reviewers: kimcinoo, Hermet
Subscribers: #reviewers, #committers, cedric
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12084
Summary:
setting color inside the constructor call will be override in theme apply because it happen later.
txt = efl_add(EFL_UI_TEXTBOX_CLASS, win,
efl_text_color_set(efl_added, 0, 255, 0, 255));
Now we will preserve user choice, to not change it during theme apply.
Test Plan: ninja test
Reviewers: woohyun, bu5hm4n, zmike, segfaultxavi
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11942
Summary:
**key** value comes from keyboard down callbacks are common, regardless of language/layout but **keyname** is dependent on layout(in X11, in Wayland Can not be produced).
This common fix for both.
For example if keyboard layout in arabic then:
Ctrl+A will not work (in X11)
This one enhances D11606
Reviewers: woohyun, bu5hm4n, zmike
Reviewed By: woohyun
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11695
Summary:
-Lazy initialization for html escapes lists
-Lower memory consumtion for escapes lists
-Simplify code maintenance by sorting lists on runtime, new items donot need to respect sort order(run time will handle it)
Reviewers: woohyun, bowonryu, cedric, tasn
Reviewed By: woohyun
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D9370
Summary:
efl.ui.textbox: Keyboard Enter will add paragraph separator and \n
because of D9064 Textbox multiline can work with paragraph separator
Reviewers: woohyun, segfaultxavi, bu5hm4n, zmike
Reviewed By: woohyun
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11201
this is a patch to fix a potentional error by null dereferencing.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D12089
Summary:
If memory allocation fails in ALLOC_COPY_DESC, then the allocated memory
is not free.
To fix this memory leak, memory allocation of Edje_Real_Part_State is
done prior to ALLOC_COPY_DESC.
Reviewers: Hermet
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12082
Summary:
The most of functions for embryo based on cell(int) types.
addvariable(), defsymbol(), modstk() and etc.
Because of this, if embryo script has a really big(INT_MAX / 4) stack variable,
integer overflow problem has been happened.
@fix
Test Plan:
Put a script in your EDC like the following code.
Build it and try to access the variable.
Or check the writen HEX value by embryo_cc.
script {
// It's size is 1,000,000,000.
// Remember, INT_MAX is 2,147,483,647.
new my_big_variable[1000000000];
...
}
Reviewers: cedric, woohyun, raster, eunue, SanghyeonLee
Reviewed By: eunue, SanghyeonLee
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12081
Summary:
this is memory leak fix on gengrid item move.
when animation reached 1.0, it finish all animation and returns EINA_FALSE to delete current animation.
Test Plan: N/A
Reviewers: eagleeye
Reviewed By: eagleeye
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12083
If eng_data is NULL and rsc is not NULL in _internal_resources_destroy,
then the allocated EVGL_Resource rsc is not free.
To resolve this memory leak, eng_data and rsc are checked separately.
Since `c->fmt` is allocated and dereferenced in `_layoutformat_push`, if
`c->fmt` is NULL, this causes a crash before checking for NULL.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D12076
with this commit we are not replying on event invocations anymore, but
rather on direct flag observation in the focus manager itself.
This reduces the amount of events that are emitted as a consequence to
elements beeing marked dirty segnificantly.
startup time of elementary_test goes from 0.50 to 0.46s.
Differential Revision: https://phab.enlightenment.org/D12072
return the same variable set with gfx_filter_set.
added test for it.
Reviewed-by: Ali Alzyod <ali198724@gmail.com>
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D12071
Apparently there were two loops intended for an older (and dropped
off) implementation of `gettimeofday`. This patch simplifies the code removing
these loops and significantly lowering evil startup.
Without this patch `ecore-suite`, `efl-app` and `evas-suite` gets timeout in
Windows:
```
25/29 ecore-suite TIMEOUT 30.12s
26/29 efl-app TIMEOUT 30.14s
...
29/29 evas-suite TIMEOUT 60.07s
```
Reviewed-by: Vincent Torri <vincent.torri@gmail.com>
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D12064
there are tests that init & shutdown efl_object in the same test, which
is since to switch to const _CLASS_GET dangerously wrong.
I checked for more cases but only found cases where no _CLASS_GET
macros where used.
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D12069
Summary:
When there is "font" and "font_size" in textblock style (already defined),
If "font" and "font_size" are set using edje_text_class_set(),
then "font" and "font_size" are defined duplicated in texblock style through eina_strbuf_append.
Duplicate properties use memory unnecessarily,
and also it is possible to cause confusion at debbuging.
This patch replaces duplicate properties "font", "font_size" using eina_strbuf_replace.
Test Plan:
* textblock style in edc
"font=Sans font_size=20 wrap=mixed text_class=TEXT_CLASS";
* edje_text_class_set in c
edje_text_class_set("TEXT_CLASS", "font=DejavuSans", 40);
* textblock style at runtime (BEFORE)
DEFAULT='font=Sans font_size=20 wrap=mixed font_size=40.0 font=DejavuSans'
* textblock style at runtime (AFTER)
DEFAULT='font=DejavuSans font_size=40 wrap=mixed'
Reviewers: subodh6129, woohyun, ali.alzyod
Reviewed By: ali.alzyod
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11962
this saves a lot of cpu overhead to specialize this with func ptrs in
the widget item struct instead of everyone listening on the parent
gengrid/genlist widget and eo having to walk lots of callbacks and
call them all...
major optimization
@opt
from xlib man page:
The XSetIOErrorHandler sets the fatal I/O error handler. Xlib calls
the program's supplied error handler if any sort of system call error
occurs (for example, the connection to the server was lost). This is
assumed to be a fatal condition, and the called routine should not re‐
turn. If the I/O error handler does return, the client process exits.
@fix
please note, not the return type, but the function.
When appending __attribute__((const)) to a function, the compiler is
told that its enough to call this function once in a function.
This is quite often happening when we are efl_data_scope_get and
efl_super in a function that is different from a implemented function.
The compiler now starts to remove the calls that aggressivly that we
need to ensure that these calls are not removed, which means, the static
function calls, and the eo init are now checking the return value of
these functions, to ensure that they are called.
Please note that you now have to be carefull when your app calls
eo_shutdown, if it does so, you *must* call it at the end of a function,
or never call class_get after that anymore.
Overall this improves elm test runs 0.1s which is fair i guess, the main
thing that is faster is textrendering, where is also the point where
this is the most beneficial.
Please note, this replaces 42 occurences of double _class_get() ... THAT
is a sign!
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Reviewed-by: Daniel Kolesa <daniel@octaforge.org>
Differential Revision: https://phab.enlightenment.org/D12057
Summary: on those terminal, stderr is never flushed, so errors messages are not displayed when, for example, the app crashes
Test Plan:
test program :
```#include <Eina.h>
#define ERR(...) EINA_LOG_DOM_ERR(log_dom, __VA_ARGS__)
int main()
{
int log_dom = -1;
eina_init();
log_dom = eina_log_domain_register("eet", EINA_COLOR_CYAN);
if (log_dom < 0)
{
printf("error register\n");
return 0;
}
ERR("an error.");
while (1)
{
}
return 0;
}
```
without the patch, nothing is displayed, even after a Ctrl-C to finish the program
with the patch, the error message is displayed
Reviewers: raster
Reviewed By: raster
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12058
Summary:
we don't need the image preload api call in efl_file_unload,
this make the unexpected SIG_LOAD_ERROR emit, when elm_image_memfile_set() is called.
@fix
Reviewers: Hermet, jsuya, kimcinoo
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12056
Summary:
Most use case the part name dosen't contain the recursive name
so we don't have to go through expensive eina_string_split operation.
Test Plan:
edje-suite (34/37 edje-suite OK 0.67 s)
elementary-test
app launching on enlightenment
Reviewers: raster, smohanty, Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12055
wanr of unused images so it's properly fixed too... always warn to
stdout so devs know to cleanup their theme. by not removing image sets
this fixes the mis-id'ing too.
@fix
If the widget is scrollable on the x axis, the cursor was being
displayed in some rare cases when scrolling and the code widget
did not cover the whole window region. e.g. a filepanel to the
left of the widget could potentially have the cursor erroneously
shown. This fixes as per the y axis hide.
@fix
Summary: I found wrong API reference group name in mapbuf, Evas, Eet, Eina, Eio and fixed them.
Test Plan: API reference documentation modification only
Reviewers: segfaultxavi, stefan_schmidt
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12052
Summary: Add AV1 image file loader to Evas
Test Plan: test executable with avif files found in libavif project
Reviewers: raster
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12051
This was put here due to a miscommunication. It was for resolving
an issue with one of our applications. It wasn't meant to be in
this part of testing anyway. Remove as the popup in the application
itself was broken.
Summary:
I had found broken URL address for SGI free software license B v2.0 and changed valid URL address
In addition, I found wrong group name in glview, grid, index, label, list, map, mapbuf, naviframe, notify, panel, photocam, plug, popup, radio, scroller, spinner, table, win, atspi, frame, access, textpath, elm_object, color_class and fixed them.
Test Plan: API reference documentation modification only
Reviewers: segfaultxavi, stefan_schmidt, raster
Reviewed By: raster
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12049
Summary:
Most use case the part name dosen't contain the recursive name
so we don't have to go through expensive eina_string_split operation.
Reviewers: smohanty, cedric, Hermet, raster
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12045
Ecore_hash is an ancestor of eina_hash and not used anywhere anymore.
We simply forgot to remove it from our benchmark utility.
Together with ecore_hash we are removing ecore_strings, which uses it,
and the corresponding benchmark files.
Signed-off-by: Stefan Schmidt <s.schmidt@samsung.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D12042
I had found wrong group name in edje and box, ctxpopup, entry, gengrid, genlist, gesture and fixed them.
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D12036
```
> c:\
> cd /windows
```
Are valid paths. Paths starting with '\' or '/' should be considered
absolute paths.
Reviewed-by: Vincent Torri <vincent.torri@gmail.com>
Reviewed-by: João Paulo Taylor Ienczak Zanette <joao.tiz@expertisesolutions.com.br>
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D12022
Without it an expression like !EINA_LIKELY(a && b) expands
!a && b
Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Reviewed-by: Vincent Torri <vincent.torri@gmail.com>
Differential Revision: https://phab.enlightenment.org/D12041
when this is a int and you assign 0, the whole "0" for the entire int is
moved. When this is a bit flag like this, it is a simple | operation,
which makes the whole thing somehow faster.
Reviewed-by: Christopher Michael <devilhorns@comcast.net>
Differential Revision: https://phab.enlightenment.org/D11998
If top item is deleted in "transition,finished" smart callback by user
before _on_item_push_finished is not finished, then pushed item is
hidden in _on_item_push_finished and no item is visible.
To resolve the above issue, _on_item_push_finished does not hide
pushed item if pushed item becomes top item.
`strerror_s` is the windows alternative of `strerror_r` used by EFL.
`strerror_s` never return the error code with the message as
`strerror_r` does, because of that, while comparing the first 14
characters of `Unknown error ` to the message from unknown code 4096
(`Unknown error`) they were accusing being different - in UNIX this
works because the message returned is `Unknown error 4096`.
This error was noticeable at `eina_error_test_failures` test case.
This Diff adds the error code to the message in case of an `Unknown
error`, making the windows implementation compliant with UNIX.
Reviewed-by: Vincent Torri <vincent.torri@gmail.com>
Reviewed-by: Wander Lairson Costa <wander.lairson@gmail.com>
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D12033
On windows, we try to open the "cmd.exe" file, but without the full path
the test fails unless it runs from the system directory.
We now use the full path to test the eina_file_open function.
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Reviewed-by: Vincent Torri <vincent.torri@gmail.com>
Reviewed-by: João Paulo Taylor Ienczak Zanette <joao.tiz@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D12021
I had found a typo in elm_config_scroll_animation_disabled_set() and fixed it
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D12029
This commit does two things:
- Tell the compiler that it is unlikely that we need to grow, and that
it is unlikely that data is NULL. Sometimes the if check for data
would get dropped out by the compiler when it can be ensured that it is
!= NULL. However, if we for example efl_add something and eina_push
the result, the condition would not be removed, as there is no assertion
efl_add would be != NULL.
- Do not hide the array assignment in a branch, but make it the default
branch, this way instruction cache caches the correct instruction, as
branch prediction will now hopefully, due to the hinting, take the
correct branch.
While benchmarking this here (simply in elementary_perf), this reduced
pipeline faults in eina_array_push quite a bit. (Btw. it is hard to track
*which* exact calls to eina_array_push do cause that, as mostly this API
gets inlined, so it was easier optimizing that, instead of the method
arround)
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11997
Summary:
This reverts commit 4f15bde706.
It is the correct way to draw with arc_to.
And breaking compatibility for current_get.
Test Plan: N/A
Reviewers: Hermet, kimcinoo, herb
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12030
clang-cl doesn't support the syntax of dynamic stack allocated arrays.
ref: windows-native-port
Co-authored-by: Lucas <Coquinho@users.noreply.github.com>
Reviewed-by: Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11970
errno only holds a valid value if the function returns an error.
ref: windows-native-port
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11971
Summary:
The rounded rect is a very slightly different shape compared
to chrome's svg output. To solve this, modify to use a quadratic bezier
instead of arc when drawing a round.
Test Plan:
{F3904500}
(Drawing rect with arc or quadratic)
Compare Image
{F3904501}
{F3904502}
Reviewers: Hermet, kimcinoo, herb
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12020
Summary: remove created style after being set in textblock
Reviewers: woohyun, smohanty
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8742
Differential Revision: https://phab.enlightenment.org/D11944
Summary:
when we set font source, for example with efl_text_font_source_set, the font source will not be updated in the textblock.
this is have same results that has been done in D9548
Test Plan:
#define EFL_EO_API_SUPPORT 1
#define EFL_BETA_API_SUPPORT 1
#include <Efl_Ui.h>
static void
_gui_quit_cb(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED)
{
efl_exit(0);
}
static Eo *
_create_label(Eo *win, Eo *bx)
{
Eo *en;
en = efl_add(EFL_UI_TEXTBOX_CLASS, win);
printf("Added Efl.Ui.Text object\n");
efl_text_interactive_editable_set(en, EINA_FALSE);
efl_pack(bx, en);
return en;
}
static void
_gui_setup()
{
char buf[512], f_buf[512];
Eo *win, *bx;
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);
bx = 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)));
snprintf(buf, sizeof(buf), "./TestFontSource.eet");
Eo *en = _create_label(win, bx);
efl_text_set(en, "Hello, This Text Use The Font : Does_Not_Exists_Font_1 : Source + Font Name");
efl_text_font_source_set(en, buf);
efl_text_font_family_set(en, "Does_Not_Exists_Font_1");
efl_text_font_size_set(en, 35);
en = _create_label(win, bx);
efl_text_set(en, "Hello, This Text Use The Font : Does_Not_Exists_Font_1 : Font Name");
efl_text_font_family_set(en, "Does_Not_Exists_Font_1");
efl_text_font_size_set(en, 35);
en = _create_label(win, bx);
efl_text_set(en, "Hello, This Text Use The Font : Does_Not_Exists_Font_2 : Source + Font Name");
efl_text_font_source_set(en, buf);
efl_text_font_family_set(en, "Does_Not_Exists_Font_2");
efl_text_font_size_set(en, 35);
en = _create_label(win, bx);
efl_text_set(en, "Hello, This Text Use The Font : Does_Not_Exists_Font_2 : Font Name");
efl_text_font_family_set(en, "Does_Not_Exists_Font_2");
efl_text_font_size_set(en, 35);
}
EAPI_MAIN void
efl_main(void *data EINA_UNUSED, const Efl_Event *ev EINA_UNUSED)
{
_gui_setup();
}
EFL_MAIN()
Reviewers: ali.alzyod, woohyun, bowonryu, cedric
Reviewed By: ali.alzyod
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11757
Summary: when eina_strbuf_replace is used by read_only buffer, this will cause segfault (access invalid memory)
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8757
Differential Revision: https://phab.enlightenment.org/D11989
Summary:
if we have emoji only or emoji at line start we can move cursor using mouse click to be inside the emoji.
{F3868502}
this should fix T8664
Test Plan:
#include <Elementary.h>
EAPI_MAIN int
elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
{
Evas_Object *win;
elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
win = elm_win_util_standard_add("emoji-test", "emoji-test");
elm_win_autodel_set(win, EINA_TRUE);
/* and now just resize the window to a size you want. normally widgets
* will determine the initial size though */
evas_object_resize(win, 320, 320);
Evas_Object *box;
box = elm_box_add(win);
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_win_resize_object_add(win, box);
Evas_Object *entry;
entry = elm_entry_add(box);
elm_entry_entry_set(entry, "☪️");
evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_box_pack_end(box, entry);
evas_object_show(entry);
evas_object_show(box);
/* and show the window */
evas_object_show(win);
elm_run(); /* and run the program now, starting to handle all
* events, etc. */
/* exit code */
return 0;
}
ELM_MAIN()
Reviewers: ali.alzyod, woohyun, bowonryu, zmike, bu5hm4n
Reviewed By: ali.alzyod
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8664
Differential Revision: https://phab.enlightenment.org/D11732
Summary:
Found by running terminology's tests with UBSAN:
include/eina-1/eina/eina_inline_unicode.x:
runtime error: implicit conversion from type 'char' of value
-62 (8-bit, signed) to type 'unsigned char' changed the value to 194
(8-bit, unsigned)
Reviewers: #reviewers, vtorri
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11972
Summary:
If size of elm_sclloer content is too big, then the proxy of
elm_scroller to show loop effect does not work. Because
evas_gl_common_image_surface_new does not allow
bigger size surface than max_texture_size.
Reviewers: Hermet, jsuya, herb
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11996
On Windows and solaris the string associated to ENOMEM is "Not enough space"
Reviewed-by: João Paulo Taylor Ienczak Zanette <joao.tiz@expertisesolutions.com.br>
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11983
some distros 9notably in this case nixos) want to do reproducible
builds. to them this means going around setting mtime for all files to
0. this means efreetd not only thinks mtime is invalid/stupid (0 is
generally just that as midnight on jan 1 1970 is not exactly a
sensible dare for a modified timestamp of a file as no filesystem with
any sanity will have not been modified since that time), but it keeps
mtime at 0 even when things update. this totally breaks efreetd that
expects to find mtime increases over time as things change. it's
necessary because it has to perform a "are mu caches up to date" scan
of all file data it caches and it needs to know if it should rebuild
something based on this.
so this does a few things:
1. it makes mtime have to be an exact match to the cache, not cache
mtime >= file mtime. so any change forward or back is an inavlidation.
2. it now also uses ctime, mode, size, uid, gid, block count and if a
symlink, the sha1 of the symlink path in addition and any change to
these == invalid.
this adds a lot of code and changes how dirs get scanned a bit but it
means it can pick up changes on these 0 mtime distros.
interestingly the policy of mtime being 0 is to have a reprodcible fs
... but ctime still changes and is > 0, as does inode info, so it's
not actually possible to have it totally work... but they try still,
so this is a fix for that problem.
whilst i was doing thisi also noticed efreetd re-red dirs many times
due to icon theme inhritance. i also fixed that to do a LOT less
syscalls by only scanning a dir once as i was rejigging the scanning
code at the time anyway. this should optimize thr scan costs at
efreetd startup too.
@fix
@opt
Summary: there are wrong indentation in the elm_image_file_set, so removed the tabs
Reviewers: Jaehyun_Cho
Reviewed By: Jaehyun_Cho
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11988
Make sure we do not divide by i if it is zero here.
CID: 1400768
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11956
Summary:
when trying to set file using url path twice, the second api call's return value is EINA_FALSE
since image obj has already has same file path. After applying Efl.File interface, the behavior is changed compared to before.
both of the return values should be EINA_TRUE.
@fix
ex)
Eina_Bool ret1, ret2;
ret1 = elm_image_file_set(image, "http://sameurl/image.jpg", NULL);
ret2 = elm_image_file_set(image, "http://sameurl/image.jpg", NULL);
ret1 and ret2 should be EINA_TURE
Test Plan:
1. call elm_image_file_set api with same url path
2. see the return value
Reviewers: Hermet, kimcinoo, jsuya
Reviewed By: Hermet
Subscribers: bu5hm4n, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11979
Make sure we fail the test if the call does not succeed.
CID: 1412364
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11963
in the previous commit we started to only receive the parent_obj from
the evas object when its not a widget. However, we still need to ensure
that the parent is equal to the current one in order to remove it when a
widget.
While this is one more call, the call to get the parent is not as
heavy as the data_get call, as this directly addresses a struct, and
does not read from a hash table.
This also fixes a test case failure.
in genlist testcase the number of calls reduced by 30000.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Reviewed-by: Hermet Park <<hermetpark@gmail.com>>
Reviewed-by: Youngbok Shin <youngb.shin@samsung.com>
Differential Revision: https://phab.enlightenment.org/D11984
As we always make sure the parent is a widget class we don't have to check anymore.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Reviewed-by: Hermet Park <<hermetpark@gmail.com>>
Differential Revision: https://phab.enlightenment.org/D11985
Make sure we check if pool->first_fill is NULL before passing it onwards
where it gets dereferenced. In case this happens return NULL instead of
garbage.
CID: 1293520
Reviewed-by: Christopher Michael <devilhorns@comcast.net>
Differential Revision: https://phab.enlightenment.org/D11980
Summary:
The hint_fill logic in evas_object_table was designed to be used for
Efl.Ui.Table not for elm_table.
Since Efl.Ui.Table does not use evas_object_table logic, hint_fill logic
in evas_object_table is removed.
Reviewers: YOhoho
Reviewed By: YOhoho
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11982
Summary:
When determining the size of the ector buffer,
it was used the smaller of the object's geometry or path_bounds.
However, because of that, path worked as absolute coordinates.
path_bounds should be relative to geometry of object.
Test Plan:
{F3900444}
original
{F3900445}
before
+ evas_object_geometry_set(vg, 100, 100, 200, 200);
{F3900447}
after
+ evas_object_geometry_set(vg, 100, 100, 200, 200);
{F3900448}
Reviewers: Hermet, kimcinoo, herb, smohanty
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11974
Make sure we check the result of evas_engine_info_set and only continue
if it succeeds.
CID: 1401077
Reviewed-by: Christopher Michael <devilhorns@comcast.net>
Differential Revision: https://phab.enlightenment.org/D11978
In case we fail make sure we error out to allow better debugging.
Also fix some surrounding indent.
CID: 1402693, 1402670
Reviewed-by: Christopher Michael <devilhorns@comcast.net>
Differential Revision: https://phab.enlightenment.org/D11976
Summary:
when elm_image_preload_disabled_set(img, EINA_TRUE) is called before file set.
The image preload is not canceled, because the function will be returned since the image is not loaded.
so preload disabled api is fixed to work even if it is called before file set.
@fix
Reviewers: Hermet, kimcinoo, jsuya
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11969
Make sure we fail the test, unless this settign succeed.
CID: 1403891
Reviewed-by: Christopher Michael <devilhorns@comcast.net>
Differential Revision: https://phab.enlightenment.org/D11968
Summary:
Since "fixed" does not affect the group size by the part's min size, the
documentation is updated to be clearer.
Reviewers: woohyun, raster
Reviewed By: woohyun
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11934
Summary:
T7076
legacy calendar inc/dec button has auto repeat feature.
for that if user click the button very quickly, we delete internal timer than it will pass to function.
to prevent this, need to check NULL pointer.
Reviewers: devilhorns, Hermet
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11966
The former is a POSIX name, the latter is non-standard. I don't
know why the latter was used, considering glibc literally has
just #define LC_ALL __LC_ALL, but change it and unbreak build
on musl and other systems.
It has been checked in all other places, but has been forgotten in these
two.
CID: 1401081
Reviewed-by: Christopher Michael <devilhorns@comcast.net>
Differential Revision: https://phab.enlightenment.org/D11960
Somethign fishy is going on if we can not delete the files and folders
we created.
CID: 1400986
Reviewed-by: Christopher Michael <devilhorns@comcast.net>
Differential Revision: https://phab.enlightenment.org/D11955
Report if we fail to reset the Crtc during output free. Only print an
error and keep going with the rest of the output free.
CID: 1402668
Reviewed-by: Christopher Michael <devilhorns@comcast.net>
Differential Revision: https://phab.enlightenment.org/D11965
Coverity reports eglChooseConfig is called without checking return
value here. This patch fixes the issue by checking the return value
and by also making _init_egl return a bool so that we can fail the
test if eglChooseConfig results in failure.
Fixes Coverity CID1412365
These could fail as well. Check in testsuite.
CID: 1400961
Reviewed-by: Christopher Michael <devilhorns@comcast.net>
Differential Revision: https://phab.enlightenment.org/D11959
eina_file_mkstemp would return -1 in an error case. Make sure we check
the return when clsoing here.
CID: 1400790
Reviewed-by: Christopher Michael <devilhorns@comcast.net>
Differential Revision: https://phab.enlightenment.org/D11957
Summary:
For the text style customizing, added the new API to apply user text style.
The following example is the user style sample.
DEFAULT='font_size=16 color=#F00 underline=on underline_color=#00ffff'";
{F3899541}
Test Plan:
1. run elementary_text (textpath)
2. toggle user style check box
3. see the result
Reviewers: Hermet, kimcinoo, jsuya, bu5hm4n
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11953
they simply missed parameters here
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11954
XDG_DATA_DIRS was only set up to a default including where efl was
installed prefix-wise as the compiled-=in prefix, not runtime
determined prefix. it shouldn't actually affect most people except
those making use of this.
@fix
these structs should not be used, but rather the builtin types that
exist for it.
Reviewed-by: Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D11742
In C# we already have Efl.Object.parent as an implicit constructor. Ignore it if it is marked as a constructor.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11951
this is needed in order to sanely bind parent calls to some objejcts,
but not all.
However, from the canvas structure up we *need* a parent, so we can
fetch the evas from it. So declare it there a none optional
Reviewed-by: Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D11734
This patch fixs a wrong group name in Ecore_Eo API reference
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11952
Summary:
value_provider can change the value of the property received from VG file.
When a file is cached, the changed properties are applied to all other objects using the same file.
So. If value provider is applied, evas_vg_cache is not caching vg file.
Test Plan: N/A
Reviewers: Hermet, herb, kimcinoo
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11924
Summary:
As delete_me flag was not updated in the delete callback it dosen't
call ecore_ipc_client_del() on the client hence the leak.
Reviewers: Hermet, raster, bu5hm4n, CHAN
Reviewed By: Hermet, CHAN
Subscribers: CHAN, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11927
Having the runtime of a test is interesting for debugging and
optimization. Printing them only on success for now.
Differential Revision: https://phab.enlightenment.org/D11935
Summary:
dbus message requires the void* value for the message data,
the returned value of dbus_message_iter_get_basic() can be mismatched by to the architure,
This could bring the returned va_argues memory corrupted among the series of values.
We can use the defined type for exceptions.
Reviewers: herb, kimcinoo, jsuya, raster
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11940
Elua is now disabled by default. There are some other changes:
1) Elua scripts are only installed if Elua is enabled
2) Lua bindings are only installed if Elua is enabled
3) Elua with interpreter is clearly experimental and will message
We removed them in the last release. Make sure we cleanup all the
references and dead code still belonging to it.
Extra note on the Emotion_Module enum removal. While it was exposed in
the public Emotion.h header it is never used anywhere in the code and
has no purpose, thus it can safely be removed.
Reviewed-by: Carsten Haitzler (Rasterman) <raster@rasterman.com>
Differential Revision: https://phab.enlightenment.org/D11941
they are privat, they should never be installed.
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11933
I know this is internal. However it is public used in public .eo files.
Even if it is internal, and beta, we still need to expose the API in
order to have it correctly in the .so.
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11932
Summary:
Through some APIs (elm_entry_editable_set, elm_entry_single_line_set, etc.)
located after edje_object_part_text_set(legacy)
If efl_ui_widget_theme_apply is called,
In edje_object_part_text_raw_generic_set, the legacy flag becomes FALSE.
And in this case, the logic works in the unintended direction
because the set_markup flag is FALSE.
Test Plan:
/*
gcc -o entry_example entry.c `pkg-config --cflags --libs elementary`
*/
#include <Elementary.h>
EAPI_MAIN int
elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
{
Evas_Object *win, *en;
elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
win = elm_win_util_standard_add("entry-example", "test");
elm_win_autodel_set(win, EINA_TRUE);
en = elm_entry_add(win);
evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_object_part_text_set(en, "elm.guide", "<font_size=32 color=#FFF>TEST</font_size>");
elm_entry_editable_set(en, EINA_FALSE);
evas_object_show(en);
elm_object_content_set(win, en);
evas_object_resize(win, 300, 200);
evas_object_show(win);
elm_run();
return 0;
}
ELM_MAIN()
Reviewers: woohyun, ali.alzyod
Subscribers: zmike, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11868
regions sometimes produce box sets like:
// +---+
// | |
// +---+ +-------+
// | | | |
// +---+ +-------+---------+
// | |
// | |
// +-----------------+
so the upper-left 2 boxes can be merged into 1 and they have the same
x coords and are flush-aligned one above the other. that is what
this does - find these and merge them to have fewer rects
@fix
helps debug update regions to see if there is too much overdraw or too
many regions. i smelled too manhy and this showed it. i was right. fix
for too many regions coming next
we have used a fair bit of cpu to avoid gpu overhead and this tunes
the balance back a bit to throwing more at the gpu and less at the cpu
by reducing the number of pipes and max vertex counts per pipe by
default and only resetting pipe state vars if adding the first pipe
member.
@opt
Summary: these are static libs, they shall not be in the static list.
Reviewers: stefan_schmidt, jsuya
Reviewed By: stefan_schmidt, jsuya
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11923
Summary:
Make the size to be backed up and the size to be compared equal.
and minor fix
Test Plan: N/A
Reviewers: Hermet, herb, kimcinoo
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11925
Summary:
The point of the path is of type float.
The boundary must contain the coordinates of the point,
so min_x,y value must be round down and the max value round up.
Test Plan: N/A
Reviewers: Hermet, herb, kimcinoo
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11917
We now longer need this workaround. Exactness is now pre-loaded and we
can run it with any executable without this trick. Remove to simplify
our build.
This reverts commit 78ad088dd7.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11919
Summary:
During shutdown we used to call engine_image_free() which was causing some deadlock.
as we have evas_cache which takes care of freeing all the images we just have to
delete the generic cache without freeing the image during shutdown.
Reviewers: Hermet
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11915
Summary:
This option will enable writing tools which will automate running the
elementary test cases.
Reviewers: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11910
Summary:
The ector surface size was determined by the size of the vg object.
vg object is usually sized by the size of the container.
So, the ector surface is set unnecessarily large.
This patch sets the ector surface size to the path boundary.
And the path boundary refers to the stroke width and miterlimit.
Test Plan:
vector sample
{F3887634}
{F3887632}
[grey area is ector surface size]
{F3887633}
Reviewers: Hermet, kimcinoo, smohanty, herb
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11865
Summary:
As argument can be passed by register (depending on the compiler optimization)
when we take the adress of the nbytes and pass it to send() function which reades
4 bytes from it ASAN flags it as a stack overflow . So just assign the value to a
local variable to avoid the warning.
Reviewers: Hermet
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11914
When the user receives the callback of gesture callback, erases the target object, the gesture layer is deleted.
The memory is may broken and performing unnecessary operations during the logic.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11838
Summary:
resize_job can be called after obj is deleted.
So add free to destructor.
Test Plan: N/A
Reviewers: Hermet, herb, kimcinoo, zmike
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11911
Summary:
changed_flag was declared in the private header for internal use(static_lib).
However, as the meson script has been changed, it can no longer be used.
changed_flag can display the property to which the changed
among the properties of value_provider.
there is no problem in providing it as an eo function, so move the function to eo.
Test Plan: N/A
Reviewers: Hermet, herb, kimcinoo
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11894
Summary:
this should be freeed. Both can be freed in group_del after the items
are deleted.
fix T8732
Reviewers: Hermet
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Maniphest Tasks: T8732
Differential Revision: https://phab.enlightenment.org/D11882
This is a quick hacky fix, but it enables elua to work well with
lua 5.2+. Notably Eolian bindings work now.
Later this will be rewritten to use __gc directly on object
instances, with a fallback for newproxy for 5.1/luajit.
The previous behavior was also invalid, since it was casting
a GC-managed pointer, which doesn't provide any guarantee that
it will stay valid. Fix that too, by using manually allocated
memory and assigning a finalizer at the end.
This doesn't fully work yet as e.g. Eolian bindings require
the bitop module only present in luajit for now.
In order to build, you will need to install
https://github.com/q66/cffi-lua
in order to provide the FFI. It needs to be built for the Lua
version you are building EFL with.
this way we can use that list easily in the modules, and keep the list
for later module building.
Differential Revision: https://phab.enlightenment.org/D11897
Summary:
preloading is elm_image feature. it is better to disable preloading for elm_bg
becuase there is no way to disable preloading of internal image in elm_bg.
If API user want to use preloaded image, elm_image is recommended instead of
elm_bg.
Test Plan: elm_bg_file_set with big image.
Reviewers: Hermet
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11898
Summary:
A mask of proxy source can be same with a mask of proxy source's child.
If source_clip is false, then the child object should not use the mask.
Test Plan: {F3888363}
Reviewers: Hermet, herb, jsuya
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11870
Allocated part_array is only freed when _circular_dependency_find() is successful. It is not freed in other cases.
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Reviewed-by: woochan lee <wc0917.lee@samsung.com>
Differential Revision: https://phab.enlightenment.org/D11886
this is wrong, each library should declare it on its own
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11883
this is building parts of efl into a single .so and links all modules
and binaries to it.
The libraries themselfs are build as .a's which are linked together as
.so's. Which is required as every subproject has its little custom
c_flags, which are somtimes conflicting.
After the final .so is then built, all the split up libraries are
replaced with the efl-one. After that the modules and binaries are built
correctly with the correct link on the efl-one parts.
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11808
libraries are split into deps, external deps, and pub deps.
Evas engines are refactored to use the predefined engine deps.
this is preparation work for efl-one.
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11806
his reverts commit 38be95b0b6.
The reverting patch blocks efl_canvas_vg_shape triggers efl_canvas_vg_node destructor.
That occurs massive leaks among the all nodes in the vector tree.
To fix the origin issue, we must reset path explicitly in the derived class.
@fix
Summary:
This limit parts are only used in naviframe edc thats why it is
only showing up in naviframe test app.
Reviewers: Jaehyun_Cho, Hermet
Reviewed By: Jaehyun_Cho
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11887
Patch 09ab8c9967 added code to printf wl client animation
ticks, however the line that actually does the printing is commented
out (which is fine) but the variables used in that printf are not
needed if we are not printing things out
Summary:
If window_hide should unmap subsurface, then window_show should re-map
the unmapeed subsurface. I have no idea why window_hide unmap all subsurfs.
Reviewers: zmike, devilhorns
Reviewed By: zmike, devilhorns
Subscribers: devilhorns, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11869
Summary:
The same principle we use for the build stage we use here for running
our tests. Leak detection has just to many problems for us on the
shutdown path that it makes no sense to use here.
I am also bumping the evas timeout form the default 30s to 60 as I have
been running into timeouts with asan enabled on my machine. This would
not change anything on a default build.
Depends on D11137
Reviewers: smohanty, bu5hm4n, raster, zmike
Reviewed By: zmike
Subscribers: zmike, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11862
we should not prefix this with the full path.
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Reviewed-by: Vincent Torri <vincent.torri@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11881
i noticed some junk in framespace... this happesn when solid objects
are outside the normal window content area and their solid areas are
not clipped to this inner frame area thus those areas are not "zeroed
out" next render.
@fix
efreet_mime and efreet_trash are now included in libefreet.so. There are
compatible libs for libefreet_mime.so libefreet_trash.so, which simple
drag in libefreet.so. .pc files also are in place for compatibility.
efreet_init & shutdown now initializes and shutdowns trash and mime.
The old init functions now simply call efreet_init, efreet_init will
then init the trash or mime libs.
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11807
These meson files did not have the c_args handling before. Make sure we
use package_c_args here as well.
Reviewed-by: Vincent Torri <vincent.torri@gmail.com>
Reviewed-by: João Paulo Taylor Ienczak Zanette <joao.tiz@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D11860
Adding it to all missing places so we can control it from the central
meson.build file.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Reviewed-by: João Paulo Taylor Ienczak Zanette <joao.tiz@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D11855
Add it to subprojects which are not using it and remove and old
ELEMENTARY_BUILD define we no longer use. This allows us to have a
central place in the main meson.build file to set this variable.
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Reviewed-by: Vincent Torri <vincent.torri@gmail.com>
Reviewed-by: João Paulo Taylor Ienczak Zanette <joao.tiz@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D11854
Original patch by Vincent Torri.
Reviewed-by: Vincent Torri <vincent.torri@gmail.com>
Reviewed-by: João Paulo Taylor Ienczak Zanette <joao.tiz@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D11853
We need to ensure this order to make sure EAPI is working correctly on
windows.
Original patch by Vincent Torri.
Differential Revision: https://phab.enlightenment.org/D11856
Signed-off-by: Stefan Schmidt <s.schmidt@samsung.com>
Use two spaces indent as in other files.
Differential Revision: https://phab.enlightenment.org/D11852
Signed-off-by: Stefan Schmidt <s.schmidt@samsung.com>
No need to have this elementary specific, we can do this globally.
Original patch by Vincent Torri.
Differential Revision: https://phab.enlightenment.org/D11850
Signed-off-by: Stefan Schmidt <s.schmidt@samsung.com>
Keep the backword compatibility for wayland ECORE_WL2_EVENT_DATA_SOURCE_END event handler.
If we don't use this handler, the dnd is not ended when the drop item is dropped.
@fix
Reviewed-by: Christopher Michael <devilhorns@comcast.net>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D11846
we have to support none widgets, but we should not register widgets
twice because of that.
Differential Revision: https://phab.enlightenment.org/D11877
Summary:
The alpha_set cancels preload, and do not try to load it again.
So the image is not showing, if the alpha_set is called while preloading.
[Sample]
Evas_Object *image = elm_image_add(box);
elm_box_pack_end(box, image);
evas_object_show(image);
elm_image_file_set(image, "img.png", NULL); // start preloading
Evas_Object *eimg = elm_image_object_get(image);
evas_object_image_alpha_set(eimg, EINA_TRUE); // cancel preloading
Reviewers: Hermet, jsuya, herb
Reviewed By: Hermet
Subscribers: zmike, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11864
after i noticed some jitters, it seesms one thread to listen for vsync
events then to wake up the mainloop can suffer from irregular
scheduling jitters. it seems to be highly depenedent on both gpu
driver and cpu but it seemed the vsync thread itself was more reliably
woken than the mainlooop it then signalled, so merging this back is
just batter. it's configurable via an environment variable so we can
try either right now and see, but default is now to be in main loop.
if try_no_queue is used - its a thread that clearly wantt to be out of
the queue to run on its own so probably wants to wake up accurately
and thus not be a backgroun rpriority task but and urgent one. ensure
we set up priority accordingly as we didn't before. this should fix
scheduling when under load for vsync
@fix
Summary:
evas_vg_container should return NULL when the parent is NULL
because the function does not allot NULL parent
@fix
Reviewers: kimcinoo, jsuya, Hermet
Reviewed By: kimcinoo
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11867
This is necessary because the LuaJIT FFI implements the null
pointer to nil equality behavior, which is not possible to
do in standard Lua (as equality metamethod needs identical types
to trigger).
So replace it with ffi.nullptr as cffi-lua implements; in luajit
ffi.nullptr will just become nil and it'll work like before.
Summary:
efl_wref_del makes pointer to NULL.
So we should copy pointer before efl_wref_del is called.
Reviewers: SanghyeonLee, cedric
Reviewed By: SanghyeonLee
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11866
As we run some intermediate binary like edje_cc during efl build , and due to
those binary has some memory leaks the address sanitizer build of efl fails.
This Patch runs those binary with 'ASAN_OPTIONS=detect_leak=false' to disable the
memory leak check for those binaries.
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11137
On Windows 64bits, long is a 4 bytes type. Declare count as being a intptr_t instead of long
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11836
On Windows 64bits, long is a 4 bytes type. Declare i as being a uintptr_t instead of unsigned long
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Reviewed-by: Felipe Magno de Almeida <felipe@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D11837
Summary:
evas_render_updates_internal > eina_array_remove is calling pending_change
pending_change > render_post could call evas_object_change >
evas_render_object_recalc.
The eina_array is removing its item from pending_objects, while
the evas_object_change that is calling evas_render_object_recalc is adding
item to pending_objects.
As a result, the pending_objects.count is incorrect, and it breaks render.
Reviewers: Hermet, jsuya, herb
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11835
Summary:
current cubic bezier function isn't accurate at sometime.
to make it more accurate, this patch rework bezier curve
by using a cardano's algorithm.
(refer to https://pomax.github.io/bezierinfo/)
Reviewers: Hermet, bu5hm4n
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11819
Summary: .9.png is not 9 patch file, but a png file which name is .9
Test Plan: evas_object_image_file_set(image, "./.9.png", NULL);
Reviewers: Hermet, jsuya, herb
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11848
Summary: EAPI must be defined to dllexport when building DLL, and to dllimport when using these DLL. To achieve this, define EFL_BUILD for each library and module, and set DLL_EXPORT unconditionally. Static library are and will be not supported
Test Plan: compilation
Reviewers: zmike, raster, jptiz
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11834
so i've moved all systemd and elogind support to be runtime only with
dlopen (eina_module) of libsystemd.so.0 (or libelogind.so.0 for elput)
and finding of symbols manually at runtime (if the right code paths or
env vars are set), thus remvoing the need to decide at compile time if
efl needs systemd support or not as it no longer needs systemd
headers/libs at compile time and just at runtime. this simplifies
building a bit and makes efl more adaptive to the final target system
at runtime.
Summary:
Some applications have used "clicked" smart callback from elm_image which
does not have an image in it.
To keep backward compatibility, hit_rect needs to be resized properly to
call smart callback function.
@fix
Reviewers: Hermet, jsuya, kimcinoo
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11840
Summary:
evas_vg_shaep_add should returned NULL when the parent is NULL
because the function does not allow the NULL parent.
@fix
Reviewers: jsuya, Hermet
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11839
Summary:
this was duplicated for a number of widgets in slightly different ways,
so it can be unified as a private layout function to reduce maintenance
costs
Reviewers: Hermet, YOhoho, Jaehyun_Cho, jsuya
Reviewed By: jsuya
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11818
Summary:
Users can use multiple jsons per description in one part in edc.
At that time, multiple files are loaded,
if a file is already loaded, it must be unloaded.
Test Plan:
edje_cc -beta -id ./ json_edc.edc
make
./test
Push Change button -> shutdown application
{F3882716}
Reviewers: Hermet, herb, kimcinoo
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11820
Summary:
When call elm_check_add, theme_apply of layout is called and
_efl_ui_check_legacy_efl_ui_widget_theme_apply is called.
Then it calls the signal emit for the icon.
this call is unnecessary.
Test Plan: N/A
Reviewers: akanad, Jaehyun_Cho, Hermet, YOhoho, zmike
Reviewed By: zmike
Subscribers: zmike, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11812
Summary:
When call elm_progressbar_add, theme_apply of layout is called and
_efl_ui_progressbar_legacy_efl_ui_widget_theme_apply is called.
Then it calls the signal emit for the icon.
this call is unnecessary.
Test Plan: N/A
Reviewers: Hermet, bowonryu, Jaehyun_Cho, YOhoho, zmike
Reviewed By: zmike
Subscribers: zmike, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11811