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:
A string is copied to the array '&symbolname[0]' of size 32,
without checking it's length at first at embryo_cc_sc1.c:2101.
So, used assert to avoid possible overflow.
Signed-off-by: Umesh Tanwar <umesh.tanwar@samsung.com>
Reviewers: Hermet, cedric, raster
Reviewed By: raster
Subscribers: singh.amitesh, jpeg
Differential Revision: https://phab.enlightenment.org/D3602
sd_pid_get_session returns ENODATA or ENXIO if it was unable to fetch
the session data for the given pid, reason for that is mostly that the
pid is not running is a session. Adding this as the error value can help
the user debugging the problem without the need of gdb´ing into the
function and checking the return value.
Summary:
Font size is scaled according to scale factor.
The linesize, linegap formats also have to be scaled properly.
@fix
Test Plan:
Test cases are included.
Run "make check"
Reviewers: woohyun, Jieun, tasn, herdsman
Reviewed By: tasn
Subscribers: raster, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D3688
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:
BiDi text is truncated because the way we find the last visual item in text object is wrong.
This patch is similar with _line_native_last_visual_get function in textblock.
Reviewers: cedric, tasn, herdsman
Subscribers: id213sin, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D3947
Summary:
Suggest new mark_type for elm_calendar_mark_add().
The mark names are "weekend/day1", "weekend/day2".
It can be used for each country.
Some country can apply to "weekend/day2" to friday if day rest only a day for a week.
Until now, there is no way to separate holiday, saturday and sunday.
Test Plan:
1. saturday
```
struct tm t = { 0, 0, 12, 6, 0, 0, 6, 6, -1 };
elm_calendar_mark_add(obj, "weekend/day1", &t, ELM_CALENDAR_WEEKLY);
```
2. sunday
```
struct tm t = { 0, 0, 12, 7, 0, 0, 0, 0, -1 };
elm_calendar_mark_add(obj, "weekend/day2", &t, ELM_CALENDAR_WEEKLY);
```
Reviewers: CHAN, cedric, raster
Reviewed By: raster
Subscribers: raster, akanad, id213sin, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4148
So ok. haha. Amusing. But this is inappropriate.
1. It's not an INTENDED effect in theme so unless the theme ius doing
it - it shouldn't happen.
2. There are places to do this and it's NOT inside an engine. There
are high level filter and other mechanisms.
3. Actually this shouldn't be even done client-side. It should be done
compositor-side when moving a window around. Knowing velocity vector
etc. is useful to a client so the protocol can stay but doing the
animation client-side is "wrong". Some windows wobble and others do
not based on toolkit? really? sure we have to live with the CSD
difference but this? The compositor can do this JUYST fine. leave it
to compositor... OR do this properly with filters client-side. e.g. a
2d displacement map with evas filters would do the job as long as it
interpolates. If you want a way of forcing ALL objects in the canvas
to redirect to an intermediate buffer then do it up there at the
canvas level. It then works in GL and software, as opposed to only GL.
Also.... this is now causing issues for users:
<memeka> hi, from
https://git.enlightenment.org/core/efl.git/commit/?id=fb76fe55a52ac212b6870f1d74470a79ea5c5246
i run EFL_WAYLAND_DISABLE_WWW=1 terminology -> but it crashes in
wayland_egl/www.c in the setup_shaders function .... HELP?
so the fun was fune until we do a release (now) and until this causes
problems for users. Back to tried and tested code.
If you want to do this... do it right at the portable layers above.
...
Revert "wayland-egl: Fix use after free"
Revert "wayland_egl: Fix redirect to texture"
Revert "evas-wayland-egl: Add www protocol handling to wayland-egl engine"
Revert "gl_common: Add API for redirecting render to texture"
This reverts commit 2760afbb0e.
This reverts commit c937248eac.
This reverts commit c67f50b40a.
This reverts commit 0f7f4b6de0.
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
map struct allocation was not handled right - we assumed successthen
later checked for failure with an if() after using the ptr. this
should fix CID 1353722
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.
technically we dont handle a failed fwrite to stdout according to
coverity, but this is harmless as it doesnt matter if it fails - the
owner process cares. slave does not. silence CID 1356615
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>
Fix using mkstemp directly without securely setting umask first by
making use of eina_file_mkstemp which does set unmask.
Fixes Coverity CID1357165
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Fix using mkstemp directly without securely setting umask first by
making use of eina_file_mkstemp function which does set umask.
Fixes Coverity CID1357164
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary:
If every assigning logics to enginelist is not performed some how,
system will crash because the first parameter of strcmp is null.
Test Plan: N/A
Reviewers: Hermet
Reviewed By: Hermet
Subscribers: cedric, Hermet, raster, jpeg
Differential Revision: https://phab.enlightenment.org/D4149
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
When a new input device gets added, device calibration may need to be
performed. In order for that to be done properly, we need to know
which output this input device is associated with. This patch makes a
function call to Elput in order to retrieve that output name and
perform the proper calibration.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
device
This patch adds a new API function which we can call from Ecore_Drm2
which will return the name of an output which is associated with a
given input device. This output name can then be used to find a
matching output, and perform any device calibration that is needed.
@feature
Signed-off-by: Chris Michael <cp.michael@samsung.com>
See D4144.
Original author: @slotus.lee
SEG_FAULT happens when the object which has selection is deleted,
and new selection is done at another object.
Reason: loss_cb is not removed when the object which has selection is deleted.
When new selection is set for new object, the loss_cb is called for deleted
object. As result, SEG_FAULT happens.
This issue was also happened in X11 (https://phab.enlightenment.org/D2763)
Test plan:
(on wayland environment) Run elementary test, open Entry, do selection,
close Entry window, open Entry one more time, do selection.
in theory another libc call could overwrite errno between select
exiting and errno being used for errors. be paranoid. i know of no
real bug that this causes though.
so smart object bounding box wasnt updated properly in several other
cases. fix those other cases too by dirtying bounding box region.
this continues on from:
f6b3c3156125d77bc1d29f0fd66ab8
this fixes T4017
@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
During the rename this header got lost and distcheck broke for me due to
problems when generating the files from eo. I fixed a similar problem after
the rename ro efl_ui_flip in commit c3c344da41
Subhransu, please keep this in mind when renaming another one so I do not have
to do another of these fixes. :)
so after some discussion with jpeg, weak referenced keys are also a
good idea. these need del track handling to be weak, so i made strong
reffed keys also do del tracking again as it's just nice to do this
and be more robust. also added and improved the test suites for this
key value stuff.
@feature
Running E wl2 in KVM led to the following issue: integrated mouse
pointer would always be stuck at (0,0).
The reason was that calibration would never happen, and it's
required* for absolute pointing devices, such as the qemu mouse
integration.
Fix: Listen to device add and calibrate based on the first
output. No idea if we could calibrate on any other output,
or how this should be done in case of multiple screens.
[*] I believe calibration might actually not be required, as
the absolute position is already the correct one when
received from libinput.
this is a continuation fix from
25d77bc1d2 and
9f0fd66ab8
this fixes yet more corner cases after the above 2 fixes. our clip
cache tracking code seems to be broken somewhere and not updating - at
least when events are processed so i did ti the slightly slower way
and recursed through clippers to figure it out in this path. it all
works now it seems but it's got a small speed hit. better be right
than a little faster.
@fix
Summary:
The code of making buttons buffer is away from related codes.
@fix
Reviewers: Hermet, Jaehyun_Cho, jpeg, raster, cedric
Subscribers: Blackmole
Differential Revision: https://phab.enlightenment.org/D4133
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
When text_set is called for entry, it sets to empty text
before calling _entry_text_append().
but, _entry_text_append() has 'set' parameter.
Therefore text is set in that function, and clearing is not needed.
It can fix "changed" smart callback is invoked multipe times
when a short text is set to entry.
In addition, if text length is larger than ELM_ENTRY_CHUNK_SIZE,
set text directly as amount of chunk size and idler will append
about remain text.
@fix
Test Plan:
1. elementary_test -to "entry5"
2. click "set 10000" button
2-1. changed message should be printed 1 time
3. click "set 10001" button
3-1. changed message should be printed 2 times
Reviewers: tasn, Hermet, id213sin, cedric
Reviewed By: cedric
Subscribers: woohyun, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4134
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
recalculation of item count is getting only on a first load of combobox.
whenever user add more items, size of container with items doesn't getting more
place (provoking scroller to appear).
but its event more annoying when user delete items, then there are lots of
free spaces left that looks ridiculus
@fix
Summary:
notify's theme_apply function return value with eo_do_super(... elm_object_widget_theme_apply)
but notify's super class is widget, widget_theme_apply return always ELM_THEME_APPLY_SUCCESS.
so, notify's theme_apply function always return ELM_THEME_APPLY_SUCCESS, if it couldn't apply style correctly.
notify apply style via _notify_theme_apply function, so that function must decide theme_apply function's return value.
Reviewers: herb, singh.amitesh, Hermet, cedric, raster, jpeg
Reviewed By: jpeg
Differential Revision: https://phab.enlightenment.org/D4130
I was getting a crash in eo_shutdown, inside
_efl_event_pointer_class_destructor as I was calling eo_del
from there. But the parent class was already destroyed.
Assuming class IDs can only go up, and child classes are only
instanciated after all their parents, it is safer to call the
class destructors in reverse order.
Obviously, still pretty sure eo_del() in a class_destructor
is not a good idea...
This test is stalling. Locally as well as on Jenkins. I tried to bisect it
without any luck. Even running it from the 1.17 release it does no longer work
so i guess it is some change coming from a pulse update on my system. I have
version 7.1 here. As we have no-one working actively on ecore_audio I disable
the test here and we can track the problem on T4018.
so. on linux signals are delivered to the main process thread/loop.
thats' where signal handlers are set up and always run. this is sane.
it's predicatble. but of course this is not the same in bsd land.
there "just send the signal to any old thread and call the signal
handler there" seems to tbe the order of the day. this explains why
wer are losing sigchld signals in edje_cc - it's heavily threaded and
bsd is just randombly picking a thread to call it on.
this fixes that. in theory. i hope. i can't test, but putting it in to
share
@fix
i've fixed almost all the eina init/shutdown pairs to do the right
thing now... except one (ecore_shutdown) with comment inline where
eo_shutdown is not called. if this is called we are in crash land.
this needs further inspection.
Summary: No idea what else can be done with this widget.
Reviewers: jpeg, cedric, woohyun
Subscribers: raster, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D3930
Summary:
When user edit spinner value on entry.
The user want to back on entry to edit spinner value even swiching view(focus out and focus in).
I considered a couple of exception case ( case that entry should not reactivate.)
1. User click spinner button to give focus.
2. User give focus to spinner's object using key action.
Test Plan:
Add sample in elementary_test.
Edit spinner value.
Gives focus to other window.
Back to spinner view.
See the action.
Reviewers: Hermet, woohyun, cedric, jpeg
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4120
elementary_test -to "Entry on Page Scroll"
Click on "Click this and close popup"
A weird rectangle would be temporarily visible while the
popup is fading in. The rectangle was the block_events
rectangle. By default, elm_popup blocks events, and its
parent must be the whole blocked input area. This fixes the
parent in the example.
I think the block_events region should be fading in and out
as well, because it looks terrible right now.
Note: this changes the position of the popup, but makes
the whole "block_events" thing actually work (avoiding
other render artifacts).
Scenario:
smart {
text
proxy -> text, src_invisible
}
proxy -> smart
What we should see:
smart {
(blank)
proxy -> text
}
proxy -> {
(blank)
proxy -> text
}
What we saw:
smart {
(blank)
proxy -> text
}
proxy -> {
text
proxy -> text
}
Solution:
Check in evas render, when we're inside a proxy render, and the
proxy src_invisible flag is on (evas_object_source_visible_set(0),
that we're rendering the object itself to its proxy surface. If not,
it means we're rendering another proxy surface, ie. a parent smart
object's proxy surface.
Still loving evas render.
Fixes T4006.
@fix
ecore_timer_del() checks a flag "inside_call" that can be
set before calling the timer cb... but it was never reset
to 0. So, all legacy timers would keep on ticking forever
and ever, until they return CANCEL.
Anyway, I find the distinction between eo_del and
ecore_timer_del very troubling. eo_del() should work
on a legacy timer. Ping @cedric. Maybe override eo_del()?
Fixes T3898
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
If we end up failing to get the fd from ecore_main_fd_handler_fd_get,
then we should just bail out of this function and try again later.
Fixes Coverity CID1357213
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
The edje code used to register the cursor objects as "edje sub-objects" of the
edje entry object. This is not edje API, so will send these signals explicitly
to the objects.
elm layout signal handling was all over the place. using 3 different
ways of adding or deleteing signals from the object. it uses either
obj directly, eo_super(obj) or wd->resize_obj. come on. be consistent.
so using wd->resize_obj worked before and now works properly with
sgnal cbs PROPELY deleted unlike before.
@fix
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
Coverity reports that len is used un-init here, so let's give it a
value at declaration time
Fixes Coverity CID1357214
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
Summary:
After setting focus to disabled item, focus does not work properly.
It is necessary to consider disabled state of each item
when selecting next focused item.
Signed-off-by: Jehun Lim <jehun.lim@samsung.com>
Test Plan:
1. elementary_test -to 'gengrid disabled item focus'
2. check 'item select on focus disable'
3. move focus to disabled item
4. observe focus and compare before this patch
Reviewers: cedric
Subscribers: minkyu, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4115
Summary:
if trying to apply incorrect theme, widget apply default theme and return TRUE.
so there is no way to check it really apply correct theme.
To resolve this problem, _elm_theme_set return three type enum
* related history : 4ca3ef4514
* elm_object_style_set is public api, so I didn't change it.
* typedef name [ Theme_Apply ] is temporarily, please suggest better one.
@fix
Reviewers: singh.amitesh, herb, Hermet, cedric, jpeg, raster
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4073
when hoversel has no item at all and use clicks on it, then it goes into
state called "expanded".
and so then, no matter how many items user would try to add, hoversel won't work
anymore.
@fix
Adds two new type types, STATIC_ARRAY and TERMINATED_ARRAY. Static arrays are
only allowed as struct members right now - they translate to regular C static
arrays (allowing them elsewhere wouldn't be good, as C isn't very good at
working with the size information). Terminated arrays are basically sequences
of data terminated at the end. The base type of static arrays can be any type
that is not marked ref (explicit ref may get allowed later). The base type of
terminated arrays has the same restriction plus that it has to be either
implicitly reference type (i.e. translating to pointer in C), integer type
or a character. In case of ref types, the terminator is NULL. In case of
integer types, the terminator is a zero. In case of character types, the
terminator is also a zero (null terminator like C strings).
@feature
Coverity reports that we could not reach the eina_hash_free here on
erorr condition. This was due to an erroneous return NULL above the if
(hash_create) check.
Fixes Coverity CID1357171
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
Coverity reports that we end up leaking the return from
_output_name_get as the storage is never freed.
Fixes Coverity CID1357161
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
We should be checking the return value of ecore_main_fd_handler_fd_get
calls as they can return a negative number...which cannot be passed to
the close() or read() functions.
Fixes Coverity CID1357152 and CID1357153
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch fixes an issue where ecore_main_fd_handler_fd_get could be
returning a negative number and passing that to close() which cannot
accept negative numbers.
Fixes Coverity CID1357152
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
Coverity detected that the same code was being passed to resize
regardless of canvas orientation. This patch fixes the issue by
passing the proper values to window_resize.
Fixes Coverity CID1357150
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
'window' here could potentially be null so we should be checking that
it is valid before trying to assign event window
Fixes Coverity CID1357148
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch fixes an issue reported by coverity where 'type' variable
could be null and passing null to strcmp is not good ;)
Fixes Coverity CID1357147
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
Coverity reports that this bpp check is actuall dead code due to the
fact that bpp can never be < 0.
Fixes Coverity CID1357144
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
If we fail to read any bytes from the fd, then we should be returning
a failure here.
Fixes Coverity CID1357143
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch fixes 2 Coverity issues where engine_info_set was being
called, but the return was never being checked.
Fixes Coverity CID1357141 and CID1357142
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
This patch fixes 2 coverity Error handling issues.
ecore_main_fd_handler_fd_get can return a negative fd on error so we
should be checking that return before trying to make use of the fd.
Fixes Coverity CID1356632 and CID1356624
@fix
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
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
Those actually belong to elm_config, or rather Efl.Config:
efl_config_int_set("cache_image_cache_size", 42);
efl_config_int_set("cache_font_cache_size", 1337);
When the parameter 'text' is NULL in elm_layout_text_set function,
the sub object data with the same part name is removed
from the layout's sub object list and the function returns immediately.
However, if the text part doesn't exist in the list,
a new sub object data is appended to the list even though the text is NULL.
This patch adds NULL check so the function can return in such cases.