This fixes the following error message:
Object '0x40000002f0000030' still has a parent at the time of destruction.
Though I actually wonder why ref == 0 and there was a parent.
Something is still a bit fishy here.
Coverity reports that we call _circular_dependency_find here without
checking the return value
Fixes Coverity CID1349867
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
We now use eo_do() and EFL_CANVAS_SCENE3D_CLASS macro to create viewport
Reviewers: raster, Hermet, cedric
Subscribers: jpeg, artem.popov
Differential Revision: https://phab.enlightenment.org/D4163
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
Summary:
When using EDC written by another person, developer usually
does not need to know all specified parts in EDC but editable
like swallow, text or textblock parts.
The required flag tells whether the part is intended to be used outside EDC.
Reviewers: jpeg, cedric, raster, Hermet
Reviewed By: jpeg, raster
Subscribers: raster, NikaWhite, kimcinoo, jpeg
Differential Revision: https://phab.enlightenment.org/D3579
Summary:
Do not update anchors outside viewport.
Problem is that when entry contains large number of anchors,
scrolling and launch performance is degraded due to lots of objects
being created and maintained, so to enhance the performance of
entry with anchors, anchors is not updated outside the viewport.
Test Plan:
1. Should have large number of anchors in entry
2. Observe the launch and scrolling performance.
Reviewers: tasn, raster, herdsman
Subscribers: thiepha, raster, cedric, jpeg
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D3543
Summary: Need discussion about the repeat_events property
Test Plan: Swallow an object which has EINA_TRUE repeat_events to a swallow part which has EINA_FALSE repeat_events
Reviewers: Hermet, cedric, raster, jpeg
Reviewed By: raster, jpeg
Subscribers: jaehwan, seoz, woohyun
Differential Revision: https://phab.enlightenment.org/D3580
Summary:
To keep consistency with Evas Textblock part in edje,
text.min has to work logically even if ellipsis is enabled.
If a Text part has minimum width, maximum width and "text.min: 1 X;",
Text part should be expanded until its width reaches to the maximum width.
Then, ellipsis will work. Singleline Textblock is also working like this.
@fix
Reviewers: cedric, herdsman, raster, tasn
Subscribers: Blackmole, z-wony, jpeg
Differential Revision: https://phab.enlightenment.org/D3587
Coverity reports that 'text' here is a null pointer dereference so
check for valid 'text' variable before trying to use it.
Fixes Coverity CID1267490
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary:
Add link press effect
Custom tag (linked_pressed) has to be supplied in entry tb style
with color value for press effect to be applied on link text.
Reviewers: tasn
Subscribers: shilpasingh, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D3629
Summary:
When ever a Edje's cursor function is called, "cursor,changed" signal is
emitted. Even if the position is not changed. And, in Elementary, the signal
will trigger evas_smart_objects_calculate() from elm_widget_show_region_set().
It causes bad performace.
@fix
Test Plan: N/A
Reviewers: tasn, herdsman, cedric, woohyun
Subscribers: jpeg, z-wony, Blackmole
Differential Revision: https://phab.enlightenment.org/D3902
Summary:
If there is no member styles when a text_class is updated,
newly added styles can't be updated.
So, newly added styles as member of text_class should be updated.
@fix
Test Plan:
Test case is included.
1. Run "elementary_test -to "font overlay""
2. Press Next button. Check the font size.
3. Press Prev button.
4. Put font_size as 50
5. Click Apply button.
6. Press Next button. Check the font size is not changed.
Reviewers: cedric, tasn, herdsman, raster
Subscribers: jpeg, z-wony, Blackmole
Differential Revision: https://phab.enlightenment.org/D4125
Summary:
Edje_entry: In order to read pre-edit characters as well,
send entry_change_info with preedit,changed
Elm_entry: In order to read pre-edit characters as well,
send text to screen reader on preedit,changed.
Test Plan:
1. Change keyboard language to korean/enable prediction
2. Check the reading, text should be read even before committing
Signed-off-by: Shilpa Singh <shilpa.singh@samsung.com>
Reviewers: thiepha, jihoon, cedric, raster
Reviewed By: raster
Subscribers: raster, kimcinoo, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4145
this fixes ordering to match everywhere else ANd usage of the get
func. this was broken already where top/bottom border would swap -
plese see coverity scan CID 1355590 for an example of problems this
created.
Summary:
If color class of an edje part is defined as "aaa/bbb/ccc/ddd",
edje will search for color class by the following sequence.
"aaa/bbb/ccc/ddd"
"aaa/bbb/ddd"
"aaa/ddd"
"ddd"
So, without additional lookup table, edje classes (color, text, size)
can have the functionality like inheritance.
Reviewers: jpeg, raster, cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D4127
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
Summary: check if the size of scene is bigger than 0x0 and build 3D scene in the edje_player in this case and use "opengl_x11"
Reviewers: Hermet, jpeg, cedric
Subscribers: NikaWhite, Oleksander, artem.popov, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4041
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
While the part state switching, map won't gonna be disabled again,
due to the incorrect state checking.
If there param1 indicates the current state with map off.
then it should disable the map obviously.
But It assumed the param1 is the previous state, not the current!,
so the map didn't go disabled state.
It was intended to avoid the duplicated map state setting.
So to keeping the intention, now it disable the map, only if
the map is actually enabled.
So both are fine.
@fix
this will fix case when aliased group was changed and alias-group was loaded,
so then on saving alias-group WON'T rewrite all changed to aliased group
@fix
this should cut some memory used by edje by using smaller types like
shorts instead of ints where we just dont need a full int range and
short will do, and re-ordering in memory data soit packs better when
accoutning for alignment
let's assume you registered a callback twice with the same ptr data
and same func and same sig/src... if you delete it once you're ok.
delete twice... and you re-delete the first one (just makging it for
delete_me). this fixes this corner case
@fix
Summary:
So currently having an issue related to clip_to function from
EdjeEdit API. I am not sure about how and why combobox use pointer grabbing
(just started to use it) but when setting NULL into clip_to of edje edit it
suddenly block entire screen away from mouse. Only when point is moved out of
window and back, only then it will be able to access widgets again.
Take a look at video and maybe try example to reproduce problem
I am not sure if deleting those functions from edje_edit is actually right
decision. But it will fix the problem of course.
Test Plan: See attached video and examples in attached files
Reviewers: NikaWhite, reutskiy.v.v, Hermet, cedric, raster
Subscribers: jpeg
Differential Revision: https://phab.enlightenment.org/D4081
This message really is just informational at best, since it's
not an error, and we even implemented an optimization.
It should be done at compile (edje_cc) time though.
See comments on D3801
Summary:
refactor setter and getter of edje color class and
move edje_color_class_set/get() into Edje.Object as class functions
Reviewers: cedric, jpeg
Reviewed By: jpeg
Subscribers: kimcinoo
Differential Revision: https://phab.enlightenment.org/D4109
Note by jpeg:
The EO APIs introduced here will be revisited in upcoming patches,
in particular:
1. avoid non-premultiplied colors
2. move to a common color class interface
Summary:
4000x4000 min size limitation was added to prevent infinite
calculation loop. But, it can ruin calculation of some proper Edjes.
Normally, properly generated Edje runs the calculation loop below 10 times.
So, "255" could be proper limitation for calculation loop.
It also make better performance for broken Edje.
Test Plan: N/A
Reviewers: raster, Hermet, woohyun, cedric
Reviewed By: cedric
Subscribers: jpeg, z-wony, Blackmole
Differential Revision: https://phab.enlightenment.org/D4075
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Evas.Common_Interface not only had a bad name, it also
wasn't in line with how we can get a loop object, for
instance.
Use eo_provider_find in each implementing class.
Summary:
When edje_password_show_last option is enabled, the edje_entry uses <password=off>
for showing last character. But, when password mode is disabled by the elm_entry,
<password=off> is remained in the text. It can cause some problems.
Because, there is no way to control password mode by API for the edje_entry.
The elm_entry can't remove <password=off> tag before getting text from the edje_entry.
So, the patch adds edje_object_part_text_hide_visible_password() function and
the elm_entry will use this when elm_layout_theme_apply() is called.
@fix
Test Plan:
1. Run "elementary_test".
2. Show "Entry Password" demo. (Newly added by this patch)
3. Password mode is enabled. Put some text.
4. Click "Show Password" check box to disable password mode.
5. Put more text.
6. Click "Hide Password" check box to enable password mode again.
7. See a character among the text is visible. (without this patch)
Reviewers: tasn, herdsman, cedric, jpeg, thiepha, raster
Reviewed By: raster
Subscribers: Blackmole, z-wony, woohyun
Differential Revision: https://phab.enlightenment.org/D3988
This is legacy stuff. I wish we could hide it from our inheritance
entirely. Instead, just make it abstract, remove all functions from
eo (doable here) and rename with the keyword "internal" in the new
ugly java style name.
The implementation depends on creating different code paths from the now-legacy
behavior of text appending.
The annotation system introduced in this commit replaces the current way of
applying formats on text.
Up until now it has been quite a hassle for the user to control the formats, as
it required keeping track of the format positions with an opener and closer
formats almost every time (with the exception of own-closing formats).
The combination of Efl.Text API along with the Efl.Canvas.Text annotation API
essentially replaces the capabilities of the old format.
There is additional annotation API to allow more control, so be sure to check
the documentation/.eo files and the wiki page of Efl.Canvas.Text.
The style API now accepts actual strings of format style. There is not longer
need to instantiate as style with style_new() followed later by style_free().
@feature
There were a problem when while swithcing between states
(because of program running in transition),
there is SIGSEV appearing when first state has
only one point color, and next state more than one.
Basically it looks like this:
....
part {
name: "rectangle";
type: RECT;
description { state: "default" 0.0;
map {
on: 1;
color: 3 255 90 0 255;
}
}
description { state: "moved" 0.0;
map {
on: 1;
color: 0 0 0 255 255;
color: 1 255 0 0 255;
color: 2 255 90 0 255;
color: 3 41 68 59 255;
}
}
}
<and program that change 'rectangle' state with transition>
....
@fix
Summary: Creation of scene and root node in edje-3d with all 3D-parts of edje object. Add some new methods to edje_util.c
Reviewers: raster, Hermet, jpeg, cedric
Reviewed By: cedric
Subscribers: artem.popov
Differential Revision: https://phab.enlightenment.org/D3963
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
This allows apps to set the objects min size with hint_min,
while letting the rest of EFL define the minimum size with
rstricted_min.
I don't like the property names much...
Still not sure about which keyword is the best to use here,
but anyway, it's a protected function so users should realize
it's probably not what they want.
Summary:
This is the svg loader which will parse the svg file and store it in a intermediate structure.
It provides the helper function to get EET descriptor to save the structure into eet file.
NOTE: Not all svg attributes are handled yet. but most common attributes are handled .
Reviewers: Hermet, cedric
Subscribers: Hermet, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D3868
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
This includes:
- align
- min (now content_min)
- request
- max
- padding (now margin)
- weight
This does NOT include:
- display mode (compress, expand... a hint used by naviframe only).
Cedric revert patch 6f7608befd same days
ago.
<quote Cedric>
Your patch 6f7608befd did break elemines
which does relly on the proper index to be given to it. I think
Edje_Edit should be fine and use the index if no name is provided (See
edje_load.c around L1180). In all case this was clearly an ABI break and
needed to be reverted.
</quote Cedric>
So now edje_cc not guarantee name for part items. This is bad, because
edje_edit use item name for access to item attributes. If item have not
name we cann't get it attributes, because edje_edit compare the given
name with part items name from edj-file, strcmp dislake NULL args.
For now I see one way mark all edje_edit_part_item* APIs as deprecated
and add new APIs for manage part items by index.
For clearly and history:
The eason for revert - https://phab.enlightenment.org/D3820
The proposed solution - https://phab.enlightenment.org/D3907
This lets me narrow down the remaining cases of pointers across the EFL.
The void pointers will later need to be reevaluated on per-case basis and
replaced appropriately where possible/feasible.
This reverts commit 546ff7bbba.
It seems that eo_del() is useful and removing it was creating bugs.
The issue is that the way we defined parents in eo, both the parent and
the programmer share a reference to the object. When we eo_unref() that
reference as the programmer, eo has no way to know it's this specific
reference we are freeing, and not a general one, so in some
circumstances, for example:
eo_ref(child);
eo_unref(child); // trying to delete here
eo_unref(container); // container is deleted here
eo_unref(child); // child already has 0 refs before this point.
We would have an issue with references and objects being freed too soon
and in general, issue with the references.
Having eo_del() solves that, because this one explicitly unparents if
there is a parent, meaning the reference ownership is explicitly taken
by the programmer.
eo_del() is essentially a convenience function around "check if has
parent, and if so unparent, otherwise, unref". Which should be used when
you want to delete an object although it has a parent, and is equivalent
to eo_unref() when it doesn't have one.
This touches Edje and also Elementary where part names are used.
This commit blew up in size since now all content part APIs
(get, set, unset) require to use Efl.Part instead.
This is a big refactoring commit, but no logic should
have been changed. Fingers crossed.
This should now fix the part API usage once and for all.
EFL should have no part name in any of its APIs beyond
the Efl.Part interface.
Part proxy objects (may be real objects) have a lifetime
of only one function call, in a fashion similar to eo_super.
@feature
Complex types (i.e. list, array, hash, accessor etc.) now do not require
pointers with them anymore (the pointer is implied) and the same goes for
class handles. Eolian now explicitly disallows creating pointers to these
as well. This is the first part of the work to remove pointers from Eolian
completely, with the goal of simplifying the DSL (higher level) and therefore
making it easier for bindings (as well as easier API usage).
@feature
Commit 3faf3f3fc converted an eo_do() into two functions.
However the eo_do() was implicitely enclosed within an if,
which after conversion led to the if coverting only one
of these functions instead of both.
Pointed out by GCC's -Wmisleading-indentation.
Previously events used to use class name as a prefix and ignored eo_prefix
when specified. This is no longer the case. Events follow eo_prefix by default
now. In order to get around this for classes where this is undesirable, a new
field event_prefix was added which takes priority over eo_prefix. If neither
is specified, class name is used like previously.
@feature
We used to have eo_del() as the mirrored action to eo_add(). No longer,
now you just always eo_unref() to delete an object. This change makes it
so the reference of the parent is shared with the reference the
programmer has. So eo_parent_set(obj, NULL) can free an object, and so
does eo_unref() (even if there is a parent).
This means Eo no longer complains if you have a parent during deletion.
Summary:
According to D3710 new field "camera" in edc was added for IMAGE parts.
It is the name of the CAMERA part to set its viewport as a source of image if no image name is given.
Reviewers: raster, Hermet, cedric
Reviewed By: cedric
Subscribers: jpeg, artem.popov
Differential Revision: https://phab.enlightenment.org/D3777
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
Support inheritance for part states on the edc code generate time.
Only for general attributes are supported, except relative and
map blocks.
Added functions for calculation coefficient of similarity
between two different states of the same part.
Setters and getters like
edje_edit_state_proxy_source_clip_set
edje_edit_state_proxy_source_clip_get
edje_edit_state_proxy_source_visible_set
edje_edit_state_proxy_source_visible_get
even though each part want to get the signal regardless of ON_HOLD,
click signal should not emmitted if event flag is set to ON_HOLD.
ON_HOLD means this event is useless, so up event with ON_HOLD flag cannot source of clicked signal.
@fix
Summary:
Writing copy directly to file.
Old way (adding directly to collection cache) leads to possible segfaults
on edje_collection_cache_flush.
Reviewers: reutskiy.v.v, cedric
Subscribers: jpeg
Differential Revision: https://phab.enlightenment.org/D3904
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
It is possible situation when SPACER structure has colors values.
For example:
group { name: "abc";
parts {
part { name: "rect"; type: RECT;
description { "default" 0.0;
color: 7 7 7 255;
}
}
}
}
group { name:"abc_2";
inherit: "abc";
parts {
part { name: "rect"; type: SPACER;
}
}
}
To avoid failing compilation of generated source code, need avoid
generate color source code for a SPACER part.
Allow to delete set if it is not used by any part
Function to check if set is used by any part is:
edje_edit_set_usage_list_get
Since it uses same struct as image_used_list_get function, it
can be freed by edje_edit_image_usage_list_free.
get list of images of set (edje_edit_image_set_images_list_get)
add image to set (edje_edit_image_set_image_add)
delete image from set by it's place (edje_edit_image_set_image_del)
list of sets (edje_edit_image_set_list_get)
renaming set (edje_edit_image_set_rename)
add new set (edje_edit_image_set_add)
set's id (edje_edit_image_set_id_get)
Split function _edje_generate_source_of_state into
separated smallest functions, that represent generation
of source code for different blocks.
List of added internal functions:
- _edje_generate_source_state_map
- _edje_generate_source_state_box
- _edje_generate_source_state_table
- _edje_generate_source_state_image
- _edje_generate_source_state_proxy
- _edje_generate_source_state_relative
Add support collapse blocks, in cases when
block contain only one attribute.
For example:
next EDC code
description { state: "default";
{
rel1 {
relative: 0.5 0;
}
}
now will be replaced by:
description { state: "default";
{
rel1.relative: 0.5 0;
}
This renames some APIs from Efl.Pack in order to try and
make them more sensible. Feedback welcome.
Also, most APIs now return bool, where false is quite unlikely
to happen.
This fixes on top of 49a27688b1, which
assumed somehow that table items had names, although that
might not be the case. In my situation, name = NULL and there
was a crash everytime I clicked on the clock widget.
This function was returning only the text defined by part_text_set.
This is a behaviour change, as part_text_get() no longer returns NULL
if there is a string defined in EDC. But this now means that the actual
value displayed on screen can be retrieved by a simple API call.
@feature
This is similar to the previous patch for Box,
but for Table.
Those new EO API as well as the legacy ones still need to
be tested (no test case in make check...)
@feature
If the table item has a name, posible case when item name length, with
index, will be 12. The 12 is predefined length for box index.
Quote Cedric
In a box, the index is one dimension, one int, thus the length
of it (from int to string) will always fit inside 12 bytes. That's
where this 12 comes from. That's also how the unique name of that item
is defined.
This commit separate the items name generation by part type, it will be
more correctly.
@fix
Summary: moved mempools adding to separate method to avoid this problem in future
Reviewers: cedric, reutskiy.v.v
Subscribers: jpeg
Differential Revision: https://phab.enlightenment.org/D3903
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
Summary:
For EDJE_RP_TYPE_SWALLOW objects (like GROUP, SWALLOW, EXTERNAL),
edje_object_part_object_get() will return NULL or transparent rectangle.
The note is added to have developers use edje_object_part_swallow_get()
in that case.
Reviewers: jpeg, Hermet, cedric
Reviewed By: cedric
Subscribers: Hermet
Differential Revision: https://phab.enlightenment.org/D3859
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
Correct support all types of program actions for constructing
list of targets.
There are 3 group of actions, that related to targets:
- Does not support targets at all.
- Support only parts as targets.
- ACTION_STOP, that supported parts and other programs as targtes.
@fix
Summary:
enum Evas.Canvas3D.Shade_Mode are using for choose relevant shader source code.
So renaming have a sence.
Rename evas_canvas3d_shade_mode_set/get property to evas_canvas3d_shader_mode_set/get
Rename internal fields and functions
Reviewers: cedric, Hermet, raster
Subscribers: jpeg
Differential Revision: https://phab.enlightenment.org/D3882
i just got a segv freeing ian invalid ptr... it SEEMS as if something
has tried to free and edje object twice... but i can't be sure as
valgrind can't catch this. it's a one-off, so ensure after free, we
NULL out things we freed to avoid this.
@fix
Setting the no-render flag on an elm widget had no effect,
as it was not properly propagated to its children. This should
fix that, but I'm not a fan of the solution.
Fixes T3371
Summary:
In evas and elm box, function for inserting child object after
referenced one is available, but edje doesn't have it.
This adds edje_object_box_part_insert_after() API.
@feature
Reviewers: raster, jpeg, cedric
Reviewed By: jpeg
Subscribers: jpeg
Differential Revision: https://phab.enlightenment.org/D3733
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Only Efl.Canvas.Proxy implements efl_canvas_proxy_source_clip_set.
Legacy image objects should use legacy APIs.
Thanks @zmike for the report and sorry I never saw the ERR myself :(
Fixes T3342
So I forgot to clean my hard drive from previously generated files,
and obviously everything still worked. This lead to having to roll back
evas_smart_clipped.eo as a public eo object until we merge elementary.
Still I would like someone to take a look at elm_pan.eo and figure out
how to not rely on smart clipped there.
Summary:
Applications usually use edje syntax like as,
```
part { name :"bg";
type: SWALLOW;
description {
state: "default" 0.0;
rel1.relative: 0.0 0.0;
rel2.relative: 0.0 0.0;
align: 0.0 0.0;
min: 100 100;
}
}
```
But edje does not calculate it exactly without "fixed: 1 1".
So edje calculation is repeated until 4000 x 4000, it is waste of time.
Reviewers: woohyun, raster, Hermet, id213sin, cedric
Reviewed By: cedric
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D3801
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
Edje data structure is passed as a parameter, but in file.set method
_edje_fetch() is called one more time unnecessarily.
Reviewers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D3788
Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
Annoying incomplete initializer warning. Apparently gcc/clang
don't consider {0} as good enough for "initialize everything to 0"
even though they do it.
Summary:
Developer cannot notice that any description didn't applied due to missing description or typo.
This message will be helpful to make correct the application.
Reviewers: cedric, Hermet, raster
Subscribers: soohye.shin, minkyu, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D3783
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
It has been decided that we would not use any namespace for interface
and they will sit in efl main namespace.
This patch doesn't correct the naming of the event has we don't have a
prefix for event. We do still have EFL_ANIMATOR_EVENT_ANIMATOR_TICK,
instead of a nicer EFL_EVENT_ANIMATOR_TICK.
Summary:
If not found edje part description, edje just set default description in spite of RTL status.
This adds to call function for getting the correct description as RTL status.
Reviewers: raster, Hermet, cedric
Subscribers: minkyu, sju27, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D3735
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Mostly unused vars following the removal of eo_do_ret().
However, there are some cases where the migration script got some things
wrong, and I had to manually fix them.
I just ran my script (email to follow) to migrate all of the EFL
automatically. This commit is *only* the automatic conversion, so it can
be easily reverted and re-run.
These file needed some manual adjustments in addition to the automatic
migration, that's why these are separate from the previous and next
commits, so I can easily know there are additional changes to these, and
it wasn't just the script.
The migration scripts breaks with some weird cases, here I manually
migrated some parts, and just removed the eo_do from others without
actually migrating (so I could deal with that later).
This removes an absolutely crazy use of eo_do where all calls
to the efl_gfx_filter functions where factorized in an unreadable
manner. Hopefully eo_do will disappear soon.
this fixes warnings from gcc specifically:
lib/edje/edje_entry.c: In function ‘_edje_entry_imf_cursor_info_set’:
lib/edje/edje_entry.c:4104:4: warning: ‘dir’ may be used uninitialized
in this function [-Wmaybe-uninitialized]
ecore_imf_context_bidi_direction_set(en->imf_context,
(Ecore_IMF_BiDi_Direction)dir);
^
lib/edje/edje_entry.c:4099:24: note: ‘dir’ was declared here
Evas_BiDi_Direction dir;
^
lib/edje/edje_entry.c:4103:4: warning:
‘ch’ may be used uninitialized in this function [-Wmaybe-uninitialized]
ecore_imf_context_cursor_location_set(en->imf_context, cx, cy, cw,
ch);
^
lib/edje/edje_entry.c:4098:27: note: ‘ch’ was declared here
Evas_Coord cx, cy, cw, ch;
^
lib/edje/edje_entry.c:4103:4:
warning: ‘cw’ may be used uninitialized in this function
[-Wmaybe-uninitialized]
ecore_imf_context_cursor_location_set(en->imf_context, cx, cy, cw,
ch);
^
lib/edje/edje_entry.c:4098:23: note: ‘cw’ was declared here
Evas_Coord cx, cy, cw, ch;
^
lib/edje/edje_entry.c:4103:4: warning:
‘cy’ may be used uninitialized in this function [-Wmaybe-uninitialized]
ecore_imf_context_cursor_location_set(en->imf_context, cx, cy, cw,
ch);
^
lib/edje/edje_entry.c:4098:19: note: ‘cy’ was declared here
Evas_Coord cx, cy, cw, ch;
^
lib/edje/edje_entry.c:4103:4: warning:
‘cx’ may be used uninitialized in this function [-Wmaybe-uninitialized]
ecore_imf_context_cursor_location_set(en->imf_context, cx, cy, cw,
ch);
^
lib/edje/edje_entry.c:4098:15: note: ‘cx’ was declared here
Evas_Coord cx, cy, cw, ch;
^
lib/edje/edje_entry.c: In function
‘_edje_part_move_cb’:
lib/edje/edje_entry.c:4104:4: warning: ‘dir’ may be used uninitialized
in this function [-Wmaybe-uninitialized]
ecore_imf_context_bidi_direction_set(en->imf_context,
(Ecore_IMF_BiDi_Direction)dir);
^
lib/edje/edje_entry.c:4099:24: note: ‘dir’ was declared here
Evas_BiDi_Direction dir;
^
lib/edje/edje_entry.c:4103:4: warning:
‘ch’ may be used uninitialized in this function [-Wmaybe-uninitialized]
ecore_imf_context_cursor_location_set(en->imf_context, cx, cy, cw,
ch);
^
lib/edje/edje_entry.c:4098:27: note: ‘ch’ was declared here
Evas_Coord cx, cy, cw, ch;
^
lib/edje/edje_entry.c:4103:4:
warning: ‘cw’ may be used uninitialized in this function
[-Wmaybe-uninitialized]
ecore_imf_context_cursor_location_set(en->imf_context, cx, cy, cw,
ch);
^
lib/edje/edje_entry.c:4098:23: note: ‘cw’ was declared here
Evas_Coord cx, cy, cw, ch;
^
lib/edje/edje_entry.c:4103:4: warning:
‘cy’ may be used uninitialized in this function [-Wmaybe-uninitialized]
ecore_imf_context_cursor_location_set(en->imf_context, cx, cy, cw,
ch);
^
lib/edje/edje_entry.c:4098:19: note: ‘cy’ was declared here
Evas_Coord cx, cy, cw, ch;
^
lib/edje/edje_entry.c:4103:4: warning:
‘cx’ may be used uninitialized in this function [-Wmaybe-uninitialized]
ecore_imf_context_cursor_location_set(en->imf_context, cx, cy, cw,
ch);
^
lib/edje/edje_entry.c:4098:15: note: ‘cx’ was declared here
Evas_Coord cx, cy, cw, ch;
^
and the likes...
Edje was trying to be smart and ask textblock for its markup and compare
with its own cache before setting it again. This is completely wrong,
and textblock is smart enough to deal with it now.
@fix
Plenty of new API:
edje_edit_size_classes_list_get - to return total list of size_classes inside of
loaded collection of groups
edje_edit_size_class_add - add new size class into loaded collection
edje_edit_size_class_del - deleting
edje_edit_size_class_name_set - renaming existing size class into something new
and some setters and getters for min and max (width and height) of size class.
Plenty of new API:
edje_edit_text_classes_list_get - to return total list of text_classes inside of
loaded collection of groups
edje_edit_text_class_add - add new text class into loaded collection
edje_edit_text_class_del - deleting
edje_edit_text_class_name_set - renaming existing text class into something new
edje_edit_text_class_font_{get|set} - get/set font name
edje_edit_text_class_size_{get|set} - get/set font size
pending programs have not started yet, so they are not directly attached
to the part. failing to remove them results in unexpected behavior from programs
ref 71ce70bc3f
@fix
Oops!
Sorry, missed this one:
lib/edje/edje_edit.c: In function 'edje_edit_program_after_insert_at':
lib/edje/edje_edit.c:9980:14: warning: comparison between signed and unsigned
integer expressions [-Wsign-compare]
if (place >= eina_list_count(epr->after))
^
Now fixed
Few new API for inserting/mving items inside of BOX/TABLE
> edje_edit_part_item_insert_before
> edje_edit_part_item_insert_after
> edje_edit_part_item_insert_at
> edje_edit_part_item_move_below
> edje_edit_part_item_move_above
Summary:
Adding of new properties for light in edje-3d. Recalculation of main properties in Canvas3D parts to provide animation (only those which I used in widgets).
Checking of frame existing when setting material.
Reviewers: cedric, raster, Hermet
Subscribers: jpeg, artem.popov
Differential Revision: https://phab.enlightenment.org/D3694
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary: Initiation of Evas Objects and creation of nodes for new part types in Edje.
Reviewers: cedric, raster, Hermet
Subscribers: jpeg, artem.popov
Differential Revision: https://phab.enlightenment.org/D3665
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Big thanks to Maxim who did a serious digging in this issue making it almost
a patch review.
T3125
@fix
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
The "color_tree" block contains a list of one or more "node" blocks.
A "node" block consists of its own color class name and the list of child
color classes. At runtime, parent color class will be referred instead,
if child color class is set to part but its color values are not defined.
Reviewers: raster, Jaehyun_Cho, jpeg, cedric
Reviewed By: cedric
Subscribers: cedric, kimcinoo
Differential Revision: https://phab.enlightenment.org/D3606
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
This is necessary for backward compatibility still I am thinking of displaying a warning for this
use case and request people to update there work and drop that feature in the future (In a year
maybe from now). Elementary doesn't need this as it depends on Ecore_Evas.
Summary:
edje_file_data_get() failed if the Edje file did not contain
a collection (e.g. contained only data.item.
This allows to load data from the file even when no collections
are present, but only if specified.
@fix
Reviewers: raster, jpeg, stefan_schmidt, cedric
Reviewed By: cedric
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D3632
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
This seems to be a fair improvement as it speeds up by 4% the shutdown
of application (and an overall benchmark used to track where genlist
spend its time).
This reverts commit ade138a3d1.
Revert this commit because this basically causes e to hang solid if
you mousover ibar (and the window list popup slides in then i think
that tyriggers it). this is pretty bad.
Summary:
When text is changed, all of objects for item tag are deleted
and recreated. It is unnecessary work and can cause performance
issues. Actually, many of application developers wonder why
item provider callback functions are called every text changes.
@fix
Test Plan:
Run elementary_test -to "entry emoticon"
When you make a very little change on text,
36 emoticon objects are recreated.
Reviewers: woohyun, jaehwan, herdsman, tasn
Reviewed By: tasn
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D3537
This change is to fix the 4000x4000 limitation issue in edje.
Previously, the sizing calc logic was experimentally confirmed with 4000x4000.
It worked somehow but was not perfect. This change may not be perfect either but
it gets rid of the limitation problem without any performance drop in
computating. Maybe it would be better than before.
I'd rather push the temporary version before we confirmed no side effects.
@fix T2978
It is possible that evas_object_data_get here does not return an Edje,
so check the return value. This fixes a coverity reported issue.
@fix
CID1349866
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
Summary:
APIs iterating works through active text classes and size classes were added,
but Edje_Text_Class and Edje_Size_Class data type are still concealed.
This patch uncovers those data types so as to allow developers to use them.
Reviewers: jpeg, cedric
Differential Revision: https://phab.enlightenment.org/D3557
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
GROUP parts were not mirrored with the rest of the edje object,
this commits fixes that.
This is an improvement of the now reverted
55b62bbd70.
Thanks to cedric for the pointer that lead to this commit.
Ref T3021
the passed edje is not guaranteed to be the one which owns the swallowed
object at any given time, so get the current owner to ensure that the
correct one is passed
ref a645c8153f
#MasterOfAllBorkers
@fix
Summary:
Fix memory leak
If user or extra cursor is used, these should be free on
shutdown.
@fix
Test Plan: NA
Reviewers: tasn, herdsman
Subscribers: shilpasingh, cedric, jpeg
Projects: #efl
Differential Revision: https://phab.enlightenment.org/D3550
Summary:
Do not update cursor for non editable entry.
If entry is not editable there must not be any need to query tb cursor
geometry and run other codes related to it. This may improve some
performance of non-editable entry.
Test Plan: NA
Reviewers: tasn, herdsman, thiepha
Subscribers: shilpasingh, cedric, jpeg
Projects: #efl
Differential Revision: https://phab.enlightenment.org/D3532
Summary:
I have a strange feeling that I always commit the same code to edje-3d, I hope it will finish very soon.
However here are some important new keywords, descriptors for them, methods for models,
structure for providing animation in edje programs and some more changes.
Reviewers: raster, Hermet, cedric
Reviewed By: cedric
Subscribers: jpeg, artem.popov
Projects: #efl
Differential Revision: https://phab.enlightenment.org/D3437
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
The mouse,in/out signal has missing parts to use.
When user send down event on specific object, then move cursor to outside of object.
the mouse,in signal must be called in case. but it's not in traditional implement.
So i added this signal for support above use case.
In order to satisfy above use case, user can add both of the signals(mouse,in mouse,pressed,in).
(Adding new name of signals to do not break compatibility with before implements.)
@feature
Test Plan:
Add mouse,pressed,in/out program to object.
Press object which added signals before.
Move mouse cursor to out of object, then check the program works.
Reviewers: Hermet, cedric, raster
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2992
Summary:
Fix cursor position on mouse up/down
When mouse down/up over top and bottom part textblock is not able to set the
char coordinate as it is not inside actual text, edje entry tries to manage it
but textblock has that handling. As a result the cursor jump to first char for
single line and at the last in the multiline last line.
So this patch fixes this and manage to keep the the mouse coordinate inside
the textblock.
In mobile device this is not really acceptable when user taps over the entry
at some position and cursor jumps to some arbitrary position.
@fix
Test Plan:
1. Elementary Test
2. Entry 3 (any entry)
3. Try to click little below or above the text in first entry
single line.Observe cursor jumps to first position
4. Do as above for multiline entry (try to click at the last line little below)
observe cursor jumps to last char.
Reviewers: thiepha, herdsman, tasn
Subscribers: jpeg, tasn, cedric
Differential Revision: https://phab.enlightenment.org/D3257
Summary:
The size of the style pad isn't considered when the min value of the
textblock is calculated. In case of putting the lable that there is an
outline in the box, the letter is cut. So, I revised so that
evas_object_textblock_style_insets_get could be called after a
evas_object_textblock_size_formatted_get in
_edje_object_size_min_restricted_calc function. And then the style pad was
considered in the result value of the edje_object_size_min_calc.
@fix
Test Plan:
EAPI_MAIN int
elm_main(int argc, char **argv)
{
Evas_Object *box, *label;
Evas_Object *win;
elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
win = elm_win_util_standard_add("Font", "FONT");
elm_win_autodel_set(win, EINA_TRUE);
box = elm_box_add(win);
elm_box_padding_set(box, 10, 0);
elm_box_align_set(box, 1, 0.5);
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_show(box);
label = elm_label_add(box);
elm_object_text_set(label, "<font=default align=rignt color=#ffffff font_size=200 style=soft_outline outline_color=#ff0000ff>label");
elm_box_pack_end(box, label);
evas_object_show(label);
evas_object_resize(win, 500, 300);
evas_object_show(win);
elm_run();
return 0;
}
ELM_MAIN();
Reviewers: herdsman, tasn
Reviewed By: tasn
Subscribers: id213sin, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D3426
Edje_Part can change its min or max size in code level with
size_class.
Differential Revision: https://phab.enlightenment.org/D3329
PS: Manual commit, arc refused to work...
@feature
Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
Summary:
Use markup text for password in preedit mode
Problem is that when text comes in preedit mode
it is always markup text and when it is committed
to entry it got committed with markup tags along with
the original string, so for preedit mode password
should be filtered all markup to set the proper text.
@fix
Test Plan:
In preedit mode, enter any character say 'A'
preedit markup like <preedit>A</preedit>
will come in preedit changed callback
Result: Text is set as plain text like below
<preedit>A</preedit>
Reviewers: thiepha, jihoon, herdsman, shilpasingh, tasn
Reviewed By: shilpasingh, tasn
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2929
Summary:
When text is selected, crash happens due to double free as rectangles are freed both in _sel_update
and _evas_textblock_selection_iterator_free hence removing free from _sel_update.
@fix T2910
Test Plan:
1. Launch elementary test
2. launch entry demo
3. select text
Reviewers: cedric, herdsman
Subscribers: jpeg
Maniphest Tasks: T2910
Differential Revision: https://phab.enlightenment.org/D3401
Adding a check for the selection range on extend/preextend.
If there is no range, then emit "selection,reset".
Expected handling on the theme end for this signal is to show the
cursor.
This improves cursor visuals, as it will show the cursor again once the
selection range ends up being 0.
Summary:
In case of RTL, the "custom" state properties does not apply. It happened because we don't copy the latest src to
dst in set_state(PART:.., "custom", 0.0); in case of dst is already populated.
We should copy the updated src to dst whenever we set the new custom description.
@fix
Reviewers: cedric, raster, jpeg, zmike, jaehwan
Subscribers: kimcinoo, seoz, jpeg
Differential Revision: https://phab.enlightenment.org/D3394
Summary: There are more redundant arrays to be deleted. In fact I don't think string name of descriptor shouldn't never change, I was testing some 2D examples and this is not true.
Reviewers: raster, jpeg, cedric
Subscribers: artem.popov, cedric
Differential Revision: https://phab.enlightenment.org/D3361
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
In entry, when selection_get function is called, selection is not
always returned the current selection.
Scenario:
- In select mode, entry has selection (e.g, by double click).
- When selection handler is moved, set the cursor the current coordinate
with edje_object_part_text_cursor_pos_set() API.
- Edje emits "selection,changed" signal.
- Elementary gets current selection and stores it.
- Elementary does not get selection as visual selection (e.g, text is
highlighted with "entry test", but the selection returned
from edje is "entry").
- If we copy and then paste to the entry, the pasted text is not same as
selected text.
Reason:
- In _edje_entry_cursor_coord_set function, if entry has selection, we only
emit "selection,changed" signal without freeing en->selection.
- When _edje_entry_selection_get is called, we check the en->selection,
since it is existed, we just return it which is not updated one.
This patch clears en->selection, so that it is updated at _selection_get,
and the updated selection is returned to caller.
@fix
Test Plan:
In mobile profile, open entry
- Right click, choose select, double click -> selection handlers are shown.
- Drag selection handlers to change selection.
- Right click, do copy.
- Right click, do paste.
- See the pasted text is not same as selection.
Reviewers: raster, tasn, herdsman
Subscribers: seoz, JackDanielZ, cedric
Differential Revision: https://phab.enlightenment.org/D2746
Summary:
It adds evas_object_paragraph_direction_set, get APIs.
The APIs set or get paragraph direction to/from the given object.
It changes BiDi calculations and affect the direction and aligning of text.
It doesn't have any effect to text without Fribidi library.
The default paragraph direction is EVAS_BIDI_DIRECTION_INHERIT.
If dir is EVAS_BIDI_DIRECTION_INHERIT, paragraph direction is changed
according to smart parent object. If there is no smart parent object,
paragraph direction works as EVAS_BIDI_DIRECTION_NEUTRAL.
@feature
Test Plan:
Test cases included to the following files.
- evas_test_textblock.c
- evas_test_text.c
- evas_test_object_smart.c
Run "make check".
Reviewers: woohyun, raster, herdsman, tasn
Subscribers: c, raster, cedric
Differential Revision: https://phab.enlightenment.org/D1690
Memleak found with valgrind points to this line, where clearly the
edd field name is incorrect. It looks like this feature has no example,
no test case either.
This breaks EDJ ABI!
I do this because I believe there are zero users of this API
at this point, as Evas 3D is still not ready yet.
See also https://phab.enlightenment.org/D2544
@fix
this just clens up the _edje_signal_callback_push() to be simpler and
less wordy with the same actual logic, just pointless things like
return; at end of func removed, use tmp instead of gp->matches
everywhere and not just in one section etc.
also set hashed bool to eina true/false i as opposed to sometimes 0,
sometimes eina true/false and also track it religiously as well as
matches array when freed - hunting bug
for whatever reason after these cleanups i can't reproduce a signal
crash i had which seemed to find freed matches in the hash that should
not have been there. (a hash find walking a bucket found freed memory
for the match in the hash entry - should not have been though reading
the code).
@fix
Summary:
The initial values for map.zoom.x(y) should be [1.0]: it means 100%.
The values from newly builded edj has been set properly.
But, if a part from old *.edj turns on map feature, map.zoom.x(y) will be set [0.0]: it means 0%.
So, the part will be invisible. We need to initialize these values.
@fix
Test Plan:
1. Build a *.edc file which has a part with [description.map.on: 1;] in EFL 1.13.
2. See it works well in EFL 1.13.
3. Install EFL 1.14 or laters.
4. See the part is disappear.
Reviewers: Hermet, jpeg, cedric
Reviewed By: cedric
Subscribers: jiin.moon
Differential Revision: https://phab.enlightenment.org/D3302
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
Remove dead code
If anchor sel is not there, code inside
while can not execute.
Test Plan: NA
Reviewers: tasn, herdsman, cedric
Reviewed By: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3190
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
Object not created if theme source is not available.
In many case we dont need or define all the
theme sources for entry, even if the sources are
null, edje object is being created.
Test Plan: NA
Reviewers: tasn, herdsman, cedric
Reviewed By: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3199
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Add the edje signal "swallow", "unswallow", "text,set", "text,unset".
In edc file, the part name take a role of source.
If the layout should be changed when any object is swallowed or any
text is set, use this signal.
@feature
in many cases edje dumbly calls eo_do() or evas_object_xxxx on objects
to set up their porperties when the part never uses that thing at al -
eg filters. the obnject never had filters and will not have them n3ext
- why always set filter to null every time? skip when not needed for
speedups.
so this fixes over-zealous calling whihc adds overhead that is not
needed causing battery drain and cpu usage, heat creation etc. etc.
@fix
Summary:
In a different scaling environment, wrong comparison of min values causes resize issue as original size is compared instead of scaled size.
Signed-off-by: Shilpa Singh <shilpa.singh@samsung.com>
Signed-off-by: Subodh Kumar <s7158.kumar@samsung.com>
@fix
Test Plan:
Create a layout with some min size and swallow a resizable layout inside the layout.
the parent layout will not expand even when the height has crossed its min size.
Reviewers: cedric, tasn, raster
Subscribers: subodh6129
Differential Revision: https://phab.enlightenment.org/D3185
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
evas_object_clipees_has is far cheaper than evas_object_clipees_get in case of checking if
clipees exist or not. This should improve the performance in case of large set of clipees.
@fix
Summary: clang reports that these static variables are not being used
anywhere (and grep confirms this), so remove them.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Without that, the image has no fill information. Fill properties
may need to be added to SNAPHOT parts but the default behaviour
should make sense. Before this patch you just get a black rectangle.
Considering how image filters currently work, marking snapshots
as filled by default is not the best solution (need padding_set(0)
to render nicely).
This makes SNAPSHOT a part type on it own, combining the
common and filter subtypes.
This means it is now possible to set an evas filter on
a SNAPSHOT object, just like for TEXT, IMAGE and PROXY.
@feature
Summary:
Edje entry: Make cursors to null after free
To prevent any illegal access of cursors
can lead to crash
@fix
Test Plan: NA
Reviewers: tasn
Reviewed By: tasn
Subscribers: shilpasingh, cedric
Differential Revision: https://phab.enlightenment.org/D3093
Summary:
Its value is never modified directly and should not be modifiled by mistake
in future.
@fix
Reviewers: Hermet, raster, reutskiy.v.v, cedric
Reviewed By: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3104
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
The keys Home/End/PgUp/PgDown are changes the entry cursor
position in the same way as arrow keys. For unified behavior
callback "cursor,changed,manual", added emitting signal for
those keys events.
Reviewers: tasn, cedric, herdsman, thiepha
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3055
This functions designed that make the edje edit API's more
homogeneous. The all edje attribute setters and getters
treated only ony attribute, besides container API's
This functions designed that make the edje edit API's more
homogeneous. The all edje attribute setters and getters
treated only ony attribute, besides container API's
This functions designed that make the edje edit API's more
homogeneous. The all edje attribute setters and getters
treated only ony attribute, besides container API's.
This functions designed that make the edje edit API's more
homogeneous. The all edje attribute setters and getters
treated only ony attribute, besides container API's.
This functions designed that make the edje edit API's more
homogeneous. The all edje attribute setters and getters
treated only ony attribute, besides container API's.
TODO:
* separate edje_edit_state_container_padding_get/set
* separate edje_edit_state_container_align_set/set
* separate edje_edit_part_item_position_get/set
* separate edje_edit_part_item_span_get/set
Summary:
edje_edit_save_all includes source code generation that is way more expensive
than save itself. User should be able to save manually with or without sources
Reviewers: cedric, Hermet, seoz, reutskiy.v.v
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3051
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
_edje_file_coll_open will be executed after _edje_file_open is finished.
This duplicatated call will increase the reference counter and give failure
of _edje_cache_coll_unref.
@fix
Reviewers: cedric, raster, Hermet
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3075
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
This API was defined in the Edje_Edit.h but haven't implementation.
Given the fact that gradient is not supported and print 'SPANK'
error on load have sense to delete them.
The code have been ifdef'ed out for a along time. I checked back until
the merge of our libs before the 1.8 release. Maybe even before that.
If you have a use case for this code fell free to revert but also enable
the code and make sure it works when doing so.
Summary:
The result of evas_object_textblock_cursor_content_get() API has to be cleaned
by outside. _edje_entry_cursor_content_get() is calling free() inside of the
function for handle the result using static pointer. But, the caller of
_edje_entry_cursor_content_get() is already handling the result using free().
It can cause double free problem.
The bigger issue is in elementary. See elm_entry_cursor_content_get() API's
document. The document advice developers to free the result when it is done.
@fix
Test Plan: N/A
Reviewers: tasn, raster, woohyun
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2991
Summary:
change position of the main textblock cursor
in depends of the selection is present. Change cursor position to
the start or end of selection only when selection is present.
@fix
Test Plan:
Press "Up" and "Down" arrow keys on selected and normal text.
For selected text: the entry cursor should be placed one line
above or below selection block (in depends from pressed button).
For normal text: the entry cursor should be placed one line
above or below of the current cursor position.
Reviewers: tasn, Hermet, herdsman
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2948
ok. i found this once-ever-seen thing where
Edje_Signal_Callback_Matches has ALL fields NULL/0 except refcount was
huge (like 13834275 or something like that). i can't see why at the
moment, but defend against it to avoid crashes here by handling these
being null
Summary:
After the commit D2904
this commented code and comments are not required
Test Plan: NA
Reviewers: tasn
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2938
Summary:
Fix type in edje_container_align_set,
it was originally named as edje_contain(t)er_align_set.
Reviewers: Hermet
Subscribers: cedric, Hermet
Differential Revision: https://phab.enlightenment.org/D2927
Summary:
Fix to delete selection when preedit status has not ended
In preedit mode when selection is made and input any letter,
there is duplicate character appeared because the selection
is cleared when commit happens so delete the selection in
preedit last stage.
@fix
Test Plan: Test in Tizen devices.
Reviewers: woohyun, id213sin, shilpasingh, tasn
Subscribers: rajeshps, cedric, govi
Differential Revision: https://phab.enlightenment.org/D2837
Summary:
When commit string comes from key_down text filter is applied before deleting
the range but when commit string comes from imf filter is applied after deleting
the range. Moreover when format is prepended range is deleted before applying
insert filter. Please check the _edje_key_down_cb and
_edje_entry_imf_event_commit_cb routines.
@fix
Test Plan: Tested in Tizen device
Reviewers: herdsman, thiepha, shilpasingh, raster, tasn
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2904
The return value is used for divisor in many case.
If it return 0.0 when it fail, it can break app with div by zero.
@fix
Signed-Off-By: YoungBok Shin(id213sin) (youngb.shin@samsung.com)
For unset color_class for part used edje_edit_state_color_class_set and NULL
value for color_class, it's a string, is valid. In this case function must
return EINA_TRUE.
@fix
This is now like the other embedded scripts, where a verbatim
string is parsed. The syntax is now:
filters {
filter {
name: "filter0";
file: "filter.lua";
}
filter {
name: "filter1";
script {
blend {}
}
}
filter.file: "file.lua"; // name is "file.lua"
}
Thanks @raster for the quick review.
Yeah that was totally overkill and pure laziness on my side.
Despite having the EO API for the filters still in beta,
I want to the EDC API and EDJ binary formats to stay compatible,
so let's get it right before the release :)
Summary:
Elementary widgets dealing with Evas Events usually mask event_flags with
EVAS_EVENT_FLAG_ON_HOLD, to show that this event is already handled.
However, widget like Elm_Button, it does not handle EVAS_CALLBACK_MOUSE_DOWN directly,
but it handles Edje_Signal instead, so there's no chance to mask event_flags.
Developers can block event propagation by putting rectangle the very last part of EDC,
but this instruction can help the case making elementary widget with only Edje_Signal handling.
This is not required essentially, so please check the necessity of this function.
Reviewers: Hermet, cedric
Reviewed By: cedric
Subscribers: cedric, Hermet
Differential Revision: https://phab.enlightenment.org/D2764
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
In edje_embryo.c, there are the list for supported methods in script.
However, methods listed from line 175 to 188 don't exist actually.
This patch implements 4 methods among them.
set_mouse_events(part_id, ev)
get_mouse_events(part_id)
set_repeat_events(part_id, rep)
get_repeat_events(part_id)
Reviewers: Hermet, woohyun, cedric
Reviewed By: cedric
Subscribers: cedric, Hermet
Differential Revision: https://phab.enlightenment.org/D2766
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Until we're happy with it, keep the API as beta.
The EDC support should not change, and the Lua either, but the
API could potentially still change to accomodate for new needs
(vector graphics, anyone?). If we're happy with the current
interface, then we can remove the @beta flags.
This flag should be set iif the string passed is to be executed
rather than assigned. This is used to pass complex arguments
as data, like tables (eg. color class).
Deep down internally there was already a name, but no API could
really set it properly.
Here Edje will set the name of the filter based on the part name
or the data item name if relevant.
This creates the new interface
Efl.Gfx.Filter
And the implementation is a mixin (evas_filter_mixin.c):
Evas.Filter
All the filter rendering code has now been moved to this
new file. TODO: Merge image filtering.
Use the file data {item, file} block to embed filters code.
It can become especially useful to keep the filters as separated
Lua files, that will be embedded in the final edj file.
@feature
This should preserve ABI stability with earlier versions of
edje_cc while still providing more advanced control over
proxy bindings for evas filters from EDC.
Also fix proxy binding for filters.
@feature
Summary:
get_geometry() method calls edje_object_part_geometry_get() internally,
and the type of its arguments is Evas_Coord. (typedef'ed integer)
However, comment says that method require Float type as its arguemnts,
and get_geometry() initializes Evas_Coord variables as 0.0.
This patch corrects type mismatching and comment.
@fix
Reviewers: Hermet
Subscribers: cedric, Hermet
Differential Revision: https://phab.enlightenment.org/D2754
This reverts commit 1edb35fff3.
Accessing symbols from other libs like this should never be done. The
consequences of this are not significant enough to do this; better solution
can be found but definitely not like this.
efreet_init began to be called with the addition of translatable strings,
but allowing dbus connections in edje (and thus edje-derived tools) will
result in errors when edje_init is called without a dbus connection available