Commit Graph

23580 Commits

Author SHA1 Message Date
Mike Blumenkrantz e0c8ab4c79 ecore: reduce pipe wait time during shutdown
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>
2018-04-06 10:09:00 -07:00
Mike Blumenkrantz 0fddfe199f ecore: poll the thread pipe twice during shutdown
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>
2018-04-06 10:08:57 -07:00
YeongJong Lee 0e035b2e22 elm_inwin: use macro for content set/get/unset
Summary: also, content_aliases is not necessary. it can use Layout's content_aliases.

Test Plan:
elementary_test -to inwin
elementary_test -to inwin2
elementary_test -to inwin3

Reviewers: Jaehyun_Cho, woohyun

Subscribers: herb, cedric

Differential Revision: https://phab.enlightenment.org/D5860

Reviewed-by: Cedric Bail <cedric@osg.samsung.com>
2018-04-06 10:08:52 -07:00
Alastair Poole 10fb87bbcd efl_selection_manager: fix build on MacOS and WL2. 2018-04-06 16:11:41 +01:00
YeongJong Lee 67be5b427a efl_wl: Add NULL check
Reviewers: zmike, ManMower, Jaehyun_Cho, woohyun

Reviewed By: ManMower

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D5862
2018-04-06 09:38:23 -05:00
Carsten Haitzler b63d64bda2 ecore audio - add comment that this is an intended leak... 2018-04-06 22:40:33 +09:00
Stefan Schmidt 63a390ecbc tests: eldbus: mark unused parameter as such 2018-04-06 12:01:39 +02:00
Stefan Schmidt ea60b359a7 tests: ecore: remove no longer needed jenkins check function
After changes to the ecore_timer tests this function is no longer used
or needed. It can safely go.
2018-04-06 11:19:40 +02:00
Stefan Schmidt 7b4d9f5905 tests: elementary: remove unused variable
Looks like a copy and paste left over from another test.

../../../src/tests/elementary/elm_test_genlist.c:58:16: warning: unused variable ‘type’ [-Wunused-variable]
2018-04-06 10:35:44 +02:00
Carsten Haitzler 35a6e7a6d2 ecore audio - dont unload modules etc. in case audio obj around on exit
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.
2018-04-06 17:08:44 +09:00
Cedric Bail 0ba3ffda8d ecore: and rename the test for Eina_Future to be the only promise test. 2018-04-05 13:18:24 -07:00
Cedric Bail 8563e3780e ecore: remove tests of old Efl_Future based on Eo. 2018-04-05 13:17:32 -07:00
Cedric Bail 5ebe5bb62c evas: by moving lifecycle management to be handle by the death of the parent, there should be no call to efl_del. 2018-04-05 11:52:47 -07:00
Cedric Bail 53378d6a6b evas: the life cycle of an object inside an hash can not rely on the parent destroying, use ref/unref properly. 2018-04-05 11:52:12 -07:00
Cedric Bail def3bb6eec ecore: rely on object being destroyed on parent invalidate. 2018-04-05 11:52:12 -07:00
Cedric Bail a9fbaf16d3 ecore: pipe fd can become invalid while being processed. 2018-04-05 11:52:12 -07:00
Cedric BAIL 0578079927 evas: we should always sync the canvas before destroying the object. 2018-04-05 11:50:52 -07:00
Mike Blumenkrantz 81d97eb45a tests: ck_assert_ptr_null -> ck_assert_ptr_eq 2018-04-05 14:04:21 -04:00
Mike Blumenkrantz 681cfc9177 tests: ck_assert_ptr_null -> ck_assert_ptr_ne 2018-04-05 13:43:54 -04:00
Cedric BAIL 621f34d322 eina: mark thread by default as not cancellable as per Eina documentation.
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.
2018-04-05 10:39:30 -07:00
Mike Blumenkrantz 978901903d tests: move bindings tests to using checked fixtures too.
T6862
T6811

Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
2018-04-05 10:19:57 -07:00
Xavi Artigas 2a512b72f0 elementary: fix efl_ui_view_list examples
Reviewers: SanghyeonLee

Reviewed By: SanghyeonLee

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D5863

Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
2018-04-05 10:00:02 -07:00
Mike Blumenkrantz 71f76c65cf tests: add test for check < 0.11 to enable timing info 2018-04-05 12:25:16 -04:00
Stefan Schmidt 568fc2ab30 tests: elementary: fix build break after rename of efl_ui_view examples
Commit ae8df9ba07 renamed the files but
did not rename the references in the Makefile.
2018-04-05 14:37:47 +02:00
Carsten Haitzler fcd7c3097c elm - selection manager - fix string buffer handling and format types
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
2018-04-05 21:17:22 +09:00
Daniel Kolesa 284e352811 eolian: _ is allowed in doc references 2018-04-05 13:54:20 +02:00
Shinwoo Kim 3cd2243028 Fix static analysis result
[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.
2018-04-05 19:40:57 +09:00
Carsten Haitzler 2105bc4fb1 efl selection manager - build again if no wl or no x is enabled
so make check and my builds passed because i have wl and x enabled. if
one of these isnt then this build will fail. my fix fails. this fixes
that.
2018-04-05 19:16:16 +09:00
Carsten Haitzler 37ff19c80e elm - fix selection debug print to not print unterminated buffers
so it's printfing a non-0 byte terminated string ... it's a
buffer/slice which has explicit lenmgth and no nul, so fwrite it
approplriately.
2018-04-05 18:52:57 +09:00
Carsten Haitzler 3a12a6c4a5 evas - plug in dirty + pixels get hold in "is inside" for images
this should fix T6791

@fix
2018-04-05 18:52:57 +09:00
Carsten Haitzler d009a231e9 efl selection manager - handle multi window selections properly
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
2018-04-05 18:52:57 +09:00
Carsten Haitzler 468d55e284 efl selection - fix paste with multiple windows and filter by window
so changes in elm cnp (efl selection) broke cnp with terminology
multi-window mode. this fixes it.

@fix
2018-04-05 18:52:57 +09:00
Carsten Haitzler b90cd2f683 efl threadio - make call and call sync func proto same as efl events
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.
2018-04-05 18:52:57 +09:00
Carsten Haitzler 78d7fded5d efl exe - map some "well known" exit codes to specific errnos 2018-04-05 18:52:57 +09:00
Carsten Haitzler 6fbf6d6c67 efl task - support flag to ignore exit code errors for future resolve 2018-04-05 18:52:57 +09:00
Carsten Haitzler 6e308e6039 ecore - thread - document thread max limits more sensibly
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.
2018-04-05 18:52:57 +09:00
Carsten Haitzler 2577def20e elm config tool - get web backend when entry is deleted not on terminate
terminate may be called after widgets/windows are deleted already...
so donyt get this stuff in terminate.
2018-04-05 18:52:57 +09:00
Carsten Haitzler cffb31f4a7 elm config - dont leak config if re-loading it again later on
delete config object and so on before the relaod
2018-04-05 18:52:57 +09:00
Carsten Haitzler 08dc189053 elm win - change parent to only use win parents in efl win struct as parent 2018-04-05 18:52:57 +09:00
Mike Blumenkrantz ab37ca4d7b tests: increase step sizes for eina_fp_div and eina_fp_mul tests
fix T6841

Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:32 +02:00
Mike Blumenkrantz 594b5f4967 tests: reduce looping in slstr_thread thread callbacks
this works out to the same number of total tests as slstr_many but
now split across all the threads

fix T6846

Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:32 +02:00
Mike Blumenkrantz 88436ca89c tests: reduce looping in eina_test_spinlock
no changes to coverage

fix T6845

Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:32 +02:00
Mike Blumenkrantz 7819d56da6 tests: add eina_test_hash_int64_fuzze
ref T6844

Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:32 +02:00
Mike Blumenkrantz 4ac90511b9 tests: reduce looping in eina_ustringshare_putstuff
fix T6843

Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:32 +02:00
Mike Blumenkrantz e8878e19b7 tests: reduce looping in eina_binshare_putstuff test
also slightly increase eina_hash coverage

fix T6843

Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:31 +02:00
Mike Blumenkrantz d5583d74ea tests: improve eina_binshare_collision test
remove rand() usage and loop less

fix T6843

Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:31 +02:00
Mike Blumenkrantz 7f54a431a3 tests: change eina cmdline test names to match api namespaces
Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:31 +02:00
Mike Blumenkrantz 910db08a6b tests: remove 9900 loop iterations from eina_test_file_thread
no changes in coverage

fix T6842

Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:31 +02:00
Mike Blumenkrantz e6c8bf7fbf tests: rework eina hash fuzzing tests
these are supposed to be for testing the finding of values not in the
hash, not basic hash operations

fix T6839

Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:31 +02:00
Mike Blumenkrantz 631f506a6f tests: fix mem leak in eina_test_hash_add_del_by_hash
Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:31 +02:00
Mike Blumenkrantz f2dc01a8dc tests: reduce malloc usage in eina_test_hash_extended
ref T6839

Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:30 +02:00
Mike Blumenkrantz 947c954141 tests: reformat eina_test_hash.c
no functional changes

Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:30 +02:00
Mike Blumenkrantz eabd003b00 tests: use namespacing for eina hash tests
no functional changes

Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:30 +02:00
Mike Blumenkrantz 80569fd7a6 tests: use namespacing for safepointer test names
Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:30 +02:00
Mike Blumenkrantz 908ba030bf tests: reduce array size in safepointer tests
this reduces test runtime by ~1.0s while having no effect on coverage

fix T6836

Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:30 +02:00
Mike Blumenkrantz 3162240921 tests: simplify eina safepointer tests to be more readable
no functional changes

Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:29 +02:00
Mike Blumenkrantz 2bbc300b80 tests: use EINA_C_ARRAY_LENGTH macro in safepointer tests
no functional changes

Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:29 +02:00
Mike Blumenkrantz 1f7f7297e3 tests: rework strbuf append/prepend tests
there's no point in iterating this many times; the base step size is 32
and so each loop will only increase the buffer...not at all since it takes
3 loops for the buffer to increase by the step size

verify that the buffer increases and then stop instead of spinning uselessly

fix T6835

Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:29 +02:00
Mike Blumenkrantz 0f3f651f81 tests: reformat eina_test_strbuf.c
Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:29 +02:00
Mike Blumenkrantz 26103722be tests: use namespacing for eina strbuf tests
Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:29 +02:00
Mike Blumenkrantz 11d695cfcd tests: improve eina_test_list_shuffle
reduce iteratons by a hundredfold, remove verifying of rand() seed,
check whether shuffle actually shuffles

fix T6833

Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:29 +02:00
Mike Blumenkrantz 8ca6102f62 tests: rename eina_list tests to use list namespace for readability
Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:28 +02:00
Mike Blumenkrantz 05edb41388 tests: remove sleep calls from eina_barrier_test_simple
the timing does not matter for these tests, so there's no point in
randomly waiting longer and delaying build completion

fix T6832

Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:28 +02:00
Mike Blumenkrantz 5427cd31d1 tests: improve coverage in eina_rbtree_fuzzy test
Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:28 +02:00
Mike Blumenkrantz 0683552037 tests: simplify eina_rbtree_fuzzy test and speedup by infinity%
this test is to try and match values in a tree which have not been
inserted, so remove irrelevant insert/remove operations as well as
insane looping

fix T6830

Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:28 +02:00
Mike Blumenkrantz f176c86b09 tests: greatly reduce iterations for eina_rbtree_remove test
this has no bearing on coverage, so there is not much point in uselessly
iterating here

ref T6830

Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:28 +02:00
Mike Blumenkrantz 391ebf9cff tests: reduce malloc calls in eina rbtree tests
ref T6830

Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:28 +02:00
Mike Blumenkrantz 5f55a07f8a tests: rework eina inlist tests to be infinity% faster
coverage currently at ~95%

fix T6829

Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:27 +02:00
Mike Blumenkrantz 7bf389f3a7 elm: remove hacky calls to emotion_init/shutdown
these are irrelevant since emotion manages init/shutdown internally

fixes elm test pass state

Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:27 +02:00
Mike Blumenkrantz 73106cc201 emotion: call shutdown when smart objects are destroyed
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>
2018-04-05 11:10:27 +02:00
Mike Blumenkrantz 492814bf2f tests: unbreak PACKAGE_BUILD_DIR usage in makefiles
for some reason, a few projects changed this from the expected value of
abs_top_builddir for their test suites, breaking the usage of this define
within those tests

fix T6812

Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:27 +02:00
Mike Blumenkrantz ddd00273a4 tests: disable xim in ecore_imf test when DISPLAY is not set
tests should be able to run in console without failing

Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:27 +02:00
Mike Blumenkrantz 55441e82e2 elput: include Eina.h in public header
Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:27 +02:00
Mike Blumenkrantz 97b76bd35a tests: redo eina in-tree module loading
this performs an eina init/shutdown check and loads available modules
before running remaining tests

note that this still does not work and may never have worked because
PACKAGE_BUILD_DIR is broken

ref T6812

Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:26 +02:00
Mike Blumenkrantz 624925fe6e tests: move to using checked fixtures for all test suites
individual tests should not need to explicitly call init/shutdown functions
in most cases, and many did not properly do this anyway

see followup commit which resolves some issues with eina tests

ref T6813
ref T6811

Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:26 +02:00
Mike Blumenkrantz 730020c7d4 tests: remove duplicated eina mempool test
Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:26 +02:00
Mike Blumenkrantz e9eb96e097 eldbus: call ecore_init in eldbus_init
eldbus requires ecore and cannot run without it

@fix

Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:26 +02:00
Mike Blumenkrantz ff67706783 tests: make test time output configurable with TIME_DIFF_THRESHOLD
setting this value too low will likely lead to unmanageable results

Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:25 +02:00
Mike Blumenkrantz adc601aca2 tests: add instrumentation to existing tests to find slow tests
efl_check.h must be included and the EFL_START/END_TEST macros must be
used in place of normal START/END_TEST macros

timing is enabled when TIMING_ENABLED is set
https://phab.enlightenment.org/w/improve_tests/

Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:25 +02:00
Mike Blumenkrantz b340b5e49c tests: match test names using strcasecmp when parsing cmdline
Reviewed-by: Stefan Schmidt <stefan@osg.samsung.com>
2018-04-05 11:10:25 +02:00
Hermet Park 8329dace50 ecore_con: resolve the possible read of uninitalized data.
Submitted-By-Off: JongMin Lee<jm105.lee@samsung.com>
2018-04-05 15:29:57 +09:00
Hermet Park 32bbf68f08 ecore_con: resolve the possible read of uninitialized data.
Signed-Off-By: JongMin Lee<jm105.lee@samsung.com>
2018-04-05 15:20:14 +09:00
Hermet Park ec7bcc79e7 ecore: resolve the possible use of invalid handle.
Signed-Off-By: JongMin Lee<jm105.lee@samsung.com>
2018-04-05 15:15:34 +09:00
Hermet Park 820aca03ea emil: resolve possible memory leak.
Submitted-By-Off: JongMin Lee <jm105.lee@samsung.com>
2018-04-05 15:01:44 +09:00
WooHyun Jung 07f7fee2d0 evas_gl_image: add null check 2018-04-05 11:10:43 +09:00
WooHyun Jung 3bc65be44d evas textblock: add null check to avoid segfault 2018-04-05 10:55:44 +09:00
Cedric Bail 6fa9dc37fe evas: parent need to exist to create a vg object. 2018-04-04 16:31:09 -07:00
Derek Foreman 2ec16fbf32 elm_win: Improve wayland cursor change race
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.
2018-04-04 15:31:05 -05:00
YeongJong Lee c6ce04e48f efl_ui_focus_manager_root_focus: refactor _state_eval
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
2018-04-04 19:52:46 +02:00
Marcel Hollerbach 135ea9e894 elm_suite: add test case for history_pop 2018-04-04 19:52:46 +02:00
Marcel Hollerbach aa0ba5d21d elm_suite: add test case for no child
make sure 39739ba333 does not happen again
2018-04-04 19:52:46 +02:00
Derek Foreman 63c96df0d4 elm_win: Remove unused variable
hot_obj is unused
2018-04-04 11:16:32 -05:00
SangHyeon Lee ae8df9ba07 efl_ui_view_list : change the name of Model based list
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
2018-04-04 19:13:41 +09:00
Marcel Hollerbach 39739ba333 efl_ui_focus_manager_calc: node depth is 0 for a NULL object 2018-04-04 10:11:22 +02:00
Marcel Hollerbach 62c2f49487 elm_suite: cleanup managers
so unneccessary error messages do not appear.
2018-04-04 10:10:53 +02:00
Marcel Hollerbach dd53f47793 elm_suite: test refocus on unregister 2018-04-04 09:55:26 +02:00
Marcel Hollerbach 9725e728a5 elm_suite: add test cases for request subchild 2018-04-04 09:55:26 +02:00
Cedric BAIL 55adae23ec evas: remove useless/buggy line most likely due to left over during merging patch. 2018-04-03 14:26:59 -07:00
Cedric BAIL 6d3a8a1e32 evas: we should actually continue the chain of interpolation up to the next parent. 2018-04-03 14:26:59 -07:00
Cedric BAIL 49fbdcf17a evas: vg loader actually should hold a ref when no parent is given. 2018-04-03 14:26:59 -07:00
Cedric BAIL c88780b398 evas: for whatever reason the example didn't interpolate the origin before. 2018-04-03 14:26:59 -07:00
Cedric BAIL 4748cd7da2 evas: update example to always set a parent for VG node. 2018-04-03 14:26:59 -07:00
Lauro Moura d1e7a9474c csharp: Fix typo in generated code. 2018-04-03 17:29:41 -03:00
Lauro Moura eac568f6dc csharp: Silence test build warnings.
Was trying to modify const strings.
2018-04-03 17:29:41 -03:00
Lauro Moura bffe42e71b csharp: Support argument marshalling in func ptrs
Function pointers now go through the same argument marshalling pipeline
as normal functions.

This will enable interfaces like Efl.Ui.Format to work properly.
2018-04-03 17:29:41 -03:00
Lauro Moura 3fd1566a08 csharp: Provisionally fix conversion of eina.Value
When we have an eina.Value_Native (representing an Eina_Value passed by
value) and assign it to an eina.Value (a class with an IntPtr to an
underlying Eina_Value) we copy it so the eina.Value can take ownership
and free the data normally.

A possibly better alternative would be adding an extra flag to
eina.Value (something like OwnsPointer) to check whether we should free
the struct we point to or not.
2018-04-03 17:29:41 -03:00
Lauro Moura e2fafe5b0c efl_mono: Initial version of Strbuf support.
Also moved the ValueOwnership enum from eina value to eina.Ownership. It
can be shared among the eina structures if needed.
2018-04-03 17:29:41 -03:00
Felipe Magno de Almeida 92f5383e3c efl-cxx: Fix using efl_add_ref instead of efl_add 2018-04-03 17:28:07 -03:00
Felipe Magno de Almeida af80ec3716 efl-mono: Fix using efl_add_ref instead of efl_ref 2018-04-03 17:26:52 -03:00
Felipe Magno de Almeida ca45ee9a9f efl-mono: Fix test not include'ing Ecore.h 2018-04-03 17:26:28 -03:00
Felipe Magno de Almeida be06c27762 efl-mono: Fix compile flags, .config files and class_name in description 2018-04-03 14:01:29 -03:00
Marcel Hollerbach 7fe52c55cf efl_ui_focus_manager_calc: fix infinite loop in _request_subchild
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.
2018-04-03 14:08:28 +02:00
Marcel Hollerbach 36d9fdc770 elm_toolbar: use the correct flag to detect wether a item is visible
fix T6806
2018-04-03 14:08:28 +02:00
Marcel Hollerbach 03efb59da9 elm_entry: use a normal calc manager instead of the root focus
fix T6795
2018-04-03 14:08:28 +02:00
Hermet Park 63b6d9c17f evas: fix Evas Map AA changes the alpha flag of an image issue.
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
2018-04-03 19:23:52 +09:00
Cedric Bail 224049fa18 eo: trigger invalidate and noref event before any modification is commited on the object tree. 2018-04-02 17:18:46 -07:00
Cedric Bail 1ca196fbcd ecore_evas: add a hook interceptor for evas_new, will be useful for a portable Exactness. 2018-04-02 15:12:31 -07:00
Cedric Bail a44697c37a ecore_evas: refactor logic for creating Ecore_Evas. 2018-04-02 15:12:31 -07:00
Davide Andreoli 94433af83a FDO icons: add the inode-directory icon
This icon is used by some filemanager (like thunar) instead
of the standard "folder" one... make them happy.
2018-04-02 14:44:44 +02:00
Hermet Park cbd9ab686d evas - remove wrong flag.
obviously, this parameter is being used.
2018-04-02 20:25:22 +09:00
Hermet Park f21aedce22 evas - correct evas map anti-alias rendering to perform properly.
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.
2018-04-02 20:23:25 +09:00
Davide Andreoli 1e87f50eea Reveal the last bug in elm test focus 6
The highlight should start on the second genlist item,
instead nothing is highlighted on first run.

The highlight come back to normal if you press up/down,
or if you give/remove the focus to the window 2 times.
2018-04-02 12:09:57 +02:00
Cedric BAIL 9072c9a37a eo: add events when object get invalidated and loose all its reference matching other lifecycle events. 2018-03-30 09:53:59 -07:00
Cedric BAIL 79b283ab94 evas: fix lifecycle of Ector renderer.
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.
2018-03-29 14:07:54 -07:00
Cedric BAIL c515ee36e6 evas: parent of an Efl.Vg.Node can also be a Efl.Canvas.VG 2018-03-29 14:07:54 -07:00
Cedric BAIL d7da460dd2 eo: use EINA_SAFETY_ON_TRUE_GOTO to error message out in case of mistake. 2018-03-29 14:07:54 -07:00
Andy Williams ff4cf74dfa Fix private usage by removing those test 2018-03-29 22:06:12 +01:00
Carsten Haitzler 2fb5cc3ad0 efl_add_ref - fis to use efl_add properly with a parent.
fixes bc18b7e7ad and
168849e8a0
2018-03-29 13:30:55 +09:00
Andy Williams cc2b7a10a8 elm_code: Remove a render test and complex workarounds required
Fixes issues with Windows and general unused method warnings
2018-03-28 17:30:17 +01:00
Andy Williams 3b60da0e37 elm_code: Fix line selection with leading tabs 2018-03-28 16:47:55 +01:00
Marcel Hollerbach 28201f32a6 efl_ui_focus_manager_calc: do not crash for the case of a invalid child 2018-03-28 10:48:01 +02:00
Marcel Hollerbach 8fa22f2ab7 elm_config: add new infra for reloading config into the widget tree
fix T6792
2018-03-28 10:48:01 +02:00
Marcel Hollerbach e40f25b67e efl_interface_scrollable: call constructor at first
other calls could lead to a geometry_get call, which will crash if the
constructor of the canvas_object is not called yet.
2018-03-28 10:48:01 +02:00
Marcel Hollerbach b23c2b34e3 efl_ui_focus_manager: NULL out fields correctly 2018-03-28 10:48:01 +02:00
Marcel Hollerbach ca2461c280 efl_ui_focus_manager: move cleanup into one place
ref T6793
2018-03-28 10:48:01 +02:00
Mike Blumenkrantz 5c9f45fe80 ecore-con-eet: replace void_ptr usage with binbuf in eo api
Reviewed-by: Cedric Bail <cedric@osg.samsung.com>
2018-03-27 14:13:30 -07:00
Marcel Hollerbach 07d54832e5 eina: this should only load modules from the eina subdir
otherwise we are loading ecore modules etc. which are pulling in ecore
et. into the eina testsuite, nothing that should happen.
2018-03-27 17:41:44 +01:00
Daniel Kolesa 474a2a319b eolian: completely scoped validation
This is much stricter than the previous behavior,
as it allows no leakage of information from the
outside to the inside.
2018-03-27 13:48:58 +02:00
Daniel Kolesa e4fd05469d eolian: validate each class with its own unit's in mind only
This is stricter (doesn't allow outer symbols to leak in).
Also needed fixing some eo files.
2018-03-27 13:27:46 +02:00
Bryce Harrington 8267124023 eina: Cleanup grammar for eina_hash add and free routines
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>
2018-03-26 16:06:40 -07:00
Bryce Harrington 58df1ba17e eina: Fix typos
Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D5850

Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
2018-03-26 16:05:46 -07:00
Bryce Harrington 6ccc7448e7 eina: Add Doxygen in/out indicators to matrixsparse, clist, and array
Reviewers: cedric

Reviewed By: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D5849

Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
2018-03-26 16:03:46 -07:00
Arnaud Ferraris fcadb54640 ecore_con_url: implement transfer speed limitation options
Summary: Add MAX_SEND_SPEED & MAX_RECV_SPEED cURL options handling in ecore_con_url.

Reviewers: cedric

Reviewed By: cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D5848

Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
2018-03-26 16:01:53 -07:00
Hosang Kim 86ae239bae ecore_evas: don't set in_async_render flag if not in use async render.
Reviewers: jypark, raster, cedric

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D5844

Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
2018-03-26 15:58:54 -07:00
Carsten Haitzler 308e9586dd ecore - efl exe - use better exit codes
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.
2018-03-26 23:17:56 +09:00
Carsten Haitzler 0a3e7c05e4 ecore - efl exe + thread - error print if deleted before task is done
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.
2018-03-26 23:17:56 +09:00
Carsten Haitzler fd6d9da8fa ecore ipc - fix flush to not lose messages
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
2018-03-26 23:17:56 +09:00
Daniel Kolesa 2c76889347 eolian: fix segfault on error when input file fails to open 2018-03-26 11:57:53 +02:00
Daniel Kolesa d98dd33648 eolian: fill missing fields in doc objects 2018-03-26 11:56:26 +02:00
Jihoon Kim 54b689f3e0 ecore_imf: check validation before accessing context class
Change-Id: Id329b87167caa71aadd8ca454c50e9aaca275415
Signed-off-by: Jihoon Kim <jihoon48.kim@samsung.com>
2018-03-26 08:05:45 +09:00
Derek Foreman e9b7844bb8 ecore_drm2: Improve early tick logic
We should only have to actually force a tick if we can't set up
the tick job, as the evas changed callback or a following render
from the tick job's tick will cause a flip.

Should remove a potential for a missed tick near the start of
ticking.
2018-03-23 16:13:39 -05:00
Daniel Kolesa 3bddb2b6c4 eolian: commit all changes into staging area first 2018-03-22 18:01:31 +01:00
Daniel Kolesa 806c30ec34 eolian: complete staging area merge logic 2018-03-22 17:56:52 +01:00
Daniel Kolesa db04d3f670 eolian: introduce main and staging areas properly
The state is now correctly divided. No merging is performed yet,
which is to be done next.
2018-03-22 17:56:52 +01:00
Daniel Kolesa 3ae67b24b3 eolian: validate staging unit when parsing all 2018-03-22 16:27:35 +01:00
Daniel Kolesa 93a64c5eab eolian: clean rollback support
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
2018-03-22 15:37:25 +01:00
Daniel Kolesa d9a8fe0fca eolian: add state staging area
This will be used for clean rollbacks on errors.
2018-03-22 15:37:25 +01:00
Daniel Kolesa bc182e69d7 eolian: flush defer table before parsing 2018-03-22 15:37:25 +01:00
Cedric BAIL bc18b7e7ad efl: replace efl_del with efl_unref for cases where no parent exists
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
2018-03-20 17:20:57 -07:00
Cedric BAIL 168849e8a0 eo: use unref instead of del when constructor fails without parent
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
2018-03-20 17:20:57 -07:00
Cedric BAIL db92072338 edje: implement invalidate method and unset device callbacks here
prevent crashing in dangling callbacks

ref d26124a6d818f62d892e178d92098f5159a8c9e0

Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
2018-03-20 17:20:57 -07:00
Cedric BAIL cd8952cc6c efl_ui_win: match return value to function type in elm_win_window_id_get
ref 08c9f99134

Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
2018-03-20 17:20:57 -07:00
Cedric BAIL 21f96c2a71 edje: remove device callbacks on canvas del
avoid some race conditions when devices change during destructor

Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
2018-03-20 17:20:57 -07:00
Cedric BAIL de667f889e tests: fix misuse of eina_file in evas mesh tests
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
2018-03-20 17:20:57 -07:00
Cedric BAIL 6b2923c8de edje: avoid triggering errors when deleting edje file if canvas is deleted
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
2018-03-20 17:20:57 -07:00
Cedric BAIL 4c4177ac20 efl: use efl_add_ref to create objects which have no parent
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
2018-03-20 17:20:56 -07:00
Cedric Bail a1bf513920 eo: start reporting abuse of efl_del 2018-03-20 17:20:56 -07:00
Lauro Moura f9586a831b csharp: Add support for efl parts as Properties
Instead of
   var bg = efl.ui.Background.static_cast(myobj.Part("background"));

Now do
   var bg = myobj.Background;

Also a couple helper functions were added.
2018-03-20 16:50:30 -03:00
Lauro Moura 9a6dd32cb1 eolian_cxx: Fill documentation of part_def. 2018-03-20 16:50:30 -03:00
Lauro Moura 38bf8cc923 eolian-cxx: Add helper method to get all parts
Line get_all_methods, gets everything from the inherits too.
2018-03-20 16:50:30 -03:00
Lauro Moura 7fc20c08ee csharp: Use the library mapping on linux too.
Now the generated DllImport call will have the actual library name
instead of placeholders on Linux. Before we relied on dlsym being able
to search for the symbols on all loaded so's while Windows needed you to
specify the correct library to call GetProcAddress.

This fixes the case when someone call an function from an efl interface
defined in efl.so (e.g. efl_part) and the library is not loaded yet.
2018-03-20 16:50:30 -03:00
Derek Foreman 94ddefc6fb ecore_wl2: Send a mouse-up event on reentry after client initiated resize
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
2018-03-20 14:30:39 -05:00
Daniel Kolesa 2db8e8e914 eolian: make use of panics for certain alloc errors 2018-03-20 17:34:51 +01:00
Daniel Kolesa 7c6d8010a8 eolian: no need for printf-style for internal log funcs 2018-03-20 17:34:51 +01:00
Daniel Kolesa a1ae5cd918 eolian: use new error logging for all recoverable errors 2018-03-20 17:34:51 +01:00
Woochan Lee 008d990181 efl_ui_clock: Fix wrong target to compare with.
Summary:
It breaks API action.

It missed when implement efl_ui_clock i think.

@fix

Test Plan: elementary_test -> efl_ui_clock sample.

Reviewers: cedric, woohyun, Jaehyun_Cho

Reviewed By: Jaehyun_Cho

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D5826
2018-03-20 21:09:30 +09:00
Carsten Haitzler 6391a13558 efl.task - move to returning future insead of bool + exit event
title says it all...
2018-03-20 20:56:46 +09:00
Cedric Bail 2a14a283e8 eo: slight improvement of invalidate code as parent_set(NULL) will be valid on an invalidated object. 2018-03-19 16:47:28 -07:00
Cedric Bail 21164b5a56 eo: automatically cancel a future that is attached to an invalidated object. 2018-03-19 16:38:07 -07:00
Cedric Bail 08c9f99134 elementary: make sure windows are not born orfan and properly have at least a main loop as parent. 2018-03-19 15:39:14 -07:00
Cedric Bail 1fcb33f422 elementary: make global object lifecycle depends on the main loop. 2018-03-19 15:38:26 -07:00
Cedric Bail 2c336d3063 evas: use efl_add_ref for the container, might consider using a parent later on. 2018-03-19 15:36:58 -07:00
Cedric Bail 90bae9b271 evas: technically the evas canvas is using the main loop, so let's make canvas depend on it for their lifecycle. 2018-03-19 15:36:18 -07:00
Cedric Bail 2d973475ee edje: global class should actually be bound to the main loop. 2018-03-19 15:33:44 -07:00
Cedric Bail c3c5620c1c ecore: the main loop has no parent and only one ref, let's properly create it. 2018-03-19 15:33:11 -07:00
Cedric Bail fccaeb182e eo: update tests to also use efl_add_ref correctly. 2018-03-19 14:27:01 -07:00
Cedric BAIL a5bb8bf3df eo: check return in efl_add before performing more operations
this fixes a crash on objects which fail to be created using efl_add_ref

Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
2018-03-19 13:04:45 -07:00
Cedric BAIL e1a53fe125 eo: start printing warning when instanciating object with efl_add and no parent. 2018-03-19 13:04:45 -07:00
Cedric BAIL 3f5ac71ad6 eldbus: ensure the lifetime of the eldbus object path is monitored for proxies
the object is instantly destroyed when connection is lost

Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
2018-03-19 13:00:25 -07:00
Cedric BAIL 67b135ab87 eldbus: use efl_del when clearing the model connection child list
it is an error to delete an object with an existing parent

Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
2018-03-19 13:00:25 -07:00
Cedric BAIL 46992cbed5 tests: do not call unref on eldbus message objects after sending them
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
2018-03-19 13:00:25 -07:00
Davide Andreoli 97289953ec Pyolian: fix __repr__ for Documentation 2018-03-17 12:06:34 +01:00
Davide Andreoli 2cb896dfab Pyolian doc generator: update wrt name API changes
Argh, this has been difficult... hopefully I have done
this right
2018-03-17 11:37:13 +01:00
Davide Andreoli 35316db2f0 Pyolian: let ctypes automatically convert types
Not a big improvement and not so much automatically...
but for sure a bit less to type :)
2018-03-17 10:49:42 +01:00
Davide Andreoli ef3e487b0c Pyolian: use tuple instead of list in declarations
This is a bit more correct and (maybe) a bit more faster
2018-03-17 10:31:33 +01:00
Davide Andreoli 6ef5f30a85 Pyolian: new API eolian_unit_state_get 2018-03-17 10:19:28 +01:00
Davide Andreoli 0a00e4cca1 Pyolian: new API eolian_object_unit_get
Also implemented __repr__ for Unit and State
2018-03-17 10:01:24 +01:00
Davide Andreoli 1ab22e4f00 Pyolian: fix tests wrt name/short_name/full_name API changes 2018-03-17 09:46:17 +01:00
Davide Andreoli 81d15b7cd8 Pyolian: add support EOLIAN_SO_DIR env var
Thanks goes to @lauromoura for proposing this in D5840
2018-03-16 20:00:49 +01:00
Derek Foreman 7784405ad9 ecore_wl2: Silence a commit ERR on window hide
Cosmetic fix, should be functionally identical.  Hide can be called
asynchronously, so it's ok, and the ERR can be silenced.
2018-03-16 12:48:41 -05:00
Daniel Kolesa 9610459502 eolian: add APIs to get unit from object and state from unit 2018-03-16 16:16:16 +01:00
Daniel Kolesa 60c733670d eolian: intial API for a new error mechanism
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.
2018-03-16 16:07:12 +01:00
Daniel Kolesa 927bcfd60a eolian: initial API for a new panic mechanism
This will be used to handle unrecoverable errors.
For robustness, you will be able to set a custom
panic callback, jump and try to recover manually.
2018-03-16 15:41:57 +01:00
Lauro Moura 2705ea8531 csharp: Fix support for ptr(structs)
In general, ptr(struct) parameters behavior depends whether the
parameter has the @owned modifier or not.

If there is no @owned parameter (meaning no transfer of ownership
happens) and it is a "complex" struct, with reference type fields
(like strings), the struct is converted to the respective
<Struct>Internal struct and passed with "ref" to the DllImport'd
function. For @in parameters, after the function it returns, this
intermediate struct is converted to the public struct type and
assigned to the original parameter, updating it to the external
world.

When we have ownership transfers, the structure is copied to unmanaged
memory and given to the callee. We can't send managed memory directly as
the callee may try to free it. On the managed side, the original struct
is left to be garbage collected normally.
2018-03-16 11:12:49 -03:00
Lauro Moura 7c543d3c86 csharp: Change policy on ptr(struct) owned calls
When transferring the ownership of a ptr(struct) from Unamanaged to
managed, we should marshal the reference-typed fields or they can point
to Managed memory that would make no sense to access from C (for
example, strings would return garbage).

The downside is that it can cause potential leaks if the receiver of the
memory do not free it. In the current state of the EFL api this can
happen in two places:

- Efl.Ui.List.SegArray::remove
return -> ptr(Efl.Ui.List.LayoutItem) @owned
- Efl.Ui.Focus.Manager::fetch
return -> ptr(Efl.Ui.Focus.Relations) @owned

The resources copied by both structs may leak when those functions are
overriden in C# and the values returned to the C code.

Also hide some internal stuff instead of exporting it and generate
implicit conversion operators for struct external/internal.
2018-03-16 11:12:49 -03:00
Lauro Moura 78251aa0d2 eolian_cxx: Add 'unknown' to parameter direction
It'll be used in eolian_mono as the 'direction' of return types in some
helper functions.
2018-03-16 11:12:49 -03:00
Lauro Moura 0749a3f6af efl-cxx: Fix installation of efl_part_impl header
It was being installed directly into efl-cxx instead of efl-cxx/cxx.
2018-03-16 11:12:49 -03:00
Daniel Kolesa a848278782 eolian: simplify lexer init 2018-03-16 14:49:35 +01:00
Daniel Kolesa bf1e3a702f eolian: event/function_get_by_name -> by_name_get 2018-03-16 14:26:15 +01:00
Lauro Moura 47ac8689f1 eo: Orphan an object that is being invalidated.
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>
2018-03-15 22:10:27 -07:00
Daniel Kolesa 6c0180d7f8 eolian: more stringent and fine-grained validation 2018-03-16 00:14:13 +01:00
Daniel Kolesa fed326a3ef eolian: fix unit child management
Also pass correct unit to validation for performance.
2018-03-16 00:10:13 +01:00
Daniel Kolesa 2760f047d3 eolian: merge objects in units 2018-03-15 23:32:20 +01:00
Daniel Kolesa 978ba5052d eolian: reduce the number of database traversals during validation
This significantly improves performance by not iterating certain
paths multiple times.
2018-03-15 23:25:35 +01:00
Derek Foreman f0a96ec53c ee_drm: prevent extra flips
Similarly to commit 8b962d24ac prevent
extra flips in the drm engine.

These are potentially more harmful to DRM as they can cause frame
drops and missed render opportunities.
2018-03-15 14:49:56 -05:00
Derek Foreman 8b962d24ac ee_wayland: Prevent extra commits
It's possible that we unregister then reregister an animator so quickly
that the ecore_evas idle enter/exiters haven't had a chance to run yet.
In this case a render will come shortly anyway and we shouldn't use a
'false' commit to kick off a frame callback.

Silences an ERR and unmeasurably improves protocol utilization.
2018-03-15 14:41:15 -05:00
Daniel Kolesa 2c59abc878 eolian: fix minor memory leaks 2018-03-15 16:45:23 +01:00
Daniel Kolesa edc73c4c4c eolian: make sure dtors are always run correctly 2018-03-15 16:34:39 +01:00
Daniel Kolesa df83efcef9 eolian: remove the temps system 2018-03-15 16:34:39 +01:00
Daniel Kolesa 5178b15ac5 eolian: manage exprs through node system 2018-03-15 16:34:39 +01:00
Daniel Kolesa da47159dbd eolian: manage typedecls through node system 2018-03-15 16:34:39 +01:00
Daniel Kolesa 80445f5160 eolian: manage class/vars through new node system 2018-03-15 16:34:39 +01:00
Daniel Kolesa aa313ccfb6 eolian: store types in node hash 2018-03-15 16:34:39 +01:00
Daniel Kolesa cd49130df7 eolian: generic dtor management for lexer 2018-03-15 16:34:39 +01:00
Daniel Kolesa 916c8cb046 eolian: unified node allocation api 2018-03-15 16:34:39 +01:00
Daniel Kolesa 938acf22c0 eolian: in-lexer-state current class storage 2018-03-15 16:34:39 +01:00
Marcel Hollerbach 432deb1129 efl_ui_focus_manager_root_focus: switch to focus adapter 2018-03-15 15:39:12 +01:00
Marcel Hollerbach c8ba7a070f efl_ui_focus_manager_calc: set redirect before setting focus
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.
2018-03-15 15:39:12 +01:00
Marcel Hollerbach 875a7eb0da efl_ui_focus_manager_calc: do not set focus on a deletion manager
otherwise objects might already be on the way out, without a elementary
parent.
2018-03-15 15:39:12 +01:00
Marcel Hollerbach 8746c275f5 elm_interface_scrollable: make sure to have the content always focusable 2018-03-15 15:39:12 +01:00
Marcel Hollerbach 1d3209a9ec elm_widget_item_static_focus: move canvas_object_set to later
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
2018-03-15 15:39:12 +01:00
Marcel Hollerbach 02a062ba67 elm_genlist: support immidiate focus once the item is realized
this supports the case of item.focus = true before the item is realized.
2018-03-15 15:39:12 +01:00
Marcel Hollerbach be3cfcec66 elm_genlist: move focus recovering to first_touch instead of
focus_update

this means that the function is called more reliable, and not only based
on focus state, but also based on the redirect situation.
2018-03-15 15:39:12 +01:00
Marcel Hollerbach 844854d3e8 efl_ui_focus_manager_calc: add onedirection to dirty 2018-03-15 15:39:12 +01:00
Marcel Hollerbach 7d2d6c7e1d elm_genlist: performe elm_item_focus_set
this means all neccessary fields with last focus and current focused
item are updated correctly
2018-03-15 15:39:12 +01:00
Marcel Hollerbach df55911967 efl_ui_focus_composition: redirect canvas move events to the adapter
otherwise a moving canvas object will not be recalculated, as the
manager does not know about the new focus geometry
2018-03-15 15:39:12 +01:00
Marcel Hollerbach b7a5a9298d elm_widget_item_static_focus: fix fetching of the item 2018-03-15 15:39:12 +01:00
Marcel Hollerbach 0b1d67e793 elm_widget_item_static_focus: delete adapter when deleted or unrealized
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.
2018-03-15 15:39:12 +01:00
Marcel Hollerbach e5af7c914a elm_genlist: set focus to the item when a user calls the function 2018-03-15 15:39:12 +01:00
Marcel Hollerbach 8410659bb6 elm_genlist: set focus to the item when a user calls the function 2018-03-15 15:39:12 +01:00
Marcel Hollerbach 44a3e2b7c4 efl_ui_focus_manager_sub: flush the border if we cannot find a candidate
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
2018-03-15 15:39:12 +01:00
Derek Foreman 984d8bd4ce ecore_wl2_window: Silence some spurious warnings
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.
2018-03-14 16:10:14 -05:00
Derek Foreman b55b8110a9 evas_render: Don't render from norender
commit 4dee873a appears to have accidentally flipped a flag in
_evas_canvas_norender causing it to actually try to render.
2018-03-14 16:08:07 -05:00
Derek Foreman 812ab64413 ee_wayland: Set window visible before trying to render it
if we try to render before setting ee->visible the results aren't
likely to be... visible.
2018-03-14 16:08:07 -05:00
Daniel Kolesa ab43e61ef6 eolian: turn some state APIs into inlines over unit APIs 2018-03-14 17:20:49 +01:00
Daniel Kolesa 4fd0d5b436 pyolian: remove unneeded bindings in eolian_state 2018-03-14 17:08:36 +01:00
Daniel Kolesa 0ee6410add elua: inherit state from unit in eolian bindings 2018-03-14 17:03:33 +01:00
Daniel Kolesa 2d0a25c995 eolian: refactor doc ref resolution API 2018-03-14 16:51:11 +01:00
Cedric BAIL 425a447379 eo: fix invalidate to always happen. 2018-03-13 15:29:21 -07:00
Jean-Philippe Andre fd82c2521e genlist: fix "insane" order [BUG COMPATIBILITY]
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>
2018-03-13 15:15:01 -07:00