platform/upstream/efl.git
7 years agoevas-drm: Don't destroy Outbuf on resize
Chris Michael [Tue, 6 Dec 2016 18:17:16 +0000 (13:17 -0500)]
evas-drm: Don't destroy Outbuf on resize

On an engine resize, we previously would destroy the Outbuf structure.
This patch modifies the code so that on a resize we no longer have to
destroy the old Outbuf and reallocate a new one. Instead, we will just
reconfigure the existing one and update it's properties.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoeolian: add a reference resolver
Daniel Kolesa [Tue, 6 Dec 2016 18:08:42 +0000 (19:08 +0100)]
eolian: add a reference resolver

New API function eolian_doc_token_ref_get will resolve the kind of
reference in the given token and extract the necessary data you
might need for further use, for example class and function for
methods, or struct and field for struct field. It also supports
event references that will be added into Eolian later.

EFL will be switched to the new resolver (by changing the validator
code) during the next step.

7 years agoevas-wayland-shm: Don't destroy Outbuf on resize
Chris Michael [Tue, 6 Dec 2016 18:01:35 +0000 (13:01 -0500)]
evas-wayland-shm: Don't destroy Outbuf on resize

On an engine resize, rather than destroy & recreate the Outbuf
structure (and the associated surface) we can just call the
eng_output_resize function (which in turn will call
outbuf_reconfigure) to update Outbuf with new properties. This saves
us from having to create a whole new Outbuf every time we resize.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoeo: guard lifecycle obj log inside spinlock.
Gustavo Sverzut Barbieri [Tue, 6 Dec 2016 16:38:34 +0000 (14:38 -0200)]
eo: guard lifecycle obj log inside spinlock.

since the array can be pushed or looked up from multiple threads we
must have a lock in place.

7 years agoeo: guard all efl_super() checks under EO_DEBUG.
Gustavo Sverzut Barbieri [Tue, 6 Dec 2016 16:24:59 +0000 (14:24 -0200)]
eo: guard all efl_super() checks under EO_DEBUG.

Tom is worried about performance hit (god, checking a bit in a pointer
we'll fetch to memory anyway, since we return it masked), so guard
under EO_DEBUG.

7 years agoall: use void if we really want to make sure we do not accept parameters
Stefan Schmidt [Tue, 6 Dec 2016 13:33:24 +0000 (14:33 +0100)]
all: use void if we really want to make sure we do not accept parameters

In C we need this to make clear that we really do not accept parameters.
Found by the smatch source code matcher. I had run and fixed this before
but it seems to creep in again over time.

7 years agoeina: fix same wrong indenting
Stefan Schmidt [Tue, 6 Dec 2016 16:03:59 +0000 (17:03 +0100)]
eina: fix same wrong indenting

Brought up by running smatch. We have way to many of such things in tree though
to fix them all without annoying a lot of people. I will just stop here.

7 years agoeo_debug: add lifecycle debug options, allow run-in-tree and use eina_btlog.
Gustavo Sverzut Barbieri [Tue, 6 Dec 2016 16:06:54 +0000 (14:06 -0200)]
eo_debug: add lifecycle debug options, allow run-in-tree and use eina_btlog.

As usual with our code, EFL_RUN_IN_TREE=1 will lead to usage of
binaries from the current build dir instead of system.

To make user life easier, add -l/--lifecycle-debug and
-L/--lifecycle-no-debug options, as well as -h/--help. The
lifecycle-debug option will export the correct environment variables,
such as EO_LIFECYCLE_DEBUG, EO_LIFECYCLE_NO_DEBUG and
EINA_LOG_LEVELS=eo_lifecycle:4 if no such level was set for that
domain.

Last but not least, pass all command's stderr thru eina_btlog so
backtraces are automatically translated to function names, files and
lines. This one was a bit trickier to respect colors and stdout/stderr
contents, see comments in the script.

7 years agoeina_btlog: allows continuous running on input, flush when possible.
Gustavo Sverzut Barbieri [Tue, 6 Dec 2016 16:00:55 +0000 (14:00 -0200)]
eina_btlog: allows continuous running on input, flush when possible.

eina_btlog will make a table of the backtrace and then must compute
columns length.

However, if not running in such mode (ie: show_compact/-c), we don't
need to queue lines or compute column lengths.

Also, now that we accept non-backtrace lines, like other output
interleaved, then flush the table once such line is found, this will
restart the table columns for the next output, but at least allows
eina_btlog to run on a live output, such as:

       myapp 2>&1 | eina_btlog

7 years agoeina_btlog: cleanup backtrace list.
Gustavo Sverzut Barbieri [Tue, 6 Dec 2016 15:50:18 +0000 (13:50 -0200)]
eina_btlog: cleanup backtrace list.

7 years agoeo: efl_super() can receive a class as first parameter.
Gustavo Sverzut Barbieri [Tue, 6 Dec 2016 14:40:33 +0000 (12:40 -0200)]
eo: efl_super() can receive a class as first parameter.

This fixes the src/tests/eo/test_function_overrides

7 years agoStatic deps unibreak: Update to latest version.
Tom Hacohen [Tue, 6 Dec 2016 12:45:40 +0000 (12:45 +0000)]
Static deps unibreak: Update to latest version.

This version supports Unicode 9.0 and includes many fixes.
Reference git hash: fe1ce2e78c19fa2b4b7a92b1864a12b432da6ec6

This version is not yet released, but now is a better time to sync it,
and there are no code changes expected, only "admin" work.

Main changes:
Unicode 9.0 support
Many fixes in the lineberaking algorithm to now pass the Unicode
reference test data.

@feature

7 years agostatic_libs triangulator: prevent null pointer(ptr) access.
Hermet Park [Tue, 6 Dec 2016 10:18:09 +0000 (19:18 +0900)]
static_libs triangulator: prevent null pointer(ptr) access.

7 years agoevas: native_dmabuf: make sure we check for NULL before not after we dereference
Stefan Schmidt [Tue, 6 Dec 2016 09:49:10 +0000 (10:49 +0100)]
evas: native_dmabuf: make sure we check for NULL before not after we dereference

Same change as  just done in evas_native_tbm in commit
38dbe932db5c12f66ff2e045ac74107e149c14da.

7 years agoevas: native_tbm: make sure we check for NULL before not after we dereference
Stefan Schmidt [Tue, 6 Dec 2016 09:42:42 +0000 (10:42 +0100)]
evas: native_tbm: make sure we check for NULL before not after we dereference

Using *im and dereferencing it before doing the actual NULL check does not make
much sense. I kept the checks as they have been there before so the intent was
probably that they could be NULL and should be checked.

CID: 1270030, 1270029, 1270028

7 years agoevas: input_pointer: remove unreachable case statement
Stefan Schmidt [Tue, 6 Dec 2016 09:31:57 +0000 (10:31 +0100)]
evas: input_pointer: remove unreachable case statement

Directly in the beginning of the function we check if key is
<= EFL_INPUT_VALUE_NONE and return if this is true. No chance key could be
EFL_INPUT_VALUE_NONE below here.

CID: 1361997

7 years agoevas: events: fix NULL check on returned value
Stefan Schmidt [Tue, 6 Dec 2016 09:21:50 +0000 (10:21 +0100)]
evas: events: fix NULL check on returned value

Continuing the loop if the returned pdata is non-NULL does not make sense.
What Coverity actually found was that if we have cobj_pdata NULL here we
would happily deref it the line afterwards and crash.

Guilherme, Bruno if something else was intended here feel free to change it
again.

CID: 1366822

7 years agoeolian: Fix to unregister eina log domain if it was registered.
Jaehyun Cho [Tue, 6 Dec 2016 09:51:14 +0000 (18:51 +0900)]
eolian: Fix to unregister eina log domain if it was registered.

7 years agoevas render: code refactoring.
Hermet Park [Tue, 6 Dec 2016 09:56:07 +0000 (18:56 +0900)]
evas render: code refactoring.

There were some obj->map->surface validation check
but final map drawing was in the out of the surface valid scope.

Actually, this change does nothing but logically this change makes sense.

7 years agowin: Simplify sizing recalc
Jean-Philippe Andre [Tue, 6 Dec 2016 06:52:10 +0000 (15:52 +0900)]
win: Simplify sizing recalc

This amends the previous patch. Some moer testing showed that the
deferred resize flag was in fact harmful (on X with CSD).

7 years agoefl_net check openssl x509 check o runtime dlsym checks
Carsten Haitzler (Rasterman) [Tue, 6 Dec 2016 07:14:01 +0000 (16:14 +0900)]
efl_net check openssl x509 check o runtime dlsym checks

this fixes T4814

7 years agowin: Fix sizing issues with new windows
Jean-Philippe Andre [Tue, 6 Dec 2016 06:19:03 +0000 (15:19 +0900)]
win: Fix sizing issues with new windows

This fixes sizing issues in EDI when opening a new window (not
the splash screen). This patch is quite brute force in the way
it pushes recalc.

7 years agoelm_map: add copyright_cb for osm tile source.
Sungtaek Hong [Tue, 6 Dec 2016 05:17:31 +0000 (14:17 +0900)]
elm_map: add copyright_cb for osm tile source.

Summary:
 - According to Copyright and license in Openstreetmap
   (https://www.openstreetmap.org/copyright/en)
   credit has to be in the corner of map.
 - Add copyright_cb which returns an object to show copyright.

Test Plan:
1. Excecute elementary_test->map
           2. Right click->source->set any tile source
           3. Observe copyright is added.

Reviewers: cedric, Hermet, jpeg

Subscribers: conr2d

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

7 years agocpphash: Fix not to access freed pointer.
Jaehyun Cho [Tue, 6 Dec 2016 05:42:37 +0000 (14:42 +0900)]
cpphash: Fix not to access freed pointer.

7 years agoElm.Button: fix color class descriptions
Jee-Yong Um [Tue, 6 Dec 2016 03:10:01 +0000 (12:10 +0900)]
Elm.Button: fix color class descriptions

Reviewers: cedric, jpeg

Reviewed By: jpeg

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

7 years agoupdated AUTHORS
Hermet Park [Tue, 6 Dec 2016 04:39:23 +0000 (13:39 +0900)]
updated AUTHORS

7 years agoscrollable_interface: fixed last_page_get() API
soohye [Tue, 6 Dec 2016 04:30:43 +0000 (13:30 +0900)]
scrollable_interface: fixed last_page_get() API

Summary: ceiling the vaule of content size divided by page size

Reviewers: cedric, jpeg, Hermet

Reviewed By: Hermet

Subscribers: minkyu, sju27, cedric, jpeg

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

7 years agoeldbus: change to idle_enterer from idler
Jean-Philippe Andre [Tue, 6 Dec 2016 02:27:37 +0000 (11:27 +0900)]
eldbus: change to idle_enterer from idler

Summary:
This patch set changes eldbus to use idle_enterer from idler.
If an application does not give idle time, then the eldbus cannot have chance to work.

Reviewers: raster, cedric

Subscribers: jpeg

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

7 years agoelm_panel: change panel freeze API when swiping panel.
Hosang Kim [Tue, 6 Dec 2016 02:31:06 +0000 (11:31 +0900)]
elm_panel: change panel freeze API when swiping panel.

Summary:
The panel is freezed by elm_interface_scrollable_movement_block_set(),
but elm_interface_scrollable_freeze_set() is used to unfreeze panel.

Test Plan: elementar_test -> panel scrollable

Reviewers: woohyun, seoz, Hermet, cedric, raster

Subscribers: jpeg

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

7 years agoevas - protect against outbuf alloc fail possibility
Carsten Haitzler (Rasterman) [Tue, 6 Dec 2016 02:19:05 +0000 (11:19 +0900)]
evas - protect against outbuf alloc fail possibility

this should fix T4967

7 years agoelementary calendar: it'd rather return false here.
Hermet Park [Tue, 6 Dec 2016 02:07:49 +0000 (11:07 +0900)]
elementary calendar: it'd rather return false here.

7 years agoevas: Ensure single init of common per canvas
Jean-Philippe Andre [Tue, 6 Dec 2016 01:40:11 +0000 (10:40 +0900)]
evas: Ensure single init of common per canvas

After @cedric's commit 6427c77707fb6116a98b we end up with E
not working in Xephyr, because evas_common_shutdown() is called
too many times (init_count == -1). So I'm being paranoid and
tracking whether Evas has initialized or not evas_common. That
way we end up with exactly the right number of inits. We even
reach 0 after E shuts down :)

7 years agoevas: remove all Engine Info headers installation except for the buffer engine.
Cedric BAIL [Mon, 5 Dec 2016 19:35:19 +0000 (11:35 -0800)]
evas: remove all Engine Info headers installation except for the buffer engine.

We do not have any upstream application using those headers and if any do,
they should have proper auto detection of them being available or not. Today,
most application should use Ecore_Evas directly. If the need reappear, we will
reintroduce those headers one by one.

7 years agoevas: refactor initialisation and shutdown of evas_common.
Cedric BAIL [Fri, 2 Dec 2016 23:27:48 +0000 (15:27 -0800)]
evas: refactor initialisation and shutdown of evas_common.

7 years agoelm: config: check return value of eina_value_get instead of returning always TRUE
Stefan Schmidt [Mon, 5 Dec 2016 16:00:56 +0000 (17:00 +0100)]
elm: config: check return value of eina_value_get instead of returning always TRUE

There is always a chance that eina_value_get will not return EINA_TRUE here so
better check it and use it as return value directly.

CID: 1357138

7 years agoelm: multibuttomentry: check if value is valid before we access it
Stefan Schmidt [Mon, 5 Dec 2016 15:53:42 +0000 (16:53 +0100)]
elm: multibuttomentry: check if value is valid before we access it

The ELM_MULTIBUTTONENTRY_DATA_GET_OR_RETURN will access 'it' here before we
check it is NULL. Reverse the order of these checks.

CID: 1365324, 1365323

7 years agoedje: svg_loader: make sure we check the return from all _parser_number calls
Stefan Schmidt [Mon, 5 Dec 2016 15:30:22 +0000 (16:30 +0100)]
edje: svg_loader: make sure we check the return from all _parser_number calls

Instead of nesting this make a bit more sense (at least to me). Also return in
case one of these is not a number.

CID: 1356610

7 years agoefreetd: handle invalid fd in all cases
Stefan Schmidt [Mon, 5 Dec 2016 15:05:12 +0000 (16:05 +0100)]
efreetd: handle invalid fd in all cases

Very unlikely that we will get a -1 when opening /dev/null but you never know
what kind of system you are running on.

CID: 1361759

7 years agoecore-wl2: No need to call hide inside the free function
Chris Michael [Mon, 5 Dec 2016 14:27:11 +0000 (09:27 -0500)]
ecore-wl2: No need to call hide inside the free function

When we are freeing an Ecore_Wl2_Window, there is no need to call
ecore_wl2_window_hide anymore because inside the free function we are
destroying subsurfaces, surfaces, etc, etc so no need to even unmap
them.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoecore-wl2: When we hide a window, attach a NULL buffer to the surface
Chris Michael [Mon, 5 Dec 2016 14:22:26 +0000 (09:22 -0500)]
ecore-wl2: When we hide a window, attach a NULL buffer to the surface

This patch essentially makes sure that the surface gets a NULL buffer
attached to it when we are hiding.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoevas-wayland-shm: Don't recreate Outbuf if we are hidden
Chris Michael [Mon, 5 Dec 2016 14:21:20 +0000 (09:21 -0500)]
evas-wayland-shm: Don't recreate Outbuf if we are hidden

If the hidden flag is set, then we don't need to recreate the Outbuf
for a given canvas as the window is hidden and we are not going to
render there until it's shown again.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoEmacs config: Also remove from extra_dist.
Tom Hacohen [Mon, 5 Dec 2016 12:35:40 +0000 (12:35 +0000)]
Emacs config: Also remove from extra_dist.

7 years agoEmacs configs: Move to designated repo.
Tom Hacohen [Mon, 5 Dec 2016 12:34:43 +0000 (12:34 +0000)]
Emacs configs: Move to designated repo.

7 years agoEo gdb: Remove redundant variable setting.
Tom Hacohen [Mon, 5 Dec 2016 12:06:20 +0000 (12:06 +0000)]
Eo gdb: Remove redundant variable setting.

These were hardcoded values I used for debugging, they are not used anymore,
they are instead calculated at runtime.

7 years agoemile: do not rely on the struct size
Marcel Hollerbach [Mon, 5 Dec 2016 10:13:02 +0000 (11:13 +0100)]
emile: do not rely on the struct size

Summary:
in newer versions of openssl, most of the public structures are made
opaque. So we should use the openssl api to allocate this structure.

Since ctx is now a pointer we dont need opened anymore, so those vars
are replaced with ctx checks. ctx is always NULL'ed after a free

fix T4923

Reviewers: cedric, jpeg, stefan_schmidt

Reviewed By: jpeg, stefan_schmidt

Subscribers: stefan_schmidt, ManMower, jpeg

Maniphest Tasks: T4923

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

7 years agoeo: Fix test case
Jean-Philippe Andre [Mon, 5 Dec 2016 09:15:08 +0000 (18:15 +0900)]
eo: Fix test case

The exact error message has changed.
Another test case is still broken.

7 years agoeo: Fix potential inifinite loop
Jean-Philippe Andre [Mon, 5 Dec 2016 01:43:38 +0000 (10:43 +0900)]
eo: Fix potential inifinite loop

I saw a little oopsie in patch fc48161910fc013674f4af9e19. This
amends it to avoid a potential infinite loop.

7 years agoevas textblock: fix a rendering issue.
Hermet Park [Mon, 5 Dec 2016 09:03:01 +0000 (18:03 +0900)]
evas textblock: fix a rendering issue.

It's a rare case but a possible scenario that textblock is not updated
 properly in case of textblock rendering via proxy/map.

If the textblock state turned out with an invisible state,
its relayouting won't be up to date. But actually, it could be rendered
by map/proxy. In that case textblock text layouting would be incorrect.

Additionally, removed evas event freeze state there because map/proxy won't
be drawn under the event freeze state always.

@fix

7 years agoeo: Make error message less nebulous
Jean-Philippe Andre [Mon, 5 Dec 2016 00:46:55 +0000 (09:46 +0900)]
eo: Make error message less nebulous

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.

7 years agoelm_code: refactoring of the elm_code_line_indent to work with lines
Andy Williams [Sat, 3 Dec 2016 15:59:40 +0000 (15:59 +0000)]
elm_code: refactoring of the elm_code_line_indent to work with lines

7 years agoeina_btlog: compact output and keep non-bt information.
Gustavo Sverzut Barbieri [Sat, 3 Dec 2016 14:57:24 +0000 (12:57 -0200)]
eina_btlog: compact output and keep non-bt information.

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().

7 years agoeina_btlog: show comments (non-bt lines)
Gustavo Sverzut Barbieri [Sat, 3 Dec 2016 14:15:06 +0000 (12:15 -0200)]
eina_btlog: show comments (non-bt lines)

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.

7 years agoeina_btlog: understand new backtrace format used by eo.
Gustavo Sverzut Barbieri [Sat, 3 Dec 2016 13:59:48 +0000 (11:59 -0200)]
eina_btlog: understand new backtrace format used by eo.

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.

7 years agoeina_btlog: improve help.
Gustavo Sverzut Barbieri [Sat, 3 Dec 2016 13:06:05 +0000 (11:06 -0200)]
eina_btlog: improve help.

7 years agoelm_code: ooops, fix test from previous refactor
Andy Williams [Sat, 3 Dec 2016 06:08:10 +0000 (06:08 +0000)]
elm_code: ooops, fix test from previous refactor

7 years agoeo: do not use eina_trash when running on valgrind.
Gustavo Sverzut Barbieri [Sat, 3 Dec 2016 12:35:27 +0000 (10:35 -0200)]
eo: do not use eina_trash when running on valgrind.

This allows valgrind to show when the object was created and deleted.

7 years agoeo: fix compilation without HAVE_BACKTRACE.
Gustavo Sverzut Barbieri [Sat, 3 Dec 2016 11:44:44 +0000 (09:44 -0200)]
eo: fix compilation without HAVE_BACKTRACE.

time_get() function was used even in that case to log when objects
were created or deleted.

thanks @vtorri.

7 years agoeo: fix missing Evil.h include
Gustavo Sverzut Barbieri [Sat, 3 Dec 2016 11:41:09 +0000 (09:41 -0200)]
eo: fix missing Evil.h include

7 years agoeo: fix build on macOS
Jean Guyomarc'h [Sat, 3 Dec 2016 11:10:04 +0000 (12:10 +0100)]
eo: fix build on macOS

Commit 227463bd introduces macOS-specific code, but without including the
header that provides the used declarations.

7 years agoeio - have a smaller mempool as i can see 270k of stuff hanging about
Carsten Haitzler (Rasterman) [Sat, 3 Dec 2016 09:01:53 +0000 (18:01 +0900)]
eio - have a smaller mempool as i can see 270k of stuff hanging about

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

7 years agoevas - fix out events broken by recent multiseat work
Carsten Haitzler (Rasterman) [Sat, 3 Dec 2016 05:46:21 +0000 (14:46 +0900)]
evas - fix out events broken by recent multiseat work

this fixes e's poitners to be "sensible" again.

7 years agoevas - more render cache cleanups
Carsten Haitzler (Rasterman) [Sat, 3 Dec 2016 03:44:57 +0000 (12:44 +0900)]
evas - more render cache cleanups

i forgot to save this file before git committing... so also delete
update rect del array from render cache.

7 years agoevas render cache - clean up memory in all cases
Carsten Haitzler (Rasterman) [Sat, 3 Dec 2016 03:43:11 +0000 (12:43 +0900)]
evas render cache - clean up memory in all cases

this cleans up memory for the rect del array in render cache and when
smart objects are deleted that hold render caches

7 years agoelm_code: Add indentation for matching braces
Andy Williams [Sat, 3 Dec 2016 00:55:02 +0000 (00:55 +0000)]
elm_code: Add indentation for matching braces

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

7 years agoeo: more information when we cannot resolve method.
Gustavo Sverzut Barbieri [Fri, 2 Dec 2016 23:35:18 +0000 (21:35 -0200)]
eo: more information when we cannot resolve method.

_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)

7 years agoeo: allow valgrind-like tracking of object lifecycle.
Gustavo Sverzut Barbieri [Fri, 2 Dec 2016 22:48:37 +0000 (20:48 -0200)]
eo: allow valgrind-like tracking of object lifecycle.

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!
```

7 years agoeo: check for empty vtable and failed extensions.
Gustavo Sverzut Barbieri [Fri, 2 Dec 2016 18:30:11 +0000 (16:30 -0200)]
eo: check for empty vtable and failed extensions.

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.

7 years agoeo: improve logs by always showing event source, minor refactor.
Gustavo Sverzut Barbieri [Fri, 2 Dec 2016 18:26:46 +0000 (16:26 -0200)]
eo: improve logs by always showing event source, minor refactor.

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.

7 years agoThis series of patches merges in better support for hiding of surfaces
Chris Michael [Fri, 2 Dec 2016 19:25:23 +0000 (14:25 -0500)]
This series of patches merges in better support for hiding of surfaces

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'

7 years agoecore-evas-wayland: Remove unused includes
Chris Michael [Fri, 2 Dec 2016 19:00:23 +0000 (14:00 -0500)]
ecore-evas-wayland: Remove unused includes

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>
7 years agoecore-evas-wayland: Minor formatting fix
Chris Michael [Fri, 2 Dec 2016 19:00:04 +0000 (14:00 -0500)]
ecore-evas-wayland: Minor formatting fix

NB: No functional changes, just formatting

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoecore-evas-wayland: Set all evas engine info fields before updating
Chris Michael [Fri, 2 Dec 2016 18:58:09 +0000 (13:58 -0500)]
ecore-evas-wayland: Set all evas engine info fields before updating

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>
7 years agoecore-evas-wayland: Use engine 'hidden' field for ecore_evas_hide operations
Chris Michael [Fri, 2 Dec 2016 18:26:50 +0000 (13:26 -0500)]
ecore-evas-wayland: Use engine 'hidden' field for ecore_evas_hide operations

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>
7 years agoevas-wayland-shm: Fix issue of destroying & recreating wl_surfaces on hide
Chris Michael [Fri, 2 Dec 2016 18:24:42 +0000 (13:24 -0500)]
evas-wayland-shm: Fix issue of destroying & recreating wl_surfaces on hide

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>
7 years agoecore-evas-wayland: Add a 'hidden' field to engine structure
Chris Michael [Fri, 2 Dec 2016 18:04:33 +0000 (13:04 -0500)]
ecore-evas-wayland: Add a 'hidden' field to engine structure

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoelementary: Don't set pointer surface to NULL
Chris Michael [Fri, 2 Dec 2016 18:03:20 +0000 (13:03 -0500)]
elementary: Don't set pointer surface to NULL

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>
7 years agoecore-wl2: Don't destroy surfaces on window hide
Chris Michael [Fri, 2 Dec 2016 18:02:00 +0000 (13:02 -0500)]
ecore-wl2: Don't destroy surfaces on window hide

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>
7 years agoedje_cc: add FOCUS_OBJECT reference on doc
Bruno Dilly [Fri, 2 Dec 2016 18:41:01 +0000 (16:41 -0200)]
edje_cc: add FOCUS_OBJECT reference on doc

It was missing on actions list.

7 years agoeo: fix oops on efl_replace() documentation
Bruno Dilly [Fri, 2 Dec 2016 17:41:48 +0000 (15:41 -0200)]
eo: fix oops on efl_replace() documentation

7 years agoMerge branch 'devs/iscaro/devices'
Bruno Dilly [Fri, 2 Dec 2016 17:27:05 +0000 (15:27 -0200)]
Merge branch 'devs/iscaro/devices'

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

7 years agoEfl.Input.Device: Do not ref/unref devices children devices.
Guilherme Iscaro [Thu, 1 Dec 2016 18:14:11 +0000 (16:14 -0200)]
Efl.Input.Device: Do not ref/unref devices children devices.

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.

7 years agoEfl.Input: Properly unref the device if a new device is set.
Guilherme Iscaro [Thu, 1 Dec 2016 18:13:11 +0000 (16:13 -0200)]
Efl.Input: Properly unref the device if a new device is set.

The old device must be unrefed, otherwise it will leak.

7 years agoEo: Add efl_replace() function.
Guilherme Iscaro [Fri, 2 Dec 2016 13:16:33 +0000 (11:16 -0200)]
Eo: Add efl_replace() function.

This new function adds a new way to safely replace Eo pointer values.

7 years agoEfl.Input: Reset the Efl.Input object as soon as possible.
Guilherme Iscaro [Thu, 1 Dec 2016 18:12:37 +0000 (16:12 -0200)]
Efl.Input: Reset the Efl.Input object as soon as possible.

By doing this the pd->device reference is unrefed and deleted
if no one else is holding a reference to it.

7 years agoeo: if EO_DEBUG, check if efl_super() object 'isa' the given class.
Gustavo Sverzut Barbieri [Fri, 2 Dec 2016 16:49:06 +0000 (14:49 -0200)]
eo: if EO_DEBUG, check if efl_super() object 'isa' the given class.

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.

7 years agoeo: better error reporting, always provide caller/source when available.
Gustavo Sverzut Barbieri [Fri, 2 Dec 2016 16:15:21 +0000 (14:15 -0200)]
eo: better error reporting, always provide caller/source when available.

_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.

7 years agoeo: use log domain as soon as it's available.
Gustavo Sverzut Barbieri [Fri, 2 Dec 2016 16:09:07 +0000 (14:09 -0200)]
eo: use log domain as soon as it's available.

7 years agoelementary: Remove useless #ifdef
Chris Michael [Fri, 2 Dec 2016 16:15:57 +0000 (11:15 -0500)]
elementary: Remove useless #ifdef

This block is already wrapped around an #ifdef directly above, so this

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoeeze_scanner: server was not always initialized here
Stefan Schmidt [Fri, 2 Dec 2016 15:13:02 +0000 (16:13 +0100)]
eeze_scanner: server was not always initialized here

The initial assignment is behind and ifdef so make sure we actually start with
a sane NULL here.

7 years agoefl_ui_win: fix warning about unused parameter
Stefan Schmidt [Fri, 2 Dec 2016 14:54:16 +0000 (15:54 +0100)]
efl_ui_win: fix warning about unused parameter

If the ifdef is not hit this is never being used.

7 years agoecore_ipc: silence a maybe unitialized warning
Stefan Schmidt [Fri, 2 Dec 2016 13:47:43 +0000 (14:47 +0100)]
ecore_ipc: silence a maybe unitialized warning

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.

7 years agoelementary: Re-enable wayland_egl mouse pointers
Chris Michael [Fri, 2 Dec 2016 14:50:48 +0000 (09:50 -0500)]
elementary: Re-enable wayland_egl mouse pointers

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>
7 years agoeo event callback frame make them single linked to save a bit of overhead
Carsten Haitzler (Rasterman) [Fri, 2 Dec 2016 12:26:07 +0000 (21:26 +0900)]
eo event callback frame make them single linked to save a bit of overhead

this makes the callback event frame single linked with a little less
inlist overhead asa result.

7 years agoMerge branch 'devs/iscaro/locks_and_mods'
Bruno Dilly [Fri, 2 Dec 2016 11:58:18 +0000 (09:58 -0200)]
Merge branch 'devs/iscaro/locks_and_mods'

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

7 years agoEcore Input Evas: Add ecore_event_evas_seat_modifier_lock_update().
Guilherme Iscaro [Wed, 9 Nov 2016 13:44:18 +0000 (11:44 -0200)]
Ecore Input Evas: Add ecore_event_evas_seat_modifier_lock_update().

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.

7 years agoEvas: Add support for per seat modifiers and locks.
Guilherme Iscaro [Mon, 7 Nov 2016 18:44:46 +0000 (16:44 -0200)]
Evas: Add support for per seat modifiers and locks.

This patch introduces possibility to enable key locks and modifers by seat.
It's very useful when the user has two keyboards attached to different seats.

7 years agoEcore Evas VNC: Properly set/unset the key locks.
Guilherme Iscaro [Wed, 9 Nov 2016 13:40:57 +0000 (11:40 -0200)]
Ecore Evas VNC: Properly set/unset the key locks.

Key locks must be unset only another they down is received,
otherwise they must remain active.

7 years agoEvas: Add support for per mouse pointer mode/properties.
Guilherme Iscaro [Fri, 21 Oct 2016 12:25:41 +0000 (10:25 -0200)]
Evas: Add support for per mouse pointer mode/properties.

This patch introduces the possibility to set the pointer mode and
query other properties like current position per pointer device.
The old API will still works, however it will only act on the default seat.

7 years agoEcore Input Evas: Ecore_Input_Last should contain the Evas device.
Guilherme Iscaro [Thu, 1 Dec 2016 14:29:54 +0000 (12:29 -0200)]
Ecore Input Evas: Ecore_Input_Last should contain the Evas device.

This struct should contain the Evas device that originated the event,
otherwise events from different devices may mix up and lead to undifined
behaviour.

7 years agoeo: adjust generation count
Marcel Hollerbach [Fri, 2 Dec 2016 10:39:57 +0000 (11:39 +0100)]
eo: adjust generation count

raster suggested a few optimizations