Commit Graph

52 Commits

Author SHA1 Message Date
Elyes HAOUAS 1fd0435f21 Get rid of trailing whitespaces (4 / 14)
Remove trailing whitespaces
Differential Revision: https://phab.enlightenment.org/D12002
2020-06-23 10:29:14 +02:00
Hosang Kim 9c41899a08 ecore_evas_buffer: Unregister input events when ecore_evas_buffer is freed
Summary:
When ecore_evas_buffer is freed, input events is not unregistered.
So _window_hash size is increasing.

Reviewers: Hermet, cedric, raster, zmike

Reviewed By: zmike

Subscribers: zmike, rajeev.jnnce, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10983
2019-12-30 11:23:22 -05:00
Hermet Park 2e37d2f30f ecore_evas buffer: fix a deadlock issue.
We encountered a deadlock case in ecore_evas_image_object in ecore_evas_buffer
that only happens if the ecore_evas_buffer has nothing changed to render,
though it's triggered to rendering.

See this normal scenario that is working fine as our intention.

being ecore_evas_render()
...
 -> ecore_evas_buffer_prepare()
     -> evas_object_image_data_get()
         -> increment lock by backend engine. (egl/tbm ...)
 -> render()
     -> render_post()
        -> _ecore_evas_buffer_update_image()
            -> evas_object_image_data_set()
               ->decrement lock by backend engine (egl/tbm ...)
...
end ecore_evas_render()

The problem is, if the ecore_evas_buffer canvas doesn't changed at all,
render post will be skipped, it could lose the chance to unlock the image data.
Now the host can't render anymore since it's image source lost the lock.

@fix
2019-07-22 17:14:10 +09:00
Wonki Kim 80b364f392 ecore_evas: fix a potentional deref after null problem
Summary:
this patch modify a logic to return after,
failing to call eore_evas_buffer_allocfunc_new function.

Reviewers: Hermet, bu5hm4n, cedric, devilhorns

Reviewed By: devilhorns

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7918
2019-02-13 10:42:24 -05:00
Chris Michael 3fcdada0fd ecore-evas-buffer: Fix formatting
NB: No functional changes
2019-01-31 08:11:54 -05:00
Carsten Haitzler 2dc4bed587 ecore evas - buffer - init ecore event evas as many times as shutdown
so ecore_event_evas_shutdown() was getting called much more than
ecore_event_evas_init() - missing an init in the ee + img obj creator
in ecore evas. this adds it in and ensures in allocation failures we
dont over-init or shutdown too.

@fix
2018-12-03 15:50:02 +00:00
Marcel Hollerbach 30db122db4 ecore_evas_buffer: register it in ecore_evas_input
this is done in order to make ecore_event_evas_key_down work with this.
The function can be used to simulate interactions with a efl_ui_win. If
this is not added, then the user of ecore_event_evas_key_down needs to
differentiate between buffer engines and the rest of the engines.

Differential Revision: https://phab.enlightenment.org/D7361
2018-11-28 22:20:34 +01:00
Carsten Haitzler 7090e49335 ecore evas - warn - buffer engine - set last tick get field to null
missing field not set- set to null so we know its not set.
2018-11-09 11:44:00 +00:00
Mike Blumenkrantz ba3fe6c1cb ecore-evas/buffer: implement ignore_events method
Summary:
this is a simple implementation of ignore_events functionality which
sets pass_events if it's an image or prevents the emission of events
in other cases

the result should be that no user events are received. this deliberately
does not block the triggering of resize callbacks as in the original ticket
since this guarantees broken functionality and is just not a good idea

fix T4700

Reviewers: devilhorns, Hermet

Reviewed By: Hermet

Subscribers: Hermet, cedric, #reviewers, #committers

Tags: #efl_display_system

Maniphest Tasks: T4700

Differential Revision: https://phab.enlightenment.org/D6876
2018-08-22 18:35:11 +09:00
Mike Blumenkrantz b7530726c8 ecore-evas-buffer: defer resize callback until pre-render
Summary:
this mimics other engines, all of which have the same mechanics due
to display server interactions. it also avoids unnecessary recalcs before
pre-render if the canvas size was changing repeatedly

fix T6924
ref D6019

Reviewers: cedric, JackDanielZ

Reviewed By: JackDanielZ

Subscribers: #committers, JackDanielZ

Tags: #efl

Maniphest Tasks: T6924

Differential Revision: https://phab.enlightenment.org/D6145
2018-05-23 17:35:18 -04:00
Cedric BAIL 39c87e6c99 ecore_evas: forgotten refactoring of the buffer engine.
Thanks @jackdanielz for the report.
2018-04-23 13:02:46 -07:00
Woochan Lee f9fa8bfcb0 ecore_evas: check return value.
Summary: After migration this code in Tizen. The coverity said it needs to check return value(CID 39562).

Reviewers: raster, myoungwoon, woohyun, cedric

Subscribers: cedric

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

Reviewed-by: Cedric BAIL <cedric@osg.samsung.com>
2018-04-09 10:36:43 -07:00
Cedric BAIL 45c143a64f ecore_evas: implement the move method for basic buffer canvas
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
2018-03-13 15:14:50 -07:00
Mike Blumenkrantz db06108f0d ecore-evas: block buffer canvas events during deletion
internal evas is destroyed before engine delete function is called,
so do not refeed events received during this time

@fix
2017-06-16 12:23:07 -04:00
Cedric Bail 37f3d5095c ecore_evas: use generic function for rendering ecore_evas buffer backend. 2017-05-05 17:55:06 -07:00
Cedric Bail d7a27363bd ecore_evas: adjust buffer engine with nicer behavior from evas. 2017-05-05 17:55:06 -07:00
Cedric BAIL 19c65cdc8d ecore_evas: make ecore_evas buffer asynchronous. 2017-04-28 16:11:23 -07:00
Cedric BAIL 23dddfffac ecore_evas: do timeout reset on RENDER_POST for future asynchronous rendering. 2017-04-28 16:11:23 -07:00
Cedric BAIL 1bd82596a6 ecore_evas: properly warn when we are already rendering. 2017-04-28 16:11:23 -07:00
Cedric BAIL da8efae8c0 ecore_evas: refactor ecore_evas buffer render logic.
First step into introducing async rendering for ecore_evas buffer.
2017-04-28 16:11:23 -07:00
Mike Blumenkrantz 0f6139b9cb ecore-evas: add flag for buffer canvas to prevent deadlock in pixels_get
when calling pixels_get during a render callback, another render would trigger
which would cause a deadlock from evas spinlock usage

@fix
2017-03-31 14:57:25 -04:00
Mike Blumenkrantz acf4c35fd6 ecore-evas: better handling for pointer_warp with buffer canvas
if buffer canvas is not image object, this needs to emit a move event
to be consistent with other engines

probably this should emit events in all cases, but adding for image buffers
this close to release seems potentially risky so I'll leave that for later

ref 4a691f79df
2017-03-24 13:24:24 -04:00
Mike Blumenkrantz 9c4956082a ecore-evas: handle title_set and name_class_set for buffer engine 2017-03-17 15:15:25 -04:00
Mike Blumenkrantz 4a691f79df ecore-evas: handle pointer_warp() for buffer canvas
this was missing and would do nothing when called
2017-02-24 14:13:11 -05:00
Mike Blumenkrantz a5c7108cc2 ecore-evas: handle pointer_xy_get() for buffer canvas
this was missing and would do nothing when called
2017-02-24 14:13:11 -05:00
Mike Blumenkrantz a34d2d0b85 ecore-evas: handle screen_geom_get() for buffer canvas
this was missing and would do nothing when called
2017-02-24 14:13:11 -05:00
Jean-Philippe Andre 29416352d7 ecore_evas: Fix mouse event in inlined windows
This fixes the following ERR message:
ERR<10589>:eina_safety /home/jpeg/e/core/efl/src/lib/ecore_evas/ecore_evas.c:3149
  _ecore_evas_mouse_move_process_internal() safety check failed: cursor == NULL
2017-02-16 21:51:47 +09:00
Guilherme Iscaro e5acc5604a Ecore Evas: Add support to set cursor icon per mouse device.
Since Ecore Evas now supports multiple mouses new APIs were added
in order to be able to set the cursor image to any device.
2016-12-20 18:34:39 -02:00
Guilherme Iscaro 64986bccac Ecore Evas: Add API to set/get the pointer position per device.
Since Ecore Evas now support multiple mouse devices new APIs were
added in order to fetch the mouse position.
2016-12-20 18:34:39 -02:00
Guilherme Iscaro 75619fc290 Ecore Evas: Add multi seat support for mouse in/out. 2016-11-28 13:57:55 -02:00
Guilherme Iscaro be609118c6 Ecore_Evas: Add support for per-seat focus. 2016-11-28 13:57:55 -02:00
Derek Foreman 398771bf8a evas_engines: Add fn_evas_changed callback
To allow using the pageflip completion event to drive timing in the DRM
engine we need to know as soon as possible that a render has been after
a render has been considered if it will cause a page flip or not.

The fn_evas_changed callback sends this information.
2016-09-08 13:55:23 -05:00
Jean-Philippe Andre 58c3808231 ecore_evas: Register animators for inline image ee
In ecore_evas_object_image_new, register animator tick del/add
catchers, so that animators can work. This fixes mouse scroll
in an inline window.
2016-08-01 10:29:24 +09:00
Jean-Philippe Andre 2405c93f2c Evas engines: Add missing initializers in Ecore_Evas_Engine_Func 2016-02-03 14:51:57 +09:00
Cedric BAIL adff529004 ecore_evas: trigger pre render function as expected.
This should fix exactness and elementary documentation screenshot bug discovered
by commit 6149fd7a0a9ef3f9495270cf1c4ab7727a30f21c in elementary.
2016-01-29 07:23:51 +01:00
Cedric BAIL e50b3e75e4 ecore_evas: fix forgotten call to post render callback.
This fix using expedite with buffer backend.
2015-06-24 22:47:11 +02:00
Mike Blumenkrantz 7171135792 ecore evas should not crash when unsetting pointer
ref D812

disappointed.jpg
2015-02-06 17:54:08 -05:00
Daniel Zaoui 8002cabf35 Ecore: add EAPI to retrieve Ecore_Evas parent of a buffer. 2015-01-12 08:34:56 +02:00
Carsten Haitzler 5954289c6c ecore_evas - ecore_evas's should start withdrawn then normal on show
this fixes initial state of an ee where you couldn't detect when the
window had been accepted by the wm (goes to normal state from
withdrawn).

@fix
2014-10-29 19:34:33 +09:00
Gwanglim Lee 9dd6d70dd2 ecore_evas_buffer: fix dereference null return value
Summary: This fixes coverity CID 1210810

@fix

Test Plan: N/A

Reviewers: raster, cedric, stefan_schmidt, devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1273
2014-08-06 07:28:18 -04:00
Gwanglim Lee cbf6f94c80 ecore_evas: Added support for window auxiliary hint
Summary:
The window auxiliary hint is the value which is used to decide
which actions should be made available to the user by the WM. If you
want to set specific hint to your window, then you should check whether
it exists in the supported auxiliary hints that are registered in the
root window by the window manager.

Once you've added an auxiliary hint, you can get a new ID which is used
to change value and delete hint. The window manager sends the response
message to the application on receiving auxiliary hint change event.

A list of auxiliary hint within the Ecore_Evas has this format:

  ID:HINT:VALUE,ID:HINT:VALUE,...

Reviewers: raster, cedric, seoz, Hermet

Reviewed By: raster

CC: cedric

Differential Revision: https://phab.enlightenment.org/D543
2014-02-28 07:20:01 +09:00
Gwanglim Lee 77092d94d4 ecore_evas: added window manager rotation to manage the rotation of windows by the WM.
Summary: The window manager rotation allows the WM to controls the rotation of application windows. It is designed to support synchronized rotation for the multiple application windows at same time.

Reviewers: raster, seoz, cedric, Hermet

Reviewed By: raster

CC: cedric

Differential Revision: https://phab.enlightenment.org/D529
2014-02-09 09:46:51 +09:00
ChunEon Park fb59ac34a1 ecore_evas - use eina_bool instead of the char for interal data. 2014-01-13 14:26:36 +09:00
ChunEon Park f111c8da6d ecore - clean up code.
fix indentation and use Eina_Bool instead of char.
2014-01-11 18:19:43 +09:00
Jihoon Kim 50e74f02d4 ecore_evas: fix wrong check in _ecore_evas_buffer_msg_send
'if (!child_ee)' implies that "child_ee" is equal to NULL, but
child_ee is used in the nest of if statement.

This fixes CID 1039431
2013-11-29 13:53:47 +09:00
Cedric Bail 32661a5ac4 ecore_evas: re-order inclusion of header to fix compilation on Windows.
It is a very tricky things to get header order right on windows. Having that
order only in .c files simplify the work a lot. So let's try to do it with
Ecore_Evas after it rewrite and split into modules.
2013-03-12 15:58:43 +09:00
Jiyoun Park c5a8a6b5ff Add infrastructure to handle message between ecore and parent ecore in Ecore_Evas
I add new example related with this. (ecore_evas_extn_socket & plug example)
ecore extn use this infrasturcture, server app and client app can communicate each other
later, this can be used to contorl access message


SVN revision: 83942
2013-02-15 09:32:40 +00:00
Gustavo Sverzut Barbieri b1bc5aeb24 efl: simplify automake.
Instead of -I$(top_srcdir)... -I$(top_builddir)... and then do it for
the .la, use the EFL_ macros to generate the contents to be used in
automake files.

There is a nasty bit that libtool will parse Makefile*.am and will not
get _DEPENDENCIES from _LIBADD and _LDADD if these are in
@REPLACEMENT@. To solve this we must explicitly set _DEPENDENCIES. The
contents of this is almost the same as _LIBADD or _LDADD with the
"_INTERNAL_" replacement name.

I hope the code will be result will be shorter and consistent as there
is less places to change when we add/remove dependencies.

Statistics are quite impressive (diffstat):
{{{
37 files changed, 663 insertions(+), 1599 deletions(-)
}}}



SVN revision: 82785
2013-01-14 22:36:23 +00:00
Gustavo Sverzut Barbieri 85f8163c3e efl/ecore_evas: merge buffer into core, split extn apart.
buffer is lightweight and dependency for many engines, merge it back
into core.

extn is a module on its own, and it's the only one linking to
ecore_ipc, no need to add that to ecore_evas.

minor cosmetic changes to configure to make output consistent.



SVN revision: 82648
2013-01-11 16:57:21 +00:00
Flavio Vinicius Alvares Ceolin ad7579c129 ecore_evas: Make the engines loadable modules
Implementing support for loadables modules. It makes the engines been
loaded when they are needed. It not breakes the api, so each engine
still has its own api.

The implementation basically is:

* Functions that creates Ecore_Evas, for example
  ecore_evas_software_x11_new, request to load its module and then get
  the module's function to create the Ecore_Evas.
* The other functions such as \(.*\)_window_get from the Ecore_Evas
  its interface and then call the appropriate method.
* As there is no unified interface to communicate with the engines
  (not break api problem), all interfaces were declared in
  ecore_evas_private.h
* Now the data necessary for each module is not declared in the
  Ecore_Evas_Engine structure, instead of this, the struct has a void
  pointer that is used by the modules.
* In this first moment engines as software_x11 and gl_x11 were put
  together in the same module, but obviously exporting all the things
  necessary.


SVN revision: 80280
2012-12-05 21:15:42 +00:00