Summary: remove the elm legacy name of efl ui theme
Test Plan: run elementary_test and test efl ui widget cases
Reviewers: Jaehyun_Cho, woohyun, cedric, raster, jpeg
Reviewed By: Jaehyun_Cho
Differential Revision: https://phab.enlightenment.org/D5934
Summary:
the win has no theme set, so this would always return null
Depends on D5956
Reviewers: cedric
Reviewed By: cedric
Differential Revision: https://phab.enlightenment.org/D5957
there were some cases where frame geometry was being calculated/applied
strangely as a result of moving all of the layout calcs to pre-render.
enforcing a frame calc+resize resolves these issues
Differential Revision: https://phab.enlightenment.org/D5961
this should just be handled in the pre-render callback where the rest
of the calc for the window is done
also removes an unnecessary smart calc
Differential Revision: https://phab.enlightenment.org/D5960
this avoids a substantial number of unnecessary recalcs and halves the calltime
for elm_win_add
ref T6884
Differential Revision: https://phab.enlightenment.org/D5944
Summary:
further optimize the eet_shutdown case of closing files and avoid
endlessly looping over empty nodes
Depends on D5950
Reviewers: cedric
Reviewed By: cedric
Differential Revision: https://phab.enlightenment.org/D5951
no need to free mempool memory when the mempool is about to be freed,
and eet_clearcache duplicates existing shutdown functionality
Differential Revision: https://phab.enlightenment.org/D5950
neither of these functions should force a recalc under any circumstance
as they are simply returning pointers
@fix
Differential Revision: https://phab.enlightenment.org/D5947
a number of these functions have implicit recalcs, which is bad because
it's a pretty significant perf bottleneck, but it can't be improved
without breaking existing behavior expectations so this is probably the
best that can be done
ref T6884
Differential Revision: https://phab.enlightenment.org/D5946
Summary: Need to check whether Evas_Public_Data is null or not before dereferencing it.
Test Plan: Execute test suite
Reviewers: raster, Hermet, cedric, jpeg, stefan_schmidt, Jaehyun_Cho
Differential Revision: https://phab.enlightenment.org/D5987
Reviewed-by: Cedric Bail <cedric@osg.samsung.com>
a wildcard gfx object could bring focus to a evas object that has no
smart parent, and thus keyboard events are left at a place where they
cannot come away from.
clock was using this to give focus to the edit buttons. The edit buttons
are now wrapped into theire own adapter objects which makes them
focusable like before. However, the no keybindings or anything are taken
to react on the value.
the manager objects are build on the assertion that registered elements
are returning the manager they are registered on if
efl_ui_focus_object_manager_get is called.
Summary:
It should not cause crash with NULL parameters.
@fix
Reviewers: woohyun, raster, cedric
Reviewed By: woohyun, raster
Differential Revision: https://phab.enlightenment.org/D5979
Efl.Ui.Pager is a widget which contains many pages in a linear fashion
and allows users to scroll through them.
Users can attach Efl.Page.Transition and Efl.Page.Indicator to a pager.
The value must be given to eina_value_set and not a pointer to a
Eina_Value.
This bug results in always getting wrong exit code when the application
terminates.
Clean up various places where we do flushes that we don't need to
because some immediately following action is going to cause a flush.
Also fix places where we flush without actually doing anything.
False commit when a commit is already pending is an error, but for safety
it should be a nop.
Currently it would overwrite the existing frame callback which could
cause problems on window destruction.
We should be using dmabuf sync ioctls instead of mmap/munmap every draw,
this makes that happen. The surface code continues to do what its always
done, and map/unlock.
This is now done in ecore_evas where it should be. alpha_set now does
only what its name claims it does - sets whether a surface has an alpha
channel or not.
When alpha changes we need to blow away all our buffers in reconfigure,
even if they're still the right dimensions. Otherwise we can end up
rendering to an XRGB buffer when we wanted to use ARGB and we won't have
proper transparency.
This is much like 'import' but doesn't add the imported file into
the dependency list for the current file. This is to enable doc
reference validation to remain functional without needlessly
introducing file dependencies just to satisfy it.
Summary: a segmentation fault occurs once the argument is not valid.
Test Plan: N/A
Reviewers: cedric, Jaehyun_Cho
Reviewed By: Jaehyun_Cho
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D5974
Summary:
The legacy header was still referencing the eo class removed in
939690a8a9.
Reviewers: cedric, Jaehyun_Cho, vitor.sousa
Reviewed By: vitor.sousa
Differential Revision: https://phab.enlightenment.org/D5970
Summary:
Revert e02b2f04c2945ad60fab5612af1e02b0838b7ff5.
I couldnt make a revert commit for many commit has been related with above commit.
I will create a new MBE eo class ASAP. (https://phab.enlightenment.org/T5358)
Reviewers: cedric, woohyun, Jaehyun_Cho, SanghyeonLee, herb
Reviewed By: Jaehyun_Cho
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D5954
The issue was that standalone-parsed files (outside of dependencies
of some other unit) were not being included in that dependency tree
(obviously) which resulted in their own dependency tree being
excluded from merging, causing the database hashes to lack the
necessary elements.
To fix this, I trigger merging of the "standalone" dependency trees
separately, by calling _merge_units from defer parsing cb.
Doc refs no longer introduce new dependencies into files. Instead,
they're parsed globally, and any doc ref lookup is also made
globally. This allows unit based dependencies to correspond more
to what files actually really need at compile time/runtime, with
docs being irrelevant to that; it also simplifies the API.
The doc resolution API now takes Eolian_State instead of
Eolian_Unit, too.
This is cleaner than adding into a hash manually. Additionally, it
is now possible to request that the file be parsed not as a dep,
but rather standalone, which will be useful later.
This only really makes sense on X11 and can lead to some seriously
confusing cases on other engines (*cough* wayland) when elm's idea
of iconified state doesn't match the compositor's.
While currently only X11 is whitelisted, other backends can be
added, though I suspect most are more like wayland where it makes
no sense at all.
ref T6834
commit fcae7cab27 broke connman stuff,
I've blindly fixed it up here. I don't actually use or test ant of this
but apparently I build it.
If it's broken, please mail the pieces to Daniel Kolesa.
Ref T6859 I guess
This changes a lot of things all across the EFL. Previously,
methods tagged @const had both their external prototype and
internal impl generated with const on object, while property
getters only had const on the external API. This is now changed
and it all has const everywhere.
Ref T6859.
Summary:
This fixes following warning
../src/lib/eina/eina_list.h:1421:10: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
Test Plan: make
Reviewers: SanghyeonLee
Reviewed By: SanghyeonLee
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D5952
This reverts commit f0a0da9f44.
As per T5938 seems we really want to restore a totally wrong
behaviour, without taking care of newer apps being broken.
I revert this for now, but I'm still convinced that we must
find a way to let user use a sane ordering for newer app.
I'm thinking about adding an api in genlist to let the widget
use the new sane ordering, something like
elm_genlist_fixed_ordering_set(bool) so that new apps can use
this to ensure correct behaviour. zmike what do you think about
this solution?
Summary:
This commit add null check on __efl_auto_unref_set.
In EO_OBJ_POINTER, if obj_id is null, obj can also be null.
Test Plan: N/A
Reviewers: woohyun, kimcinoo, cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D5869
Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
If font source is not embedded in edje, it should not
be appended in font source to skip the lookup in edj file
while loading font.
@fix
Test Plan: NA
Reviewers: cedric
Reviewed By: cedric
Subscribers: shilpasingh
Differential Revision: https://phab.enlightenment.org/D5909
Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
Revise wording of a few parameters, improve consistency of punctuation
and documentation body placement.
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D5918
Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
Revises some descriptions, polishes wording, makes punctuation and
formatting more consistent, and straightens out some convoluted grammar
here and there.
There are a few places where the parameter documentation was incorrectly
cut-and-pasted from other routines, so this is fixed. Also, in
eina_matrixsparse_iterator_new() the docs say the elements are not
returned sequentially, but from the context and code I think it meant to
say they're not _consecutive_.
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D5924
Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
move evas_async_events_shutdown: to out of EVAS_CSERVE2 ifdef block
to make it reachable.
Reviewers: cedric, woohyun
Differential Revision: https://phab.enlightenment.org/D5926
Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
Legacy menu toolbar and ctxpopup are not new efl interface widget,
but it have efl interfaces, efl_ui_item and efl_ui_menu.
if we plan to implement this two, it should be a class not a interface,
so I remove it on legacy widget.
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D5939
Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
it turns out that 0.01s is actually a lot, accounting for something like
20s across a run of 'make check' while providing no additional value
ref e0c8ab4c79
ref T6825
ref T6864
Reviewers: cedric
Maniphest Tasks: T6864, T6825
Differential Revision: https://phab.enlightenment.org/D5941
Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
list have got focus. but there isn't logic to check whether focused_item exist.
we need that logic for list focus
this fixes T6807, T6799
Test Plan: elementary_test -to 'list focus'
Reviewers: bu5hm4n
Reviewed By: bu5hm4n
Subscribers: cedric
Maniphest Tasks: T6807, T6799
Differential Revision: https://phab.enlightenment.org/D5935
Commit fd82c2521 has changed the behaviour of item_next/prev_get()
in case of genlist with group items (not tree).
The lagacy behaviour was to tread normal items and group items
in a flat way, like if group items was on the same level of
the children normal items.
As the commit already implement bug compatibility, seems to me
the case to restore also this case. Note that this changes only
apply to legacy genlist (I think).
Let me know if this broke something for you...as touching genlist
code is always an "I hope this is right" operation.
Summary:
This reverts commit b0a7c4b086.
This is adding another EFL bug to work around an EFL bug.
Reviewers: raster
Subscribers: devilhorns, stefan_schmidt, bu5hm4n, thiepha, cedric
Differential Revision: https://phab.enlightenment.org/D5933
Summary:
focus_stack can't store logical node. we don't need to check a node from
focus_stack is not normal.
see line 1613
Reviewers: bu5hm4n
Reviewed By: bu5hm4n
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D5927
Summary:
a node in focus stack is always normal node. we don't need to check whether
node is normal.
see also, 97ec48434f
Reviewers: bu5hm4n
Reviewed By: bu5hm4n
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D5930
Summary:
Win is root of focus manager. it means Win is logical node and "focused" and
"unfocused" signals in Win aren't handled by focus manager.
Win needs to emit the signals itself.
Reported by eagleeye, jsuya
Test Plan:
1. elementary_test -to 'window states'
2. Check that "WIN FOCUS: focused" and "WIN FOCUS: unfocused" printed.
Reviewers: bu5hm4n
Reviewed By: bu5hm4n
Subscribers: jsuya, cedric, eagleeye
Differential Revision: https://phab.enlightenment.org/D5931
it turns out that it is useful and needed (for future patches) to
request moves for nodes that are not focused currently. It is also
needed to request a move that might end up in a logical node.
Previously, class methods were implemented as regular instance methods.
This commits generates C# static methods for @class methods on the
*Concrete classes (and their childs).
I want to use this in other engines, but no other engine initializes this
properly, so draw_ok would be EINA_FALSE everywhere. This way draw_block
is EINA_FALSE after calloc in all engines that don't know about it.
ref T6834
or update with a small delay after any change and check mouse button
mask to avoid some bizarre mouse up event that is stopping the
selection form continuing with a mouse up event... so this works
around that and still works.
yet another "binary buffer" (pointer + size) streated as a string with
strdup + strlen which is oh so wrong. this fixes up some cnp in
wayland with garbage at the end of strings
@fix
Eolian doc objects now bundle debug information necessary to
provide correct line/column numbers. It is not possible to get
this information cirectly from the text, as it's reformatted and
contains no extra whitespace or newlines beyond paragraph
separators.
Fixes T6701.
Summary:
Frame inherits from layout. it can use same _content_aliases of Layout
ref 3114ee264b
Reviewers: Jaehyun_Cho, woohyun, cedric
Reviewed By: Jaehyun_Cho
Differential Revision: https://phab.enlightenment.org/D5929
since this can take an extension as well as a file path (extension
being .gif or .jpeg etc.) it would skip if passed a small extension
only (5 chars or less). fix and this fixes e's thumbnailing too for
some files.
@fix
Summary:
The fribidi couldn't reorganize paired brackets (Ex. '(', ')')
when there is RTL + LTR text. According to TR9(http://www.unicode.org/reports/tr9/),
it has to be shown properly without LRM or RLM.
Also, from the fribidi 1.0.0, fribidi_get_par_embedding_levels() was deprecated.
It is replaced with fribidi_get_par_embedding_levels_ex() which is including
paired brankets rules from TR9.
@feature
Test Plan:
1. Create a elm_entry.
2. Set a text by calling text_set.
elm_entry_entry_set(entry, "مرحبا Hello (40)");
3. Run and see the results.
- Without this patch or fribidi 1.X.X, it will show text like this...
"(Hello (40 مرحبا"
- With this patch and fribidi >= 1.0.0
"Hello (40) مرحبا"
Reviewers: raster, cedric, herdsman, woohyun
Reviewed By: herdsman
Differential Revision: https://phab.enlightenment.org/D5921
Change the parameter name of property event_animation from "event_type"
to "desc" to synchronize with other APIs.
(The parameter type is Efl.Event.Description)
Window geometry x, y are the offset from the top left corner of the
buffer, and not screen co-ordinates, so has nothing to do with output
geometry and can't be used to determine which window we're on.
Now that we track surface enter/leave events we can just give the first
output in the list of outputs we know we're on.
Under wayland we can set minimized but not unset it, nor can we tell
if it's been unset. This means we can't cache the value, we need to
make the protocol request any time ecore_wl2_window_iconified_set is
called.
ref T6834
We actually can't ever query this, it's clearly defined that way in the
protocol. There is absolutely no way to ever know if we're iconified.
ref T6834
requesting subchild for subchild is not a good idea, as it really only
fetches for a subchild, and never calls next and escapes the children of
the passed node.
fix T6793
conversion to efl.nmet didnt deal with null/0 zised payloads properly
and tried to send them, resulting in lots of ERR complaints which were
not errors. fix that to not try and send such empty payloads
@fix
Previously, beginning state of animation is applied after animation is
finished if final_state_keep_get() is false.
Now, map is reset (no animation is applied) after animation is finished
if final_state_keep_get() is false.
To synchronize other types of event info,
Efl_Canvas_Animation_Player_Running_Event_Info is changed to
Efl_Canvas_Animation_Player_Event_Running.
Remove unused struct.
before c65782b15c the acutal path has
been filled into buf, with eina_file_mkstemp the string is filled into
tmpstr, so that path should be chmoded instead of the template buf.
Thx to MatP for the report!
A negative test case leads to segmentation fault.
If ecore_evas_msg_parent_send is called with NULL data, then slice->mem would
be NULL, and _efl_io_queue_efl_io_writer_write calls memcpy with NULL src.
Old version algorithm was imperfection a bit, quality was poor at some specific
degrees, specifically, when pixel increment pattern on the diagonal lines is
unstable.
This revised version was better than old one even source code is much cleaner
and simpler.
See belows.
*NonAA vs AA:
https://ibb.co/bCNfMc
*Compare the worst case aa in the old version:
https://ibb.co/bEJsZx
*Test video:
https://youtu.be/Wn20Tym5lfg
Summary:
The tap_finger_size value of the concept is different from the finger_size value used in the past.
We need a minimum value for recognize the gesture as a tap or not.
Since the actual screen has different screen sizes, there is a problem that the recognition rate of tap is lowered when using the existing value(finger_size)
Test Plan: elementary_test -> gesture sample.
Reviewers: cedric, woohyun, Jaehyun_Cho, herb, id213sin
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D5842
Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary: After migration this code in Tizen. The coverity said it needs to check return value(CID 39562).
Reviewers: raster, myoungwoon, woohyun, cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D5907
Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
this commit add null check.
In EVAS_OBJECT_DATA_SAFE_GET, if eo_obj is null, obj can also be null.
and In _efl_canvas_output_async_block() can return null.
Test Plan: N/A
Reviewers: woohyun, kimcinoo, cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D5870
Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
w and h must not be zero.
because of the divide_by_zero exception occurs on line 649 and 653.
Test Plan: N/A
Reviewers: woohyun, kimcinoo, cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D5873
Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
we have to check whether all of descendant are none_logical.
this fixes T6800
Test Plan:
1. elementary_test -to ctxpopup
2. Click 'Ctxpopup with user content'
3. Try focus ctxpopup content(button) using arrow key.
4. Check that the content is focused (you can move scroll bar)
Reviewers: bu5hm4n
Subscribers: raster, cedric
Maniphest Tasks: T6800
Differential Revision: https://phab.enlightenment.org/D5856
i am not sure when this stopped working, elm hover sends focus to the
children it has, thus the propergation line for the key down events is
going from the hover up accross the over parent, however, the
hoverparent can be different to the hoversel, which would lead to
missing navigation in the hoversel.
this fixes T6802
This reverts commit c6ce04e48f.
OK. I bisected and found that this is ythe root cause for 2 pretty
chunky bugs. Reverting this fixes T6870 and fixes T6871.
so that's 2 segvs in existing uses and even olne (elm config) ships
with efl. Having a look at the diff doesn't jump out what is wrong
here, but the best course IMHO is to take this patch and put it back
into review again... :)
Summary: this widgets inherit from Layout. they can use same text_aliases of Layout.
Reviewers: Jaehyun_Cho, woohyun
Subscribers: herb, cedric
Differential Revision: https://phab.enlightenment.org/D5859
Reviewed-by: Cedric Bail <cedric@osg.samsung.com>
Summary:
this is only meant to listen to data which is currently available,
not wait for new data
@fix
Depends on D5866
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D5867
Reviewed-by: Cedric Bail <cedric@osg.samsung.com>
Summary:
this resolves a race condition when a thread join was pending during
shutdown but a pipe write was needed in order for the join to be
successfully executed before shutdown had occurred
@fix
Reviewers: cedric
Reviewed By: cedric
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D5866
Reviewed-by: Cedric Bail <cedric@osg.samsung.com>
if audio objects are around after ecore_audio has been shut down then
they may access the sndfile or pulse lib ptrs/funcs and thus dont
unload these. should fix crashes on shutdown.
By default all Pthread are cancellable. This leads to strange behavior that
happen during shutdown and hasn't been figured out. Most likely fix for T6622.
this has 2 bugs really. 1 - the format masks for plain text included
markup which ... is wrong - right? that should have a mime type of its
own... either way it leads to plain text pasts being handled wrong in
wayland... so this fixes that
also the string buffers in wayland just were nothandled right. buffers
were raw binary buffers plus size,not strings, but they were strdup'd
etc. assuming nul termination. oh so wrong to do that. this also fixes
that as i fpound it while fixing the above format bug.
this fixes T6284
@fix
[Dereference after null check]
(1) src/lib/ecore/ecore_main.c
- _efl_loop_handler_efl_object_finalize checks if pd->loop_data is NULL.
After that, _handler_reset > _handler_clear > _ecore_main_fd_handler_del >
_ecore_main_fdh_pool_del is directly dereferencing pd->pool_data.
- _efl_loop_handler_efl_object_parent_set checks if pd->loop_data as well.
Then it calls _handler_reset as well.
(2) src/lib/ecore_wayland/ecore_wl_dnd.c
- ecore_wl_dnd_selection_set checks if t - result of wl_array_add - is NULL.
And it is dereferecing t directly for wl_data_source_offer.
(3) src/lib/elementary/efl_ui_dnd.c
- Third parameter const char *data could be NULL.
In this case strlen dereferences NULL. The data should be non NULL value.
I have checked this with Mr. Thiep Ha.
(4) src/lib/evas/canvas/evas_object_inform.c
- _efl_canvas_object_efl_gfx_stack_stack_below checks if obj->layer is NULL.
So it could call evas_object_inform_call_call_restack which is dereferencing
obj->layer directly.
tell other windows they lost their selections correctly if you have
multiple windows within the same process. this fixes multi-window mode
in terminology.
@fix
well call sync returns a void * too.... instead of just void return
(nothing) but this makes it easier to write and maintain code due to
consistency of function callback signatures.
leave the exact numbers less defined because core count can change on
the fly and could be virtually limited by policy in future etc. so
keep things less exactly defined so people dont go depending on exact
results which was never really intended.
the constructor calls init for every object, so ensure a matching
shutdown call exists to balance the init count
ref 517471190f
ref T6816
Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
When changing cursors under wayland sometimes we'll see the old cursor
moved to the new hotspot briefly before the cursor changes. This makes
that suck less often.
A proper fix would involve creating a new wayland surface for every
cursor change (actual change, not just a new frame of an animated
cursor). Given the current internals this is invasive. Do the
easy thing for now.
Summary:
we have to check whether all of descendant are none_logical.
ref T6800
Test Plan:
1. elementary_test -to ctxpopup
2. Click 'Ctxpopup with user content'
3. Try focus ctxpopup content(button) using arrow key.
4. Check that the content is focused (you can move scroll bar)
Reviewers: bu5hm4n
Subscribers: cedric
Maniphest Tasks: T6800
Differential Revision: https://phab.enlightenment.org/D5856
Summary:
model based list need to be under the namespace of 'Efl.Ui.View".
thus, I renamed 'Efl.Ui.List' to 'Efl.Ui.View.List' properly.
Test Plan: N/A
Reviewers: cedric, felipealmeida
Differential Revision: https://phab.enlightenment.org/D5855
When the subchild where we request subchilds from was regular, the while
loop would have run infinitly. This is now fixed by at least calling
once _next, the check to not run outside the node is now done with
calculating the depth of the nodes.
Evas map supports anti-alias(aa) rendering on sw backened.
When aa is toggled on, map forcely turns alpha channel on while it draws on the surface.
Actually, it was intended to blend polygon edges with destination,
but it breaks one case if the original source image alpha channel were turned off.
Simply, it fixed the issue, new implmentation removes the alpha channel switching,
instead fill the alpha values with 255 when map + aa + alpha_off is drawing on it.
@fix T1975
Evas map anti-aliasing haven't worked at all if the smooth scaling were disabled.
evas map rendering has a lot of corner-cases, previous call-position was wrong,
(by mistake maybe) shouldn't be in a certian case.
Let aa post-processing function be performed in universally.
Ector renderer are created by a factory pattern which return a reference.
The possible logic improvement from here would be to rely on setting the
parent of the object to the Ector_Surface and manage a cache by intercepting
efl_noref to trigger an efl_del of the object or a temporary cache of it.
That's for later.
Summary:
This copyedits the descriptions for several _add and _free APIs.
Phrasing is made a bit more concise, without losing the meaning, and
made more consistent so the distinctive differences between the routines
are easier to spot. Some paragraph spacing is added for clarity, for
similar reasons.
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D5851
Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
127 is the "command not found" shell exeit code, 126 is "the command
file is found but is not executable" which i think i'd interpret not
just for execute permissions but that something is preventing it from
executing in general.
both exe and thread objects must (currently) stay around until the
child thread or exe (task) is done. if you don't do this "bad things
can happen". so produce an error to let the programmer know.
it wasn't looking at the copier queue "todo" at all thus skipping it
on flush. this will fix flushing of ecore ipc message buffers. this
happens to also now fix terminology's "one process" mode.
@fix
Previously, when an error happened in Eolian, the state was left
in a presumably unusable and inconsistent condition. This work
aims to change that, as all changes are committed into a staging
area before being validated and merged back into main state.
This is not yet complete, as units and by-file lookups are not
currently involved in the rollback. This will change in the
subsequent commits.
@feature
Apparently when we initiate a client side move in ecore_wl2 we flag that
and send a mouse-up immediately on the next pointer enter.
Do the same for resize.
At some point this might need to be revisited, we should probably be
sending a "cancel" at the start of client initiated move/resize instead
of an up at the end?
Fix T6422
Unlike panic, this will be used to handle regular errors
such as parse errors. There will be no jumps and you
will be able to pass in a pointer to get the error
data into some local memory. That way you will be
able to override printing error messages.
Summary:
This will avoid infinite loops and errors when the parent tries
to orphan an invalidated child.
Fixes T6780
Test Plan: Run `make check`
Reviewers: cedric
Maniphest Tasks: T6780
Differential Revision: https://phab.enlightenment.org/D5839
Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
settings the redirect might result in unfocus calls, that might unset
evas_object_focus on a object that might be registered in two managers
due to border linking. This fixes mysterical disapearing focus.
We dont delete the adapeter when we are still focused, to set anyway the
correct view to it, we need to set the view to the adapeter as often as
possible
somehow genlist leaks the view sometimes, thus the adapter is not
deleted when the item is deleted. This resulted in strange ghost focus
objects in the window.
after that someone probebly wants to check where the last focus was on,
if the set of boder elements has changed since the last border flush, then the
element might not be registered in the parent manager
ecore_wl2_window_commit() must be called during window size negotiation,
but this currently trips a warning when no frame callback has been
received for the first commit. We can't even have frame callbacks at
that point because no buffer is attached.
Don't set up the commit_pending logic until after we have a buffer.
This patch implements bug compatibility.
genlist internally uses both a tree structure with Eina_List and a flat
Eina_Inlist to track its items. ALL of the items are in the inlist while
subitems appear in their parent's list. As a consequence both lists must
be kept in sync pretty tightly. Obviously this is not done at all and
has led to countless bugs, as soon as tree or groups are used:
- Invalid order of items (visually)
- Invalid order of items with sorted_insert
- Glitches in the matrix
- Crashes with sorted_insert
- Odd/even styles not properly set
- Promote/demote functions broken by design
- Developers send to psychiatric hospitals
- Etc...
Legacy genlist (1.19 and before) used an inlist order that basically
didn't make sense, as it didn't follow the logical order of elements (as
they appear visually). Unfortunately this has "worked" (really, that's a
huge stretch to use this word here) for a long time this way. As a
consequence, some applications (*cough* empc *cough*) have relied on
this order to implement "next album" or "previous album" where the
album title is a group node.
By changing the order of items in the inlist, this has broken the
assumptions made above, and ends up in cases that return NULL, leading
to SEGV. Sure, the app should have checked NULL, but that's not really
the point here. The behavior has been changed.
This patch implements "fixes" for the following functions:
- elm_genlist_first_item_get(): Don't return a parent
- elm_genlist_last_item_get(): Return a parent
- elm_genlist_item_next_get(): return a parent upon reaching the last child
- elm_genlist_item_prev_get(): return a child when a parent is passed
Important notes:
- This does not cover 100% behavior compatibility here. The only way to
have it would be to simply revert the entire genlist code to its
original version and never touch it again, ever.
- An explicit API is required for an application to specify which API
level it targets, so that we can cherry-pick which bug compatibility
features we want to enable. We are already doing this for EDC,
unfortunately.
@fix
fix T5938
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
there is no corresponding code to unset this global pointer when the module
is unloaded, so this will crash if elm_shutdown is ever called
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
there is no check for the existence of this file so this will error most times
from it not existing
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
For numeric types, eina_value_set() accepts values instead of references
on the value to be set. Hence, we were affecting as the exit code of the
loop a garbage value, yielding to invalid results.