Summary:
Timers are not called in the order they were registered.
Because when current timer is deleted, getting next timer is called twice.
Test Plan:
<error>
Timer1 expired after 0.001 seconds.
Timer3 expired after 0.001 seconds.
Timer5 expired after 0.001 seconds.
Timer7 expired after 0.001 seconds.
Timer2 expired after 0.001 seconds.
Timer6 expired after 0.001 seconds.
Timer4 expired after 0.001 seconds.
Timer8 expired after 0.001 seconds.
<correct>
Timer1 expired after 0.001 seconds.
Timer2 expired after 0.001 seconds.
Timer3 expired after 0.001 seconds.
Timer4 expired after 0.001 seconds.
Timer5 expired after 0.001 seconds.
Timer6 expired after 0.001 seconds.
Timer7 expired after 0.001 seconds.
Timer8 expired after 0.001 seconds.|
{F3268233}
Reviewers: Hermet, Jaehyun_Cho, zmike, SanghyeonLee
Reviewed By: zmike
Subscribers: cedric, #committers, zmike
Tags: #efl_tests
Differential Revision: https://phab.enlightenment.org/D6700
Summary:
If a smart class overrides Evas_Smart_Class.move as below,
then original behavior must not be used for the smart class.
Evas_Smart_Class sc = EVAS_SMART_CLASS_INIT_NAME_VERSION("MyClass");
evas_object_smart_clipped_smart_set(&sc);
sc.move = &myMove;
But current implementation makes original behavior work.
So before using the original method, this patch is checking if the original
method is changed or not.
Reviewers: zmike, devilhorns
Reviewed By: zmike
Subscribers: woohyun, jypark, cedric, raster, jpeg, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6468
I think at some point in the past this was necessary to avoid weird show
mechanics, but now things have changed and it's best to always attempt to
scroll and let the scroller internals figure things out
this resolves the case where attempting to scroll to an item during a genlist's
calc (ie. the item was not present in a full layout calc) would fail to scroll
to the item if the scroll method was TOP and the item was too close to the
bottom of the list
fix T6368
@fix
Differential Revision: https://phab.enlightenment.org/D6466
Summary:
mouse coordinate is set by seat.
Therefore, mouse_in state should be set based on seat.
As a result, mouse_in state of all pointers in the seat should be
updated at the same time.
Reviewers: eagleeye, devilhorns, zmike
Reviewed By: eagleeye, devilhorns, zmike
Subscribers: devilhorns, Hermet, kimcinoo, cedric, iscaro, zmike, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6699
Summary:
connect factory to edje part name
when create a new layout connect a factory to it
change example to use the factory_model_connect
Reviewers: felipealmeida
Differential Revision: https://phab.enlightenment.org/D6667
Summary:
this ensures that the color_set call is propagated correctly, resulting
eventually in a call to the smart clipped class method for color_set which
will change the opacity of the edje object in addition to the bg widget's
internal rect object
this seems to have been a regression created during the move to the interfaces
version of the bg widget
fix T7232
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #committers
Tags: #efl_widgets
Maniphest Tasks: T7232
Differential Revision: https://phab.enlightenment.org/D6716
Summary:
Small patch fixes an issue where evas_object_smart_calculate was being
called with a NULL box.
ref T7030
Depends on D6704
Reviewers: zmike
Reviewed By: zmike
Subscribers: cedric, #committers, zmike
Tags: #efl
Maniphest Tasks: T7030
Differential Revision: https://phab.enlightenment.org/D6710
Summary:
If we call ecore_evas_manual_render() during an async render, it does
nothing.
This is harmful if we've added render post callbacks during that async
render and expect them to fire.
Force a sync and another render if we're in an async render.
ref T7156
Depends on D6714
Reviewers: zmike
Reviewed By: zmike
Subscribers: cedric, #committers, zmike
Tags: #efl
Maniphest Tasks: T7156
Differential Revision: https://phab.enlightenment.org/D6715
Summary:
To take screenshots, Enlightenment makes a new snapshot object, performs
a manual render, and uses the snapshot results.
Turns out if this happens while an async render is in progress, the
async render's completion triggers a render post callback on the snapshot
object even though it's never been involved in a render.
We need to defer new render post callbacks until any currently running
render completes, then add them during that render's post.
Fix T7156
Reviewers: devilhorns, zmike
Reviewed By: devilhorns, zmike
Subscribers: devilhorns, cedric, #committers, zmike
Tags: #efl
Maniphest Tasks: T7156
Differential Revision: https://phab.enlightenment.org/D6711
Summary:
The struct definition here is not needed as it will be redefined anyways
later in the efl_model.eo.h header.
Depends on D6705
Reviewers: zmike, #committers, lauromoura, felipealmeida
Reviewed By: zmike, #committers
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6706
Summary: There is no reason to typedef Elm_Multibuttonentry multiple times, the header file can be included, there is no cyclic dependency.
Reviewers: CHAN, zmike, #committers
Reviewed By: zmike, #committers
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6705
Summary:
When testing partial rendering on TV, found this bug.
Probably this was caused because of wrong copy/paste.
When region1 completely subsumes region2, region2 should be ignored.
But currently region2 is copied to region1 which makes region1 rect completly wrong.
This was causing lot of visual defects because of wrong rects.
This patch will fix those visual defects when partial rendering is enabled.
Test Plan: Tested with the patch on TV after enabling partial rendering.
Reviewers: raster, cedric, Hermet, ManMower
Reviewed By: ManMower
Subscribers: bu5hm4n, ajwillia.ms, ManMower, devilhorns, cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6696
Summary:
During the 1.21 development cycle the symbol ELM_CNP_EVENT_SELECTION_CHANGED was lost.
The commit which introduced this: e88bbaa1e3
This patch re-introduced the symbol and expected behaviour.
Reviewers: #committers, zmike, bu5hm4n, herb
Reviewed By: #committers, zmike
Subscribers: herb, ManMower, segfaultxavi, stefan_schmidt, cedric, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6689
Summary:
the hoversel is added to a entry while entrys are not build for handling
children focus. Disabling this prevents wrong focus operations.
fix T7163
Reviewers: zmike, #committers, netstar
Reviewed By: netstar
Subscribers: cedric, #committers, zmike
Tags: #efl
Maniphest Tasks: T7163
Differential Revision: https://phab.enlightenment.org/D6695
Summary:
This adds some attributes to the selectiont type in elm_code.
Including the type (whether it is mouse or keyboard) and also whether
a selection is in progress. Thus we can reliably select around the
file and also move/scroll when there is an active selection.
Test Plan:
Drag and select text with mouse. Also the same with keyboard (hold shift and select).
Leave selection active and scroll around the file. The selection should remain and
full movement is possible while retaining the active selection. This could really
be refactored for a next major release.
Reviewers: #committers, ajwillia.ms, cedric
Reviewed By: ajwillia.ms
Subscribers: zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6676
Summary:
Fix an issue where elm_slider was passing NULL to eo functions due to
wd->resize_obj being NULL. Discovered via Enlightenment mixer popup
dialog
ref T7030
Depends on D6639
Reviewers: zmike
Reviewed By: zmike
Subscribers: Hermet, bu5hm4n, cedric, #committers
Tags: #efl
Maniphest Tasks: T7030
Differential Revision: https://phab.enlightenment.org/D6640
Summary:
efl_layout_signal_emit
This patch fixes an issue where NULL was passed to
efl_layout_signal_emit due to wd->resize_obj being NULL. This was
discovered in Enlightenment by clicking on the mixer module and trying
to close the popup window
ref T7030
Depends on D6638
Reviewers: zmike
Reviewed By: zmike
Subscribers: Hermet, cedric, #committers
Tags: #efl
Maniphest Tasks: T7030
Differential Revision: https://phab.enlightenment.org/D6639
Summary:
Make sure we have a valid frame object before calling edje & evas
functions on it. This patch fixes an issue where NULL is being passed
to eo functions
ref T7030
Reviewers: zmike
Reviewed By: zmike
Subscribers: cedric, #committers
Tags: #efl
Maniphest Tasks: T7030
Differential Revision: https://phab.enlightenment.org/D6637
Summary:
Here comparision is logically wrong because it compares
the coordinates(cur, prev) of the different spaces.
As you can see just above the conditions,
Cur coordinates could be transformed into the map space (if objs have)
on the otherhands, prev is not. These wrong condition could occur
embarassing event trigger.
@fix
Reviewers: #committers, zmike
Reviewed By: #committers, zmike
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6674
Summary:
this was added in a giant block commit in 2009 without direct explanation;
it doesn't seem to make functional sense in the original patch and it
definitely doesn't make sense now
this greatly improves list performance by causing fewer edje recalcs on
list items resulting from list fighting with item content objects over
max size hint
fix T7176
Reviewers: Hermet
Reviewed By: Hermet
Subscribers: cedric, #committers
Tags: #efl_widgets
Maniphest Tasks: T7176
Differential Revision: https://phab.enlightenment.org/D6669
Summary:
this indicates that the window's internal object sizes will have changed,
requiring a full window recalc. if the window is not visible, defer all
recalcs until pre-render to avoid unnecessary calcs and use the same
codepath as the initial window show
ref T7172
Depends on D6646
Reviewers: kimcinoo, eagleeye, ManMower
Reviewed By: ManMower
Subscribers: cedric, #committers
Tags: #efl_widgets
Maniphest Tasks: T7172
Differential Revision: https://phab.enlightenment.org/D6647
Summary:
in this case, a window is being shown again after being hidden, so it's safe
to immediately show these objects as the size will not have changed since
they were last visible
fix T7172
ref fa02f16a3f
Reviewers: kimcinoo, eagleeye
Reviewed By: kimcinoo
Subscribers: cedric, #committers
Tags: #efl_widgets
Maniphest Tasks: T7172
Differential Revision: https://phab.enlightenment.org/D6646
Summary:
This ensures the cursor changes to meet the font size change
when a font change is made in an Elm_Code_Widget.
@fix T6470
Test Plan:
Run ecrire or Edi. Open a text file and change the font settings.
Cursor should resize with the font when it is changed.
Reviewers: #committers, ajwillia.ms
Reviewed By: #committers, ajwillia.ms
Subscribers: cedric, zmike
Tags: #efl
Maniphest Tasks: T6470
Differential Revision: https://phab.enlightenment.org/D6596
Summary:
Currently when selecting with the mouse and scrollling,
the selection will only continue in one direction. With
this patch, the selection can move freely between "pages".
Test Plan: select text and drag up and down in elm_code widget (Edi).
Reviewers: #committers, ajwillia.ms
Reviewed By: ajwillia.ms
Subscribers: cedric, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6632
Summary:
attempt to prevent any access of the signal pipe once signal handlers are
removed in order to avoid triggering a SIGPIPE which would kill the app
Depends on D6670
Reviewers: ManMower
Reviewed By: ManMower
Subscribers: cedric, #committers
Tags: #efl_main_loop
Differential Revision: https://phab.enlightenment.org/D6672
Summary:
if a signal is already in the signal pipe when close() is called,
this will trigger a SIGPIPE. if the signal handler exists, this will
cause the signal handler to infinitely recurse when trying to print
the error messages from write()ing the signal data to the close()d
pipe
fix T7158
Reviewers: ManMower
Reviewed By: ManMower
Subscribers: cedric, #committers
Tags: #efl_main_loop
Maniphest Tasks: T7158
Differential Revision: https://phab.enlightenment.org/D6670
Summary: This gives us basic clipboard handling for MacOS after the refactor was done.
Test Plan:
Open an entry test. select text with mouse or keyboard.
Text can be cut. Text can be copied. Text can be pasted.
Reviewers: ajwillia.ms, zmike, jayji
Reviewed By: zmike
Subscribers: jayji, herdsman, cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6599
Summary:
1. Why there is a edje signal callback in elm_calendar? and do we need to maintain?
We used edje part like a button before (3 years ago?), So there is a callbacks to get edje signal.
Im pretty sure it is not use anymore. but we need to maintain backward compatibility.
2. elm_calendar using using repeat feature in efl_ui_button for it. why did i change it to manual timer?
We opend elm_calendar_interval_set() APIs. Support this API the manual timer is proper then using button's feature.
3. why scroll freeze? and why only elm_calendar does it?
When the user long press calendar button area and then move the scroll will be activated. it can prevent that weird action.
efl_ui_calendar using button's feature. i not sure scroll freeze is deserve to attached in button side as a feature or not.
So i will consider more for this case.
4. Why efl_ui_calendar doesn't have year buttons (double spinner case)
After interface work, we don't accept style change in the runtime. so that featrue will be supported as API.
The year_button_set/get() property should be added. but i dont know is it really needed...
If the app developer want use year inc/dec button for efl_ui_calendar. they can inherit the class and make it easily.
Test Plan:
View, Action, API test in the elementary-test sample App.
Ps. The issue of the calendar2 crash when it closed. It's not relative with this commit. its focus. i will look around.
Reviewers: Hermet, zmike, ManMower, segfaultxavi, devilhorns
Reviewed By: Hermet
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6626
Summary:
windows does not include ecore_signal.c, so this is not a defined symbol
lib/ecore/.libs/lib_ecore_libecore_la-ecore_anim.o: In function `timer_tick_notify':D:\Documents\MSYS2\home\vtorri\gitroot\efl3\src/lib/ecore/ecore_anim.c:372: undefined reference to `exit_signal_received'lib/ecore/.libs/lib_ecore_libecore_la-ecore_anim.o: In function `ecore_animator_custom_tick':D:\Documents\MSYS2\home\vtorri\gitroot\efl3\src/lib/
ecore/ecore_anim.c:940: undefined reference to `exit_signal_received'
ref 6405a5a68c
Reviewers: vtorri, devilhorns
Reviewed By: vtorri
Subscribers: cedric, #committers
Tags: #efl_build
Differential Revision: https://phab.enlightenment.org/D6648
Summary:
there is no point to feeding mouse events
if clipped object is invisible because
previsou/current situation won't be different.
fyi, move events won't be triggered if prev/cur coordinates
are same.
Reviewers: #committers, zmike
Reviewed By: #committers, zmike
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6645
Summary:
this size hints callback is triggered by both list objects and list
item objects, meaning that setting size hints on the item objects during
recalc will trigger a recursive recalc, potentially infinitely
this blocks recursive recalcs unless triggered by size hint changes
from a main list object, since those will eventually resolve themselves
fix T7121
Reviewers: devilhorns, Hermet
Reviewed By: Hermet
Subscribers: netstar, DaveMDS, cedric, #committers
Tags: #efl_widgets
Maniphest Tasks: T7121
Differential Revision: https://phab.enlightenment.org/D6572
Summary:
Silence compilation warning.
There is an ifdef'd block of code which accesses obj but
I don't think it's in use in production?
Test Plan: Build EFL and watch for warning.
Reviewers: #committers, zmike, Hermet
Reviewed By: #committers, Hermet
Subscribers: cedric
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6628
Summary:
"background" and "shadow" part interface was designed to be used in efl
ui interface only.
Therefore, "background" and "shadow" part interface is not used in
legacy.
Test Plan:
Calls elm_object_part_content_set(layout, "background", content); for
legacy layout.
Reviewers: Hermet
Reviewed By: Hermet
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6595
f220f08 introduced this event, however this event never gets raised or
used. I believe this was an accidental inclusion.
'#betabreak'
Reviewed-By: Derek Foreman <derek.foreman.samsung@gmail.com>
A null font set can potentially be stored and passed on. There is no
specific fallback in our codebase to roll-back if something like that
occurs.
This fixes a case where an entry of a null font was not removed from the
fonts_cache and was leaked to subsequent tests (the null font entry was
not removed from the fonts_cache).
Note that this was only apparent when EFL was built with
`--disable-fontconfig`, likely due to fontconfig succeeding to always
retrieve some non-null font.
@fix
Summary:
Using `--disable-magic-debug` defines EINA_MAGIC_CHECK to always
evaluate to `1`. Eina_Binbuf's null-check relied solely on the
EINA_MAGIC_CHECK, and failed to pick up on the cases where `buf` was
passed as NULL. This has led to a segfault when a NULL `buf` was passed
in the test suite (see referenced ticket).
This fix adds an explicit NULL check.
Fixes https://phab.enlightenment.org/T7147
Reviewers: zmike
Reviewed By: zmike
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6592
Summary:
text button don't need to be focused if spinner is non-editable mode.
ref T6798
Test Plan:
1. elementary_test -to spinner
2. Focus second spinner
3. move focus using key.
4. turn on access mode and test 1-3 again.
Reviewers: CHAN
Reviewed By: CHAN
Subscribers: cedric, #committers, zmike
Tags: #efl
Maniphest Tasks: T6798
Differential Revision: https://phab.enlightenment.org/D6581
the efl ui dnd code didn't reset the drop list key to null (deleting
it) once it had freed the list of frop items. this also fixes another
issue in T7113 which causes crashes on exit.
so there are 2 problems behind T7113. first is a problem in the efl
selection manager being "sloppy" with selection data. it's doing a
strlen on the data but it's not a normal c string. it's a blob of
binary data + length value. this fixes that "sloppiness" by using the
len field.
there is also another bug in the dnd test code that again has to do
with "sloppy" handling of data buffers and assuming nul byte
termination and not using the len field properly.
this fixes T7113.
Summary:
when an exit (SIGINT, SIGQUIT, SIGTERM) signal is received, the ui should
immediately stop updating in order to present the user with an instant
response
this uses a simple volatile int to block any ticks which begin after the
signal is received; if a signal is received during a tick then it will complete
normally
fix T7000
Depends on D6589
Reviewers: ManMower
Reviewed By: ManMower
Subscribers: cedric, #committers
Tags: #efl_main_loop
Maniphest Tasks: T7000
Differential Revision: https://phab.enlightenment.org/D6590
Summary:
The last lines in _efl_selection_manager_drop_target_del were skipped
when `!pd->drop_list` was met. These lines clear the selection event
handlers. Thus, events kept firing and causing erratic behavior.
Fixes T7130
Subscribers: cedric, #committers, zmike
Tags: #efl
Maniphest Tasks: T7130
Differential Revision: https://phab.enlightenment.org/D6579
Summary:
elm_fileselector was using efl_ui_widget_state_apply to call for internal chain update.
This internal chain update was relying on efl_ui_focus_object_manager_get, which
results in a wrong value at this time, since the value is still the old one and not the
current one. (This behaviour will be updated after the release). Focus composition
solves this issue by not relying on the properties of efl.ui.focus_object, but rather
take the values from the configuration in the state_apply call.
fix T6147
fix T7105
Reviewers: zmike, stefan_schmidt, segfaultxavi, devilhorns, herdsman
Reviewed By: zmike
Subscribers: herdsman, cedric, #committers
Tags: #efl
Maniphest Tasks: T7105, T6147
Differential Revision: https://phab.enlightenment.org/D6552
Summary:
efl_new(CLASS), i.e., without initializers, never worked before.
The problem is the dangling comma: efl_add_ref(klass, NULL, );
Fortunately the C preprocessor concatenation operator # # has a special
case just for this occasion: When you do A ## B, and A is a comma and B
is empty, it removes also A.
https://gcc.gnu.org/onlinedocs/cpp/Variadic-Macros.html
This trick is already in use in several other EFL headers using variadic macros.
Reviewers: zmike, bu5hm4n, devilhorns, herdsman
Reviewed By: zmike
Subscribers: cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6553
Summary:
Summary
When focus rect move from inc/dec button using keyboard arrow keys, entry show callback is called and focus is set on entry and then text button is hidden. Hiding focus button triggers focus cycle to revert focus on entry, due to which entry gets unfocused callback which subsequently hides entry. So, entry and text button both goes to hidden state. To fix this setting focus on entry after text button is hidden.
Signed-Off By: Prasoon Singh<prasoonsingh16@gmail.com>
Test Plan
Move focus rect from inc/dec button to text button, and observe both text button and entry gets
invisible. Expected behavior is entry should become active.
Test Plan:
Move focus rect from inc/dec button to text button, and obesrve both text button and entry gets
invivible. Expected behaviour is entry should become active.
Reviewers: cedric, CHAN, shilpasingh, zmike
Reviewed By: shilpasingh, zmike
Subscribers: zmike, #committers, govi, rajeshps, jpeg
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D5153
Summary:
When closing the fd handler, it checks if the fd is already closed and prints
an annoying warning: "fd %d closed, can't remove from epoll - reinit!"
We need to close the handler first and then the actual fd.
I am not familiar with this part of the code, but this fix removes the warnings
and does not seems to have adverse effects.
Test Plan: It had warnings before and now it doesn't, haven't observed any other adverse effect.
Reviewers: raster, zmike, devilhorns
Reviewed By: zmike
Subscribers: cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6561
Summary:
Basically, render_pre/post should be called only if rendering happens.
Unfortunately, this behavior had been broken by some mistakes.
As far as I understand after reading history carefully,
this issue introduced for fixing unpair of pre/post cbs.
In case of async render, the post callback would be triggered in
evas_render_pipe_wakeup(), it means POST callbake shouldn't be tiggered in
evas_render_updates_internal(). If that post callback were removed in
evas_render_updates_internal(), then in case of sync_render,
POST callback won't be triggered. So previously, the PRE/POST couldn't get
paired.
I guess cedric put a mistake that nothing2rendering which brought
the pre/post pair issue, even he said that patch fix the unpair of them.
(But actually that patch brought the issue!)
See this: dc841ed9b2
Whatever it was intented or not, that patch totally insane, even
non-descripting.
If we just trigger post cb only if sync render or no_rendered case,
We could make satisfication for both cases.
@fix
Reviewers: #committers, devilhorns, zmike
Reviewed By: #committers, zmike
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6573
Summary:
Before this was erroring. However, this error was not reporting a bad
situation, thus there is no need to error. This patch fixes errors on
the Popup test when scrollable is set to 1.
Reviewers: devilhorns, zmike
Reviewed By: zmike
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6560
Summary:
alpha prevents an opaque bg, so ensure that this is being correctly
detected
worth noting here is that the eo api for win calls through _elm_win_standard_init()
during finalize which ensures that need_bg_solid is set; the legacy api
does not call this during "normal" construction
fix T7129
Depends on D6568
Reviewers: devilhorns
Subscribers: cedric, #committers
Tags: #efl
Maniphest Tasks: T7129
Differential Revision: https://phab.enlightenment.org/D6569
Summary:
when applying alpha in a non-composited environment, shaped should be
set. when removing alpha in a non-composited environment, shaped should
be unset if it has not previously been explicitly set
@fix
Reviewers: devilhorns
Subscribers: cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6568
Summary: the key structure has two fields key and keyname, those should be identical to the keystructures from x. the method xkb_keysym_to_utf8 however returns different values for keys like "minus" thus only relying on xkb_keysym_name files this issue.
Reviewers: eagleeye, devilhorns
Reviewed By: eagleeye
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6520
Summary:
Trying to delete a file from a creation notification callback can
fail. Sometimes the eio model test would sit forever in select()
waiting for events that will never occur because of this.
This happens since d84a268a71 broke
deleting of files that haven't yet been assigned a type. Before
this commit a delete_me flag would be set before attempting to
build a stat buf asynchronously, and then on completion the file
would be deleted.
I think this was changed because that could potentially race with
other async calls and delete the file sooner than expected. So
instead of reverting I've made a special delete path that shouldn't
race with non-delete paths.
Reviewers: devilhorns, zmike
Reviewed By: zmike
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6543
Summary:
The implementation calls efl_ui_pan_xxx on what was assumed to be any
Efl.Canvas.Object. This changes the type to be Efl.Ui.Pan.
Also, reordered headers due to the introduced dependency.
Reviewers: devilhorns, Hermet
Reviewed By: Hermet
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6536
Summary:
these objects are destroyed when invalidate is called as a result of the
evas smart object class destroying the smart object at this time
ref D6222
Reviewers: bu5hm4n, devilhorns
Subscribers: cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6540
Summary:
These three classes have essentially the same API, just different
underlying data types. This patch seeks to improve the docs for all
three while retaining or improving the consistency between them.
Several functions had completely incorrect documentation (looks like
cut-and-paste mistakes), others had missing or incorrectly named
parameter documentation, typographical errors, or other similar issues.
This also cleans up a lot of spelling and grammar errors, defines return
values as part of @return, and reformats/revises doxygen code for
consistency.
There are no changes to code, except some whitespace cleanup.
Reviewers: devilhorns
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6544
Summary:
if not, things are going to fall apart, as manager_top then can be NULL
or invalid. Top has to be a window element, if this is not the case,
then the widget tree of the given widget is dangling somewhere in the
void. Calculating the next object in there or even the active manager
will result in errors, since the active manager is not really the active
manager, but rather just a manager object somewhere in a danging widget
subtree.
Moving the focus into such a dangling widgettree might result in a stuck
focus rect on this object, since the DFS of the focus manager
implementation cannot backtrack anymore into the widgets that are still
part of the widget graph.
Depends on D6531
Reviewers: devilhorns, segfaultxavi, zmike
Reviewed By: segfaultxavi
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6532
Summary:
elm_object_focus_next was not working correctly for objects where obj is
not the focused object.
fix T5940
Reviewers: devilhorns, segfaultxavi, zmike, stefan_schmidt
Reviewed By: segfaultxavi
Subscribers: cedric, #committers, zmike
Tags: #efl
Maniphest Tasks: T5940
Differential Revision: https://phab.enlightenment.org/D6531
Summary:
This one is rather harmless, as the NULL returned by this fuction is handled
correctly in all places, but this commit removes the runtime warning.
ref T7030
Test Plan: After this commit the warning disappears. Got the warning with win_example.
Reviewers: zmike, bu5hm4n, devilhorns
Reviewed By: devilhorns
Subscribers: netstar, cedric, #committers
Tags: #efl
Maniphest Tasks: T7030
Differential Revision: https://phab.enlightenment.org/D6538
Summary:
It seems this function is no longer used since some rework. Clean it up.
lib/eina/eina_thread_queue.c:127:1: warning: ‘_eina_thread_queue_msg_block_real_free’ defined but not used [-Wunused-function]
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6537
Summary:
gcc somehow didn't notice this until an unrelated use of the variable
later was removed. Now it's a warning.
Depends on D6523
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6524
Summary:
This is now totally trivial and needs not exist.
Depends on D6522
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6523
Summary:
There's no benefit to generating ids instead of just using the
Ecore_Wl2_Window pointer in events.
This has the added benefit of working around a really nasty hash collision
bug when multiple ecore_evas engines are used at once.
ref T7053
ref T6222
@beta_break
Depends on D6521
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #committers, zmike
Tags: #efl
Maniphest Tasks: T7053, T6222
Differential Revision: https://phab.enlightenment.org/D6522
this previously used an entire eina prefix to determine where to find
efreetd, when a simpler approach would have been to just pass the directory
where it's being installed
this also inhibited running the correct efreetd during in-tree builds and tests,
as it was using the install prefix instead of the in-tree wrapper script
@fix
fix T6713
Differential Revision: https://phab.enlightenment.org/D6516
this is located in the bin/ecore_con directory, not bin/ecore_con/utils,
so ensure that we pass the correct path in order to avoid not finding the
file
@fix
ref T6713
Differential Revision: https://phab.enlightenment.org/D6515
Summary:
Some ecore_evas such as ecore_evas_extn_plug doesn't have evas.
ecore_evas_extn_plug seems to be Ecore_Evas, but actually it is Evas_Object_Image.
ecore_evas_extn_plug makes new ecore evas, but it only exists to communicate with ecore_evas_extn_socket.
newly ecore evas only open and close file(ecore_evas_extn_socket). so it doesn't have evas.
```
EAPI Evas_Object *
ecore_evas_extn_plug_new_internal(Ecore_Evas *ee_target)
{
...
ee = calloc(1, sizeof(Ecore_Evas));
...
o = evas_object_image_filled_add(ee_target->evas);
...
return o;
}
```
Reviewers: zmike, Hermet, woohyun, raster, devilhorns
Reviewed By: zmike
Subscribers: cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6504
Summary:
an evas may or may not have a parent; this is legacy api and it's all
confusing
Reviewers: bu5hm4n, devilhorns
Reviewed By: bu5hm4n
Subscribers: cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6486
Summary:
This mirrors the focus property from the notify to the one from popup.
This is needed to establish legacy behaviour, as earlier popup was able to get focus.
ref T6707
Depends on D6510
Reviewers: zmike, devilhorns
Reviewed By: zmike
Subscribers: cedric, #committers
Tags: #efl
Maniphest Tasks: T6707
Differential Revision: https://phab.enlightenment.org/D6511
Summary:
this object takes a internal dummy object, and thus the properties
should be mirrored to the real root.
The focus property on the root of the manager is required that the outer world really sees that the focus is on the root or not.
Depends on D6506
Reviewers: zmike, devilhorns
Reviewed By: zmike
Subscribers: cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6510
Summary:
this should only happen if the user has made a mistake regarding the
existence or type of an object, so ensure that an error message occurs to
help debug any failures which result
fix T6326
Reviewers: bu5hm4n, Hermet, woohyun, devilhorns
Reviewed By: Hermet
Subscribers: cedric, #committers
Tags: #efl
Maniphest Tasks: T6326
Differential Revision: https://phab.enlightenment.org/D6322
Summary:
Define return values as part of @return.
Clarify that the returned list of files are gnuplot filenames specifically.
Cleanup grammar throughout.
Reviewers: zmike, devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6502
Summary:
using runtime directory in all cases for this is wrong, as ecore-con has a number
of fallback codepaths for the case where runtime directory is not set or not valid.
by using the same ecore-con function which ecore-ipc uses to generate the socket
string, the error message path should always be the same as the path which is
used by efreetd
extra linkage was required by efreet in order to use ecore-con functions, so
the internal lib variable in the build system was modified to provide this
@fix
fix T7045
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #committers
Tags: #efl
Maniphest Tasks: T7045
Differential Revision: https://phab.enlightenment.org/D6425
Summary:
in the course of the efl-net rewrite, the previous relied-upon behavior
sequence of error -> disconnect -> del was broken, and error events no
longer triggered disconnects or server deletion.
the failure was caused by a check for the 'connecting' flag, preventing
DEL events from being triggered
further, the ordering of the events was flipped from ERROR -> DEL to
DEL -> ERROR; this is also fixed now
this caused any failed connection to leak the entire server connection
since existing handlers for the del event were never triggered and the
server was never destroyed
@fix
fix T6330
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #committers
Tags: #efl
Maniphest Tasks: T6330
Differential Revision: https://phab.enlightenment.org/D6481
Summary:
these selections are data with specified lengths, not strings
Depends on D6483
Reviewers: devilhorns, bu5hm4n
Subscribers: bu5hm4n, netstar, cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6484
Summary:
a selection manager is application-wide, not per-window. creating separate
managers for each window duplicates all callbacks for the window's display
server, guaranteeing broken behavior at any time when more than one window
exists
fix T6937
Reviewers: bu5hm4n, devilhorns
Subscribers: cedric, #committers
Tags: #efl
Maniphest Tasks: T6937
Differential Revision: https://phab.enlightenment.org/D6483
when debugging was active, this would frequently result in the monitor thread
blocking in a read() call for a fd which had already been closed by the main
thread. the main thread would be waiting for the monitor thread to fail its read()
and destroy itself, but the read() would never end without an interrupt
this reworks the monitor thread destruction to stop relying on the thread to
remove its session from the session list and instead only access the list from
the main thread, allowing sessions to always be immediately destroyed
fix T7103
This fixes the following backtrace
#5 0x00007ffff4ee87d0 in efl_ui_focus_manager_root_get (obj=0x0) at lib/elementary/efl_ui_focus_manager.eo.c:17
#6 0x00007ffff4ef50cb in _efl_ui_focus_layer_enable_set (obj=0x40000004adfe, pd=0x12fde40, v=0 '\000') at lib/elementary/efl_ui_focus_layer.c:127
#7 0x00007ffff4ef52dd in efl_ui_focus_layer_enable_set (obj=0x40000004adfe, v=1 '\001') at lib/elementary/efl_ui_focus_layer.eo.c:4
#8 0x00007ffff4ef4df0 in _efl_ui_focus_layer_efl_gfx_entity_visible_set (obj=0x40000004adfe, pd=0x12fde40, v=1 '\001') at lib/elementary/efl_ui_focus_layer.c:35
#9 0x00007ffff0f366a3 in efl_gfx_entity_visible_set (obj=0x40000004adfe, v=1 '\001') at ../src/lib/efl/interfaces/efl_gfx_entity.eo.c:15
#10 0x00007ffff5d832bb in evas_object_show (eo_obj=0x40000004adfe) at lib/evas/canvas/evas_object_main.c:1917
#11 0x00007fffcc365c74 in _bar_icon_preview_show (data=0xfaa7e0) at ../src/modules/luncher/bar.c:906
#12 0x00007ffff6d4305a in _ecore_call_task_cb (func=0x7fffcc36549c <_bar_icon_preview_show>, data=0xfaa7e0) at lib/ecore/ecore_private.h:442
#13 0x00007ffff6d434d2 in _ecore_timer_legacy_tick (data=0x12ca950, event=0x7ffffffc57c0) at lib/ecore/ecore_timer.c:160
#14 0x00007ffff0d06e90 in _event_callback_call (obj_id=0x4000001f25b2, pd=0x923820, desc=0x7ffff6f673e0 <_EFL_LOOP_TIMER_EVENT_TICK>, event_info=0x0, legacy_compare=0 '\000') at lib/eo/eo_base_class.c:1671
#15 0x00007ffff0d07162 in _efl_object_event_callback_call (obj_id=0x4000001f25b2, pd=0x923820, desc=0x7ffff6f673e0 <_EFL_LOOP_TIMER_EVENT_TICK>, event_info=0x0) at lib/eo/eo_base_class.c:1755
#16 0x00007ffff0d07208 in efl_event_callback_call (obj=0x4000001f25b2, desc=0x7ffff6f673e0 <_EFL_LOOP_TIMER_EVENT_TICK>, event_info=0x0) at lib/eo/eo_base_class.c:1758
#17 0x00007ffff6d4478e in _efl_loop_timer_expired_call (obj=0x4000000003dc, pd=0x890bf0, when=333436.894054887) at lib/ecore/ecore_timer.c:634
#18 0x00007ffff6d445bd in _efl_loop_timer_expired_timers_call (obj=0x4000000003dc, pd=0x890bf0, when=333436.894054887) at lib/ecore/ecore_timer.c:587
#19 0x00007ffff6d0b423 in _ecore_main_loop_iterate_internal (obj=0x4000000003dc, pd=0x890bf0, once_only=0) at lib/ecore/ecore_main.c:2317
#20 0x00007ffff6d08e66 in _ecore_main_loop_begin (obj=0x4000000003dc, pd=0x890bf0) at lib/ecore/ecore_main.c:1175
#21 0x00007ffff6d11757 in _efl_loop_begin (obj=0x4000000003dc, pd=0x890bf0) at lib/ecore/efl_loop.c:83
#22 0x00007ffff6d13e6e in efl_loop_begin (obj=0x4000000003dc) at lib/ecore/efl_loop.eo.c:28
#23 0x00007ffff6d08fe0 in ecore_main_loop_begin () at lib/ecore/ecore_main.c:1248
#24 0x000000000054817c in main (argc=2, argv=0x7fffffffdc78) at ../src/bin/e_main.c:1090
fix T7034.
Differential Revision: https://phab.enlightenment.org/D6492
there is actaully no need to add the event, we can cleanup the pointer
in the invalidate call. Further more, the event was executed before the
method, thus checks against more_item failed because that was already
NULL. The result have been error messages, this fixes the error.
Differential Revision: https://phab.enlightenment.org/D6496
'more' should indicate when a more item is needed, this is needed if one
item is set to visibility false, thus checking this here is required.
#FocusBug
fix T6806
Differential Revision: https://phab.enlightenment.org/D6495
according to 09d3d5b85a elm scale should
be ignored. However, setting no_scale breaks efl_ui_bg as no_scale
disables scale types, which are required to work.
fix T7080
Differential Revision: https://phab.enlightenment.org/D6494
orientation no_scale etc. can have impact on the min max calculation.
Thus that should be called on every property set.
ref T7080
Differential Revision: https://phab.enlightenment.org/D6493
This improves the results from the graph calculations.
Everything is documented in the comments.
The genlist of focus 6 is placed in a way that the button
at the top is not in reach, before we only had lvl1 and lvl2
(as described in the code comment), thus the button was only
reachable via right not via top. lvl3 makes it accessable
via top AND right.
fix T7098
Differential Revision: https://phab.enlightenment.org/D6491
Summary:
It was only happened when legacy newline is enabled. By default,
legacy newline is enabled. As I know, legacy newline option has
to change textblock's internal behavior. But, it shouldn't change
the given original text. It fixes T3399.
Test Plan: A Test case is included in Evas test suite.
Reviewers: Jaehyun_Cho, z-wony, tasn, woohyun, herdsman, Blackmole, devilhorns
Subscribers: #committers, zmike, raster, cedric, jpeg
Tags: #efl
Maniphest Tasks: T3399
Differential Revision: https://phab.enlightenment.org/D3874
Summary:
a adapter is used whenno real widget is created during realization, when
a adapter is used, the parent cannot be fetched via
elm_widget_parent_get, there we need efl_parent_get
Reviewers: ManMower, devilhorns, stephenmhouston, zmike, Hermet
Reviewed By: Hermet
Subscribers: Hermet, cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6339
The ellipsis item was tracked so it can be inserted at the correct
position. It was not cleared properly, leading to a randomly failing
test suite.
Actually, it seems that there is no need to even store the ellipsis item
as the object data, so it was also moved to be in the layout context,
instead.
A special shoutout to ManMower for lending me his machine, as the test
suite didn't fail on mine.
Fixes T6986
@fix
Summary:
fallbacks string also has to be compared to load proper fdesc.
If a font which does not have fallback fonts is loaded,
fallback fonts can't be appended to the same font.
@fix
Reviewers: tasn, woohyun, herdsman, zmike, devilhorns
Reviewed By: herdsman
Subscribers: #committers, zmike, raster, Blackmole, z-wony, cedric, jpeg
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D3707
Summary:
When multiple fallback fonts was passed to evas_font_load(),
the while loop could run forever. I think it is never tested.
@fix
Test Plan:
Set the following textblock style and set it to a textblock object.
"font=Sans font_fallbacks=Ubuntu,Inconsolata,BlahBlah font_size=..."
Run and see application is in stuck.
Reviewers: tasn, woohyun, herdsman, devilhorns
Subscribers: #committers, zmike, raster, Blackmole, z-wony, cedric, jpeg
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D3703
Summary:
_manager_in_chain_set is not needed to be called if the focus property
is already correct. If a manager is moved out of the redirect property,
then the focus is dropped completly
Reviewers: ManMower, devilhorns, zmike, stephenmhouston
Reviewed By: zmike
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6338
Summary:
this relation can be retrieved with eet_node_parent_get() but is never
set internally
fix T4600
@fix
Reviewers: artem.popov, devilhorns, Hermet, vtorri
Reviewed By: Hermet
Subscribers: Hermet, cedric, #committers
Tags: #efl
Maniphest Tasks: T4600
Differential Revision: https://phab.enlightenment.org/D6336
Summary:
Legacy widget is elm/clock, and the new one is efl/uiclock.
There does not exist a legacy elm/uiclock.
This also reverts commit 20404d79d4
(elm_datetime, efl_ui_clock : Add check 'legacy widget' for layout signal emission)
Since there is no need to check for legacy versions of uiclock.
Ref T6965
Reviewers: devilhorns, zmike
Reviewed By: zmike
Subscribers: cedric, #committers, zmike
Tags: #efl
Maniphest Tasks: T6965
Differential Revision: https://phab.enlightenment.org/D6450
Summary:
You think elm_widget_top_get returns a window object ? Oh no! For the
case that the widget tree splits, and the widget_parent gets NULL of
some widget in the chain, elm_widget_top_get returns where the NULL
reference is placed.
For the case of elm_notify this is somehow intended, as the notify does
not have a parent when the parent is deleted.
ref T7090
Reviewers: netstar, zmike, devilhorns
Reviewed By: zmike
Subscribers: cedric, #committers
Tags: #efl
Maniphest Tasks: T7090
Differential Revision: https://phab.enlightenment.org/D6471
Summary:
a common use case is for a class to be constructed during a thread+mainloop
sync (e.g., ecore_thread_main_loop_begin() ecore_thread_main_loop_end())
and then naturally destroyed in the main thread during shutdown
ref 023a9ca2ee
Reviewers: bu5hm4n, devilhorns
Reviewed By: bu5hm4n
Subscribers: cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6472
Summary:
Ok, this was started from a bug that canvas getting not be updated.
If map is just disabled, at least one frame in the map region should be redrawn
So I added a condition 'map changed' in the render even though map is off
status. Now, I got a performance regression issue because it makes dirty
region is always true for the map object.
That is a corner case acutally, that object is not rendered but map still
have changed status.
I replaced the condition only if object is changed + map is changed.
At least, my test case works better with this patch.
@fix T6975
Reviewers: #committers, ManMower, devilhorns
Reviewed By: #committers, ManMower
Subscribers: ApB, ManMower, cedric, #committers, zmike
Tags: #efl
Maniphest Tasks: T6975
Differential Revision: https://phab.enlightenment.org/D6429
Summary:
these separate inits and shutdowns make it impossible to effectively control
ecore's lifetime which makes evas_shutdown unreliable as objects may be
destroyed at any point
ref T7052
Depends on D6475
Reviewers: ManMower, devilhorns
Reviewed By: ManMower, devilhorns
Subscribers: cedric, #committers
Tags: #efl
Maniphest Tasks: T7052
Differential Revision: https://phab.enlightenment.org/D6476
Summary:
ecore_shutdown will trigger object deletions which require common
components to still be active in order to avoid crashes
ref 3433be343779424c5e030ace30e211298cd060f8
ref T7052
Reviewers: ManMower, devilhorns
Reviewed By: ManMower, devilhorns
Subscribers: cedric, #committers
Tags: #efl
Maniphest Tasks: T7052
Differential Revision: https://phab.enlightenment.org/D6475
Summary:
We should only ever have a pos of 1.0 once, the current terminal
condition gives the impression that it might be possible to have
more than one 1.0 firing.
This would break a lot of code.
No functional change intended.
Depends on D6464
Reviewers: devilhorns, zmike
Reviewed By: zmike
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6465
Summary:
The variable "clean_them" can only ever be EINA_FALSE for much of this
function, but using it as a return value ensures that anyone not
intimately familiar with the code will have to read a lot of code
to figure out that this is so.
Instead, return EINA_FALSE up until the point clean_them can actually
be something else.
No functional change.
Reviewers: devilhorns, zmike
Reviewed By: zmike
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6464
emitting events if the delete_me flag is set may result in events being emitted
for an already-freed monitor, resulting in both invalid memory access and a
deadlock later on if eio_shutdown has been called at this point
this causes the monitoring thread to check the status of the backend during the
block where the main loop and thread are in sync, avoiding any data races which
could occur when checking the flag at another time, and also avoiding accessing
the internals of the Ecore_Thread which could also have been deallocated during
shutdown
fix T7086
Differential Revision: https://phab.enlightenment.org/D6449
the fallback method of calling stat() on the monitored paths does not allow
for various eio events to be emitted, meaning that any application which relies
on those events can never receive them
this provides a method for checking a monitor to determine which functionality
is available, and also provides more explicit documentation regarding events
that are not provided by fallback monitoring
this method is marked as beta
@feature
Differential Revision: https://phab.enlightenment.org/D6447
for some reason, the fallback thread would exit -> create timer ->
create idler -> create thread; the existence of the idler makes little
sense and introduces variability in the timer interval
@fix
Differential Revision: https://phab.enlightenment.org/D6441
threads should not be waited on here during shutdown since these same
threads may be waiting on the main loop anyway
instead, perform as much deallocation as possible,
mark the monitor as deleted, and then set the thread to canceled and
allow the thread to clean itself up during its cancel/end callback
@fix
Differential Revision: https://phab.enlightenment.org/D6440
this avoids the case where the main loop is waiting on a thread
and that same thread is waiting on the main loop
@fix
Differential Revision: https://phab.enlightenment.org/D6438
if a thread is actively waiting on the main loop in order to proceed
with its exit, a flush here avoids the case where the thread waits
until the main loop has exited
Differential Revision: https://phab.enlightenment.org/D6437
since this is now a smaller wait interval, looping more times helps
ensure success for threads which have longer blocking operations
between lifetime checks
Differential Revision: https://phab.enlightenment.org/D6436
Summary:
When we add a plane we need to add it to the list before doing the atomic
test to ensure we're testing new state that includes the plane, and to
ensure the next screen update includes the plane we just added.
Fix T7066
Reviewers: devilhorns
Subscribers: cedric, #committers, zmike
Tags: #efl
Maniphest Tasks: T7066
Differential Revision: https://phab.enlightenment.org/D6432
Summary:
This reverts commit e0f8e65d20 which changed the
behavior of eina_stringshare_nprintf() and was not really needed to fix T6903.
Reviewers: zmike, Jaehyun_Cho, devilhorns
Reviewed By: zmike
Subscribers: cedric, #committers
Tags: #efl
Maniphest Tasks: T6903
Differential Revision: https://phab.enlightenment.org/D6431
Summary:
What happened before is that we registered efl_ui_leyout_legacy for
"elm_layout", which is not that good, since checking a (lets say) elm_button, for the type "elm_layout" would result in false. The same is with elm_button.
fixes T7081
Reviewers: devilhorns, zmike
Reviewed By: zmike
Subscribers: cedric, #committers, zmike
Tags: #efl
Maniphest Tasks: T7081
Differential Revision: https://phab.enlightenment.org/D6430
Summary:
I typod this in 14ae3e3dec and when using
mempools other than chained, this probably caused all apps to crash on
shutdown
Reviewers: ManMower, devilhorns
Reviewed By: ManMower
Subscribers: cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6428
Summary:
now that ecore accurately waits on all threads while exiting, this
loop needs to run much more frequently in order to avoid waiting for
an unreasonably long time when exiting
Reviewers: ManMower, devilhorns
Reviewed By: ManMower
Subscribers: cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6427
these threads are still managed by the main loop, meaning they must be
accounted for so that they can be waited on if necessary during shutdown
this resolves some issues where ecore-con threads would persist after the
main thread had exited or called ecore_shutdown
@fix
fix T7041
this is the final version of the patch and not the mangled version which
was previously committed
Differential Revision: https://phab.enlightenment.org/D6354
Summary:
somehow backtrace() is able to generate EINVAL in certain cases even though
this is not documented anywhere. these irrelevant errors should not be noticed
by users of the api during debugging, as this can cause some tests/apps to
randomly fail without explanation
@fix
Reviewers: ManMower, devilhorns
Reviewed By: ManMower
Subscribers: cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6377
Summary:
in the case where the first render took far longer then the specified
shot interval, this would end up recording garbage since there was nothing
drawn yet
@fix
fix T6929
Reviewers: bu5hm4n, JackDanielZ, devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #committers
Tags: #efl
Maniphest Tasks: T6929
Differential Revision: https://phab.enlightenment.org/D6426
Summary:
based on the codepaths taken when setting text to a part, a recalc should
only be necessary when returning markup from a textblock, and this is only
the case because the function returns a non-allocated string
in the case where the object is textblock and (legacy || not fetching markup),
the current text is guaranteed to be set on this pointer. the reason a
recalc is necessary for the markup case is because edje TEXTBLOCK parts only
set text to the internal textblock during a recalc, meaning that attempting
to fetch text on a just-set part will fail; this does not mean that the internal
textblock object doesn't exist, only that the text has not yet been set to it
Depends on D6422
Reviewers: herdsman, devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6423
Summary:
this adds perf overhead in order to work around a bug in text_get
all part objects are instantiated during edje_object_file_set, and forcing
a recalc here does nothing more than perform unnecessary operations
ref 8f95b17f39
ref D6365
Reviewers: herdsman, devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6422
Summary:
this changes the explicit pthread usage (and reimplementation of eina_thread_create)
to just use eina function calls. it also causes the thread to start and stop when
profiling is enabled and resolves some possible errors which could occur after
a fork or when trying to compile under windows
pthread usage: this code appears to have been 100% copied from eina_thread.c, and it
isn't clear to me why existing eina_thread api was not used. this has no functional
benefit, but it makes the code more readable
thread lifetime: there is no need to have a thread running at all times for a feature
which will be rarely used and which must be explicitly enabled by the user
windows: this file previously generated a lot of compiler warnings from unused functions
and variables since nothing here is available under windows. the entire file is now
a giant #ifndef _WIN32 to avoid any compile warnings or unexpected runtime behavior
fix T7055
Depends on D6371
Reviewers: ManMower, vtorri, devilhorns
Reviewed By: ManMower
Subscribers: cedric, #committers
Tags: #efl
Maniphest Tasks: T7055
Differential Revision: https://phab.enlightenment.org/D6372
this resolves some invalid read/write operations between threads without locking
and also attempts to improve thread-related behavior after fork() calls
ref T7027
Differential Revision: https://phab.enlightenment.org/D6370
Summary:
previously this used to mean 'the number of ms that a lock can wait for
until abort() is called once the lock is acquired' and it was useful
when trying to find contention issues with locks
unfortunately this required a bit of reading into the code to determine,
and it made the common case of setting values to 1 fail in some cases,
as this is a very short amount of time. also the documentation explicitly
gives '1' as an example setting for this variable, which will cause immediate
abort() in most cases when debugging was enabled since things are much slower
this variable now is the number of usec that a lock can wait for before abort()
is called, and the lowest value that will be checked for abort()ing is 100, meaning
that '1' is valid again
Depends on D6375
Reviewers: ManMower, devilhorns
Reviewed By: ManMower
Subscribers: cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6376
Summary:
when debugging thread issues, it's not actually helpful to immediately
deadlock--this defeats any attempt at debugging. instead, call trylock first
in order to detect a possible deadlock and then throw an error which can be
caught by the user
Depends on D6374
Reviewers: ManMower, devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6375
Summary:
After a44697c37a, we can register same ecore_evas
to ecore_evases using ecore_evas_input_event_register.
(ecore_evas_input_event_register -> ecore_evas_done -> _ecore_evas_register)
This can make infinite loop in EINA_INLIST_FOREACH(ecore_evases, ee) because
next inlist of ecore_evases is ecore_evases after double call of
_ecore_evas_register.
This patch prevent it.
Test Plan:
Ecore_Evas *ee = ecore_evas_new(NULL, 0, 0, 800, 600, NULL);
ecore_evas_input_event_register(ee);
(part of document of ecore_fb_input_device_window_set)
Check that there is no infinite loop
Reviewers: zmike, devilhorns
Reviewed By: zmike
Subscribers: cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6390
Summary:
if the user or system attempts to cancel this thread then it should
stop blocking and exit in order to avoid potentially exiting after
efl has expected ecore-con to stop being active
@fix
fix T7041
Depends on D6354
Reviewers: ManMower, devilhorns
Reviewed By: ManMower
Subscribers: cedric, #committers
Tags: #efl
Maniphest Tasks: T7041
Differential Revision: https://phab.enlightenment.org/D6355
these threads are still managed by the main loop, meaning they must be
accounted for so that they can be waited on if necessary during shutdown
this resolves some issues where ecore-con threads would persist after the
main thread had exited or called ecore_shutdown
@fix
fix T7041
Differential Revision: https://phab.enlightenment.org/D6354
there's no need to reimplement mempools here when we already have a great
mempool api
this makes the code slightly more readable
Differential Revision: https://phab.enlightenment.org/D6353
recent changes added unlocks for these mutexes in some other places, so only
do the unlocks where necessary
fix T7020
Depends on D6356
Differential Revision: https://phab.enlightenment.org/D6357
Summary:
ensure that everything stays in the allowed and previously used ranges.
The enums that are passed here are not equivalent.
Depends on D6383
Reviewers: devilhorns, zmike
Reviewed By: zmike
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6384
Summary:
ensure that everything stays in the allowed and previously used ranges.
The enums that are passed here are not equivalent.
Depends on D6382
Reviewers: devilhorns, zmike
Reviewed By: zmike
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6383
Summary:
ensure that the signal is correctly composed.
For the case that the eina value is carrying a error, then we just error
out.
Depends on D6378
Reviewers: devilhorns, zmike
Reviewed By: zmike
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6379
Summary:
unreffing too often is not good. However, its definitly not a critical
error. Most of the wikipedia articles (*) that are speaking about ciritcal or
fatal errors are highlighting that no reasonable recovery can be done.
In our case a recovery is not even needed, due to our pointer safety we
dont need to recover anything since the refcounting safed us from doing
something stupid.
ref T6987.
Depends on D6384
Reviewers: zmike, segfaultxavi, devilhorns
Reviewed By: zmike
Subscribers: cedric, #committers
Tags: #efl
Maniphest Tasks: T6987
Differential Revision: https://phab.enlightenment.org/D6385
Summary:
parent_container should have eina_false as given null parent
in order to avoid call vg_node_changed() for parent.
Reviewers: #committers, devilhorns, zmike
Reviewed By: #committers, zmike
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6387
In case of Bryce's style, there are no scroll bars.
this avoids errors for non-existent objects
ref T7030
Signed-off-by: Mike Blumenkrantz <zmike@samsung.com>
Differential Revision: https://phab.enlightenment.org/D6317
Summary:
casting here is safe, as before we check and return on size < 1.
Depends on D6379
Reviewers: devilhorns, Hermet
Reviewed By: Hermet
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6380
Summary:
the function can be regained by reverting this.
Depends on D6381
Reviewers: devilhorns
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6382
Summary:
we are comparing to unsigned number, and the number are moving strongly
from 0 up.
Depends on D6380
Reviewers: devilhorns
Subscribers: Hermet, cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6381
Summary: this callback is triggered on the parent object. invalidated objects have no parent.
Reviewers: bu5hm4n, devilhorns, Hermet
Reviewed By: Hermet
Subscribers: Hermet, cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6335
efl_ui_focus_composition_prepare() methods in 2 widgets were modifying
the list (removing items) as they walked, using unsafe walking macros.
fix - use the safe variants.
rage window with no file passed ended up like 10x40 ... which is
wrong. it wasn't. rage code explicitly resizes the window before show
and this wsas being overriden. tested rage, terminology, em test in
both x and wl. all still work (for me) post commit.
these headers are not available on all platforms (e.g., windows) and so
the corresponding #ifdef checks must be used in order to correctly include
them
ref 1adb73cef8
ref T5725
fix T7063
Differential Revision: https://phab.enlightenment.org/D6369
Summary:
the previous patch which improved this code for x86 archs broke compiling
for non-x86 and, coincidentally, for windows builds on x86 due to some
unusual #ifdef blocks
this attempts to restore handling on non-x86 and adds additional #ifdefs for
functions which did not build on windows due to removed code
ref 6b1ab3cd9c
Reviewers: ManMower, devilhorns
Reviewed By: ManMower
Subscribers: cedric, #committers
Tags: #efl
Maniphest Tasks: T7062
Differential Revision: https://phab.enlightenment.org/D6368
Summary:
There are many calls to `_edje_real_part_recursive_get`. Though, it is
not guaranteed that the Edje object had instantiated all of the real
parts.
This change makes edje to always recalc before retrieving the real part.
The D6364 patch raised a good point, but presented a local fix, where
it seems that a global fix such as this is needed, instead.
The local fix is removed in favor of this. Test suite still passes.
ref T7057
@fix
Test Plan: See T7057
Reviewers: devilhorns
Subscribers: cedric, zmike, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6365
Summary:
We track list presence already, so we can just do a boolean test instead
of an O(n) lookup.
Depends on D6349
Reviewers: devilhorns
Reviewed By: devilhorns
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6350
Summary:
Some changes broke really basical function behavior of text.
I couldn't get text from an edje object which I just set to the given edje object.
In the past code, edje called recalc function before trying to get text.
So, this patch bring that code to fix this issue.
@fix
Test Plan: Included. Run "make check"
Reviewers: herdsman, raster, cedric, woohyun, devilhorns
Subscribers: #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6364
By keeping track of whether a node is on the dirty list or not we can
save ourself list walks trying to remove items that aren't present.
Differential Revision: https://phab.enlightenment.org/D6349
Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
This reverts commit 0d91088d0f.
It also includes a workaround for OSX where RT signals aren't
supported due to kernel age (too old a fork of freebsd). fixes D6310
and T7029
Summary:
The 'if' block should only be executed when the string contains the colon and
something else behind, but sscanf cannot be used in this case.
If the string contained no colon, the following line with strchr(s, ':')
returns NULL and everything explodes.
Test Plan: eo_debug -l now works for me without segfaulting.
Reviewers: bu5hm4n, zmike, devilhorns, q66
Subscribers: cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6347
Fixing issue with modifier keys on MacOS. These events were missing
window information. Tested with Fyne.io. Window ID and keyname
are valid. See: http://bogosys.org/images/fyne_OSX.png. Thanks
zmike for initial investigation.
@fix T6944
This include is necessary according to POSIX. Without it, build
fails on certain platforms (QNX). It may already be included
implicitly in some of those files, but declare intent.
Fixes T6667.
gengrid item view is managed by cache while scrolling,
but efl_wref_add/del and VIEW_ADD is not paired well.
this commit is fixing the issue of item dispearing when it scrolls.
Signed-off-by: SangHyeon Lee <sh10233.lee@samsung.com>
Summary:
API parts require namespacing, these parts have been namespaced with
compatibility code added to handle legacy naming
Reviewers: cedric, Hermet, devilhorns, stephenmhouston
Subscribers: segfaultxavi, Hermet, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6213
Summary:
A call to efl_data_Scope_get is actually quite dangerous,
efl_data_scope_get will return a pointer to a 0 sized segment in memory,
this is happening based on how the class data is organized. So in theory
you could use this pointer and accidently write to it. This resolves
this issue.
Reviewers: devilhorns, zmike
Reviewed By: zmike
Subscribers: cedric, #committers, zmike
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6337
On some systems the TLS_client/server_method() is not available.
Using fallback. In time as openssl changes propagate this really
shouldn't be necessary.
Summary:
if profiling is not enabled then reaching this signal handler will always
result in a crash
moreover, the signal handler has no functional value if profiling is not active,
so do not add it until that point
fix T7028
@fix
Depends on D6311
Reviewers: ManMower, devilhorns
Reviewed By: ManMower
Subscribers: cedric, #committers
Tags: #efl
Maniphest Tasks: T7028
Differential Revision: https://phab.enlightenment.org/D6312
Summary:
ensure that this occurs as expected when forks happen
note that this is already being actively tested in the elm unit tests
Depends on D6307
Reviewers: ManMower, devilhorns
Reviewed By: ManMower
Subscribers: cedric, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D6308
fork() kills this entire subsystem and leaves its internals
in an inactive but allocated state, so it's necessary to explicitly restart
everything in order to guarantee behavior
@feature
Differential Revision: https://phab.enlightenment.org/D6307
this should not remain active after eina has been deactivated, so ensure
that everything stops as expected
ref T7019
Differential Revision: https://phab.enlightenment.org/D6306
this should not remain active after eina has been deactivated, so ensure
that everything stops as expected
ref T7019
Differential Revision: https://phab.enlightenment.org/D6305
this should not remain active after eina has been deactivated, so ensure
that everything stops as expected
ref T7019
Differential Revision: https://phab.enlightenment.org/D6304
this basically breaks all thread usage if it happens, so ensure that the
threads infrastructure stays active for as long as eina is active
@fix
Differential Revision: https://phab.enlightenment.org/D6303
eina is guaranteed to crash in any process without this call now that
eina_debug exists and requires threads
@fix
Differential Revision: https://phab.enlightenment.org/D6302