Chris Michael [Wed, 1 Mar 2017 15:25:35 +0000 (10:25 -0500)]
ecore-wl2: Send surface_commit after ack_configure
Small patch to ensure we send a surface commit after sending the
ack_configure. This fixes an issue where E-WL internal windows would
not maximize.
Fixes T5192
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Chris Michael [Wed, 1 Mar 2017 13:32:18 +0000 (08:32 -0500)]
ecore-wl2: Ensure display cleanup after roundtrips
Commit
ee52a28d041dfb02da0f2deca0714beb5eaa51fd added a roundtrip to
ensure and pending wl events were handled before we disconnected the
display. While this ensures some things like session recovery destroy
work again, it lead to an issue where the _ecore_wl2_display_cleanup
function was called BEFORE we processed pending events. This (in turn)
causes crashes due to processing of pending events that relied on
things like Ecore_Wl2_Input existing. As the display cleanup function
clears inputs & outputs, we need to defer calling that until the
display_roundtrip has dispatched and handled pending events.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Derek Foreman [Tue, 28 Feb 2017 23:23:03 +0000 (17:23 -0600)]
elm_cnp: allocate space for null terminator in _wl_targets_converter
strcat needs room for a string terminator.
Cedric BAIL [Tue, 28 Feb 2017 19:01:09 +0000 (11:01 -0800)]
ecore: improve debugging of animator.
Cedric BAIL [Tue, 28 Feb 2017 00:56:45 +0000 (16:56 -0800)]
ecore_evas: rely as much as possible on display source for animator to reduce spurious tick.
Chris Michael [Tue, 28 Feb 2017 17:36:05 +0000 (12:36 -0500)]
ecore-wl2: Cleanup function for finding global
As per Mike, the iterator macro already does the casting for us, so we
can cleanup the code here and not do casting, plus we can remove an
extra variable...bonus ;)
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Chris Michael [Tue, 28 Feb 2017 17:28:02 +0000 (12:28 -0500)]
ecore-wl2: Use EINA_ITERATOR_FOREACH macro
Small patch to change from while (iterator) to using the
EINA_ITERATOR_FOREACH macro...that I had forgotten about...thanks Mike
;)
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Chris Michael [Tue, 28 Feb 2017 17:17:02 +0000 (12:17 -0500)]
ecore-wl2: Ensure we only bind one wayland shell
This patch adds prioritizing to our wayland shell binding code so that
we only bind One shell that the compositor advertises. During the
global_add callback, the shells get added to the 'globals' hash, and
when sync is done, we will search for shells to bind based on priority
so that we can ensure we always bind to the latest supported shell.
ref T5226
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Chris Michael [Tue, 28 Feb 2017 16:37:15 +0000 (11:37 -0500)]
Revert "ecore-wl2: Only bind one shell"
Reverting this in favor of a better approach (using a priority list)
as discussed on IRC.
This reverts commit
0e93f03636ec10710547513fb865ef2703e937a4.
Chris Michael [Tue, 28 Feb 2017 16:29:24 +0000 (11:29 -0500)]
elementary: Don't update opaque/input regions if not visible
Small patch to reduce calls to setting opaque/input regions in
wayland. Basically, if the window is not shown then there is no point
in updating these regions until such time that the window is actually
visible and the regions will get committed.
ref T5226
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Chris Michael [Tue, 28 Feb 2017 15:22:58 +0000 (10:22 -0500)]
ecore-imf-wayland: Reduce calls to set_cursor_rectangle
Avoid calls to zwp_text_input_v1_set_cursor_rectangle if we do not
need to. Previous code here would always call this function even if
the cursor rectangle was in the same position. Now we set a flag on
the cursor_location field to let us know that it needs updating.
ref T5226
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Chris Michael [Tue, 28 Feb 2017 15:12:31 +0000 (10:12 -0500)]
ecore-wl2: Actually update input/opaque regions
Previous commit
f8f71d05cdc7a8578329f75b0101662220390f20 to avoid resetting
opaque & input regions was not totally complete as it did not update
the actual values...small patch to fix that.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Chris Michael [Tue, 28 Feb 2017 14:28:24 +0000 (09:28 -0500)]
ecore-imf-wayland: Remove duplicate header include
wayland_imcontext.h already includes this header, so no need to
re-include. Also add missing (void) to function declaration
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Chris Michael [Tue, 28 Feb 2017 14:16:22 +0000 (09:16 -0500)]
ecore-imf-wayland: Formatting fixes
NB: No functional changes
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Chris Michael [Tue, 28 Feb 2017 13:51:21 +0000 (08:51 -0500)]
ecore-wl2: Avoid resetting opaque & input regions if they match
Small patch to avoid setting the same opaque/input regions if they
already match what is being requested.
ref T5226
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Chris Michael [Tue, 28 Feb 2017 13:40:26 +0000 (08:40 -0500)]
ecore-wl2: Only bind one shell
Since we only ever use One shell at a time, let's not bind all of them
as that is useless.
ref T5226
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Marcel Hollerbach [Tue, 28 Feb 2017 10:46:56 +0000 (11:46 +0100)]
eina: move the _eina_main_loop set before we init anything
otherwise we could get into problems.
fix T4891
@fix
Jean-Philippe Andre [Tue, 28 Feb 2017 07:24:05 +0000 (16:24 +0900)]
eina_value: Fix min/max values of long for Windows
long is 32 bit on Windows (both 32, 64 bit).
I wonder why eina_value doesn't simply use LONG_MIN/MAX O_o
Fixes T5204
Flavio Ceolin [Tue, 28 Feb 2017 07:00:45 +0000 (16:00 +0900)]
eina:list: Fix resource leak
Summary:
The usage of the macro EINA_MAGIC_CHECK_LIST can
lead (in some cases) to leaks.
Signed-off-by: Flavio Ceolin <flavio.ceolin@gmail.com>
Reviewers: jpeg
Reviewed By: jpeg
Subscribers: cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4679
Jean-Philippe Andre [Tue, 28 Feb 2017 04:04:31 +0000 (13:04 +0900)]
evas: Reset state to GL_TEXTURE_2D
This should fix an ERR message under gl_drm and probably an
actual bug.
This reverts
8f2cfdf4900e8e8b13f48c213512041e5f.
I don't think the texture target should be part of the context
information. It should instead be a property of the texture.
Fixes T5171
Bryce Harrington [Tue, 28 Feb 2017 02:41:12 +0000 (11:41 +0900)]
evas: Drop duplicate macro definitions SETUP_LINE_*
Summary:
SETUP_LINE_SHALLOW and SETUP_LINE_STEEP are each identically defined
(except whitespace) in evas_line_main.c
Reviewers: cedric, jpeg
Subscribers: jpeg, cedric
Differential Revision: https://phab.enlightenment.org/D4681
Jihoon Kim [Tue, 28 Feb 2017 02:24:39 +0000 (11:24 +0900)]
ecore_imf/ibus: fix memory leak
Cedric BAIL [Mon, 27 Feb 2017 23:12:11 +0000 (15:12 -0800)]
ecore_evas: animator eo event are not a legacy event.
Cedric BAIL [Mon, 27 Feb 2017 23:03:49 +0000 (15:03 -0800)]
edje: reorder shutdown to match internal event emit use.
We do have event emited that rely on evas still being initialized.
If we shutdown evas and then process ecore event, we would be in trouble.
Cedric BAIL [Mon, 27 Feb 2017 23:01:34 +0000 (15:01 -0800)]
ecore: forcefully flush pending event when ecore_shutdown is called.
If a component emit Ecore_Event and they aren't processed before the
call it call ecore_shutdown, there is no way to prevent this event
from being triggered after the component at shutdown itself. Which
may well lead to a use after free case. As we don't know which event
are pending and we also are not shuting down ecore completely as they
are still other component using it, we can only flush all pending event
right away.
Cedric BAIL [Mon, 27 Feb 2017 23:00:55 +0000 (15:00 -0800)]
evas: properly disable Evas_Object event catching once we can't access Evas anymore.
Cedric BAIL [Mon, 27 Feb 2017 18:13:30 +0000 (10:13 -0800)]
emile: rename emile_image_register to emile_image_callback_set.
This fix ABI report according to discussion on the mailing list.
Andy Williams [Mon, 27 Feb 2017 20:51:40 +0000 (20:51 +0000)]
elm_code: Hide the cursor when it is off screen
This resolves cursor artifacts that could be seen @fix
Chris Michael [Mon, 27 Feb 2017 18:26:11 +0000 (13:26 -0500)]
Revert "Revert "ecore-imf: Don't always load all modules""
Reverting the revert here...this Does actually work in a wayland
environment, however you may need to export ELM_DISPLAY=wl in order to
get the desired result...
NB: If you desire a specific ecore_imf module then you may want to
export ECORE_IMF_MODULE=xyz, else this patch will try to load them in
the order specified in the code (xim, ibus, scim, wayland).
This reverts commit
5c858b86e5c84d4ced77d47bb61cc6817f0e3645.
Chris Michael [Mon, 27 Feb 2017 18:12:24 +0000 (13:12 -0500)]
Revert "ecore-imf: Don't always load all modules"
Reverting this as it broke autoloading of the ecore_imf WL module.
This commit basically only loaded an X11 Ecore_Imf module even under a
wayland environment.
This reverts commit
75b4bde8d226ffb59dfad5bcdcd76ce5dde5e1ac.
Chris Michael [Mon, 27 Feb 2017 17:54:38 +0000 (12:54 -0500)]
ecore-imf: Don't always load all modules
If there is no ecore_imf_module specified in the environment, then
previous code here would load ALL the modules when we really only need
one. This patch fixes that issue...if a module is specified in the env
(export ECORE_IMF_MODULE=xyz) than that module will be loaded. If NO
module is specified in the env, then we will loop the list of built
modules and load only one.
This patch fixes an issue where running 'WAYLAND_DEBUG=1
WAYLAND_DISPLAY=wayland-0 terminology' inside an X11 environment would
cause ecore_imf to load the wayland module (as reported by Derek).
NB: If this patch breaks automatic IMF (it should not) then please feel
free to revert.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Chris Michael [Mon, 27 Feb 2017 17:35:58 +0000 (12:35 -0500)]
elementary: Fix issue of trying to init ecore_wl2 if DISPLAY is set
Small patch to fix an issue that Derek brought up ... that is
basically, if you try:
WAYLAND_DEBUG=1 WAYLAND_DISPLAY=wayland-0 terminology while inside an
X11 environment, then elm_config would try to initialize ecore_wl2
even when running under X11.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Chris Michael [Mon, 27 Feb 2017 16:08:43 +0000 (11:08 -0500)]
ecore-evas-wayland: Don't register animators until window gets shown
Small patch to not call _ecore_evas_register unless we are showing the
window. This stops creation of rogue animators on cursors until the
window is actually going to be shown.
Fixes T5209
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Chris Michael [Mon, 27 Feb 2017 15:44:36 +0000 (10:44 -0500)]
elementary: Minor formatting fix
NB: No functional changes
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Chris Michael [Mon, 27 Feb 2017 15:09:34 +0000 (10:09 -0500)]
elementary: Don't set pointer object theme on start
As we are already resetting the pointer object theme when we make a
call to set the cursor, don't set it on window creation. This should
address the issue of animators getting created on window creation.
ref T5209
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Jihoon Kim [Mon, 27 Feb 2017 12:32:07 +0000 (21:32 +0900)]
ecore_imf/ibus: Fix memory leak
Jihoon Kim [Mon, 27 Feb 2017 11:28:37 +0000 (20:28 +0900)]
ecore_imf/wayland: Fix memory leak in immodule
==1321== 156 bytes in 1 blocks are definitely lost in loss record 7,687 of 9,703
==1321== at 0x4847E64: calloc (vg_replace_malloc.c:623)
==1321== by 0x92EA7E9: wayland_im_context_new (wayland_imcontext.c:1094)
==1321== by 0x92E66DD: im_module_create (wayland_module.c:132)
==1321== by 0x4D521E7: ecore_imf_module_context_create (ecore_imf_module.c:152)
==1321== by 0x4D51EF7: ecore_imf_context_add (ecore_imf_context.c:141)
Minkyu Kang [Mon, 27 Feb 2017 11:13:06 +0000 (20:13 +0900)]
elementary tooltip: adjust arrow if tooltip was moved
Summary:
If orientation is TOP, BOTTOM, LEFT and RIGHT and
tooltip was moved due to located out of screen,
adjust location of arrow so that can indicate right position.
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
Test Plan: elementary_test -to tooltip4
Reviewers: cedric, Hermet, jpeg
Subscribers: jpeg
Differential Revision: https://phab.enlightenment.org/D4554
Myoungwoon Roy, Kim [Mon, 27 Feb 2017 10:48:38 +0000 (19:48 +0900)]
docs: Fix typos and some wrong expressions in Ecore and Edje API reference doxygen.
Summary: I had fixed some typos and wrong expressions, euch as capital letters, singular Etc. in Ecore and Edje API reference doxygen.
Test Plan: Doxygen Revision
Reviewers: stefan, cedric, raster, Jaehyun_Cho, jpeg
Subscribers: conr2d
Differential Revision: https://phab.enlightenment.org/D4677
Myoungwoon Roy, Kim [Mon, 27 Feb 2017 10:35:52 +0000 (19:35 +0900)]
docs: Fix typos and some wrong expressions
Covers: Ecore_Drm, Ecore_Evas, Ecore_File, Ecore_IMF, and
Ecore_IMF_Evas API reference doxygen.
Summary: I had fixed some typos and wrong expressions, such
as capital letters, singular Etc. in Ecore_Drm, Ecore_Evas,
Ecore_File, Ecore_IMF, and Ecore_IMF_Evas API reference doxygen.
Test Plan: Doxygen Revision
Reviewers: stefan, cedric, raster, jpeg, Jaehyun_Cho
Subscribers: conr2d
Differential Revision: https://phab.enlightenment.org/D4680
Jean-Philippe Andre [Mon, 27 Feb 2017 05:27:24 +0000 (14:27 +0900)]
genlist: Final fix for odd/even styles issue
The key was to emit & process the signal to the edje objects
(item views) at the same time as we move them, ie. from the
loop in _item_block_position().
Also the proper counting must be used at all times. Hidden
items should not be counted.
Tree effect may still have issues but otherwise there is no
more blinking, double odd or even rows, etc... It all looks
good (as long as there is no tree effect!).
Fixes T3086
@fix
Jean-Philippe Andre [Fri, 24 Feb 2017 06:34:42 +0000 (15:34 +0900)]
genlist: Fix fileselector crazy behaviour
When using the fileselector in tree view mode (ie. expandable),
expanding any folder with a lot of files in it would cause the
genlist view to jump somewhere to the bottom. This is because
the mechanism preventing the view from moving was assuming that
all "prepend" operations meant prepending before the selected
item. This is not the case in case of expansion like in the
fileselector.
@fix
Jean-Philippe Andre [Fri, 24 Feb 2017 06:16:45 +0000 (15:16 +0900)]
genlist: Fix rare jump in prepend insert
If an item is selected, and another item is insert before
the selected item, then we try to lock the genlist view (pan)
around the selected item (if it's visible). Unfortunately,
every 16 inserts cause a jump by one line in the scroller.
That's because the scroll math assumes the block position is
known, but since it's a new block it wasn't known.
This patch fixes this issue by precalculating the block position.
Test scenario:
elementary_test -to "Genlist Tree, Insert Relative"
Select an item, clikck 50 times on "+ before".
The view should not jump.
This does not fix fileselector's craziness.
@fix
Jean-Philippe Andre [Thu, 23 Feb 2017 08:10:16 +0000 (17:10 +0900)]
genlist: (Mostly) fix item index odd/even styles
This fixes the internal item order index.
Note that groups don't reset the odd/even styles. The
original code wasn't very clear on the intent (setting
to 0 in one case, not increasing the counter in another,
but that was not consistent all over the place). I believe
resetting the odd/even styles at a group boundary would
look great, but this might be for another patch :)
This amends part of another commit, but keeps its feature:
b40a6eb85bf44a genlist: implement list position signals.
See T3086
PS: I've discovered more odd/even issues with the
fileselector in particular. Still working on it...
@fix
Jean-Philippe Andre [Thu, 23 Feb 2017 07:45:29 +0000 (16:45 +0900)]
Revert "elm_genlist: when appending items to the parent, prepend to the parent"
This reverts commit
43d82e567a2d655a089b6ca3f2d913e6ec52f1dc.
I don't understand this commit. It broke the logical order of
items, as the internal list wouldn't match the order on screen.
Other places in the code didn't seem to make this assumption
that parents come after their children. And for sure my recent
fixes require the parent to come before.
This commit was one of the many reasons why odd/even styles
look often wrong.
See T3086
Jean-Philippe Andre [Thu, 23 Feb 2017 06:52:31 +0000 (15:52 +0900)]
genlist: Remove macro GL_IT()
It was used to hide "it->item"... but was used less than it->item
itself. Explicit code here is not longer, and just as readable.
This macro I think was harmful to readability.
Simple sed, no real change at all.
Carsten Haitzler (Rasterman) [Sun, 26 Feb 2017 02:43:21 +0000 (11:43 +0900)]
evas gl common - fix nv12 text upload with upack row length
we segv'd because our testure width was wrong... i was row span
length in bytes and we use luminance+alpha texture... this fixes it.
@fix
Mike Blumenkrantz [Fri, 24 Feb 2017 19:13:13 +0000 (14:13 -0500)]
ecore: do not access 'timer_thread' global from animator thread
@fix
Mike Blumenkrantz [Fri, 24 Feb 2017 19:13:13 +0000 (14:13 -0500)]
ecore-evas: use ee->prop.window in ecore_evas_input_event_register()
this allows window events to match correctly
@fix
Mike Blumenkrantz [Fri, 24 Feb 2017 19:13:13 +0000 (14:13 -0500)]
ecore-evas: handle pointer_warp() for buffer canvas
this was missing and would do nothing when called
Mike Blumenkrantz [Fri, 24 Feb 2017 19:13:13 +0000 (14:13 -0500)]
ecore-evas: handle pointer_xy_get() for buffer canvas
this was missing and would do nothing when called
Mike Blumenkrantz [Fri, 24 Feb 2017 19:13:13 +0000 (14:13 -0500)]
ecore-evas: handle screen_geom_get() for buffer canvas
this was missing and would do nothing when called
Daniel Kolesa [Fri, 24 Feb 2017 16:17:52 +0000 (17:17 +0100)]
docgen: fix broken inheritance graphs
Daniel Kolesa [Fri, 24 Feb 2017 16:12:28 +0000 (17:12 +0100)]
docgen: more useful event listing
Daniel Kolesa [Fri, 24 Feb 2017 15:24:36 +0000 (16:24 +0100)]
docgen: disregard override info for displaying property get/set
Daniel Kolesa [Fri, 24 Feb 2017 15:10:00 +0000 (16:10 +0100)]
docgen: minor speed optimizations and cleanups
Daniel Kolesa [Fri, 24 Feb 2017 14:47:25 +0000 (15:47 +0100)]
docgen: merge overridden and other categories for methods/properties
Chris Michael [Thu, 23 Feb 2017 17:39:02 +0000 (12:39 -0500)]
elementary: Fix compilation for SDL
Not sure how long this has been broken, but the variable name changed
in this routine to "is_gl_accel"..."is_hw_accel" is no longer used, so
change variable name here to fix compilation with SDL.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Daniel Kolesa [Thu, 23 Feb 2017 17:17:22 +0000 (18:17 +0100)]
docgen: initial support for inherited events listing
Daniel Kolesa [Thu, 23 Feb 2017 16:09:12 +0000 (17:09 +0100)]
docgen: add "Others" section with all remaining callables to class pages
Daniel Kolesa [Thu, 23 Feb 2017 15:41:43 +0000 (16:41 +0100)]
docgen: merge methods and properties in listing
Daniel Kolesa [Thu, 23 Feb 2017 15:30:57 +0000 (16:30 +0100)]
docgen: properly handle overridden property docs
Jean-Philippe Andre [Thu, 23 Feb 2017 06:32:17 +0000 (15:32 +0900)]
elm: Restore ABI compatibility (elm_pan_gravity)
elm_pan_gravity_{set,get} are functions that were generated as
legacy APIs (in other words EAPI), but were never actually exposed
to applications as they were protected behind EFL_EO_API_SUPPORT
(see elm_interfaces.h).
This patch restores the ABI compatibility with elementary 1.18.
Carsten Haitzler (Rasterman) [Thu, 23 Feb 2017 02:43:43 +0000 (11:43 +0900)]
emotion XXX - make nv12 709 streams work even with slightly off colors
ther eis no 709 nv12 support support in evas but there is 601, so use
that for now until we add the feature of 709 nv12 support.
Felipe Magno de Almeida [Wed, 22 Feb 2017 21:41:32 +0000 (18:41 -0300)]
efl-js: Fix deprecated Set feature of setting non-primitive value
Lauro Moura [Thu, 16 Feb 2017 21:22:13 +0000 (18:22 -0300)]
efl_js: Export efl.Loop
Lauro Moura [Thu, 16 Feb 2017 21:21:08 +0000 (18:21 -0300)]
efl_js: Use efl_add_ref for saner refcount.
efl_add was messing up the refcount in objects with parents on the JS
side.
Lauro Moura [Wed, 7 Dec 2016 17:49:43 +0000 (14:49 -0300)]
js: Update examples, including window api changes.
Window now inherits from Container instead of Pack.
Also removed some deprecated stuff.
Lauro Moura [Wed, 7 Dec 2016 21:00:36 +0000 (18:00 -0300)]
js: Raise exception to js instead of crashing
Lauro Moura [Mon, 13 Feb 2017 22:24:53 +0000 (19:24 -0300)]
eolian_js: Avoid errors when getting function scope
Lauro Moura [Mon, 13 Feb 2017 21:04:56 +0000 (18:04 -0300)]
efl_js: Update register functions.
Lauro Moura [Fri, 10 Feb 2017 14:55:43 +0000 (11:55 -0300)]
js: Change test eos to ptr()
Daniel Kolesa [Wed, 22 Feb 2017 17:29:07 +0000 (18:29 +0100)]
docgen: add a way to get numerical id of a function
Daniel Kolesa [Wed, 22 Feb 2017 14:54:36 +0000 (15:54 +0100)]
docgen: more useful function listings in class pages
Now there are C signatures visible.
Jean-Philippe Andre [Wed, 22 Feb 2017 06:34:34 +0000 (15:34 +0900)]
genlist: Simplify code (remove one argument)
Parameter "qadd" is always true when calling _item_process_post(),
so simplify the code by removing it.
Jean-Philippe Andre [Wed, 22 Feb 2017 04:53:03 +0000 (13:53 +0900)]
genlist: Fix more tree issues (expanded state)
This fixes a lot of cases where a genlist node (of any type)
with children may have appeared in the invalid expanded or
contracted state.
Before this patch, the test case "Genlist tree, Relative insert"
looked like below (all items are programmatically added):
> A
> 1
> 2
> B
> 3
> 4
The problem above is that A and B have visible children but
still believe they are in contracted state. This patch ensures
that A and B will be marked as expanded, but will do so without
firing an "expanded" signal and definitely without the
"expand,request" signal.
After this patch, the test case will look like this:
v A
> 1
> 2
v B
> 3
> 4
Which is more correct. Note that this test case does not handle
any expand/contract signal.
NOTE: This is a behaviour break!
Jean-Philippe Andre [Tue, 21 Feb 2017 13:04:10 +0000 (22:04 +0900)]
genlist: Fix insert after with a tree
This fixes a case where inserting item "C" after item "B" in this
tree would go wrong:
A
B
- 1
- 2
Before this patch, 1 and 2 lose their parent:
A
B
C
- 1
- 2
After this patch, 1 and 2 retain their parent:
A
B
- 1
- 2
C
Insert before worked by luck, no need to fix it.
Note that this patch may require the next one to actually
work (ensuring expanded state flag).
NOTE: This is a behaviour break!
Jean-Philippe Andre [Tue, 21 Feb 2017 12:48:11 +0000 (21:48 +0900)]
genlist: Fix sorted_insert with tree
This fixes the test case "Genlist Tree, Insert Sorted".
This is a pretty ugly patch... but the genlist code is already
pretty ugly, as it keeps a flat inlist of items (sd->items)
as well as a tree structure in parallel.
Before this patch, the following configuration led to issues:
1
3
- A
- B
Adding item "2" led to a crash. Adding item 4 led to this:
1
3
4
- A
- B
Items A and B lost their parent "3". Subsequent sorted inserts
would lead to insane bahaviour, where for instance "8" would
appear before "3".
This patch fixes all sorted inserts, at the cost of performance
(an optimized code path is avoided). Subsequent patches will
increase the robustness of the tree structure.
NOTE: This is a behaviour break!
Fixes T4850
Andrii Kroitor [Tue, 21 Feb 2017 17:33:51 +0000 (19:33 +0200)]
edje_edit: fix scripts compilation
@fix
Daniel Kolesa [Tue, 21 Feb 2017 15:48:16 +0000 (16:48 +0100)]
docgen: inherit overridden method/property brief descriptions on class pages
Amitesh Singh [Tue, 21 Feb 2017 15:23:51 +0000 (20:53 +0530)]
slider: theme - fix warnings
Fixes warnings related to "disabled_visible" states
not present in "limits" part.
fixes T5123
Minkyu Kang [Tue, 21 Feb 2017 09:32:30 +0000 (15:02 +0530)]
elementary gengrid: fix for working item reorder mode correctly
Summary:
Change the item indexing to start 1 after reordering animation.
Change the logic of edge checking to get the row or col correctly.
Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
Test Plan:
elementary_test -to gengrid2
append 6 items
enable the reorder mode
check reordering is working properly (4 to 1)
@fix
Reviewers: singh.amitesh, cedric
Subscribers: jehun.lim, jpeg
Differential Revision: https://phab.enlightenment.org/D4676
Jean-Philippe Andre [Tue, 21 Feb 2017 09:14:36 +0000 (18:14 +0900)]
dayselector: Fix DaySelector widget
An invalid strcmp() led to always reject the swallowed
widgets, which were Elm.Check instead of Elm_Check.
Use efl_isa() instead.
Fixes T5034
Jean-Philippe Andre [Tue, 21 Feb 2017 08:49:44 +0000 (17:49 +0900)]
edje: Fix a major issue with recalc loop
With the new Efl.Ui.Clock widget, which implements Datetime,
most parts are relative to each other, and trigger a near-inifinite
recalc of all the parts. Indeed edje was recalculating a part even
if it had already calculated it (flag is set).
This seemingly simple patch fixes Datetime and probably a lot
of other edje widgets.
Fixes T4909
@fix
Jean-Philippe Andre [Tue, 21 Feb 2017 08:48:08 +0000 (17:48 +0900)]
evas: Optimize out some nop calls to evas text
Some property set calls to Evas Text are NOPs if the property was
already set to the same value. Avoid doing any work then.
This adds a missing intercept call (size_set as it's overriden
by Evas.Text).
Jean-Philippe Andre [Tue, 21 Feb 2017 07:14:20 +0000 (16:14 +0900)]
elm: Make clock widget more resilient to invalid config
I was in a situation where my elm_config had the proper version
but did not contain a proper module name for the clock widget.
This resulted in not being able to create any field object in
the clock widget... in other words it made for a very useless
clock :)
Ideally the config should be updated at this point. I'm not
sure how to proceed exactly, though :(
Jean-Philippe Andre [Tue, 21 Feb 2017 05:46:02 +0000 (14:46 +0900)]
evas: Fix module memleak during evas_shutdown
This fixes a minor memory leak during shutdown.
Note: This does NOT perform the dlclose (and still leaks the
Eina_Module descriptor). Calling dlclose leads to a whole lot
of other issues, so we avoid it.
Jean-Philippe Andre [Tue, 21 Feb 2017 06:11:32 +0000 (15:11 +0900)]
evas: Fix make check (evas_suite compilation)
This fixes issues where Evas_Object_Intercept_Cb_Type was not
defined, as this is defined in Evas_Legacy.h (unfortunately...
as it's used by elementary), but the private headers defining
EFL_CANVAS_OBJECT_PROTECTED were included after Evas_Legacy.h.
Jean-Philippe Andre [Tue, 21 Feb 2017 06:11:42 +0000 (15:11 +0900)]
evas: Fix compilation warning (unused variable)
Jean-Philippe Andre [Tue, 21 Feb 2017 03:24:56 +0000 (12:24 +0900)]
evas: Avoid data_scope_get in internal function
Jean-Philippe Andre [Mon, 20 Feb 2017 14:14:38 +0000 (23:14 +0900)]
evas: Inline part of clip_dirty
clip_dirty is called A LOT. Unfortunately this patch does not
result in very measurable improvements.
**********************
Note about this merge:
After this series of patches, the CPU usage for a certain test
case has significantly gone down:
Based on
c0e6a8d698c17fc16f9b67fc9 (upstream before git push):
NS since frame 2 =
28910806786 , 2937 frames = 9843652 / frame
After this patch:
NS since frame 2 =
19218592951 , 2928 frames = 6563727 / frame
1.18:
NS since 2 =
13105584220 , 2961 frames = 4426066 / frame
As we can see, 1.18 remains *much* better than 1.19. I'm still
struggling trying to figure out why (clip_recalc is called more,
but the call tree is hard to decypher).
The test case is:
EINA_FREEQ_BYPASS=1 ELM_TEST_AUTOBOUNCE=100 \
elementary_test -to "Scroller 2"
EFL was compiled with GCC 6.3.1 with -O3 -g
@optimization
Jean-Philippe Andre [Mon, 20 Feb 2017 11:24:21 +0000 (20:24 +0900)]
evas: Inline part of clip_recalc
This function was moved out of inline (see
d7c6fca6c00a0bfb05) but
unfortunately the early checks at its beginning are likely
to result in an early return. Inline this part so we get back a
better performance. Inlining the whole function does not improve
the performance, as GCC simply gives up with inlining.
Note: Between 1.18 and master the number of calls to clip_recalc
has simply blown out. It is thus crucial to find out where those
calls come from but also micro-optimize the function itself. This
patch does the latter only.
@optimize
Jean-Philippe Andre [Mon, 20 Feb 2017 10:34:58 +0000 (19:34 +0900)]
evas: Optimize out some calls to data_scope_get
Within evas when we know an object is marked as is_smart, then
we know it's a smart object. :)
@optimize
Jean-Philippe Andre [Mon, 20 Feb 2017 09:26:40 +0000 (18:26 +0900)]
evas: Avoid more calls to efl_isa in clip_set
No need to verify that the clip is an evas object unless we're
actually going to change said clipper. This has a minor effect,
removing ~10% of all calls to efl_isa (0.1% of everything).
After all those efl_isa patches the number of calls has dropped
from 1.9M (~3.05%) to ~570k (0.76%). More can still be done,
surely. Now efl_isa accounts for ~0.05% of my CPU usage according
to perf top (down from ~0.7%).
If edje uses EO APIs instead of legacy image APIs, then many of
the remaining calls will vanish.
@optimization
Jean-Philippe Andre [Mon, 20 Feb 2017 09:07:00 +0000 (18:07 +0900)]
evas: Assume object is valid and avoid call to efl_isa
In an internal function we should be able to safely assume an
object is indeed a smart object.
@optimization
Jean-Philippe Andre [Mon, 20 Feb 2017 08:59:50 +0000 (17:59 +0900)]
evas: Optimize out more calls to efl_isa
In relative smart move, we only need to check once that the object
is indeed a valid smart object. This drops the call count from ~1.02M
to ~785k.
@optimization
Jean-Philippe Andre [Mon, 20 Feb 2017 08:25:29 +0000 (17:25 +0900)]
evas: Avoid call to EAPI inside internal code
This avoids calling efl_isa and locking the async mutex.
In callgrind analysis, this reduces the count of calls to
efl_isa from 1.96M to 1.02M.
@optimization
Jean-Philippe Andre [Fri, 17 Feb 2017 09:46:09 +0000 (18:46 +0900)]
evas: Avoid useless calls to eo_data_scope_get
Use an internal variant of the function for evas when we already
have the protected data pointer.
Jean-Philippe Andre [Fri, 17 Feb 2017 09:37:03 +0000 (18:37 +0900)]
eo: Make _eo_obj_pointer_done an inline function
@optimization
Jean-Philippe Andre [Fri, 17 Feb 2017 09:15:57 +0000 (18:15 +0900)]
evas: Remove useless call to evas_object_async_block
It's already called from the intercept cb.