Summary:
Calling evas_object_polygon_add(NULL) cause segmentation fault,
because there has been removed null check logic in evas_object_polygon_add(0ff7429)
This patch fix the problem.
Test Plan:
1. Call evas_object_polygon_add(NULL)
2. Check segmentation fault happen
Reviewers: cedric, jpeg, woohyun, jypark
Differential Revision: https://phab.enlightenment.org/D5801
This change finally introduces deferred parsing of inherits to
Eolian, after a long time and many iterations. That means instead
of parsing inherits directly as part of the main file's parse pass,
they're pushed into a queue and parsed later. The validation engine
was modified to properly fill in the remaining info afterwards.
This may introduce breakages but I haven't noticed any. It also
properly unlocks cyclic dependency support in Eolian.
Additionally, this also introduces checks for duplicates in class
inherits (class Foo(Bar, Bar) is no longer possible) and it adds
stricter name checks, so you can no longer have a class Foo.Bar
and refer to it as Foo_Bar in implements. This was actually never
meant to be supported, but the check was previously broken.
@feature
This interface has a simple 'create' method to create Efl.Canvas.Object
given a key.
This is used higher-up in Ui.Text in the next commit.
Ui text: add ability to set item factories
Added API to set an item factory object.
This is similar to the previous item providers (that worked with
callbacks).
You instantiate a factory object and set it on the Ui.Text object.
Each factory implements the "create" method from
Efl.Canvas.Text.Item_Factory.
This also includes 3 public factories (Image, Emoticon and Fallback):
- Image factory: creates images from added entries (key strings)
- Emoticon factory: creates emoticons by querying the theme
- Fallback: creates image, then falls back to emoticon
If no factory is set, then the fallback (internal) factory is used.
See the added "Ui.text Item Factory" test in elementary_test for an
example of usage.
@feature
No need to split: those two are used in all the same classes, since the
split between Orientation and Ui.Dir.
Note that the enum types remain in the main namespace.
For SW engine we need to verify that OSMesa is present. The patch
fb048e7312 broke the logic.
Tested by temporarily removing OSMesa from my system.
Fixes T6617 (again)
Summary:
Efl.Player interface simply provides play functions,
but another interface which indicates Efl.Player will play is also
needed.
Test Plan: Run elementary_test->Efl.Animation tests
Reviewers: woohyun, conr2d, Jaehyun_Cho, jpeg, cedric
Differential Revision: https://phab.enlightenment.org/D5662
we can't sensibly use things like massif to track memory if we bypass
itr with mmaping -1 fd anonymous memory... so if built with valgrind
support and running under valgrind, use malloc/calloc and free so
these tools actually do something useful for these bits of memory.
Fixes a bug introduce with c8c4572d70.
My guess is that the true intention was to query the Efl.File mixin
first, and the check the specific load_error.
Basically a call to 'efl_file_load_error_get' on an
Efl.Canvas.Image triggered this.
Public symbols were defined internal to Evas/Elementary on macOS, making
the link of external modules unfeasible.
- EAPI was messed up by an invalid inclusion of evas_text_utils.h, making
some symbols private instead of public.
- A similar issue was present in evas_font_draw.c, where the symbols
were directly imported without the proper definition of EAPI.
- Elementary.h did include some eo-generated headers, but for windows
only. It should not been restricted to windows, as it allows to export
symbols to external modules.
Fixes T6448.
This is very useful to specify precisely which kind of RGBA -> Alpha
conversion you want. If all you wanted was the alpha layer to use as a
mask, set this flag to true.
@feature
Using filters I end up in situations where this function returns NULL
and all hell breaks loose. I guess the spinlock is what makes this
possible (race condition).
@fix
Summary:
The Encoding key is no longer required, all desktop files are assumed to
be UTF-8 encoded. See details at:
https://standards.freedesktop.org/desktop-entry-spec/1.1/apc.html
Fix various typos and misspellings
lintian, Debian's package checker, uses strings to check for common typos
in compiled binaries. This change fixes the ones it identified in 1.20.6.
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D5584
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
remove eo apis pointer_in, pointer_device_in, pointer_inside_get &
pointer_inside_by_device_get and add legacy APIs for
pointer_inside_get & pointer_inside_by_device_get.
These four APIs do almost same things.
The c++ header was checking the wrong header guard. Fixing that would
break the compilation test, as it was doing the wrong thing. Also I
think config.h should not be included for compilation tests. This should
make things slightly better.
A few classes allow their objects to be duplicated, so they should all
use the same interface.
Also, rename VG's dup to copy_from as it's not conforming to the
definition of dup.
This removes the internal function pointer for scale_update. This makes
all relevant classes implement the scale API in EO.
This removes the duplicate function in Efl.Canvas.Object and only uses
the one from Efl.Ui.Base interface.
This *seems* to be working as expected. Fingers crossed!
PS: I don't like the name Efl.Ui.Base. It's an interface for a few
common API's between Gfx, Canvas and UI levels... Maybe scale simply
doesn't belong there.
Summary:
Parameters w and h are declared as int for evas_common_rgba_image_from_data
and evas_common_rgba_image_from_copied_data in evas_image_data.c. This
does not match the prototypes in evas_image_private.h which declares them
unsigned.
Original report: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=748026
Reviewers: jpeg
Reviewed By: jpeg
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D5540
Calling this lock for no good reason result in a 2% slow down. Easy
enough to disable as we do not use evas_render2 at all. Might be
something to consider if we ever develop evas_render2 further.
There are use cases where you would want to align by a value.
The wordy alignment values are thus removed.
This commit also separates auto-modes (none, normal, locale) for
horizontal alignment to its own API.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
There are multiple places in the code where both the padded item's
width and the maximum style padding (at the edges) are accounted for.
For the sake of making calculations for wrapping/ellipsis we should
only use the maximum style padding.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
This updates the style pad even if there are no format nodes.
An example of this is having a default style set to the object.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Since font names can also specify styles like weight, width etc, we
should parse the font name AFTER setting the respective properties to
the font description, so it can override some if required.
This allows, for example, the following operation:
efl_text_font_weight_set(obj, EFL_TEXT_FONT_WEIGHT_NORMAL);
efl_text_font_set(obj, "Sans:Bold");
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Build failed with LKI not found, as a symbol, but it's a macro.
Copy & pasted from evas_common_private.h
How can this work on one platform and not another? I don't get it...
Just as a starter to make a working background that, later on, will go
through Svg_Node's and build a certain source code to be saved in SVG
picture as a file
so it doesn't only load from eet or edj only
but also from those any extensions who is ACTUALLY eet, but named as,
for example, like, "file_with_svg.dev"
@fix
Summary:
dev branch : devs/subhransu/font
The Final goal is to move the evas_font module to ector so that both ector and evas can reuse the code.
make the api simple so that sam eapi can be used by evas_textblock and ector text.
This is the 1st stage to achive that gola, first remove the evas internal dependancy as much as possible before moving to ector library.
Reviewers: jpeg, raster, herdsman, cedric, id213sin
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D5419
Coverity reports that EVAS_OBJECT_DATA_SAFE_GET returns NULL here (184
out of 188 times). As such, we should not be calling
_event_animation_object_get with a null object so add a null check here.
Fixes Coverity CID1381713
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Coverity reports that EVAS_OBJECT_DATA_SAFE_GET returns NULL here (184
out of 188 times). The _all_animation_objects_cancel function
directly dereferences the obj parameter passed into it, so lets null check it
before calling that function.
Fixes Coverity CID1381711
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Coverity reports that EVAS_OBJECT_DATA_SAFE_GET returns NULL here (184
out of 188 times). The _all_animation_objects_cancel function directly
dereferences the obj parameter passed into it, so lets null check it
before calling that function.
Fixes Coverity CID1381710
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary:
Textblock's ellipsis feature only worked when text's width exceeds its area.
So, it didn't work when text's height exceeds its area by "br" tags.
This patch will do ellipsis when only ellipsis=1.0 is set.
@fix
Test Plan: make check
Reviewers: herdsman, raster, cedric, jpeg, sohyun
Reviewed By: raster
Subscribers: woohyun
Differential Revision: https://phab.enlightenment.org/D5412
This isn't meant to be installed. The canvas API in EO is based around
the interfaces Efl.Canvas and the widget Efl.Ui.Win. Anything else is
not EO (eg: ecore_evas, evas, ...)
Note: evas_canvas3d is the last remaining thing that is installed along
EO files, but those are all beta APIs.
'output' variable is actually used in this function, so remove
EINA_UNUSED from function parameter
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary:
A new parameter "width_offset" was added to
evas_common_font_query_last_up_to_pos() internal function.
But, internal documentation was not updated.
So, it adds a simple description for the new parameter.
Test Plan: N/A
Reviewers: jpeg, cedric, herdsman, shilpasingh
Differential Revision: https://phab.enlightenment.org/D5035
Summary:
Change the first letter of the sentence from lowercase to uppercase,
and fix typo "top be" to "to be"
Reviewers: cedric, jpeg, stefan_schmidt, myoungwoon, Jaehyun_Cho, conr2d
Reviewed By: cedric
Differential Revision: https://phab.enlightenment.org/D5398
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
This is the result of a really quick review of the new VG code. Most of
it was moved around, but this merge includes the following:
- Move logic from edje to evas
- Create static lib for common VG handling
- Add file_set() API
- Add a basic VG cache in evas side
- Add savers modules, implement loaders and savers.
Summary:
There is a requirement for putting text at right side for LTR and at left side for RTL.
It satisfies that reqirement easily.
It also add "start" keywork for "align" tag. "start" will be same with "auto".
Intuitionally, developer will try "align=start" if they once saw "align=end" in elsewhere.
On the other hand, it only add "END" as new enumeration value for efl interface.
@feature
Test Plan: N/A
Reviewers: herdsman, cedric, jpeg, raster
Reviewed By: raster
Subscribers: woohyun
Differential Revision: https://phab.enlightenment.org/D5342
Summary:
viewbox, fill_mode and align property required to scale the vg tree that
we get from the svg file or manually created depending on the vg canvas
size.
Reviewers: jpeg, cedric
Subscribers: jenkins, cedric
Differential Revision: https://phab.enlightenment.org/D5358
Summary:
Currently user ask for the root_node from the evas_vg object and then attach its tree by setting the root node as parent.
With this change this process will be explicit. user has to set the root node to the evas_vg object and the object will take the ownership
of the tree. User can query the current vg_tree by root_node_get api.
Test Plan:
Fixed the test app to reflects this change.
Reviewers: jpeg, cedric
Reviewed By: jpeg, cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D5347
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
Some things have clearly not been tested. Some APIs have not been
modified after repeated review comments. C++ failed to build due to
"long" being used as a namespace.
Remaining issues:
- The original finger_list API was broken by design. I didn't try to
replace it yet.
- Long tap is also broken by design: if no move happens the recognizer
gets no event, and doesn't trigger anything when the timeout is
reached. An API or event is lacking here.
- Only 2 very basic gestures have been implemented. All the gestures
from elm_gesture_layer need to be covered. None of the multi touch
support has been really implemented, except for a single bool flag.
- The configuration must be loaded from elm_config, passed on to the
recognizers.
- Some micro optimization may be required, especially if the input
device is high frequency (eg. 1KHz gaming mouse).
Efl.Animation and Efl.Canvas.Object need each other, and introduce a
cyclic dependency. Eolian doesn't complain... but C++ fails to compile,
as one header must be included before the other, and vice-versa.
Do we have other cyclic dependencies? I remember we lifted the
limitation in eolian itself, but can't remember exactly how it should be
handled...
Ping @q66 @felipealmeida
Simply pass in the strbuf and don't expect the callee to own it. This
makes things simpler and safer (it'll crash only if the callee frees
said strbuf, and shouldn't leak). efl_ebug_name is new in the upcoming
release, EFL 1.21.
Realised this after talking with Amitesh. Thanks.
See 999dbd9764
And c4769ff898
Efl.Animation.Group.Sequential is a class for animations started in
sequence.
Efl.Animation.Object.Group.Sequential is a class which provides
methods for an object of Efl.Animation.Group.Sequential.
The objects added into the sequential group animation object start
in sequence.
Efl.Animation.Group.Parallel is a class for animations started in
parallel.
Efl.Animation.Object.Group.Parallel is a class which provides methods
for an object of Efl.Animation.Group.Parallel.
The objects added into the parallel group animation object start in
parallel.