Summary:
Delete check on NULL for icon object due to incorrect work. Function must delete
icon in map overlay (according to documentation) if we set NULL, but with this check -
nothing happening and after elm_map_overlay_icon_get we have not NULL returned value.
@fix
Reviewers: cedric, Hermet, raster, jpeg
Reviewed By: cedric
Subscribers: artem.popov
Differential Revision: https://phab.enlightenment.org/D4720
if efreetd cannot be connected to, stop infinitely trying to spawn it
since this generates crazy cpu load
probably this path should also send some cache events so that watchers
do not simply idle forever
ref T5200
If multi select mode is ELM_OBJECT_MULTI_SELECT_MODE_WITH_CONTROL and
user code try unselect a item and select another part which not
realized select callback calls twice in this case. For avoid this no
needs focus newly selected item.
@fix
Summary:
The function already has a precondition test for !font, so this
additional test will never trigger.
@fix CID1371525
Reviewers: cedric, jpeg
Subscribers: jpeg, cedric
Differential Revision: https://phab.enlightenment.org/D4682
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
Time cmparision does not ensure the corrctness of posotion.
It is beacuse of double number calculation. Double number calculation
are not convertable.for example:
1/39 = 0.02564102564;
but 0.02564102564 * 39 = 0.99999999996 != 1;
The addition check for pos ensure the pos to be reached at its correct
position.
@fix
Signed-off-by: Umesh Tanwar <umesh.tanwar@samsung.com>
Reviewers: cedric, singh.amitesh, jpeg, raster
Reviewed By: raster
Subscribers: atulfokk, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4709
Signed-off-by: Amitesh Singh <amitesh.sh@samsung.com>
Since ecore now uses efl events to feed input events to the
canvas, anyone can now listen to any event on the evas. But
when using the legacy API the event info needs to be the legacy
struct, and not the eo event info otherwise crashes will happen.
While this is a new use of events, I consider it valid and it's
better to fix it rather than disallowing it. Fixed by wrapping
evas events the same way evas object events were handled.
Fixes T5266
prev_description was used when HAVE_EPHYSICS is set, which is the
default, but I also added a use in 7072fbc2bf where the map
was not properly reset.
This removes an ugly #ifdef and opens the door to other fixes
similar to that map one.
The item, after having been unswallowed from its decorate
item, becomes unclipped and unparented. The parent was well
reset, but the clip wasn't.
Test case:
elementary_test -to "Genlist Decorate Item Mode"
I'm sure some bugs are still lurking. Genlist is so lovely.
Fixes T1551
In the following sequence, the swallowed object map property is
never reset as it should have been:
- swallow object
- start program, change state to have a map
- do something
- start program, change state to have no map
but before render, unswallow the object
At this point, the object will never be un-mapped. This is weird.
Somehow edje_calc avoids calling evas_object_map_[enable_]_set
excessively, but I believe the issue is that the object does not
need recalc. Its container needed recalc, not the child (which is
mapped). I'm not 100% sure.
Test case:
elementary_test -to "Genlist Decorate Item Mode"
Click on rotate, select a few items, scroll up and down. Enjoy.
Ref T1551
@fix
In "Genlist Decorate Item Mode" after decorating a few items
(rotate or slide, doesn't matter), only one item or none should
be decorated. Scrolling up and down the genlist should work just
fine. This fixes massive render issues and inconsistent states
of the items in this test case.
"rotate" mode is still going nuts.
Ref T1551
This reverts commit 3a9d54085b.
I got crash and a lot of valgrind warning with this patch. All in all, I
think we can just wait for next release and do a proper cleanup of our API
to not rely on strings at all.
For references this is the first valgrind warning I get (Not going to past the 100 following one) :
==11860== Invalid write of size 4
==11860== at 0xB10DDD1: _ecore_event_evas_modifier_lock_update (ecore_input_evas.c:432)
==11860== by 0xB10E3DD: ecore_event_evas_mouse_move (ecore_input_evas.c:725)
==11860== by 0x5D5115D: _ecore_call_handler_cb (ecore_private.h:317)
==11860== by 0x5D5115D: _ecore_event_call (ecore_events.c:518)
==11860== by 0x5D5CC47: _ecore_main_loop_iterate_internal (ecore_main.c:2381)
==11860== by 0x5D5D42E: ecore_main_loop_begin (ecore_main.c:1289)
==11860== by 0x5D5D490: _efl_loop_begin (ecore_main.c:2831)
==11860== by 0x5D59555: efl_loop_begin (efl_loop.eo.c:32)
==11860== by 0x14F275: main (test.c:1188)
==11860== Address 0x19a36828 is 7 bytes after a block of size 1 alloc'd
==11860== at 0x4C2AACE: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==11860== by 0x4C2CC81: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==11860== by 0xB10DDA8: _ecore_event_evas_modifier_lock_update (ecore_input_evas.c:425)
==11860== by 0xB10E3DD: ecore_event_evas_mouse_move (ecore_input_evas.c:725)
==11860== by 0x5D5115D: _ecore_call_handler_cb (ecore_private.h:317)
==11860== by 0x5D5115D: _ecore_event_call (ecore_events.c:518)
==11860== by 0x5D5CC47: _ecore_main_loop_iterate_internal (ecore_main.c:2381)
==11860== by 0x5D5D42E: ecore_main_loop_begin (ecore_main.c:1289)
==11860== by 0x5D5D490: _efl_loop_begin (ecore_main.c:2831)
==11860== by 0x5D59555: efl_loop_begin (efl_loop.eo.c:32)
==11860== by 0x14F275: main (test.c:1188)
The eina_(rw)_slice_startswith functions both incorrectly describe how
the 'prefix' parameter is used, so fix those also
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
eina_(rw)_slice_startswith functions both incorrectly describe the
return value as 'slice ends with', when clearly the function is used
to find if a slice 'starts with' a prefix
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
this only modifiers modifiers if the modifier mask changed. it stores
it per seat and matches up before deciding to actually modifier the
modifiers. this SHOULD fix T5252
@fix
This fix elementary_test use of elm_code where the object needed
to get clicked to have their content displayed. The reason was that
the line where appended while the object size was 0 and once it was
resized the line where not displayed.
Summary:
Genlist item doesn't change its size when its content size is changed,
but its size is determined in realization.
Therefore, deferred calculations for content should be performed immediately
before swallowing it by genlist item.
Test Plan: make and run attached sample
Reviewers: cedric, SanghyeonLee, jpeg
Reviewed By: jpeg
Differential Revision: https://phab.enlightenment.org/D4705
If an item is marked as disabled it should be re-enabled
before being put in the reusable contents cache. Otherwise
a following use of this object may result in a disabled
item being used, making the UI effectively disfunctional.
Also modify the test case to show and test this behaviour.
Add an efl_isa() to protect calls to elm_widget APIs.
Fixes T5236
@fix
During shutdown it is possible that some event are still in ecore events
queue and get processed after the shutdown of the module that did emit them.
This would lead to crash in some case. The answer to this problem is to
normally manually track all ecore event in the queue and destroy them
before shutdown... Of course that make the API difficult to use and
basically nobody got it right.
This new API do actually as it says remove all the ecore event of a
certain type from ecore events queue. It is to be called on shutdown.
@fix
We need to refresh the Cocoa's content view when showing the window.
In some particular cases (including the elementary_test initial window),
the content view is redrawn because of external events (the entry
animator). When no action at all is performed, the window and the
content view are resized... nice... but not drew...
Such a simple fix for this hell of a bug!
Fixes T5210
We've been immediately acking configure with the correct serial number, then
later at commit time sending an incorrect serial (generating a new one).
Remove the extra ack, and save that serial for later, and don't overwrite
it with a current serial when we get a toplevel configure.
Oddly, compositors were letting us get away with this behaviour, so this
probably looks functionally the same as before.
This reverts commit f654714d75.
Modifiers do influence mouse events, though a mouse input can't change them...
This commit broke modifer+drag on windows in E, so I'm reverting it.
Summary:
When popup hides and shows fast, sometimes popup is not shown
because of the difference visible value between popup and notify
(case: popup visible state: 1, popup_notify visible state: 0)
To sync this value I added the visible set code in elc_popup.c
@fix
Test Plan:
1. run elementary_text -to popup
2. shows the hide popup
3. hides popup using the hide button
4. repeat 2,3 step
5. popup will be shown well
Reviewers: jpeg, cedric, Hermet, raster
Subscribers: Blackmole, woohyun
Differential Revision: https://phab.enlightenment.org/D4710
mouse events have nothing to do with modifiers or locks, so dont try
modify them on mouse events. a total waste of cpu and time.
this should also fix T5251
Summary:
If user added item with item_insert_before and item_insert_after, item was not displayed.
For this reason, fixed box indicated item correctly from reference->button to VIEW(reference).
Additionally, remove the unused variable button in _Multibuttonentry_Item struct.
Reviewers: woohyun, CHAN, cedric, jpeg
Reviewed By: CHAN
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4708
Summary:
Earlier places in the function are testing if obj->layer is null, so
should be checked here as well before it's used.
@fix CID1371826
Reviewers: jpeg
Reviewed By: jpeg
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4707
this definitely fixes T5223 because it adds an engine lock around the
code segemtnt that does compare time stamps... and hopefulyl a few
more things too.
@fix
Summary:
The !global test is a post-condition that _ecore_wl2_global_find
provided valid data, so the code is clearer if this is kept separate
from the subsequent if chain for looking up the shell. Since this
post-condition returns from the function on error, it can stand alone.
Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewers: devilhorns, ManMower
Reviewed By: ManMower
Subscribers: jpeg, cedric
Differential Revision: https://phab.enlightenment.org/D4690
If GL context is free'd before processing font shutdown,
textures for emoji glyph's GL images will be free'd without clean
up its GL images. It causes eina mempool infinite loop issue when
emoji's GL images are free'd in shutdown process.
So, the patch will make a list for emoji's GL images in context and
clean up them when the context is free'd. Just like font textures in
context.
@fix
Differential Revision: https://phab.enlightenment.org/D4695
Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
If item pop was started without focus at a naviframe object
and the naviframe object got focus before finising item pop,
the naviframe object could give focus to its first object of prev item.
It could ruin focus orders and failed to restore previous focused
object in the item.
To keep consistency of focus policy, same logic will be applied to
item push scenario.
@fix
Change-Id: Ia74bdce3620bd59622ef32a0cedf5fbd84815400
This will abort E when using Bryce and EINA_LOG_ABORT is enabled
(it is enabled by default when running a non-release version of E).
That's on purpose, as that code needs fixing :)
Ref T3144
We need to make sure that we wait properly on the animator thread
otherwise we end up with the animator finish callback being called
later on during the shutdown process which means trouble.
When using smart objects (quite likely, isn't it?), the internal
layer usage count was not perfectly tracked. This was especially
true if layer_set() was called on a (top-level) smart object.
As a consequence, there could be no objects in the layer but the
usage would still be > 0. Thus, the layer was not deleted, not
removed from the inlist of layers, and efl_gfx_stack_above_get()
could return NULL as the layer above a certain object was empty.
Fixes T5201
Summary: CreateFileMapping return handle. The handle before use is always closed. This handle can be immediately closed after use.
Reviewers: cedric, raster, vtorri, rimmed, an.kroitor, FurryMyad, NikaWhite
Reviewed By: raster
Subscribers: artem.popov, cedric, jpeg
Tags: #windows
Differential Revision: https://phab.enlightenment.org/D4699
The mouse cursor in a text entry tends to not disappear even when
the mouse moves out of the entry. This seems to happen more when
the cursor was visible for a single frame only (although I'm not
100% sure about this condition).
One important difference with previous versions of EFL is that
the cursor is now part of the theme, so it is an image object
and not set by the compositor (it looks vastly different).
Anyway, when processing the list of pending_objects, we look at
the flags render_pre and rect_del which were (re)set during the
previous frame. Those flags are then (re)set during phase 1 which
happens after processing the pending objects list... only if
needed. So, phase 1 sets the condition to invalidate the current
lists of objects but that condition is checked for before phase 1.
This patch adds a check on delete_me which should hopefully make
it a rare enough case, for performance, but still force correct
rendering.
This is all spaghetti code, sorry if this explanation also reads
like pasta.
Note that exactness tests may still be broken because earlier
versions of EFL simply did not have the cursor inside the canvas
itself.
Fixes T5231
I believe that all the threads created in our test suite should
be spawned without any special CPU affinity. The default parameter
is not 0 (corresponds to the first CPU, known as CPU 0) but -1.
Similarily the default priority is NORMAL (1), not 0 (URGENT).
This also affects two unused code paths: evas render2 and gl preload.
@fix
This reverts commit 2c6808e4ee.
this breaks a number of expectations and guarantees in efl:
* causes unexpected event iteration during app startup before main loop begins
- leads to event loss
* causes unexpected event iteration during app shutdown after main loop quits
- leads to invalid memory access
* causes recursive event iteration during event handler callbacks
- leads to ?????????????????????????????????????????????????????????????????
all of these can be easily seen by running enlightenment, and all of these cause
unexpected behaviors in enlightenment including, but not limited to, a lot of crashes
fix T5232
Summary: This new kind of APIs should be EO only.
Reviewers: jpeg, cedric, barbieri, bdilly, stefan_schmidt
Reviewed By: cedric, barbieri
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4696
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
If object's parent has map and object also has map, the evas
clip would be applied twice.
The context already applied clip area when drawing on map_surface.
So don't need more clipping when drawing map_image.
Also, make sure to apply the framespace clip when drawing the map
surface onto the final canvas. Thanks @jiin.moon for the initial
patch (see D4694).
@fix
Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
Summary:
When if item_show / bring_in is proceeded as 'deferred_show'
sequence, Scrollto_Type does not be checked perfectly.
As a result,
ELM_GENLIST_ITEM_SCROLLTO_NONE and any other integer values
are worked such as ELM_GENLIST_ITEM_SCROLLTO_BRING_IN.
As doxygen of Elm_Genlist_Item_Scrollto_Type,
ELM_GENLIST_ITEM_SCROLLTO_NONE and other incorrect number
should not work.
Fixes T4854
@fix
Reviewers: SanghyeonLee, woohyun, jpeg
Reviewed By: jpeg
Subscribers: id213sin, conr2d, cedric
Maniphest Tasks: T4854
Differential Revision: https://phab.enlightenment.org/D4684