summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Edje.Global: introduce new class for edje global configurationsdevs/conr2d/common_attributesJee-Yong Um2016-12-159-61/+97
|
* Edje.Object: implement common attributes interfacesJee-Yong Um2016-12-153-206/+240
|
* Efl: add class interfaces (color/text/size)Jee-Yong Um2016-12-158-2/+197
|
* eo: Make error message less nebulousJean-Philippe Andre2016-12-051-1/+2
| | | | | | When writing this ERR log I thought about "thread" (it's really the keyword here) but eventually reworded to "context". Let's be clearer about the possible issue here.
* elm_code: refactoring of the elm_code_line_indent to work with linesAndy Williams2016-12-034-38/+72
|
* eina_btlog: compact output and keep non-bt information.Gustavo Sverzut Barbieri2016-12-031-72/+98
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now we keep all non-bt prefixes as well, in conjunction with compact mode it looks like we resolved the address to lines in the output. Example: ``` $ cat bt-new.txt ERR<23314>:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() 0x00000004e401ca: libeo_dbg.so+0x91ca (in src/lib/eo/.libs/libeo_dbg.so 0x4e37000) ERR<23314>:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() 0x00000004e3fb42: _efl_add_internal_start+0x1c2 (in src/lib/eo/.libs/libeo_dbg.so 0x4e37000) ERR<23314>:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() 0x0000000010a85f: lt-efl_net_dialer_simple_example+0x285f (in /home/gustavo/Development/git/efl/src/examples/ecore/.libs/lt-efl_net_dialer_simple_example 0x108000) ERR<23314>:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() 0x00000005c7c291: __libc_start_main+0xf1 (in /usr/lib/libc.so.6 0x5c5c000) ERR<23314>:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() 0x0000000010a38a: _start+0x2a (in /home/gustavo/Development/git/efl/src/examples/ecore/.libs/lt-efl_net_dialer_simple_example 0x108000) ERR<23314>:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() obj_id=0x400000007feb55b9 deleted obj=0x97870b0, class=0x9785850 (Efl_Net_Dialer_Simple) [0.9045s, 0.0198 ago]: ERR<23314>:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() 0x00000004e409aa: libeo_dbg.so+0x99aa (in src/lib/eo/.libs/libeo_dbg.so 0x4e37000) ERR<23314>:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() 0x00000004e407f1: libeo_dbg.so+0x97f1 (in src/lib/eo/.libs/libeo_dbg.so 0x4e37000) ERR<23314>:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() 0x00000004e3eee8: libeo_dbg.so+0x7ee8 (in src/lib/eo/.libs/libeo_dbg.so 0x4e37000) ERR<23314>:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() 0x00000004e3f09e: _efl_object_call_end+0x4e (in src/lib/eo/.libs/libeo_dbg.so 0x4e37000) ERR<23314>:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() 0x00000004e48a65: efl_del+0x105 (in src/lib/eo/.libs/libeo_dbg.so 0x4e37000) ERR<23314>:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() 0x0000000010ac2c: lt-efl_net_dialer_simple_example+0x2c2c (in /home/gustavo/Development/git/efl/src/examples/ecore/.libs/lt-efl_net_dialer_simple_example 0x108000) ERR<23314>:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() 0x00000005c7c291: __libc_start_main+0xf1 (in /usr/lib/libc.so.6 0x5c5c000) ERR<23314>:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() 0x0000000010a38a: _start+0x2a (in /home/gustavo/Development/git/efl/src/examples/ecore/.libs/lt-efl_net_dialer_simple_example 0x108000) ERR<24641>:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() obj_id=0x400000007c9a1109 was already deleted 0.0287 seconds ago! ``` Results in: ``` $ cat /tmp/bt-new.txt | eina_btlog -c ERR<23314>:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() _eo_log_obj_new (in eo.c:2691) ERR<23314>:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() _efl_add_internal_start (in eo.c:844) ERR<23314>:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() main (in efl_net_dialer_simple_example.c:375) ERR<23314>:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() __libc_start_main (in ??:375) ERR<23314>:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() _start (in ??:375) ERR<23314>:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() obj_id=0x400000007feb55b9 deleted obj=0x97870b0, class=0x9785850 (Efl_Net_Dialer_Simple) [0.9045s, 0.0198 ago]: ERR<23314>:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() _eo_log_obj_free (in eo.c:2714) ERR<23314>:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() _eo_free (in eo.c:974) ERR<23314>:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() _efl_unref_internal (in eo_private.h:342) ERR<23314>:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() _efl_object_call_end (in eo.c:620) ERR<23314>:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() efl_del (in efl_object.eo.c:78) ERR<23314>:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() main (in efl_net_dialer_simple_example.c:447) ERR<23314>:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() __libc_start_main (in ??:447) ERR<23314>:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() _start (in ??:447) ERR<24641>:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() obj_id=0x400000007c9a1109 was already deleted 0.0287 seconds ago! ``` which is similar to valgrind's log and is MUCH nicer to read :-) This commit also simplifies alignment and color display by using a single printf().
* eina_btlog: show comments (non-bt lines)Gustavo Sverzut Barbieri2016-12-031-1/+14
| | | | | | | | | If the user paste the backtrace he may include some non-backtrace line, such as Eo logs that includes the message saying what's the backtrace is about. These lines will be printed as is, unless "-C" is used to discard them.
* eina_btlog: understand new backtrace format used by eo.Gustavo Sverzut Barbieri2016-12-031-1/+38
| | | | | | The output of eo backtrace is much more readable than eina's default, but still misses addr2line translation done by eina_btlog, so make eina_btlog understand the new format.
* eina_btlog: improve help.Gustavo Sverzut Barbieri2016-12-031-1/+6
|
* elm_code: ooops, fix test from previous refactorAndy Williams2016-12-031-7/+9
|
* eo: do not use eina_trash when running on valgrind.Gustavo Sverzut Barbieri2016-12-032-2/+15
| | | | This allows valgrind to show when the object was created and deleted.
* eo: fix compilation without HAVE_BACKTRACE.Gustavo Sverzut Barbieri2016-12-031-36/+36
| | | | | | | time_get() function was used even in that case to log when objects were created or deleted. thanks @vtorri.
* eo: fix missing Evil.h includeGustavo Sverzut Barbieri2016-12-031-0/+4
|
* eo: fix build on macOSJean Guyomarc'h2016-12-031-0/+4
| | | | | Commit 227463bd introduces macOS-specific code, but without including the header that provides the used declarations.
* eio - have a smaller mempool as i can see 270k of stuff hanging aboutCarsten Haitzler (Rasterman)2016-12-031-2/+2
| | | | | | | | | eio seems to consume memory even when not in active use. this saves most of 270k even when no longer needed. the mempool just keeps stuff around pretty much forever. also the memory size limit doesn't work at asll if yous set it to something other than -1. it just locks eio up. @optimize
* evas - fix out events broken by recent multiseat workCarsten Haitzler (Rasterman)2016-12-031-1/+1
| | | | this fixes e's poitners to be "sensible" again.
* evas - more render cache cleanupsCarsten Haitzler (Rasterman)2016-12-031-0/+1
| | | | | i forgot to save this file before git committing... so also delete update rect del array from render cache.
* evas render cache - clean up memory in all casesCarsten Haitzler (Rasterman)2016-12-031-0/+6
| | | | | this cleans up memory for the rect del array in render cache and when smart objects are deleted that hold render caches
* elm_code: Add indentation for matching bracesAndy Williams2016-12-034-2/+110
| | | | | | | | | | | | | | | Summary: when type closing brace, it find matching braces and then indent. Test Plan: 1. run elementry_test - Code Editor or Edi. 2. Type some code with braces. 3. Check that closing braces have correct indent. Reviewers: ajwillia.ms Subscribers: cedric, jpeg Differential Revision: https://phab.enlightenment.org/D4444
* eo: more information when we cannot resolve method.Gustavo Sverzut Barbieri2016-12-022-2/+19
| | | | | | | | | | | | | | | | | | | _efl_object_api_op_id_get() will query a hash for the given pointer, however if it wasn't populated, it will return "NOOP" and we're hopeless while debugging on what happened. Common case is to use the incorrect method, like: obj = efl_add(CLS1, ...); cls2_method(obj); Since we did not create CLS2, it won't populate its methods on the hash, thus the lookup will return NOOP. With this change the function now gets the target object and function name so reports an insightful message such as: ERR:eo file.c:123 cls2_method() Unable to resolve op for api func 0x7ff492ddea00 for obj=0x400000007e8ee1df (CLS1)
* eo: allow valgrind-like tracking of object lifecycle.Gustavo Sverzut Barbieri2016-12-025-50/+614
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Eo pointer indirection is super nice as it avoids you to access invalid memory, but this extra checks inhibits valgrind's own tracking of memory lifecycle, usually it would report when the object was created and when the object is deleted, both as stack traces. This commits introduces logging of object creation and destruction under its own eina_log_domain and controlled by EO_LIFECYCLE_DEBUG and EO_LIFECYCLE_NO_DEBUG envvars. These will only be available if compiled with EO_DEBUG, thus shouldn't cause any performance hits on production code. Running a bogus app with invalid efl_class_name_get() and double efl_del() will report as below: ```sh $ export EO_LIFECYCLE_NO_DEBUG=Efl_Loop_Timer,Efl_Promise,Efl_Future $ export EO_LIFECYCLE_DEBUG=1 $ export EINA_LOG_LEVELS=eo_lifecycle:4 $ /tmp/bogus_app DBG:eo_lifecycle lib/eo/eo.c:2712 _eo_log_obj_init() will log all object allocation and free DBG:eo_lifecycle lib/eo/eo.c:2788 _eo_log_obj_init() will NOT log class 'Efl_Future' DBG:eo_lifecycle lib/eo/eo.c:2788 _eo_log_obj_init() will NOT log class 'Efl_Promise' DBG:eo_lifecycle lib/eo/eo.c:2788 _eo_log_obj_init() will NOT log class 'Efl_Loop_Timer' DBG:eo_lifecycle lib/eo/eo.c:2665 _eo_log_obj_new() new obj=0x563fa35a1aa0 obj_id=0x4000000002cf38ef class=0x563fa35a1450 (Efl_Vpath_Core) [0.0004] DBG:eo_lifecycle lib/eo/eo.c:2665 _eo_log_obj_new() new obj=0x563fa35af8d0 obj_id=0x4000000006cf38f0 class=0x563fa35aecf0 (Efl_Loop) [0.0005] DBG:eo_lifecycle lib/eo/eo.c:2665 _eo_log_obj_new() new obj=0x563fa35d61a0 obj_id=0x400000007ecf390e class=0x563fa35d48f0 (Efl_Net_Dialer_Simple) [0.0054] DBG:eo_lifecycle lib/eo/eo.c:2665 _eo_log_obj_new() new obj=0x563fa35d6470 obj_id=0x4000000082cf390f class=0x563fa35d0d60 (Efl_Net_Dialer_Tcp) [0.0055] DBG:eo_lifecycle lib/eo/eo.c:2665 _eo_log_obj_new() new obj=0x563fa35d75b0 obj_id=0x4000000086cf3910 class=0x563fa35d66b0 (Efl_Io_Queue) [0.0056] DBG:eo_lifecycle lib/eo/eo.c:2665 _eo_log_obj_new() new obj=0x563fa35d8f70 obj_id=0x400000008acf3911 class=0x563fa35d7860 (Efl_Io_Copier) [0.0057] DBG:eo_lifecycle lib/eo/eo.c:2665 _eo_log_obj_new() new obj=0x563fa35df980 obj_id=0x40000000a6cf3918 class=0x563fa35d66b0 (Efl_Io_Queue) [0.0058] DBG:eo_lifecycle lib/eo/eo.c:2665 _eo_log_obj_new() new obj=0x563fa35dfc30 obj_id=0x40000000aacf3919 class=0x563fa35d7860 (Efl_Io_Copier) [0.0058] will efl_class_name_get() with invalid handle: ERR:eo lib/eo/eo.c:1013 efl_class_name_get() Class (0x2000000000000029) is an invalid ref. ERR:eo_lifecycle lib/eo/eo.c:1013 efl_class_name_get() obj_id=0x2000000000000029 was neither created or deleted (EO_LIFECYCLE_NO_DEBUG='Efl_Loop_Timer,Efl_Promise,Efl_Future'). DBG:eo_lifecycle lib/eo/eo.c:2688 _eo_log_obj_free() free obj=0x563fa35df980 obj_id=0x40000000a6cf3918 class=0x563fa35d66b0 (Efl_Io_Queue) [0.0061] DBG:eo_lifecycle lib/eo/eo.c:2688 _eo_log_obj_free() free obj=0x563fa35dfc30 obj_id=0x40000000aacf3919 class=0x563fa35d7860 (Efl_Io_Copier) [0.0061] DBG:eo_lifecycle lib/eo/eo.c:2688 _eo_log_obj_free() free obj=0x563fa35d75b0 obj_id=0x4000000086cf3910 class=0x563fa35d66b0 (Efl_Io_Queue) [0.0061] DBG:eo_lifecycle lib/eo/eo.c:2688 _eo_log_obj_free() free obj=0x563fa35d8f70 obj_id=0x400000008acf3911 class=0x563fa35d7860 (Efl_Io_Copier) [0.0061] DBG:eo_lifecycle lib/eo/eo.c:2688 _eo_log_obj_free() free obj=0x563fa35d6470 obj_id=0x4000000082cf390f class=0x563fa35d0d60 (Efl_Net_Dialer_Tcp) [0.0063] DBG:eo_lifecycle lib/eo/eo.c:2688 _eo_log_obj_free() free obj=0x563fa35d61a0 obj_id=0x400000007ecf390e class=0x563fa35d48f0 (Efl_Net_Dialer_Simple) [0.0063] will double free: ERR:eo ../src/lib/eo/efl_object.eo.c:78 efl_del() EOID 0x400000007ecf390e is not a valid object. EOID domain=0, current_domain=0, local_domain=0. EOID generation=2cf390e, id=1f, ref=1, super=0. Thread self=main. Available domains [0 1 ]. Maybe it has been deleted or does not belong to your thread? ERR:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() obj_id=0x400000007ecf390e created obj=0x563fa35d61a0, class=0x563fa35d48f0 (Efl_Net_Dialer_Simple) [0.0054s, 0.0009 ago]: ERR:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() 0x007f2c0bc6d0ea: libeo_dbg.so+0x90ea (in src/lib/eo/.libs/libeo_dbg.so 0x7f2c0bc64000) ERR:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() 0x007f2c0bc6ca62: _efl_add_internal_start+0x1c2 (in src/lib/eo/.libs/libeo_dbg.so 0x7f2c0bc64000) ERR:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() 0x00563fa15dc95f: bogus_app+0x295f (in /tmp/bogus_app 0x563fa15da000) ERR:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() 0x007f2c0ace7291: __libc_start_main+0xf1 (in /usr/lib/libc.so.6 0x7f2c0acc7000) ERR:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() 0x00563fa15dc48a: _start+0x2a (in /tmp/bogus_app 0x563fa15da000) ERR:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() obj_id=0x400000007ecf390e deleted obj=0x563fa35d61a0, class=0x563fa35d48f0 (Efl_Net_Dialer_Simple) [0.0063s, 0.0000 ago]: ERR:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() 0x007f2c0bc6d8ba: libeo_dbg.so+0x98ba (in src/lib/eo/.libs/libeo_dbg.so 0x7f2c0bc64000) ERR:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() 0x007f2c0bc6d711: libeo_dbg.so+0x9711 (in src/lib/eo/.libs/libeo_dbg.so 0x7f2c0bc64000) ERR:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() 0x007f2c0bc6beb8: libeo_dbg.so+0x7eb8 (in src/lib/eo/.libs/libeo_dbg.so 0x7f2c0bc64000) ERR:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() 0x007f2c0bc6c06e: _efl_object_call_end+0x4e (in src/lib/eo/.libs/libeo_dbg.so 0x7f2c0bc64000) ERR:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() 0x007f2c0bc75725: efl_del+0x105 (in src/lib/eo/.libs/libeo_dbg.so 0x7f2c0bc64000) ERR:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() 0x00563fa15dcd54: lt-efl_net_dialer_simple_example+0x2d54 (in /tmp/bogus_app 0x563fa15da000) ERR:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() 0x007f2c0ace7291: __libc_start_main+0xf1 (in /usr/lib/libc.so.6 0x7f2c0acc7000) ERR:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() 0x00563fa15dc48a: _start+0x2a (in /tmp/bogus_app 0x563fa15da000) ERR:eo_lifecycle ../src/lib/eo/efl_object.eo.c:78 efl_del() obj_id=0x400000007ecf390e was already deleted 0.0000 seconds ago! ```
* eo: check for empty vtable and failed extensions.Gustavo Sverzut Barbieri2016-12-021-0/+3
| | | | | | | | | if for some reason we fail to validate a class, then we should skip that extension. This may result in an empty vtable, then check for that and avoid a crash. This is very unlike to happen in practice, but I've forced some validation errors and could get to that.
* eo: improve logs by always showing event source, minor refactor.Gustavo Sverzut Barbieri2016-12-025-114/+139
| | | | | | | | | Instead of 2 sets of macro, one for HAVE_EO_ID and another without, use a single set of macros and have the implementation of _eo_class_pointer_get() and _eo_obj_pointer_get() to do the actual These functions now take the source information so the logs reflect that and not always the same function.
* This series of patches merges in better support for hiding of surfacesChris Michael2016-12-0211-90/+100
|\ | | | | | | | | | | | | | | | | | | | | | | Essentially, this series modifies ecore_evas and evas engine code in order that we do not need to destroy surfaces when hiding a canvas. Previous code would destroy the wl_surface on ecore_evas_hide and have to recreate it on ecore_evas_show. These patches eliminate the need to do that by setting an engine field ('hidden'). When the evas engines go to post a surface update, if it is 'hidden' then the code will just attach a NULL buffer to the surface. Merge branch 'devs/devilhorns/surface_hide'
| * ecore-evas-wayland: Remove unused includesChris Michael2016-12-022-4/+0
| | | | | | | | | | | | | | | | As most of the "hard work" has been moved into ecore_evas_wayland_common file, these includes are no longer needed here. Signed-off-by: Chris Michael <cp.michael@samsung.com>
| * ecore-evas-wayland: Minor formatting fixChris Michael2016-12-021-23/+24
| | | | | | | | | | | | NB: No functional changes, just formatting Signed-off-by: Chris Michael <cp.michael@samsung.com>
| * ecore-evas-wayland: Set all evas engine info fields before updatingChris Michael2016-12-021-9/+3
| | | | | | | | | | | | | | Small patch to set all fields of the Evas Engine Info structure before calling evas_engine_info_set function Signed-off-by: Chris Michael <cp.michael@samsung.com>
| * ecore-evas-wayland: Use engine 'hidden' field for ecore_evas_hide operationsChris Michael2016-12-021-7/+8
| | | | | | | | | | | | | | | | | | This patch allows us to set a 'hidden' flag in the Evas Engine information structure instead of setting a NULL surface. Setting this flag allows us to hide/show a canvas without having to destroy/recreate a wl_surface every time. Signed-off-by: Chris Michael <cp.michael@samsung.com>
| * evas-wayland-shm: Fix issue of destroying & recreating wl_surfaces on hideChris Michael2016-12-024-15/+32
| | | | | | | | | | | | | | | | | | When a canvas gets hidden, we don't need to destroy & recreate the wl_surface. We can simply attach a NULL wl_buffer to the surface which achieves the same result. This saves us from having to always destroy & recreate surfaces when we hide/show. Signed-off-by: Chris Michael <cp.michael@samsung.com>
| * ecore-evas-wayland: Add a 'hidden' field to engine structureChris Michael2016-12-021-0/+1
| | | | | | | | Signed-off-by: Chris Michael <cp.michael@samsung.com>
| * elementary: Don't set pointer surface to NULLChris Michael2016-12-021-2/+0
| | | | | | | | | | | | | | As we no longer destroy a window's wl_surface during hide requests, we should not be setting pointer surface to NULL here. Signed-off-by: Chris Michael <cp.michael@samsung.com>
| * ecore-wl2: Don't destroy surfaces on window hideChris Michael2016-12-021-35/+37
|/ | | | | | | | In order to hide a window (via wayland) we can actually assign a NULL buffer to the surface, so there is no need to destroy the window's wl_surface during a hide request. Signed-off-by: Chris Michael <cp.michael@samsung.com>
* edje_cc: add FOCUS_OBJECT reference on docBruno Dilly2016-12-021-0/+1
| | | | It was missing on actions list.
* eo: fix oops on efl_replace() documentationBruno Dilly2016-12-021-1/+1
|
* Merge branch 'devs/iscaro/devices'Bruno Dilly2016-12-026-10/+34
|\ | | | | | | | | | | | | | | | | | | | | | | Series of fixes regarding Efl.Input.Device references. There were some issues on Evas and on its own interface. Also adds efl_replace() to replace referenced objects (using it for devices for now). It follows eina_stringshare_replace() approach. Patches by Guilherme Iscaro <iscaro@profusion.mobi> Differential Revision: https://phab.enlightenment.org/D4445
| * Efl.Input.Device: Do not ref/unref devices children devices.Guilherme Iscaro2016-12-021-3/+5
| | | | | | | | | | | | | | | | When a mouse/keyboard is removed from its seat under the Wayland backend, it was not immediately deleted from EFL, because its parent was keeping a reference to it. Since the mouse/keyboard is no longer present in the system there's no reason the keep them around. To prevent this delayed deletion do not ref/unref them when the parent is set.
| * Efl.Input: Properly unref the device if a new device is set.Guilherme Iscaro2016-12-024-4/+4
| | | | | | | | The old device must be unrefed, otherwise it will leak.
| * Eo: Add efl_replace() function.Guilherme Iscaro2016-12-021-0/+22
| | | | | | | | This new function adds a new way to safely replace Eo pointer values.
| * Efl.Input: Reset the Efl.Input object as soon as possible.Guilherme Iscaro2016-12-023-3/+3
|/ | | | | By doing this the pd->device reference is unrefed and deleted if no one else is holding a reference to it.
* eo: if EO_DEBUG, check if efl_super() object 'isa' the given class.Gustavo Sverzut Barbieri2016-12-021-0/+13
| | | | | A common error is to copy & paste efl_super() calls and forget to fix the class. If usin EO_DEBUG, then use efl_isa() to error.
* eo: better error reporting, always provide caller/source when available.Gustavo Sverzut Barbieri2016-12-023-14/+18
| | | | | | | | | | | | _eo_pointer_error() was kinda a bitch to debug as it provided a nice breakpoint location, but did not provide a good output since the file, line and function were always the same. Change that to be a thin wrapper on top of eina_log_vprint(), then we keep the breakpoint location yet provide useful information. In that sense, change other error messages so they carry as much information as possible.
* eo: use log domain as soon as it's available.Gustavo Sverzut Barbieri2016-12-021-6/+6
|
* elementary: Remove useless #ifdefChris Michael2016-12-021-2/+0
| | | | | | This block is already wrapped around an #ifdef directly above, so this Signed-off-by: Chris Michael <cp.michael@samsung.com>
* eeze_scanner: server was not always initialized hereStefan Schmidt2016-12-021-1/+1
| | | | | The initial assignment is behind and ifdef so make sure we actually start with a sane NULL here.
* efl_ui_win: fix warning about unused parameterStefan Schmidt2016-12-021-0/+1
| | | | If the ifdef is not hit this is never being used.
* ecore_ipc: silence a maybe unitialized warningStefan Schmidt2016-12-021-1/+1
| | | | | | | | | | I always got this during the build: lib/ecore_ipc/ecore_ipc.c:537:6: warning: ‘old_mask’ may be used uninitialized in this function [-Wmaybe-uninitialized] Looking at the code it really is a false positive. Gettign the mask is behind an if it is the same if condistion used before writing it. Anyway, silencing the warning here.
* elementary: Re-enable wayland_egl mouse pointersChris Michael2016-12-021-9/+4
| | | | | | | | It appears that the 'black square' issue when using wayland_egl canvas for mouse pointers is gone now, so re-enable the usage of gl pointers for elementary windows. Signed-off-by: Chris Michael <cp.michael@samsung.com>
* eo event callback frame make them single linked to save a bit of overheadCarsten Haitzler (Rasterman)2016-12-021-25/+29
| | | | | this makes the callback event frame single linked with a little less inlist overhead asa result.
* Merge branch 'devs/iscaro/locks_and_mods'Bruno Dilly2016-12-0224-738/+1663
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This series add support to setting mode and properties of mouse pointer, enabling key locks and modifiers per device on Evas. Also it fixes Ecore Input Evas keeping an evas device on Ecore_Input_Last struct to separate event sources and add support to lock / modifiers per seat. With that, multiseat support should be complete up to Evas layer. Patches by Guilherme Iscaro <iscaro@profusion.mobi> Differential Revision: https://phab.enlightenment.org/D4415 @feature
| * Ecore Input Evas: Add ecore_event_evas_seat_modifier_lock_update().Guilherme Iscaro2016-12-023-28/+48
| | | | | | | | | | | | This function will set the modifiers/lock per seat in Evas. Some places will still use ecore_event_evas_modifier_lock_update(), since multi-seat is not supported.