Commit Graph

53 Commits

Author SHA1 Message Date
Mike Blumenkrantz 98e37dd123 ecore-evas/extn: use evas from events when updating key masks
Summary:
plug canvases do not have ee->evas, so this fixes unlimited error messages
while also fixing the corresponding functionality

@fix
fix T5536

Reviewers: devilhorns

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Maniphest Tasks: T5536

Differential Revision: https://phab.enlightenment.org/D7681
2019-01-22 12:05:32 -05:00
Carsten Haitzler 0bec6826b1 ecore evas extn - warn - ensure all fields in ecore evas func struct set 2018-11-09 11:44:00 +00:00
Wonki Kim f1c03000c9 Modify initial visibility of a extn_socket
Summary:
extn socket should be rendered even if it is not visible to answer client's requests

extn_socket was rendered even if it's not visible for the first render.
however, it's not rendered as expected because there has been changes for ecore evas idle enterer.
so that this patch changes visibility of extn_socket to answer client's requests immediately.

ref D6054

Reviewers: zmike, jypark

Subscribers: cedric

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6167
2018-05-16 11:41:27 -04:00
Wonki Kim d92b195fe2 ecore_evas_extn: Remove aka latch logic on fn_prepare function
Summary:
current extn_socket_prepare function logic could run into dead-end
because extnbuf_lock return null on failure of taking a lock.

this patch removes aka latch logic that guide the function to dead-end.

Reviewers: cedric, raster, zmike, jypark

Subscribers: zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6054
2018-05-16 11:41:19 -04:00
Wonki Kim fef2a12ef6 ecore_evas_extn: Modify not to send a message if there is nothing to draw
Summary:
Seding ipc messages on ews_update_image(which is invoked as a callback of EVAS_RENDER_POST)
can makes ecore main loop awake, because sending ipc messages makes message_queue not empty.

so that this patch prevent seding ipc logic if there is nothing to draw.

Reviewers: cedric, raster

Reviewed By: raster

Subscribers: zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6055
2018-05-09 23:58:48 +09:00
Cedric Bail a44697c37a ecore_evas: refactor logic for creating Ecore_Evas. 2018-04-02 15:12:31 -07:00
Jean-Philippe Andre a43740c074 ecore_evas_extn: Fix socket & plug windows
Socket & Plug were broken after 38e6780262.
Multiple problems here:
 - The invalid path was used for the lock file.
 - The invalid buffer ID was used for unlock in render_post. That's
   because the buffer was switched during output_flush which happens
   before render_post. So the buffer would remain locked forever on the
   server side (unless maybe some animation was happening there).

@fix
2017-08-18 14:53:20 +09:00
Derek Foreman aa8d9c1829 ecore_evas: Add a function pointer for last_tick_get
Engines that provide their own tickers may need to be able to provide the
time of the last tick even if they weren't sending ticks to EFL at the
time.

This is a feature added during freeze as it's necessary to resolve a bug.

ref T5462
2017-07-13 18:07:42 -05:00
Derek Foreman e69cc0f552 ecore_evas engines: Add some nulls to the func arrays
Purely cosmetic, but gets the comments back in sync with reality.
2017-07-13 18:07:41 -05:00
Jean-Philippe Andre e8f9f109a6 evas: Rename device Class to Type, remove Sub_Class
1. The word "class" is a pain point with many languages where
   it's a keyword. Type is a little better. Also, the property
   was already named "device_type" and not "device_class".

2. Remove Efl.Input.Device.Sub_Class
   It's not used inside EFL upstream codebase, and unlikely to
   be used anywhere else (even in Tizen).

Hopefully no one used the Efl_ enum types. So far only the Evas_
types should be in used.

Ref T5540
2017-06-12 15:21:55 +09:00
Cedric BAIL 727b61218b ecore_evas: refactor extn backend to use generic rendering infrastructure. 2017-05-08 15:02:15 -07:00
Cedric Bail 042fd1dda8 ecore_evas: first step into refactoring extn backend. 2017-05-05 17:55:06 -07:00
Carsten Haitzler 02a7e00c01 ecore_evas extn - fix buffer n check for lock files with untrusted val
the code added by minkyoung has a definite security flaw here trusting
e->response to be within a small range when all it is is an int -
range is not limited other than that... so fix the code to check for
range like further code below does.

this commit went in 2 days ago... so not an existing bug fix.
2017-03-23 16:27:19 +09:00
Minkyoung Kim 38e6780262 ecore_evas_extn: do not update plug image when lockfile is invalid.
Summary:
This prevent invalid shared memory access.
Invalid access occur when server is resized sequentially from now to A-size
to B-size, and client receive A resize message after resizing B.
Then client try to render plug image with A-size, but shared memory is B-size
buffer. Size are mismatch. This makes segmentation fault when uploading texture(gl)
or rendering image(sw).

Test Plan: Indicator rendering on Tizen3.0 platform.

Reviewers: jypark, wonsik, dkdk, scholb.kim, jiin.moon, jpeg, cedric

Reviewed By: cedric

Subscribers: cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-03-21 11:05:58 -07: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
Minkyoung Kim 1733b09e1b ecore_evas_extn: Check whether server_data sender is client's server.
Summary:
Sometimes, In ipc_server_data, extn->ipc.server's data is different with e->server's data.

The case is as follows.

Process'A' has a server.
Process'B' has 'A's client(ee address : 0xB0).
Process'B's client die, and 'B's server created. and server's ee address is same with destroyed client's ee(0xB0).
At the same time, 'A's server send the message to 'B's client.
but 'B's client is died! so _ipc_server_data would manipulate 'B's server data.

Test Plan: Tizen Mobile Text.

Reviewers: raster, spacegrapher, jpeg, wonsik, dkdk

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D4158
2016-07-13 21:00:07 +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 bb1a1eef65 ecore_evas: introduce support for per window animator trigger.
This code is currently only using the older fallback code and not any
new event source, so all animator on all window are still triggered
whatever the case are.
2016-02-02 10:47:25 -08:00
jiin.moon 91ba12fed9 ecore_evas: fix disappearing socket image
Summary:
In case there is connection between a server and some client,
show/hide does not work properly.

If there are clients need to show,
this patch make it hide operation will not work even if get the hide signal

@fix

Reviewers: jypark, Hermet, cedric

Subscribers: Hermet, cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-02 14:22:38 -08:00
Ji-Youn Park f823d9c2cc ecore_evas_extn: remove old buffer in evas render post function.
Before, ipc_server_data(fd handler callback) is not runned between
evas_render_pre callback and evas_render_post callback.
but after async mode, hd handler can be called between render_pre and render_post.
we should remove buffer which can be used render thread, after render finished
2015-09-23 15:04:02 +08:30
Shinwoo Kim e97d5973e5 ecore_evas_extn: Fix server rendering after restart
Summary:
The server can render, only after the server get the OP_SHOW from the client.
However, if the server relaunches while client is running, the server cannot get the OP_SHOW.
In this case, the client should send the OP_SHOW, when the server is added.

Test Plan: Relaunch a server especially the indicator, while client is running.

Reviewers: raster, cedric, Hermet, woohyun, jaehwan, jypark, jpeg

Subscribers: cedric, seoz

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

Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
2015-09-08 13:50:31 +09:00
jiin.moon 94abb3a422 ecore_evas: Fix crash in async render
Summary:
The root cause of the crash is freed memory.
The evas_object_image_data_set api called with extn buffer in _ipc_server_data.
But there is no inform to render when free this buffer.
@fix

Reviewers: Hermet, jpeg, jypark

Subscribers: stefan_schmidt, cedric

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

Signed-off-by: Jean-Philippe Andre <jp.andre@samsung.com>
2015-08-04 11:59:24 +09:00
Shinwoo Kim f372eb4b92 [ecore_evas_extn] add function to block mouse event.
Summary: add ecore_evas_extn_socket_events_block_set/get

Test Plan: add mouse event callback, and check whether it could get event or not

Reviewers: raster, woohyun, jaehwan, Sergeant_Whitespace

Reviewed By: Sergeant_Whitespace

Subscribers: Sergeant_Whitespace, seoz, cedric

Differential Revision: https://phab.enlightenment.org/D2268
2015-05-15 16:46:22 +09:00
Cedric BAIL ce5ccfb5be ecore: remove the need to order the header correctly for Windows. 2015-05-07 09:53:10 +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
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
Carsten Haitzler 8b654961f5 ecore-evas-extn - check engine info set return and complain
fix CID 1039682
2014-08-27 14:32:03 +09:00
Thiep Ha e3f68561b3 ecore_evas_extn: fix wrong plug image display after connect
Summary:
Plug image is displayed incorrect after connect to socket.

Test case: Run ecore_evas_extn_socket_example -> run ecore_evas_extn_plug_example -> click Change bg to change bg color.
Run 2nd ecore_evas_extn_plug_example. The plug area image of 2nd plug is incorrect display (different with 1st plug image).
Reason: When a plug connects to socket, socket sends incorrect buffer information.
Fix: Change buffer information.

@fix

Reviewers: Hermet, huchi

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1232
2014-07-31 05:28:42 +02:00
Thiep Ha d732e52f32 ecore_evas_extn: remove redundant message sending
Summary:
When a client is added to socket server, socket server sends NBUF (2) times of OP_RESIZE, OP_UPDATE, OP_UPDATE_DONE messages to client. However, only one message of OP_RESIZE, OP_UPDATE, OP_UPDATE_DONE is enough.

This patch removes redundant OP_RESIZE, OP_UPDATE, OP_UPDATE_DONE sending.

Reviewers: raster, Hermet

Reviewed By: Hermet

CC: woohyun, huchi

Differential Revision: https://phab.enlightenment.org/D1141
2014-07-09 11:42:18 +09:00
Jean-Philippe Andre c2f4e38cf1 Ecore evas: Fix crash after image_data_set
In some cases, the image has a format different from RGBA,
so image_data_set will be invalid as the new data is expected to
be RGBA. This happened with ETC2 images.
2014-05-12 14:44:54 +09:00
Wonguk Jeong 28fd36255b ecore_evas_extn: update plug image object after disconnection
Summary:
plug image object was not cleaned after server disconnection.
specifically, image data was cleaned (NULL), but it was not updated for real on screen

--> set dirty of plug image object

@fix

Test Plan: elementary_test -> open window socket -> open window plug -> close window socket -> plug should be cleaned up

Reviewers: raster, cedric

Reviewed By: raster

CC: seoz, cedric

Differential Revision: https://phab.enlightenment.org/D703
2014-04-09 19:45:30 +09:00
wonguk.jeong 6994f32351 ecore_evas_extn: initialize server handle on server deletion
Summary:
Since plug sends message by using deleted server handle (dangling pointer),
I could see glorious error message as below:

	*** ECORE ERROR: Ecore Magic Check Failed!!!
	*** IN FUNCTION: ecore_con_server_send()
	ERR<842>:ecore lib/ecore/ecore.c:729 _ecore_magic_fail()   Input handle pointer is NULL!
	ERR<842>:ecore lib/ecore/ecore.c:740 _ecore_magic_fail() *** NAUGHTY PROGRAMMER!!!
	*** SPANK SPANK SPANK!!!
	*** Now go fix your code. Tut tut tut!

Therefore, I initialized server handle on server deletion

@fix

Test Plan: create socket -> create plug -> destroy socket -> mouse move on plug area

Reviewers: raster, cedric

Reviewed By: raster

CC: seoz, cedric

Differential Revision: https://phab.enlightenment.org/D701
2014-04-09 19:21:30 +09:00
Carsten Haitzler 11937a3841 since event is for server, bdata->image is null anyway 2014-04-03 20:57:04 +09:00
wonguk.jeong 8208454781 ecore_evas_extn: give proper event data to callbacks
Summary:
extn send ecore event when plug is connected/disconnect
(ECORE_EVAS_EXTN_CLIENT_ADD/ECORE_EVAS_EXTN_CLIENT_ADD)
By the way, the event data is currently "Ecore_Evas_Engine_Buffer_Data" which should be hidden

Moreover, when I make multiple sockets,
I need a event data to distinguish which socket is connected by client.
Therefore, I recommend to use Ecore_Evas as event data.

@fix

Reviewers: raster, Hermet, woohyun, cedric, seoz

Reviewed By: raster

CC: seoz, cedric

Differential Revision: https://phab.enlightenment.org/D690
2014-04-03 20:55:38 +09: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
Cedric Bail 3e302e7e61 ecore_evas: extn - restore missing symbol that resulted in a temporary ABI break.
Thanks to Albin and Debian tools to have spotted that.

- cherry-pick me -
2014-01-04 11:23:47 +09:00
Gustavo Sverzut Barbieri fc05567c8f extn: remove files.{w,h} that are not used. 2013-12-20 13:10:38 -02:00
Gustavo Sverzut Barbieri a2baca3270 extn: remove unused attribute am_server. 2013-12-20 13:09:52 -02:00
Gustavo Sverzut Barbieri 4f4f662a40 extn: complete with NULL newly added functions. 2013-12-20 13:08:51 -02:00
Gustavo Sverzut Barbieri c7fed5d879 extn: fix typo, alpha is SHM_REF2, not 1! 2013-12-20 12:59:13 -02:00
Stefan Schmidt d0483d3dde evas_extn: Tag parameter as unused.
Maybe we should switch to use -Wno-unused-parameter in our default cflags?
I mean unused parameters are really common and I do not see their harm.

Using -Wno-unused-parameter would let us remove all the cluttered EINA_UNUSED
and __UNUSED__ and also be safe when a paramter gets is use later as the
compiler could optimize it out when tagged with unused. Still we would avoid
the warnings to find the important ones.
2013-03-26 09:36:09 +00:00
Stefan Schmidt a9c543c73f evas_extn: Rename data variable to avoid local shadowing.
Jenkins as well as klocwork complained here as data is already used for
the parameter of the function and we shadow it here locally. Does not look
like it would really harm us here but better avoid it.
2013-03-25 09:40:36 +00:00
Carsten Haitzler 1117cb938a update po's ... :/ 2013-03-23 13:31:22 +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