with som refcount fun some o9bjects may not get removed until later
thus causing infinite loops trying to remove comtained objects so
remove anyway in this case to avoid looping forever
@fix
someone decided passing a null obj to elm_cnp_selection_set from an app
is a good idea. it's not... but let's not crash 9nside efl if someone
does and instead survive and complain
@fix
so smart data get cleanly returns null ... set it to nukll after del
func called as now the smart data shiuld be gone and not usable
anymore. this means we dont return junk smart data if called after this.
@fix
As we have an ecore_drm2 function to get preferred depth & bpp, we
should be using that so remove hardcoded values and set the
edata->depth & bpp using the ecore_drm2 function
don't delete any item with a data of 1 which could be multiple
items.... delete by the serial instead.
also - don't leak the event... this leaks the event as the free func
never freed the event...
@fix
it might be possible the pointer is outside the screen areas and
perhaps gets caught there, so move the pointer in first before setting
up new barriers
@fix
Summary:
Values different from numbers and percentages should be ignored
and the default values should be applied (zeros).
And set the min and max of the offset value to be 0, 1.
Also, this patch make that the offset is not input in the reverse order.
Test Plan:
Test SVG Image
```
<svg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" >
<linearGradient id="grad" x1="0" y1="0" x2="1" y2="1">
<stop offset="10%" stop-color="white"/>
<stop offset="0.2" stop-color="red"/>
<stop offset="30% k" stop-color="blue"/>
<stop offset="40%" stop-color="yellow"/>
<stop offset="0.5m" stop-color="red"/>
<stop offset="0.6 " stop-color="green"/>
<stop offset="70%m" stop-color="black"/>
<stop offset="80%" stop-color="white"/>
</linearGradient>
<rect x="20" y="20" width="160" height="160" fill="url(#grad)"/>
</svg>
```
Result
{F4792365}
Reviewers: Hermet, raster, kimcinoo
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12318
Summary:
"none" is the default value of dasharray and can actually be used.
Currently using "none" causes a segfault. This patch prevents it.
Test Plan:
SVG image
```
<svg viewBox="0 0 30 10" xmlns="http://www.w3.org/2000/svg">
<line x1="0" y1="3" x2="30" y2="3" stroke="black" stroke-dasharray="none" />
</svg>
```
Reviewers: Hermet, raster, kimcinoo
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12317
Summary:
This condition(optimization) is not a step suggested by arc implementation.
https://www.w3.org/TR/SVG11/implnote.html#ArcCorrectionOutOfRangeRadii (Step2)
This code is useful if the arc is too small to represent.
However, scaling often occurs in vectors, which can create unnecessary problems.
Test Plan:
SVG Image
```
<svg viewBox="0 0 50 50" height="50" width="50">
<path d="M32.41,20.49a.41.41,0,1,1-.41-.42A.41.41,0,0,1,32.41,20.49Z" transform="translate(-70, -50) scale(3.3)" fill="#020202"/>
</svg>
```
image file
{F4792225}
result
{F4792221}
Reviewers: Hermet, raster, kimcinoo
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12316
Summary:
After finding no attributes but spaces, attrsLength could be negative.
This will cause a segfault in parser functions.
So, change the position of attrs_length to prevent this.
Test Plan:
Example SVG
```
<?xml version="1.0" encoding="UTF-8"?>
<svg><g ></g></svg>
```
Reviewers: Hermet, raster, kimcinoo
Reviewed By: Hermet
Subscribers: #reviewers, cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12314
if you write and read0-back before writign out (non-sensical to do as
you would write out in full and close and then open file and read
separately) the dictionary will be empty. fill it in these paths.
fixes needed resulting from optimizations in 1.26.0
@fix
Summary:
Hello,
For my perl binding it is important that one can pass a data pointer to all callbacks, especially to "Format_Cbs" as in elm_slider_units_format_function_set(), elm_slider_indicator_format_function_set() of elm_progressbar_unit_format_function_set(). Another "problematic" function would be elm_calendar_format_function_set().
Enclosed you find a approach to solve this problem.
It would be wonderful, if the Efl-libraries could make data pointers also in format cbs possible...
Thanks in advance,
Max
Reviewers: bowonryu, eagleeye, zmike, cedric, raster
Reviewed By: raster
Subscribers: raster, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12298
this has all sorts of nasty side effects by rewinding time far too
much and thus causing timers to expire early and so on - these
timestamps are MEANT to be like a frame vsync time... they thus should
be like normally 0.02sec or so in the past or less... (0.008s on
average) so at 0.1 sec complain and ignore the old timestamp. weston
does this and sends us timestmaps 0.33sec in the past ... and its not
nice.
@fix
i see no good reason to not allow these loaders to run in threads.
they are isolated and i don't see a reason for the libs called to not
be threadsafe.
setting a loop time timestamp in the future will lead to all sorts of
bad things. the idea is it was meant to go back a little in time AFTER
some sync/animation etc. event to pretend to be at the time when that
event happend (it just took some time ot arrive at the process) and so
animation and other timelines all agree to be at this time a little
bit in the past. going forwards leads to bad things so disallow it and
complain. this fixes weston in a window problems when it sends
timestamps in the future from weston...
@fix
Summary: On laptop with 4K display, windows are too small, so resize windows according to elm scale
Test Plan: elm_tests
Reviewers: raster
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12307
This function can only be successfully called from the given
thread. For debugging purposes, it's useful to be able to give
a name to an Ecore_Thread.
ecore_thread_name_set(Ecore_Thread *thread, const char *name);
@feature
some logic ws off in how to hide/show and handle visibility of
swallowed entry. fix it - let edje deal with show/hide and dont fight
with it and ensure we emit a signal to have entry active when it needs
to be visible
@fix
Summary: remove FRAME_MAX limitation to play the huge animated image which has more than 1024 frames
Test Plan: load gif image which has more than 1024 frames
Reviewers: Hermet, kimcinoo
Reviewed By: Hermet
Subscribers: raster, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12303
edje_cc now lists all cc's used in an edj file. edje provides an api
to list this. elm now uses this api to expose a list of all cc's used
acorss all the theme(s) selected by the user. this will then be used
by paledit to produce a nicer gui with a list of available cc's to add
etc. and split between basic and extended.
@feat
Summary: this backend code was for selecting XCB over Xlib. Now XCB is removed, this code is useless
Reviewers: raster
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12299
this massively speeds up efreet's icon cache building for huge icon
themes... in my nasty test case of some insanely huge icon themes that
have like 50,000 - 100,000 files... each - and multiple where the icon
cache has to scan all of them and build the cache files... i see a
speedup of going from 80 seconds to build down to 15-16 seconds. so
over 5 times faster.
This builds the dictionary in a temporary eina superfast string hash
in ram and then just before writing flattens it out into a regular eet
dict format.
@opt
In commit cbcf5bc64a, newer librsvg APIs were used that are not available in versions between 2.36.0 and 2.50.0, e.g. rsvg_handle_get_intrinsic_size_in_pixels which was included in 2.51.x.
This has been resolved by adding a HAVE_SVG_2_51 and using it for both rsvg_handle_get_intrinsic_size_in_pixels and rsvg_handle_render_document, though the later technically landed in 2.46.0.
Reviewed-by: Christopher Michael <devilhorns@comcast.net>
Differential Revision: https://phab.enlightenment.org/D12293
A few of the functions used in this code have been deprecated in the
latest librsvg. This patch fixes the deprecated warnings by using
possible.
NB: As I am no cairo expert, someone may want to check that the proper
dimensions are used in read_svg_data function. I was not sure if this
should be using the 'scaled' dimensions or not.
Summary:
Usually application sets uv point value using proxy object size.
if source object is bigger than proxy object, then only part of
source image is used for map, and it leads to unexpected result.
This patch is solving this problem make map use source object size
instead of proxy object size by comparing both size.
Test Plan:
[Samle Code]
{F4606414}
[Sample Image]
{F4606413}
[Before apply map]
{F4606418}
[After apply map WITHOUT patch]
{F4606416}
[After apply map WITH patch]
{F4606417}
Reviewers: raster, Hermet
Reviewed By: raster
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12292
elm map has been broken for a long time now sue to upstream web api
changes/breaks made by openstreetmaps. this isn't sustainable to have
code do this. since it's broken there is little point keeping code for
something that is totally non-functional, so reduce code, document it
as broken and remove tests. at least symbols remain so no missing
symbols and code using it will end up with an empty non-functional
widget (much like they would without these changes anyway).
@feat
Summary: with HiDPI monitor (like 4k ones), the size of the windows are upsized with the Windows algo. The result leads to blocky font rendering for exemple. Set the scale in elm_config according to the values of the scale.
Test Plan: elm test with a text
Reviewers: raster
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12290
Test Plan: running the efl since several months without problem
Reviewers: raster
Reviewed By: raster
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12289
Summary:
Allow user to get currently used font size when Text Fitting is enabled.
previously, the user can not know what is current font size, he only specifies font size ranges, and the algorithm internally decides suitable font size.
with this change, the user has the ability to know the font size, that the fitting algorithm has picked
Reviewers: raster
Subscribers: raster, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12288
Summary:
egl images created using tbm surface for native surface set use
GL_TEXTURE_EXTERNA_OES as texture target, so we should bind to
this target when rendering. Or there is a GL_INVALID_OPERATION
error on glBindTexture in function _orig_shader_array_flush.
Thia patch follows logic of following commit;
7db0e20 evas/gl: Bind texture with external target for tbm surface
Reviewers: Hermet, raster, jsuya, herb
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12286
Summary:
It is non-sense that running timer even if the input/timer is invalid.
Stop the timer to prevent invalid key down repeating.
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12285
Summary:
Remove unnecessary point movement in rgb(255, 255, 255) case in svg parsing.
In svg parsing, move the pointer by 'rgb(' before calling
_color_parser() in the rgb(255, 255, 255) case.
In function, string pointer moved unnecessary, so parsing is incorrect.
Therefore, remove unnecessary point movement.
Test Plan:
svg sample code
```
<svg xmlns:svg="http://www.w3.org/2000/svg" viewBox="0 0 300 300">
<path d="M 0 0 h 200 v 200 z" style="fill:rgb(255, 155, 55);"/>
</svg>
```
before
{F4504779}
after
{F4504778}
Reviewers: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12284
Summary:
calling elm_init does not guarantee of readiness of atspi bridge
even though elm_init is calling _elm_atspi_bridge_init.
widget or user could want to know when the atspi bridge is ready.
Reviewers: Hermet, jsuya, herb
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12283
Summary: we do not have to change several place for updating.
Reviewers: Hermet, jsuya, herb
Reviewed By: Hermet
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12282
This reverts commit e2d6691d52.
This reverts commit c02b796fdb.
This reverts commit 6c969f6b7d.
This reverts commit 74204bccd7.
This reverts commit 1304d95717.
This reverts commit 7c85be9674.
revert the EAPI changes that break cxx bindings build. sorry :( more
fixes needed than i thought
emile in these 2 cases allocates an empty uninitilised buffer that
will then be filled - gcc thinks we're passing uninit data to a func -
which is right but intended as it is later filled. disable this
warning for these segments of code.
Summary:
Change-Id: I17c79f89550e9a758a532babd55826b3c7ad2810
To show gif animation smoothly, we keep the current frame even if getting line is failed.
Currently, the frame image will be freed if getting gif line is failed and this makes the frame drop.
Reviewers: Hermet, kimcinoo, raster
Reviewed By: raster
Subscribers: raster, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12277
Summary:
Patch from a series of patches to rename EAPI symbols to specific
library DSOs.
= The Rationale =
EAPI was designed to be able to pass
`__attribute__ ((visibility ("default")))` for symbols with
GCC, which would mean that even if -fvisibility=hidden was used
when compiling the library, the needed symbols would get exported.
MSVC __almost__ works like GCC (or mingw) in which you can
declare everything as export and it will just work (slower, but
it will work). But there's a caveat: global variables will not
work the same way for MSVC, but works for mingw and GCC.
For global variables (as opposed to functions), MSVC requires
correct DSO visibility for MSVC: instead of declaring a symbol as
export for everything, you need to declare it as import when
importing from another DSO and export when defining it locally.
With current EAPI definitions, we get the following example
working in mingw and MSVC (observe it doesn't define any global
variables as exported symbols).
Example 1:
dll1:
```
EAPI void foo(void);
EAPI void bar()
{
foo();
}
```
dll2:
```
EAPI void foo()
{
printf ("foo\n");
}
```
This works fine with API defined as __declspec(dllexport) in both
cases and for gcc defining as
`__atttribute__((visibility("default")))`.
However, the following:
Example 2:
dll1:
```
EAPI extern int foo;
EAPI void foobar(void);
EAPI void bar()
{
foo = 5;
foobar();
}
```
dll2:
```
EAPI int foo = 0;
EAPI void foobar()
{
printf ("foo %d\n", foo);
}
```
This will work on mingw but will not work for MSVC. And that's why
EAPI is the only solution that worked for MSVC.
Co-authored-by: João Paulo Taylor Ienczak Zanette <jpaulotiz@gmail.com>
Co-authored-by: Ricardo Campos <ricardo.campos@expertise.dev>
Co-authored-by: Lucas Cavalcante de Sousa <lucks.sousa@gmail.com>
Reviewers: vtorri, raster
Reviewed By: raster
Subscribers: raster, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12273
Summary:
The symbols will be needed when we change how Eolian generates
import/export symbols in Eio
Reviewers: vtorri, raster
Subscribers: raster, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12272
Summary:
= The Rationale =
EAPI was designed to be able to pass
`__attribute__ ((visibility ("default")))` for symbols with
GCC, which would mean that even if -fvisibility=hidden was used
when compiling the library, the needed symbols would get exported.
MSVC __almost__ works like GCC (or mingw) in which you can
declare everything as export and it will just work (slower, but
it will work). But there's a caveat: global variables will not
work the same way for MSVC, but works for mingw and GCC.
For global variables (as opposed to functions), MSVC requires
correct DSO visibility for MSVC: instead of declaring a symbol as
export for everything, you need to declare it as import when
importing from another DSO and export when defining it locally.
With current EAPI definitions, we get the following example
working in mingw and MSVC (observe it doesn't define any global
variables as exported symbols).
Example 1:
dll1:
```
EAPI void foo(void);
EAPI void bar()
{
foo();
}
```
dll2:
```
EAPI void foo()
{
printf ("foo\n");
}
```
This works fine with API defined as __declspec(dllexport) in both
cases and for gcc defining as
`__atttribute__((visibility("default")))`.
However, the following:
Example 2:
dll1:
```
EAPI extern int foo;
EAPI void foobar(void);
EAPI void bar()
{
foo = 5;
foobar();
}
```
dll2:
```
EAPI int foo = 0;
EAPI void foobar()
{
printf ("foo %d\n", foo);
}
```
This will work on mingw but will not work for MSVC. And that's why
EAPI is the only solution that worked for MSVC.
Co-authored-by: João Paulo Taylor Ienczak Zanette <jpaulotiz@gmail.com>
Co-authored-by: Ricardo Campos <ricardo.campos@expertise.dev>
Co-authored-by: Lucas Cavalcante de Sousa <lucks.sousa@gmail.com>
Reviewers: vtorri, raster
Reviewed By: raster
Subscribers: raster, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12271
Summary:
= The Rationale =
EAPI was designed to be able to pass
`__attribute__ ((visibility ("default")))` for symbols with
GCC, which would mean that even if -fvisibility=hidden was used
when compiling the library, the needed symbols would get exported.
MSVC __almost__ works like GCC (or mingw) in which you can
declare everything as export and it will just work (slower, but
it will work). But there's a caveat: global variables will not
work the same way for MSVC, but works for mingw and GCC.
For global variables (as opposed to functions), MSVC requires
correct DSO visibility for MSVC: instead of declaring a symbol as
export for everything, you need to declare it as import when
importing from another DSO and export when defining it locally.
With current EAPI definitions, we get the following example
working in mingw and MSVC (observe it doesn't define any global
variables as exported symbols).
Example 1:
dll1:
```
EAPI void foo(void);
EAPI void bar()
{
foo();
}
```
dll2:
```
EAPI void foo()
{
printf ("foo\n");
}
```
This works fine with API defined as __declspec(dllexport) in both
cases and for gcc defining as
`__atttribute__((visibility("default")))`.
However, the following:
Example 2:
dll1:
```
EAPI extern int foo;
EAPI void foobar(void);
EAPI void bar()
{
foo = 5;
foobar();
}
```
dll2:
```
EAPI int foo = 0;
EAPI void foobar()
{
printf ("foo %d\n", foo);
}
```
This will work on mingw but will not work for MSVC. And that's why
EAPI is the only solution that worked for MSVC.
Co-authored-by: João Paulo Taylor Ienczak Zanette <jpaulotiz@gmail.com>
Co-authored-by: Ricardo Campos <ricardo.campos@expertise.dev>
Co-authored-by: Lucas Cavalcante de Sousa <lucks.sousa@gmail.com>
Reviewers: vtorri, raster
Subscribers: raster, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12270
Summary:
Patch from a series of patches to rename EAPI symbols to specific
library DSOs.
= The Rationale =
EAPI was designed to be able to pass
`__attribute__ ((visibility ("default")))` for symbols with
GCC, which would mean that even if -fvisibility=hidden was used
when compiling the library, the needed symbols would get exported.
MSVC __almost__ works like GCC (or mingw) in which you can
declare everything as export and it will just work (slower, but
it will work). But there's a caveat: global variables will not
work the same way for MSVC, but works for mingw and GCC.
For global variables (as opposed to functions), MSVC requires
correct DSO visibility for MSVC: instead of declaring a symbol as
export for everything, you need to declare it as import when
importing from another DSO and export when defining it locally.
With current EAPI definitions, we get the following example
working in mingw and MSVC (observe it doesn't define any global
variables as exported symbols).
Example 1:
dll1:
```
EAPI void foo(void);
EAPI void bar()
{
foo();
}
```
dll2:
```
EAPI void foo()
{
printf ("foo\n");
}
```
This works fine with API defined as __declspec(dllexport) in both
cases and for gcc defining as
`__atttribute__((visibility("default")))`.
However, the following:
Example 2:
dll1:
```
EAPI extern int foo;
EAPI void foobar(void);
EAPI void bar()
{
foo = 5;
foobar();
}
```
dll2:
```
EAPI int foo = 0;
EAPI void foobar()
{
printf ("foo %d\n", foo);
}
```
This will work on mingw but will not work for MSVC. And that's why
EAPI is the only solution that worked for MSVC.
Co-authored-by: João Paulo Taylor Ienczak Zanette <jpaulotiz@gmail.com>
Co-authored-by: Ricardo Campos <ricardo.campos@expertise.dev>
Co-authored-by: Lucas Cavalcante de Sousa <lucks.sousa@gmail.com>
Reviewers: vtorri, raster
Subscribers: raster, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12274
Summary:
This patch fixes wrong behavior for text block content fit when markup contains a part with specified font sizes (these parts will not be fitted by content fit algorithm).
+ THIS STILL NEED TEST TO BE ADDED
Subscribers: raster, cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12275
add debug/error detection for the animator thread that might just sit
ans sleep waiting on epoll_wait + timerfd to expire... and it doesn't.
it SHOULD expire in less than 1 ft (frame time eg 16.66666667ms). but
i'm seeing it sometimes take 4 or 6 or 8 SECONDS to have epoll_wait
wake up... even thought i now set epoll_wait to always expire in 200ms
no matter what... even that it doesn't honor. something truly messed
up is happening with scheduling and i think this cascades through
everything - i see evas doing eglSwapBuffers() with nothing appearing
in the vbox screen... truly messed up. at least this adds some rror
detection for this and is at least a warning to a user that something
is messed up.
the old one was a bit... rough. the new one relies on the new fallback
to parent classes in edje to simplify colorclasses and can now apply
immediately. i've started on a palette editor gui - and it works
relatively well and applies live as you slide colors around. it looks
vaguely good too. i don't thnk we should hsave a widget to do this as
it's probably too much in elementary (the lib) that is far too niche
in use.
Summary: Windows has no fnmatch.h, so usage of Elementary on that OS will fail
Reviewers: raster
Reviewed By: raster
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D12268