platform/upstream/efl.git
7 years agoecore: remove float comparison warning from Ecore_Animator code.
Cedric BAIL [Tue, 20 Dec 2016 00:33:19 +0000 (16:33 -0800)]
ecore: remove float comparison warning from Ecore_Animator code.

7 years agoecore: remove float comparison warning from Ecore_Poller code.
Cedric BAIL [Tue, 20 Dec 2016 00:32:51 +0000 (16:32 -0800)]
ecore: remove float comparison warning from Ecore_Poller code.

7 years agoecore: remove floating point comparison warning from Ecore_Thread code.
Cedric BAIL [Tue, 20 Dec 2016 00:32:20 +0000 (16:32 -0800)]
ecore: remove floating point comparison warning from Ecore_Thread code.

7 years agoecore: remove floating point comparison warning from Ecore main loop code.
Cedric BAIL [Tue, 20 Dec 2016 00:31:49 +0000 (16:31 -0800)]
ecore: remove floating point comparison warning from Ecore main loop code.

7 years agoecore: remove float comparison warning from Ecore_Pipe.
Cedric BAIL [Tue, 20 Dec 2016 00:31:21 +0000 (16:31 -0800)]
ecore: remove float comparison warning from Ecore_Pipe.

7 years agoefl: remove float comparison warning from Efl.Gfx.Path code.
Cedric BAIL [Tue, 20 Dec 2016 00:30:46 +0000 (16:30 -0800)]
efl: remove float comparison warning from Efl.Gfx.Path code.

7 years agoecore_evas: remove float comparison warning from DRM backend.
Cedric BAIL [Tue, 20 Dec 2016 00:30:08 +0000 (16:30 -0800)]
ecore_evas: remove float comparison warning from DRM backend.

7 years agoeina fixup matrix test
Cedric BAIL [Tue, 20 Dec 2016 00:29:52 +0000 (16:29 -0800)]
eina fixup matrix test

7 years agoevas: get rid of float comparison warning in Evas_3D.
Cedric BAIL [Tue, 20 Dec 2016 00:28:43 +0000 (16:28 -0800)]
evas: get rid of float comparison warning in Evas_3D.

7 years agoeina: get rid of float comparison warning on quaternion tests.
Cedric BAIL [Tue, 20 Dec 2016 00:28:10 +0000 (16:28 -0800)]
eina: get rid of float comparison warning on quaternion tests.

7 years agoeina: get rid of float comparison warning on quad tests.
Cedric BAIL [Tue, 20 Dec 2016 00:27:51 +0000 (16:27 -0800)]
eina: get rid of float comparison warning on quad tests.

7 years agoeina: get rid of float comparison warning from str test.
Cedric BAIL [Tue, 20 Dec 2016 00:27:22 +0000 (16:27 -0800)]
eina: get rid of float comparison warning from str test.

7 years agoeina: use proper logic for comparing double in matrix tests.
Cedric BAIL [Tue, 20 Dec 2016 00:26:22 +0000 (16:26 -0800)]
eina: use proper logic for comparing double in matrix tests.

7 years agoeina fixup bezier
Cedric BAIL [Mon, 19 Dec 2016 23:20:10 +0000 (15:20 -0800)]
eina fixup bezier

7 years agoxcf: fix float comparison in xcf generic loader.
Cedric BAIL [Mon, 19 Dec 2016 20:11:37 +0000 (12:11 -0800)]
xcf: fix float comparison in xcf generic loader.

7 years agoeina: fix double comparison in eina quaternion.
Cedric BAIL [Mon, 19 Dec 2016 20:10:51 +0000 (12:10 -0800)]
eina: fix double comparison in eina quaternion.

7 years agoeina: fix double comparison in eina matrix.
Cedric BAIL [Mon, 19 Dec 2016 20:10:30 +0000 (12:10 -0800)]
eina: fix double comparison in eina matrix.

7 years agoeina: fix double comparison in eina bezier.
Cedric BAIL [Mon, 19 Dec 2016 20:10:15 +0000 (12:10 -0800)]
eina: fix double comparison in eina bezier.

7 years agoeina: correctly compar double in eina xattr test.
Cedric BAIL [Mon, 19 Dec 2016 20:04:48 +0000 (12:04 -0800)]
eina: correctly compar double in eina xattr test.

7 years agoeio: correctly compar double in xattr test.
Cedric BAIL [Mon, 19 Dec 2016 20:04:24 +0000 (12:04 -0800)]
eio: correctly compar double in xattr test.

7 years agoeina: add general purpose function to compar float and double.
Cedric BAIL [Mon, 19 Dec 2016 20:03:49 +0000 (12:03 -0800)]
eina: add general purpose function to compar float and double.

7 years agowayland_egl: Use common implementation of eglCreateImage
Derek Foreman [Mon, 19 Dec 2016 22:14:46 +0000 (16:14 -0600)]
wayland_egl: Use common implementation of eglCreateImage

This might fix nested compositors on some architectures...

7 years agowayland_egl: Remove some weirdness from our egl extension queries
Derek Foreman [Mon, 19 Dec 2016 22:13:48 +0000 (16:13 -0600)]
wayland_egl: Remove some weirdness from our egl extension queries

Still totally wrong, of course, but at least a little less wacky.

7 years agogl_x11: Use common implementation of eglCreateImage
Derek Foreman [Mon, 19 Dec 2016 21:51:30 +0000 (15:51 -0600)]
gl_x11: Use common implementation of eglCreateImage

Throw away the local copy and use the one in gl_common.

7 years agogl_drm: Use common eglCreateImage implementation
Derek Foreman [Mon, 19 Dec 2016 21:27:44 +0000 (15:27 -0600)]
gl_drm: Use common eglCreateImage implementation

Refactor to reduce copy and paste.

7 years agogl_common: Make secsym_eglCreateImage a wrapper
Derek Foreman [Mon, 19 Dec 2016 20:33:09 +0000 (14:33 -0600)]
gl_common: Make secsym_eglCreateImage a wrapper

eglCreateImage and eglCreateImageKHR are subtly different.  Now we try to
handle them both properly by exposing an abstraction.

7 years agoector_gl: Add some EGL typedefs to internal header
Derek Foreman [Mon, 19 Dec 2016 20:28:49 +0000 (14:28 -0600)]
ector_gl: Add some EGL typedefs to internal header

This lets us include EGL/egl.h in gl_common.

7 years agogl_common: fix eglCreateImageKHR query
Derek Foreman [Mon, 19 Dec 2016 20:06:51 +0000 (14:06 -0600)]
gl_common: fix eglCreateImageKHR query

There are surprisingly few GL extensions that start with GL_EGL...

This is apparently more widely deployed than OES, so let's bump its
priority too.

7 years agoefl_net_server_udp_client: make error easier to understand.
Gustavo Sverzut Barbieri [Mon, 19 Dec 2016 19:19:45 +0000 (17:19 -0200)]
efl_net_server_udp_client: make error easier to understand.

UDP client has no socket on its own, so it can't be marked as
close-on-exec, however failing to resolve the method is bad as
confuses the user.

Instead provide a method that checks if the setting is different from
parent, in such case provide a meaningful message. Otherwise just be
quiet.

7 years agoefl_net_socket_udp: expose init() as protected method.
Gustavo Sverzut Barbieri [Mon, 19 Dec 2016 19:11:46 +0000 (17:11 -0200)]
efl_net_socket_udp: expose init() as protected method.

remove one more TODO: since Efl.Net.Ip.Address was introduced we can
now expose Efl.Net.Socket.Udp.init as a protected method that will
configure the internal address we use for the remote peer. This allow
subclasses to override or call such methods.

7 years agoefl_net_socket_ssl: remove TODO leftover.
Gustavo Sverzut Barbieri [Mon, 19 Dec 2016 18:52:29 +0000 (16:52 -0200)]
efl_net_socket_ssl: remove TODO leftover.

There are no jobs to stop there, it was a left over since this code
was somehow derived from Efl.Loop_Fd where "read" and "write" would
constantly be called until the kernel flag was cleared, there the
callback must be removed to stop jobs, not here.

7 years agoefl_io_buffer: adopt read-only and read-write buffers.
Gustavo Sverzut Barbieri [Mon, 19 Dec 2016 18:49:29 +0000 (16:49 -0200)]
efl_io_buffer: adopt read-only and read-write buffers.

todo--, allow buffer backing store to be provided by Eina_Slice
(rdonly) or Eina_Rw_Slice (rdwr).

7 years agoevas: improve logic regarding events filtering enablement
Bruno Dilly [Mon, 19 Dec 2016 15:58:01 +0000 (13:58 -0200)]
evas: improve logic regarding events filtering enablement

Only the size of events_whitelist isn't enough, because in some
cases the user may be disabling the usage of a specific seat.

Considering the following scenario, the issue will easy to understand:
 - an application with two entries (one to be used by seat 1 and other
     by seat 2)
 - the first seat is announced - it is enabled for entry 1 and
     disabled for entry 2
 - the second seat is announced

Before second seat is announced, the first seat would be able
to input the entry 1, because the events_whitelist of such
object will continue empty.

So a flag will be used to identify an object with active
filter.

Reviewed By: iscaro

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

7 years agoevas: remove focus when removed from filter whitelist
Bruno Dilly [Fri, 16 Dec 2016 20:11:05 +0000 (18:11 -0200)]
evas: remove focus when removed from filter whitelist

It doesn't make sense to remove it when a seat is added
to the list. It should be removed only when this seat
is blocked.

But when the list receives its first item, then
it also should be checked if the focused seat
is the one just added, otherwise the previous one
must be removed.

7 years agotests/ecore_con: skip ipv6 tests if that's disabled on the running system.
Gustavo Sverzut Barbieri [Mon, 19 Dec 2016 17:49:16 +0000 (15:49 -0200)]
tests/ecore_con: skip ipv6 tests if that's disabled on the running system.

7 years agomore eo simplified to use Eina_Slice instead of pointer to.
Gustavo Sverzut Barbieri [Mon, 19 Dec 2016 17:27:34 +0000 (15:27 -0200)]
more eo simplified to use Eina_Slice instead of pointer to.

Working directly with Eina_Slice is easier than a pointer to it,
requires no validation of the pointers and is cheap since it's just
putting together size_t + void*.

However we can't hint the user of 'const(Eina.Slice)' properties as
Eolian is incorrectly generating getters as:

   const Eina_Slice class_property_get(...)

which is makes compilers complain about ignored qualifiers:

   ../src/lib/ecore/efl_io_copier.eo.h:329:7: warning: 'const' type qualifier on return type has no effect [-Wignored-qualifiers]

Leave some TODO so @q66 can fix those.

7 years agoEfl.Io.{Queue,Buffer,Buffered_Stream}: slice_get is now a property.
Gustavo Sverzut Barbieri [Mon, 19 Dec 2016 16:46:37 +0000 (14:46 -0200)]
Efl.Io.{Queue,Buffer,Buffered_Stream}: slice_get is now a property.

Previously we couldn't return a slice, instead required the user to
pass a slice and we'd fill it since Eolian couldn't generate fallbacks
for structures.

Since @q66 fixed eolian, we can now return the structure itself as
initially wanted, ditching some TODO from the code.

7 years agoMerge branch 'devs/bdilly/edje_multiseat'
Bruno Dilly [Mon, 19 Dec 2016 17:19:06 +0000 (15:19 -0200)]
Merge branch 'devs/bdilly/edje_multiseat'

This series implement multiseat support on Edje:
 * emit signals with seat name as suffix
 * handle multiseat focus
 * add optional argument to FOCUS_SET and FOCUS_OBJECT actions
   to specify a seat
 * add Edje naming for seats (incremental) with flag
   to disable this behaviour - so custom (evas) names will be used
 * add 3 examples exploring all these new features

Reviewed By: cedric, iscaro, jpeg

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

@feature

7 years agoedje/examples: add example of use_custom_seat_names flag
Bruno Dilly [Wed, 14 Dec 2016 19:47:18 +0000 (17:47 -0200)]
edje/examples: add example of use_custom_seat_names flag

Since seat names defined on evas will depend on evas backends,
maybe udev rules, etc, we aren't able to demonstrate it
without manually setting another name for such seats
with efl_input_devices_name_set(). Otherwise
we wouldn't have guarantees it would match
names on EDC.

7 years agoedje/examples: add example for focus actions
Bruno Dilly [Wed, 14 Dec 2016 17:47:20 +0000 (15:47 -0200)]
edje/examples: add example for focus actions

Just a regular (non multiseat) focus example for
actions FOCUS_SET and FOCUS_OBJECT

7 years agoedje: add flag to choose between evas or edje seat naming
Bruno Dilly [Tue, 6 Dec 2016 17:06:38 +0000 (15:06 -0200)]
edje: add flag to choose between evas or edje seat naming

collections.group.use_custom_seat_names should be set to '1'
to use seat names on signals as provided by Evas.

By default just follow Edje naming approach
("seat1", "seat2", ...)

7 years agoexamples/edje: add dynamic seats example
Bruno Dilly [Mon, 5 Dec 2016 22:41:33 +0000 (20:41 -0200)]
examples/edje: add dynamic seats example

It's an example of how themes can be implemented even if the number
of seats using the UI is unknown, and how it can be done
using scripts or C code.

7 years agoedje: support action seats on edje_edit
Bruno Dilly [Mon, 5 Dec 2016 17:24:35 +0000 (15:24 -0200)]
edje: support action seats on edje_edit

7 years agoedje: accept optional seat parameter on FOCUS_OBJECT
Bruno Dilly [Fri, 2 Dec 2016 19:50:43 +0000 (17:50 -0200)]
edje: accept optional seat parameter on FOCUS_OBJECT

If not provided, FOCUS_OBJECT action will keep acting
over default seat.

Also include a usage on edje-multiseat test
(actually no example was exercising this action).

7 years agoexamples/edje: add multiseat example
Bruno Dilly [Thu, 3 Nov 2016 21:10:51 +0000 (19:10 -0200)]
examples/edje: add multiseat example

7 years agoedje: add names for seats following an incremental pattern
Bruno Dilly [Wed, 30 Nov 2016 21:52:14 +0000 (19:52 -0200)]
edje: add names for seats following an incremental pattern

This way it'll be possible to write EDC with seat names that
will work no matter how seats are named by each ecore_evas
backend or users.

7 years agoedje: support seat on focus action and signals
Bruno Dilly [Thu, 17 Nov 2016 17:21:02 +0000 (15:21 -0200)]
edje: support seat on focus action and signals

Seat goes as an optional parameter for FOCUS_SET (if not
provided, act over default seat), and emit signals
with seat suffix:
 * focus,in,$SEAT
 * focus,out,$SEAT
 * focus,part,in,$SEAT
 * focus,part,out,$SEAT

7 years agoedje: add new signals providing seat information
Bruno Dilly [Tue, 8 Nov 2016 19:50:23 +0000 (17:50 -0200)]
edje: add new signals providing seat information

Add the following signals:
 * mouse,in,$SEAT
 * mouse,out,$SEAT
 * mouse,move,$SEAT
 * mouse,clicked,$BUTTON,$SEAT
 * hold,on,$SEAT
 * hold,off,$SEAT
 * drag,$SEAT
 * drag,start,$SEAT
 * drag,stop,$SEAT

7 years agoevas: add getter for devices by name
Bruno Dilly [Thu, 17 Nov 2016 18:50:44 +0000 (16:50 -0200)]
evas: add getter for devices by name

Make it possible to get the evas device given
its name. It sounds useful for Edje since
programs will reference seats by name.

7 years agobuild: enable -Wfloat-equal for compiling
Mike Blumenkrantz [Mon, 19 Dec 2016 16:08:43 +0000 (11:08 -0500)]
build: enable -Wfloat-equal for compiling

 #WarningOfTheMonth

7 years agoecore_con/ecore_ipc: flush should wait for connection.
Gustavo Sverzut Barbieri [Mon, 19 Dec 2016 14:57:09 +0000 (12:57 -0200)]
ecore_con/ecore_ipc: flush should wait for connection.

Some applications will create the handle, immediately send data, flush
and delete it, expecting the data to be sent to remote peer.

This is a bad behavior as the application would become unresponsive
until the connection is established, data can be written (since
depends on server consuming it), then allow it to be closed.

A proper behavior here would be to chain based on events, with the
usage of a copier would be simply wait for "done" event.

However the legacy API allowed this and terminology depends on this
awkward "feature", thus be bug-compatible.

This fixes T5015.

7 years agoefl_io_file: initialize all fd to -1.
Gustavo Sverzut Barbieri [Mon, 19 Dec 2016 14:51:56 +0000 (12:51 -0200)]
efl_io_file: initialize all fd to -1.

Since 0 is a valid fd, we should initialize these to -1.

7 years agoefl_net_socket_fd: initialize fds to INVALID_SOCKET
Gustavo Sverzut Barbieri [Mon, 19 Dec 2016 14:47:13 +0000 (12:47 -0200)]
efl_net_socket_fd: initialize fds to INVALID_SOCKET

Since 0 is a valid fd, then we'd try to do socket operations on it,
which would generate misleading errors.

7 years agoecore_con/ecore_ipc legacy: fail early for local sockets.
Gustavo Sverzut Barbieri [Mon, 19 Dec 2016 13:58:55 +0000 (11:58 -0200)]
ecore_con/ecore_ipc legacy: fail early for local sockets.

In the old/legacy API the socket would be opened early in non-blocking
mode (connect returned errno==EINPROGRESS), with UNIX socket being
path-validated early and returning NULL as 'server' handle.

Some applications relied on this instead of monitoring the "ERROR"
events, considering the connection to be successful if there was a
handle -- this was the case with Terminology after it moved from DBus
to Ecore_Ipc.

Although this is not correct, we must keep compatibility and thus we
stat() in compatibility layer, failing early as the old API would do.

7 years agoecore_con/ecore_ipc: keep log domain alive after shutdown.
Gustavo Sverzut Barbieri [Mon, 19 Dec 2016 13:37:24 +0000 (11:37 -0200)]
ecore_con/ecore_ipc: keep log domain alive after shutdown.

These legacy API had the nasty behavior of keeping handles alive until
the pending events were dispatched, this could happen after the module
itself was shutdown, resulting in log to unregistered domains.

Then do not unregister the domain -- eina_shutdown will avoid leaks
anyway.

7 years agoelput: Fix resource leak
Chris Michael [Mon, 19 Dec 2016 14:49:36 +0000 (09:49 -0500)]
elput: Fix resource leak

Coverty reports that we leak 'reply' here if we fall into the error
condition.

CID1367506

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agoelput: Fix resource leak
Chris Michael [Mon, 19 Dec 2016 14:48:30 +0000 (09:48 -0500)]
elput: Fix resource leak

Coverity reports that 'reply' is leaked here if we fall into the error
condition.

CID1367507

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
7 years agocoverity: add modeling file to reduce false positives.
Gustavo Sverzut Barbieri [Mon, 19 Dec 2016 13:09:02 +0000 (11:09 -0200)]
coverity: add modeling file to reduce false positives.

7 years agoefl_net: fix CID 1367489 due copy & paste.
Gustavo Sverzut Barbieri [Mon, 19 Dec 2016 12:37:21 +0000 (10:37 -0200)]
efl_net: fix CID 1367489 due copy & paste.

we're looking at "x" since it's the return of getaddrinfo(), not "r"
which is used for something else.

7 years agoefl_debug_common: remove stale code/macros.
Gustavo Sverzut Barbieri [Mon, 12 Dec 2016 18:35:26 +0000 (16:35 -0200)]
efl_debug_common: remove stale code/macros.

These are not needed anymore.

7 years agoevas/ply: Fix some memleaks
Jean-Philippe Andre [Mon, 19 Dec 2016 03:03:46 +0000 (12:03 +0900)]
evas/ply: Fix some memleaks

I have a strong feeling that this parser is not very robust...

Closes T5001

7 years agoelm_code: Don't assume control characters make a change
Andy Williams [Sat, 17 Dec 2016 13:03:31 +0000 (13:03 +0000)]
elm_code: Don't assume control characters make a change

@fix

7 years agoEio_monitor: support native monitor for Win32 (T4978)
Ivan Furs [Fri, 16 Dec 2016 23:27:09 +0000 (15:27 -0800)]
Eio_monitor: support native monitor for Win32 (T4978)

Test Plan:
eio_monitor_backend_add()  and eio_monitor_fallback_add use different structures
**eio_monitor_backend_add()  **
struct _Eio_Monitor_Backend
{
   Eio_Monitor               *parent;
   Eio_Monitor_Win32_Watcher *watcher_file;
   Eio_Monitor_Win32_Watcher *watcher_dir;
   Eio_Monitor_Win32_Watcher *watcher_parent;
};

**eio_monitor_fallback_add()**
struct _Eio_Monitor_Backend
{
   Eio_Monitor *parent;

   Eina_Stat self;
   Eina_Hash *children;

   Ecore_Timer *timer;
   Ecore_Idler *idler;
   Ecore_Thread *work;

   int version;

   Eina_Bool delete_me : 1;
   Eina_Bool initialised : 1;
   Eina_Bool destroyed : 1;
};

therefore, an error occurs
**void eio_monitor_backend_del**(Eio_Monitor *monitor)
{

   if (!_eio_monitor_win32_native)          <------_eio_monitor_win32_native is EINA_TRUE
     {

        eio_monitor_fallback_del(monitor);  <------ignored------
        return;                             <------ignored------
     }

   _eio_monitor_win32_watcher_free(monitor->backend->watcher_parent);
   _eio_monitor_win32_watcher_free(monitor->backend->watcher_dir);
   _eio_monitor_win32_watcher_free(monitor->backend->watcher_file);
   free(monitor->backend);
   monitor->backend = NULL;
}

Reviewers: raster, vtorri, an.kroitor, jpeg, reutskiy.v.v, FurryMyad, cedric

Reviewed By: cedric

Subscribers: vtorri, artem.popov, cedric, jpeg

Tags: #windows, #efl

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
7 years agoscrollable_interface: fixed logic for calcualting position to scroll.
Hosang Kim [Fri, 16 Dec 2016 23:25:18 +0000 (15:25 -0800)]
scrollable_interface: fixed logic for calcualting position to scroll.

Summary:
When width of parameter(w) is bigger than or equal to scroller's width(pw),
scrollable object must be scrolled to x position.

Test Plan: elementary_test -> focus 4

Reviewers: woohyun, SanghyeonLee, Hermet, cedric, jpeg, raster

Subscribers: cedric, jpeg

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

7 years agoelm_widget: add logic for updating geometry after moving
Hosang Kim [Fri, 16 Dec 2016 23:24:00 +0000 (15:24 -0800)]
elm_widget: add logic for updating geometry after moving

Summary:
scrollable object.

In multiple scrollable case, the target object should be updated.
Because the first object is scrolled. So the parent of the first object should be scrolled.

Reviewers: woohyun, Hermet, jpeg, cedric, raster

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
7 years agoedje: handle case when strdup would be NULL.
Cedric BAIL [Fri, 16 Dec 2016 23:15:17 +0000 (15:15 -0800)]
edje: handle case when strdup would be NULL.

alternate solution to D4488. Would be better to have a buffer and recycle it.

7 years agoelm.hoversel: fix item size calculation
Jee-Yong Um [Fri, 16 Dec 2016 23:02:06 +0000 (15:02 -0800)]
elm.hoversel: fix item size calculation

Summary:
The way to find the position of hoversel expansion is based on geometry
currently, but it causes errors when theme is not made as expected.
This patch makes hoversel use string to find the right position and
calculate item width correctly when items are shorter than hoversel itself.

Test Plan:
elementary_test -to hoversel
(error case shows in tizen mobile device when screen is rotated)

Reviewers: cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
7 years agoeio: check error case for eina_value_get.
Cedric BAIL [Fri, 16 Dec 2016 22:10:11 +0000 (14:10 -0800)]
eio: check error case for eina_value_get.

CID 1356609

7 years agoecore: add test for efl_promise_connect.
Cedric BAIL [Fri, 16 Dec 2016 22:06:02 +0000 (14:06 -0800)]
ecore: add test for efl_promise_connect.

7 years agoecore: add helper to automatically connect a future result to a promise.
Cedric BAIL [Fri, 16 Dec 2016 22:05:10 +0000 (14:05 -0800)]
ecore: add helper to automatically connect a future result to a promise.

This helper is to be used likely with next and an external request.

7 years agoecore: add tests for new promise delayed behavior.
Cedric BAIL [Fri, 16 Dec 2016 21:11:29 +0000 (13:11 -0800)]
ecore: add tests for new promise delayed behavior.

7 years agoecore: fix test to generate one main loop iteration to see promise fulfilled.
Cedric BAIL [Fri, 16 Dec 2016 19:28:50 +0000 (11:28 -0800)]
ecore: fix test to generate one main loop iteration to see promise fulfilled.

7 years agoecore: delay promise fulfillment to next loop iteration.
Cedric BAIL [Fri, 16 Dec 2016 19:26:46 +0000 (11:26 -0800)]
ecore: delay promise fulfillment to next loop iteration.

7 years agoecore: remove useless information from header.
Cedric BAIL [Fri, 16 Dec 2016 18:42:59 +0000 (10:42 -0800)]
ecore: remove useless information from header.

7 years agoecore: refactor promise propagation code.
Cedric BAIL [Fri, 16 Dec 2016 18:19:37 +0000 (10:19 -0800)]
ecore: refactor promise propagation code.

7 years agoevas engines: Stop using arrays of 1 member for egl context and surface
Derek Foreman [Fri, 16 Dec 2016 15:12:30 +0000 (09:12 -0600)]
evas engines: Stop using arrays of 1 member for egl context and surface

There's actually an array of 2 in gl_x11, but it appears we only use the
first 1, except in an #if 0 block.

I gather this is legacy for some reason - it sure doesn't seem to make
any sense now, so I'm chopping off all the extra array indexes.

Note: I've not changed gl_sdl - it looks like it doesn't use the context
or surface at all and they could just be removed, but I don't build that
one here and don't want to touch it.

7 years agoedje_pick: copy images from image sets
Vyacheslav Reutskiy [Fri, 16 Dec 2016 13:30:20 +0000 (15:30 +0200)]
edje_pick: copy images from image sets

@fix

7 years agoedje_pick: use separate Eina_List vars for different EINA_LIST_FOREACH
Vyacheslav Reutskiy [Fri, 16 Dec 2016 13:27:53 +0000 (15:27 +0200)]
edje_pick: use separate Eina_List vars for different EINA_LIST_FOREACH

7 years agoelm: Add a test case for evas masking
Jean-Philippe Andre [Fri, 16 Dec 2016 09:59:05 +0000 (18:59 +0900)]
elm: Add a test case for evas masking

This tests masks of masks in a genlist, with maybe a map.
Nothing crazy.

7 years agoelm_layout: Implement Efl.Text
Jean-Philippe Andre [Fri, 16 Dec 2016 09:53:33 +0000 (18:53 +0900)]
elm_layout: Implement Efl.Text

This implements support for efl_text_set() for the default
part (NULL). This also adds support for efl_text_set(efl_part())
for layouts. This should cover a LOT of widgets :)

The next step is to remove Elm.Layout.text but it's used in too
many places at the moment. @herdsman!!

7 years agoevas: Fix issues with masking (make check)
Jean-Philippe Andre [Fri, 16 Dec 2016 08:04:05 +0000 (17:04 +0900)]
evas: Fix issues with masking (make check)

After a previous patch, mask_subrender worked differently, and
didn't reset the object's cache clip color. This made evas_suite
fail. But also it seems some other issues creeped in and it was
necessary to fix the test case by adding data_updates (mistake!)
and removing an invalid draw call.

7 years agoelm - add test for efl ui win stacking api
Carsten Haitzler (Rasterman) [Fri, 9 Dec 2016 06:27:55 +0000 (15:27 +0900)]
elm - add test for efl ui win stacking api

7 years agoefl_ui_win - use ecore_x window stack api to set up property in x11
Carsten Haitzler (Rasterman) [Fri, 9 Dec 2016 06:27:10 +0000 (15:27 +0900)]
efl_ui_win - use ecore_x window stack api to set up property in x11

7 years agoefl_ui_win - teamwork really has issues and i think needs deprecation
Carsten Haitzler (Rasterman) [Thu, 8 Dec 2016 10:14:32 +0000 (19:14 +0900)]
efl_ui_win - teamwork really has issues and i think needs deprecation

teamwork api in elm win (efl_ui_win) has a few issues:

1. it directly ddigs into ecore_wl2 and uses internal headers to use
zwp_* api's directly... which effectively tied elementary directly to
libwayland and thats not a good thing - thats why ecore_wl2 exists -
to act as a layer in between
2. the only thing that supports it is e and only wiht a module and
there is no fallback code in elm to work outside this environment, so
it's kind of broken by design and will not actually reliably work
3. from a stability and security point of view, and api and protocol
that allow a client to ask your wm/compositor to open ANY url - go
make a network request possibly to a hostile url/site is bad. needing
to handle so so so so many protocols, file types etc. etc. is going to
lead to issues that SHOULD at least be isolated in the app, but now it
spreads into your wm/compositor too. :(
4. there is ZERO benefit to asking the wm to do this. the app is
using efl already. it already has all the same abilities with the same
libraries to download/display etc. so why doesnt the app do it itself?
5. doesnt work in windows, osx, framebuffer (fbcon or drm)... only in
x11 and wayland. (and then only with e + module)
6. there is no way to detect if it's going to work and write your own
fallback (which shouldnt be needed/done anyway).

nice work and enthusiasm on making teamwork but it just isn't the right
thing - not in its current form and not by design (security reasons) :(

@deprecate

7 years agoecore-x - add missing atom fetches!
Carsten Haitzler (Rasterman) [Thu, 8 Dec 2016 09:48:05 +0000 (18:48 +0900)]
ecore-x - add missing atom fetches!

ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_STATE
ECORE_X_ATOM_E_ILLUME_SLIDING_WIN_GEOMETRY
ECORE_X_ATOM_E_KEYROUTER_SUPPORTED
ECORE_X_ATOM_E_KEYROUTER_WINDOW_KEYTABLE

all had no atom fetches! fix..

@fix

7 years agoecore-x - add e stack type atom and api's to set and get it
Carsten Haitzler (Rasterman) [Thu, 8 Dec 2016 09:42:34 +0000 (18:42 +0900)]
ecore-x - add e stack type atom and api's to set and get it

7 years agoefl_ui_win - add window "view stack" api's and ability
Carsten Haitzler (Rasterman) [Thu, 8 Dec 2016 08:49:23 +0000 (17:49 +0900)]
efl_ui_win - add window "view stack" api's and ability

this adds the a stack of windows (view stack, something like naviframe
but using multiple windows instead) to elementary allowing windows to
be put into a stack and treated as one "application" when ijn such a
stack with the newest window on top being the active/focused one (or
should be). this allows for special show/hide animations as well as
possibly special sizing policies and placement policies.

@feature

7 years agoevas: Apply clip when rendering a masked mask
Jean-Philippe Andre [Fri, 16 Dec 2016 06:21:01 +0000 (15:21 +0900)]
evas: Apply clip when rendering a masked mask

This fixes a rare crash in the SW engine when a masked mask is
to be rerendered. The clip adds more safety as the lower render
draw functions assume it is properly set.

7 years agotest.edc: Fix indentation of a group
Jean-Philippe Andre [Fri, 16 Dec 2016 05:55:44 +0000 (14:55 +0900)]
test.edc: Fix indentation of a group

7 years agoevas: Change int into a single bit
Jean-Philippe Andre [Fri, 16 Dec 2016 05:35:52 +0000 (14:35 +0900)]
evas: Change int into a single bit

clean_layer is a bool

7 years agoevas: Fix masks of masks
Jean-Philippe Andre [Fri, 16 Dec 2016 03:16:01 +0000 (12:16 +0900)]
evas: Fix masks of masks

Don't ask. This is a world of magic.

7 years agoevas: "fix" masks of masks inside a proxy
Jean-Philippe Andre [Fri, 16 Dec 2016 02:19:17 +0000 (11:19 +0900)]
evas: "fix" masks of masks inside a proxy

Here's the situation:

1. A container (genlist) has a mask, M0.
2. An item I0 inside this container uses a proxy P0 as render object
   rather than the item directly (eg. for zooming in/out).
3. An element E0 inside this item has another mask, M1.

Theory:
1. The proxy surface for P0 is rendered, and M1 is applied to
   the element E0.
2. The proxy P0 is rendered on the canvas, with M0 applied.

Practice:
1. The element E0 is prepared for rendering, this triggers
   a mask subrender for M1.
2. M1 is rendered with M0 as a prev mask, then kept in cache and
   not redrawn (no geometry change, etc...)
3. When P0's surface is rendered, M1's surface is the result of M1+M0.
4. When P0 is drawn on screen, we can see the effect of M1+M0 as
   P0's geometry might be different from the item's I0.

Solution:
Discard prev masks and force a mask redraw when we're inside a
proxy. Ideally we should detect if the prev mask belongs to the
insides of the proxy or not.

Problems:
_mask_apply_inside_proxy() is definitely not correct, but it's
not easy to test it. Anyway I believe that in order to properly
implement all of this, we need to rethink evas_render and
the draw context. Non-primary render surfaces (maps, proxies,
masks, filters, ...) should be rendered with a clean context
and clipping, masking, etc should be computed appropriately.

7 years agoevas: Remove flag use_mapped_ctx and add do_async
Jean-Philippe Andre [Fri, 16 Dec 2016 01:55:47 +0000 (10:55 +0900)]
evas: Remove flag use_mapped_ctx and add do_async

Always assume use_mapped_ctx as true, the caller of evas_render_mapped
must ensure that the context is suitable (so either clean or contains
the appropriate clip info).

Also pass do_async to mask_subrender. For now it will always be reset
to false as the SW engine requires sync render to convert from RGBA
to Alpha (not great). The upcoming GL async engine should be able to
render masks asynchronously without any problem.

7 years agoevas: Call object render in mask_subrender
Jean-Philippe Andre [Fri, 16 Dec 2016 01:53:03 +0000 (10:53 +0900)]
evas: Call object render in mask_subrender

This can avoid some invalid render from evas_render_mapped in
a rare case. I'm not sure about the conditions but I know for
sure that at the moment mask_subrender should be only rendering
plain old images into a dedicated surface. So no need for
evas_render_mapped here.

7 years agoevas: Remove context from the evas public data
Jean-Philippe Andre [Fri, 16 Dec 2016 01:44:47 +0000 (10:44 +0900)]
evas: Remove context from the evas public data

It was never used, except in dubious situations (most likely a typo).
A clean context is now used in the top-most call to
evas_render_updates_internal_loop.

7 years agoevas: Remove context from some engine function
Jean-Philippe Andre [Fri, 16 Dec 2016 01:40:55 +0000 (10:40 +0900)]
evas: Remove context from some engine function

This is for canvas_alpha_get. context is never used.

7 years agoevas: Remove context from polygon internal functions
Jean-Philippe Andre [Fri, 16 Dec 2016 01:37:54 +0000 (10:37 +0900)]
evas: Remove context from polygon internal functions

It's not used

7 years agoevas: Use ENFN, ENDT in evas_render
Jean-Philippe Andre [Thu, 15 Dec 2016 06:25:43 +0000 (15:25 +0900)]
evas: Use ENFN, ENDT in evas_render

This makes code shorter and easier to read (imo).
Also introduce ENCTX for the engine context. It's used in a couple
places and I believe it's just wrong - but works because the engine
context and the current context are the same.

7 years agoevas: Avoid calling efl_isa in proxy_subrender
Jean-Philippe Andre [Wed, 14 Dec 2016 07:28:42 +0000 (16:28 +0900)]
evas: Avoid calling efl_isa in proxy_subrender

It's not necessary.

7 years agoevas: Add source_region property to proxy objects
Jean-Philippe Andre [Tue, 13 Dec 2016 08:41:49 +0000 (17:41 +0900)]
evas: Add source_region property to proxy objects

This will allow partially rendering a proxy in a smaller image,
limited to the specified region. At the moment, this will allow
apps to create proxies of very large objects and let them deal
with the geometry & clipping.

This is not directly solving the issues with adding a filter
to textblock or the infinite page scrollers.

@feature