Commit Graph

376 Commits

Author SHA1 Message Date
Cedric BAIL a784e4ac42 ecore_evas: use strbuf instead of PATH_MAX. 2017-06-05 13:53:28 -07:00
Bryce Harrington 2f025184f7 evas: document the wayland ecore_evas constructors
Reviewers: cedric

Subscribers: jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-06-05 12:07:56 -07:00
Mike Blumenkrantz 6632f4d906 ecore-evas: directly get the seat device instead of the parent
no functional changes
2017-06-02 18:23:42 -04:00
Mike Blumenkrantz a7ed5d0540 ecore-evas: redo per-device cursor internals to be per-seat
seats have cursors, pointer devices do not.

@fix

fix T5531
2017-06-02 18:23:42 -04:00
Mike Blumenkrantz 466456b4f0 ecore-evas: init cursors for all pointer-ish objects
all of these will use a cursor visual if one is set

@fix
2017-05-26 16:27:43 -04:00
Mike Blumenkrantz 50381e7911 ecore-evas: clear cursor object cache when setting default cursor
@fix
2017-05-26 16:27:43 -04:00
Mike Blumenkrantz e21847e3fd ecore-evas: only apply cursor object cache for default pointer
@fix
2017-05-26 16:27:43 -04:00
Jean-Philippe Andre 3082dc212e evas: Fix build for Windows without segv
Revert "Revert "evas: Fix build for Windows (hopefully)""
This reverts commit c8ec1cb2af.

The two efl_input_ functions need to be declared as EOAPI inside
the file where they are implemented. Otherwise the symbols aren't
exposed and weak linking means the function call crashes.

Sorry for the first untested patch and subsequent revert. Things
should be in order now.
2017-05-22 17:37:35 +09:00
Jean-Philippe Andre c8ec1cb2af Revert "evas: Fix build for Windows (hopefully)"
This reverts commit 1e2d382298.
This segfaults. Ouch... Will need more time to fix this.
2017-05-22 15:05:16 +09:00
Jean-Philippe Andre 1e2d382298 evas: Fix build for Windows (hopefully)
The declaration of some internal EO APIs was located in the wrong
library, which results on Windows to an invalid definition of
EAPI (dllexport vs dllimport).

Thanks @vtorri for the report!
2017-05-22 14:52:26 +09:00
Bryce Harrington cf30397737 ecore_evas: Omit redundant return info in doxygen
Summary:
These routines all already have a @return line that states the return
values appropriately; it's unnecessary to restate the return values in
the documentation text.

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4878
2017-05-15 11:07:07 +02:00
Mike Blumenkrantz 0d9a7a6d98 ecore-evas: account for framespace when processing mouse movement
in some cases (e.g., the mouse-out emission from the ee wl engine),
this was calculating wrong coordinates, which would lead to a broken
chain of events like:
  object mouse out -> object mouse in -> object mouse out
which would severely break some apps

@fix
2017-05-12 12:08:25 -04:00
Mike Blumenkrantz 2fabed3255 ecore-evas: add function for unsetting a specific seat's cursor
@feature
2017-05-12 12:08:25 -04:00
Jean-Philippe Andre 5b4bb7f341 ecore_evas: Use proper enum values in axis events
Somehow the evas enum values were used instead of the ecore ones.
But I believe this is just a cosmetic change as their integral
values was the same.
2017-05-11 17:53:51 +09:00
Bryce Harrington 0f5ab72ed0 ecore_evas: Improve linespacing consistency
Summary:
Adds a line between each function so it's more obvious what doc goes
with what API routine.  Reorganize the doxygen elements so they're
consistently ordered and spaced.

No code or documentation changes; mostly just whitespace.

Reviewers: cedric

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D4866
2017-05-10 10:49:17 +02:00
Jean Guyomarc'h d340d85a1f ecore_evas: fix link issue on macOS
696ed3e2e8 introduced a build failure on
macOS. _ecore_evas_subregister is being used in a foreign code module,
but it was not exported. Enforcing EAPI gives this symbol enough
visibility to be used outside of ecore_evas.
2017-05-09 21:29:11 +02:00
Bryce Harrington 9c04a046a6 ecore_evas: doc experimental comp_sync API
Summary: (And indicate it's likely to be made private in EFL 2)

Reviewers: stefan_schmidt

Subscribers: stefan_schmidt, cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-05-08 15:17:48 -07:00
Cedric BAIL 69d4555116 ecore_evas: refactor ews backend to use generic infrastructure for rendering. 2017-05-08 15:00:54 -07:00
Cedric BAIL 688013e669 ecore_evas: first step into refactoring ews backend. 2017-05-08 11:00:38 -07: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 696ed3e2e8 ecore_evas: add infrastructure to properly track sub ecore_evas. 2017-05-05 17:55:06 -07:00
Cedric Bail 7b4b7b6696 ecore_evas: add logic to allow partial refactoring of backends. 2017-05-05 17:55:06 -07:00
Cedric Bail 385acef7f9 ecore_evas: introduce a generic rendering function. 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
Bryce Harrington 70cbb29477 ecore_evas: Add doxygen for ecore_evas_gl_x11_options_new()
Reviewers: devilhorns

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4828
2017-04-26 13:34:52 -04:00
Bryce Harrington a7bac868bc ecore_evas: Fix grammar for at/to/for/on/which/etc.
Summary:
Fixes some grammar confusion for in that/this, that/which, to/at,
to/for, at/by, etc.

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4806
2017-04-24 08:26:18 -04:00
Bryce Harrington 0d59a7a803 ecore_evas: fix some incorrect words
Summary:
 + whichever -> whatever
 + hyphenate pre-* and post-*
 + flowed -> followed

Subscribers: cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-04-19 10:49:21 -07:00
Bryce Harrington 10f1fedfec ecore_evas: Unnecessary to test p before calling free(p)
Summary:
Modern, standards-compliant compilers already test p, so as per the C
spec it is superfluous to do so before the call.

Reviewers: jpeg

Reviewed By: jpeg

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4791
2017-04-18 18:42:51 +09:00
Cedric BAIL e0bb9d6134 ecore_evas: change VNC API and use snapshot internally. 2017-04-12 15:13:19 -07:00
Bryce Harrington 55b4e2d369 ecore_evas: Fix several typos in doxygen
Reviewers: cedric

Reviewed By: cedric

Subscribers: cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2017-04-06 15:20:49 -07:00
Bryce Harrington 65d7438466 ecore_evas: fix 'be delete' to 'be deleted'
Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4766
2017-04-06 14:14:09 -04:00
Bryce Harrington a28f4e3ba3 ecore_evas: Fix some pluralization grammatical errors
Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D4729
2017-04-04 09:24:55 -04: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
Jean Guyomarc'h 35a7e7ff18 ecore_evas: delete exit idler when done with it 2017-03-23 21:17:50 +01:00
Mike Blumenkrantz 9c4956082a ecore-evas: handle title_set and name_class_set for buffer engine 2017-03-17 15:15:25 -04:00
Cedric Bail 81c2c88e99 ecore_evas: keep VNC API BETA until multi evas output is in, just in case. 2017-03-12 11:20:40 -07:00
Cedric BAIL 0cd43b45d9 ecore_evas: avoid crash during shutdown due to Ecore_Event queue. 2017-03-09 16:17:58 -08:00
Jean Guyomarc'h 85110c7dd9 ecore_evas: process mouse move even when there is no cursor 2017-03-08 08:59:59 +01:00
Cedric BAIL b4381fd2d5 ecore_evas: rely as much as possible on display source for animator to reduce spurious tick. 2017-02-28 11:04:34 -08:00
Cedric BAIL 67e350361f ecore_evas: animator eo event are not a legacy event. 2017-02-27 15:12:11 -08:00
Myoungwoon Roy, Kim 8c19d9251d docs: Fix typos and some wrong expressions
Covers: Ecore_Drm, Ecore_Evas, Ecore_File, Ecore_IMF, and
Ecore_IMF_Evas API reference doxygen.

Summary: I had fixed some typos and wrong expressions, such
as capital letters, singular Etc. in Ecore_Drm, Ecore_Evas,
Ecore_File, Ecore_IMF, and Ecore_IMF_Evas API reference doxygen.

Test Plan: Doxygen Revision

Reviewers: stefan, cedric, raster, jpeg, Jaehyun_Cho

Subscribers: conr2d

Differential Revision: https://phab.enlightenment.org/D4680
2017-02-27 19:37:43 +09:00
Mike Blumenkrantz 67d193b92c ecore-evas: use ee->prop.window in ecore_evas_input_event_register()
this allows window events to match correctly

@fix
2017-02-24 14:13:11 -05: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
Stefan Schmidt ae3f7857e6 ecore_evas: add brief docs and since tags for new ecore_evas_shadow_geometry_*
These have been missing when introduced during the 1.19 cycle.
2017-02-14 21:47:15 +01:00
Jean-Philippe Andre 5be33ba1aa ecore_evas: Avoid safety check error log
If an engine can not be used (eg. GL inside a standard Xephyr),
some ERR logs will be printed out by ecore_evas_x. This patch
avoids extra eina_safety error logs from using a NULL pointer.
2017-02-14 15:21:50 +09:00
Derek Foreman 964844821d ecore_evas: use ecore_timer_loop_add for idle timeout update
This shouldn't need "exact" time, so use a loop time based timer
to potentially save a syscall on archs that don't have a vdso.

@optimize
2017-02-03 15:54:48 -06:00
Gustavo Sverzut Barbieri 8dc853f230 ifdef RUN_IN_TREE logic.
This logic is only needed for autotools, cmake will replicate the
installation file structure and thus eina_prefix works out of box.
2017-02-03 12:36:38 -02:00
Cedric BAIL 8f1c071d6a eina: rename EINA_{FLT,DBL}_CMP to EINA_{FLT,DBL}_EQ. 2017-01-06 15:58:46 -08:00
Guilherme Iscaro 044219226c Ecore Evas: Add support for multiple mouse positions.
Since it's possible to have more than one mouse, Ecore Evas
must take into account the position of all mouses and update them
correctly.
2016-12-20 18:34:39 -02: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 2e527851cf Ecore Evas VNC: Add support for ecore_evas_pointer_device_xy_get().
This commit adds the support to fetch the mouse position of a VNC
client.
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
Chris Michael e8e59204b1 ecore-evas: remove float comparison warnings for ecore_evas.c
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-12-20 10:28:39 -05: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
Jean-Philippe Andre b2dbf9d9dd win: Fix maximized geometry with CSD in X
There is still a geometry issue after un-maximizing.
2016-11-23 13:04:12 +09:00
Jean-Philippe Andre 4722b685cf ecore_evas/x: Inform WM about borders and shadows
This exploits the existing X Atom "GTK_FRAME_EXTENTS"
2016-11-23 13:04:12 +09:00
Derek Foreman 38788e7787 ecore_evas: Unbreak all the engines that don't have evas_changed callbacks
repairs damage from d2b8495576

Move along, nothing to see here.
2016-11-17 11:39:25 -06:00
Derek Foreman d2b8495576 ecore_evas: send evas_changed callback when manual render is set
If manual render is set there's obviously no change.

This fixes E's wake from blank/wake to lockscreen behaviour on the drm
backends.
2016-11-17 11:23:36 -06:00
Derek Foreman 2480b4bb22 ecore_evas: fix evas_changed call
Don't or together all previously considered evases.  Thanks Cedric
for the catch.
2016-11-14 14:03:16 -06:00
Cedric BAIL 8215d9832c ecore: introduce adjusting main loop time on animator. 2016-11-14 11:53:01 -08:00
Cedric BAIL 8ee79d0e21 ecore_evas: first frame and animator are defined per canvas 2016-11-10 16:26:34 -08:00
Cedric BAIL 16723837e9 ecore_evas: always have a custom source set for animator if possible. 2016-11-10 15:52:38 -08:00
Guilherme Iscaro 1f64ec9d15 Ecore Evas: Set the device that originated the event.
By doing so the evas events are able to specify from which device
the event originated from.
2016-11-08 17:54:34 -02:00
Guilherme Iscaro 8687a23820 Ecore Evas VNC: add client disconnected callback.
Summary:
Ecore Evas VNC: Properly unregister the region push hook callback.

This callback must be unregistered when the VNC server is deleted.

Reviewers: bdilly, barbieri, cedric

Subscribers: cedric, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-11-07 14:44:40 -08:00
Carsten Haitzler 4ed2e01591 remove xcb support in ecore_x and evas engines as per mailing list
as per mailing list discussion about dropping xcb support now. it
hasn't been complete for a long time, thus not recommented for being
turned on. as we are moving to a wayland world xcbmakes even less
sense. as agreed, time to clean up a bit and remove a distraction as
well as not well tested code. this also updates po's too.

@feature
2016-11-03 22:22:54 +09:00
Jean-Philippe Andre eb8d9387c1 wayland: Remove support for "draw_frame"
draw_frame is a legacy feature that draws a very ugly window border
with a white rect and a black text as title bar. This could be
used in wayland when using only the ecore_evas APIs, rather than
elm_win.

Note that the API ecore_evas_draw_frame_set() can not possibly work
as the flag is checked when the ecore_evas is created, so changing
the flag has no effect on existing windows.
2016-11-03 17:22:14 +09:00
Jean-Philippe Andre dcb8e87478 ecore_evas: Replace ECORE_MAGIC_CHECK with common macro
This removes a lot of clutter in the code.
2016-11-03 17:22:14 +09:00
Guilherme Iscaro 4bffa7bfa7 ecore_evas: refactor VNC as an Eina Module.
Summary:
This change removes the necessity to link EFL against the libvncserver

Please ignore the first three commits, they're being reviewed here:

https://phab.enlightenment.org/D4323

Reviewers: bdilly, cedric

Reviewed By: cedric

Subscribers: cedric, jpeg

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

Signed-off-by: Cedric Bail <cedric@osg.samsung.com>
2016-10-28 09:56:47 -07:00
Guilherme Iscaro bc6e8d2692 Ecore_Evas_X: Add VNC draw support.
This patch adds the support to draw the X11 screen contents to
all remove VNC clients.
2016-09-26 22:06:59 -03: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 b675571bd8 evas events: Fix axis input values
This adds support for distance, pressure, tilt and twist.
Not entirely sure if normalized & raw (x,y) should be exposed
in the eo interface. Also not sure what to do with tilt_x/y
(as used by libinput) or touch/tool width "major/minor" vs.
radius x/y.

Add debug logs in the example, including the distance.
I can't test most of these values due to a lack of compatible
hardware, but the most basic features seem to work :)
2016-09-01 11:57:43 +09:00
Tom Hacohen d5e321466e Efl object: Rename Eo_Event -> Efl_Event.
This is the last step of the Eo renaming efforts.
2016-08-30 13:34:10 +01:00
Vitor Sousa 8356b16a49 Efl Object: remove legacy callback calls from event_callback_call
Efl.Object.event_callback_call no longer calls legacy smart callbacks;
calling only event callbacks registered with the given event description
pointer.

Create the method Efl.Object.event_callback_legacy_call to inherit the old
behavior from Efl.Object.event_callback_call, calling both Efl.Object events
and legacy smart callbacks.

Update all other files accordingly in order to still supply legacy
callbacks while they are necessary.
2016-08-26 15:45:07 -03:00
Jean-Philippe Andre d504284dd2 efl: Rename Efl.Event.XX to Efl.Input.XX
This removes:
 Efl.Event interface

And renames:
 Efl.Event.Input -> Efl.Input.Event
 Efl.Event -> Efl.Input.Event (merged)
 Efl.Event.Pointer -> Efl.Input.Pointer
 Efl.Event.Key -> Efl.Input.Key
 Efl.Event.Hold -> Efl.Input.Hold

This also moves some interfaces from efl/ to evas/ where they
belong better.

This allows renaming Eo_Event to Efl_Event.
2016-08-26 10:18:01 +09:00
Jean-Philippe Andre 60526528a6 evas: Add normalized and window coordinates to axis events
This is for Wacom graphics tablets (with a pen).

The raw data sent by ecore to evas (and then to apps) is pretty
useless as it's not normalized, and apps have no way of knowing the
dimensions of the tablet, without themselves opening the device
(we don't know nor expose the path to the device).

This is for Xi2 only for now, as Wayland support hasn't been done
yet.

The intent is to deprecate LABEL_X and LABEL_Y. I'm not sure yet
if the normalized value is useful or not (it would seem we may not
be able to provide this info in Wayland).

The new WINDOW_X, WINDOW_Y labels will be used in the new event
type (Efl.Event.Pointer). Normalized values are not exposed yet,
let's decide if we want them or not first (based on what can be
done in Wayland space).

@feature
2016-08-26 10:18:01 +09:00
Jean-Philippe Andre 925878e931 evas events: Switch axis events to the new eo type
This converts Evas_Axis or Ecore_Axis info arrays into basic
pointer data. Also marks those fields as set. All events need
to properly implement the value_has property (mark all bits
whenever a value is known).
2016-08-26 10:18:01 +09:00
Jean-Philippe Andre 8938d8d557 evas events: Rename properties and introduce generic value
This paves the way to a merge of pointer and axis events into
the class Efl.Event.Pointer.
2016-08-26 10:18:01 +09:00
Artem Popov d8cab9347a ecore_evas_ews: add proper clean up when quit the func
@fix

Summary: add proper clean up when quit the func (as per Raster comment)

Reviewers: cedric, raster, jpeg, barbieri

Reviewed By: barbieri

Subscribers: raster, NikaWhite, myoungwoon, jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-08-22 11:04:13 -07:00
Tom Hacohen e65aae994e Eo: Finish the renaming of Eo to the EFL.
This renames all the rest of the API to the EFL namespace except for
Eo_Event that will follow soon.

Obviously breaks both API and ABI.
2016-08-15 15:07:42 +01:00
Tom Hacohen c662934be8 Change the EFL to follow the new Eo rename. 2016-08-11 17:04:43 +01: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 7bf8da2baa evas: Rename Evas.Object to Efl.Canvas.Object
One step closer to make the EO inheritance tree look like
it's all Efl.
2016-06-21 14:35:19 +09:00
Tom Hacohen 6202cc7485 Adjust the code according to the eo event stop changes.
This was changed in the previous commit.
2016-06-20 18:02:00 +01:00
Jean-Philippe Andre a087ca84b0 ecore_evas: Try to fix mouse events on Windows
See also de5f293426 and T3789

I wrongly assumed that multi.{x,y} would be properly set.
I'm assuming here that multi.{x,y} == (0,0) means they are
not set, and that double comparison to 0 works fine.
2016-06-20 16:26:52 +09:00
Jean-Philippe Andre 37625fca91 Evas/Edje/Elm: Use combined_min instead of min everywhere
This allows apps to set the objects min size with hint_min,
while letting the rest of EFL define the minimum size with
rstricted_min.

I don't like the property names much...
2016-06-09 16:37:49 +09:00
Jean-Philippe Andre b147911bad elm_win: Forward events between window and evas
This does:
1. Forward keyboard events from evas to win
2. Allow feeding external input events

Input events can be faked by apps by simply forging
eo objects of the proper type (key or pointer evt) and
calling eo_event_callback_call().

Such events will be forwarded to the internal Evas, and
some bool flags prevent infinite refeeding loops.

efl_event_dup() returns fake events for this to work.

@feature
2016-06-03 15:29:17 +09:00
Jean-Philippe Andre 29d5be9e5e ecore_evas: Fix mouse inputs
Yup, I broke everything again. This time, mouse move inputs
would not move the cursor, since I was bypassing the regular
_ecore_evas_mouse_xxx callbacks.

Fixes T3766
2016-06-02 14:19:18 +09:00
Jean-Philippe Andre 0505a729e2 Evas: Simplify eo event mechanism
So, I was stupid. I was relying on legacy callbacks to
trigger eo events, which means that only when a legacy
callback was registered would my new eo events be triggered.

Instead, I can pass the eo event desc & info whenever
calling evas_object_event_callback_call().
2016-06-02 14:19:18 +09:00
Jean-Philippe Andre d6b8f0a691 Evas: Send key events through eo callbacks 2016-06-02 13:31:40 +09:00
Tom Hacohen aa6b53a2ae Switch to eo_del() where it should be a del and not an unref
This code was written when eo_del() was removed and eo_unref() was the
recommended practice. Since we added eo_del() back we now need to adjust
this new code accordingly.
2016-06-01 19:27:40 +01:00
Jean-Philippe Andre b0a32b0bd0 Efl: Rename Efl.Pointer.Event into Efl.Event.Pointer
Also renames two types: Efl.Pointer.Flags and Efl.Event.Flags
2016-05-31 19:03:04 +09:00
Jean-Philippe Andre 4381d3a824 Evas events: Store position as double only
This splits pixel and subpixel precision by using
different methods rather than two different storage values.
2016-05-31 19:03:04 +09:00
Jean-Philippe Andre 0a27c78a33 Evas events: Split pointer events
This is going back to the same idea as legacy. We will have
events such as:
- move
- down
- up
- in
- out
- wheel
- cancel ("new" - very rare)

Now the question is whether/how we should divide "multi" events
which start from the 2nd finger from standard mouse events. The first
multitouch finger should by default look like a mouse event.
2016-05-31 19:03:04 +09:00
Jean-Philippe Andre c68f71239c Evas events: Add EO APIs for lock & modifiers
This moves Efl.Pointer.Event back to Evas. Originally I wanted
to share this class with Ecore but eventually I didn't need to
do so, since only ecore_evas (which depends on evas) really needs
access to these.

The internal data struct is not moved out of efl (yet?)
2016-05-31 19:03:04 +09:00
Jean-Philippe Andre 8e31929aab Efl.Pointer.Event: Add dup() method to copy an event 2016-05-31 19:03:04 +09:00
Jean-Philippe Andre 1c739cada9 evas_events: Propagate more eo pointer events
This covers mouse in,out,cancel. Axis (joystick) is still
todo.
2016-05-31 19:03:04 +09:00
Jean-Philippe Andre ef843e8801 efl: Simplify pointer event names + add missing
No more difference between touch & mouse.
Add axis, cancel, in and out.
2016-05-31 19:03:04 +09:00
Jean-Philippe Andre c1be667a6c ecore_evas: Pass mouse down,up,move with eo
This way, ecore sends eo events to evas, which can then
be listened to by other clients (FIXME: the events will
need to be propagated from evas to the elm window).

Current support:
- mouse/multi down
- mouse/multi up
- mouse/multi move
- mouse wheel
2016-05-31 19:03:04 +09:00
Jean-Philippe Andre f119327495 evas: Move event feed and input to legacy 2016-05-31 19:03:04 +09:00
Jean-Philippe Andre d764d8710a ecore_evas: Feed evas events with eo (down, up) 2016-05-31 19:03:04 +09:00
Jean-Philippe Andre 21bc2f89f5 ecore_input: Pass all events through direct cb first
Since the direct input event callback returns true if the
event has been processed, we can easily support legacy and
progressively implement full support for eo input events.
2016-05-31 19:03:04 +09:00
Jean-Philippe Andre bd70604ee8 ecore_evas: Add private direct callback for ecore
All ecore_input_evas events should be passed through ecore_evas
in order to avoid any information loss between ecore and evas.

This is a private API.
2016-05-31 19:03:04 +09:00
Cedric Bail 45bc4f30eb efl: change name of animator,tick event in C. 2016-05-18 02:20:13 -07:00
Daniel Kolesa 7782c0bcb9 eolian: add event_prefix and have classes follow that or eo_prefix by default
Previously events used to use class name as a prefix and ignored eo_prefix
when specified. This is no longer the case. Events follow eo_prefix by default
now. In order to get around this for classes where this is undesirable, a new
field event_prefix was added which takes priority over eo_prefix. If neither
is specified, class name is used like previously.

@feature
2016-05-17 17:50:43 +01:00
Mike Blumenkrantz 42e459b364 ecore-evas: set some properties even if engine function doesn't exist
elm uses these flags internally, so failing to set them even if the
windowing system doesn't support the operation can still cause apps to
behave differently

ref 723d4ca8c9
2016-05-11 15:37:28 -04:00
Mike Blumenkrantz 723d4ca8c9 ecore-evas: call application-set focus functions if no engine functions exist
in the case where an engine has no real concept of focus (eg. drm), no engine
functions will be implemented, resulting in calls to focus_set having no effect.
this leads to elm/applications being unable to receive the callbacks they expect
when calls to the overall api are made, resulting in focus being broken

probably this should also be done for the rest of the api functions too

@fix
2016-05-11 13:32:11 -04:00
Tom Hacohen f14305024e Eo event: rename Eo_Event->event_info to Eo_Event->info.
The previous naming was redundant and too long.
2016-04-12 15:23:55 +01:00
Derek Foreman 0c388f386e ecore_evas: change ECORE_EVAS_RENDER_SYNC to NOSYNC and non-default
Summary:
commit f9e6550468 Changed the RENDER_SYNC
the default behaviour (previously it was something you had to
change source code to set that way)

This leads to massive amounts of tearing with the drm and gl_drm backends,
as they no longer wait for vblank before rendering.

I've changed the env var to ECORE_EVAS_RENDER_NOSYNC and made it
non-default as it used to be.  People can set the env var to disable
frame limiting instead of having to set an env var to enable it.

Frame limiting really should be the default behaviour.

Reviewers: zmike, devilhorns

Reviewed By: devilhorns

Subscribers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D3829
2016-03-24 12:15:57 -04:00
Ji-Youn Park f9e6550468 ecore_evas: change RENDER_SYNC from define to env
outside needs to turn on/off RENDER_SYNC feature.
env val: ECORE_EVAS_RENDER_SYNC.
2016-03-22 12:23:37 +08:30
Cedric BAIL 685681c864 efl: rename efl.core.animator to efl.animator.
It has been decided that we would not use any namespace for interface
and they will sit in efl main namespace.

This patch doesn't correct the naming of the event has we don't have a
prefix for event. We do still have EFL_ANIMATOR_EVENT_ANIMATOR_TICK,
instead of a nicer EFL_EVENT_ANIMATOR_TICK.
2016-03-10 13:14:13 -08:00
Tom Hacohen f21ade6123 Automatic migration to Eo4.
I just ran my script (email to follow) to migrate all of the EFL
automatically. This commit is *only* the automatic conversion, so it can
be easily reverted and re-run.
2016-03-03 09:58:08 +00:00
Tom Hacohen e71e6561ee Eo callbacks: Migrate all of the EFL to the new event cb signatures. 2016-02-29 11:33:27 +00:00
Cedric BAIL d1e79c7dae ecore_evas: refactorize code and make sub ecore evas exploration recusrive. 2016-02-05 06:05:30 +01:00
Cedric BAIL cf172baa9d ecore_evas: improve debugging for Ecore_Evas animator. 2016-02-05 06:05:01 +01:00
Jean-Philippe Andre f80409db30 Ecore evas: Fix compilation warning (missing initializer) 2016-02-03 14:53:54 +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 2cdead3e71 ecore_evas: add log when registering, unregistering and emitting animator. 2016-02-02 10:47:25 -08:00
Cedric BAIL 7ffa801cf3 ecore_evas: switch main animator to use the first windows source for tick. 2016-02-02 10:47:25 -08:00
Cedric BAIL 0812fc8f6c ecore_evas: optimize triggering of animator to happen only when someone is listening. 2016-02-02 10:47:25 -08: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
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
Chris Michael 99ac0763ab ecore-evas: Rename ecore_evas_wayland_window_get2 function
This renames the ecore_evas_wayland_window_get2 function to be
ecore_evas_wayland2_window_get before the 1.17 roll out.

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
2016-01-07 15:02:13 -05:00
Stefan Schmidt 8e1f3725db ecore_evas: add missing since tags for new APIs coming with 1.17 2016-01-06 14:52:56 +01:00
Vincent Torri 0497b9685c efl: add binary mode to open() calls
This allows better compatibility with Windows

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-05 21:06:04 +01:00
Chris Michael 16b638019d ecore-evas: Remove duplicated ecore_evas_cocoa_window_get function
During my merge of the ecore_wl2 branch, somehow a duplicated
cocoa_window_get function got added. Remove it.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:41:34 -05:00
Jean Guyomarc'h 4623d57762 ecore_cocoa: add support for system cursors
- Ecore_Cocoa_Cursor enum which references system cursors;
- API to show/hide cursor: ecore_cocoa_window_cursor_show();
- API to set system cursor: ecore_cocoa_window_cursor_set();
- Ecore_Evas interface to get Ecore_Cocoa_Window from Ecore_Evas.

@feature

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-03 12:07:20 -05:00
Chris Michael 5addb38844 ecore-evas: Add API function to get an Ecore_Wl2_Window for an
ecore_evas

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael f485b451ce ecore-evas: Add function to return Ecore_Wl2_Window
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael 7cbed394dc ecore-evas: Add ecore_evas_wayland_window_get2 to the Ecore_Evas
Wayland Interface

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael 3a0a298181 ecore-evas: Add new API to return a Ecore_Wl2_Window when requested
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Chris Michael cd1d9ec196 ecore-wl2: Port Ecore_Evas engines to use Ecore_Wl2 code
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-12-03 12:02:40 -05:00
Jean Guyomarc'h 63ad6ed3f0 ecore_cocoa: prevent Ecore_Cocoa_Window to be re-defined
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-01 12:15:32 -08:00
Jean Guyomarc'h 2c93c73cbd ecore_cocoa: add support for system cursors
- Ecore_Cocoa_Cursor enum which references system cursors;
- API to show/hide cursor: ecore_cocoa_window_cursor_show();
- API to set system cursor: ecore_cocoa_window_cursor_set();
- Ecore_Evas interface to get Ecore_Cocoa_Window from Ecore_Evas.

@feature

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-12-01 12:15:31 -08:00
Jihoon Kim b40f170b24 Ecore evas: Correct function name in magic failure of ecore_evas_rotation_with_resize_set () 2015-10-22 14:23:43 +09:00
Ji-Youn Park b0e48bc084 ecore_evas: fix first render skip in several windows
ecore_evas_first only can be set first render even though there are several windows.
because of this, second or third ecore_evas loses chance to render first frame.
@fix
2015-08-07 11:53:02 +09:00
Nicolas Aguirre 3594b230af Revert "ecore_evas: Adds an eglfs module"
This reverts commit a254725d6d.
2015-08-03 14:34:54 +02:00
Florent Revest a254725d6d ecore_evas: Adds an eglfs module 2015-08-03 14:16:35 +02:00
Dongyeon Kim dc1476ee09 ecore_evas_x: make gl_sync_draw_done an explicit signed char type
Summary:
char type is interpreted as unsigned char in some implementations,
so setting -1 will be read as 255.
So we should explicitly make this a signed char type.
@fix

Test Plan: Local tests

Reviewers: cedric, jpeg

Reviewed By: jpeg

Subscribers: wonsik, cedric

Differential Revision: https://phab.enlightenment.org/D2895
2015-07-30 10:14:15 +09:00
Vincent Torri 16063b8ab1 Use eina_environment_tmp_get() 2015-07-22 09:22:02 +01:00
Tom Hacohen 3c6c7c9be6 Ecore evas: Correct function name in magic failure.
Why this is done like this, and not just with __func__ in the macro is
beyond me.

Thanks to Vincent Torri for pointing this out.

@fix
2015-07-16 09:34:18 +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