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
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().
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.
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.
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?)
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
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.
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
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
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
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
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.
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.
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.
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>
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>
- 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>
- 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>
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
Summary: The engine for OpenGL with drm is actually called "gl_drm".
There was an issue where the engine_get function would return false
because the #ifdef was testing the wrong thing.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
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
Summary:
There are no APIs for getting window auxiliary hint ID and value which was set by a user.
Below API can get the ID of the window auxiliary hint.
- ecore_evas_aux_hint_id_get
Below API can get the value of the window auxiliary hint id.
- ecore_evas_aux_hint_val_get
Test Plan: N/A
Reviewers: seoz, bryceharrington, ManMower, devilhorns, cedric, raster, Hermet
Reviewed By: Hermet
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2493
Summary:
There are no APIs for getting window auxiliary hint value which was set by a user.
Below APIs can get the window auxiliary hint value.
- ecore_evas_aux_hint_val_get
- ecore_evas_aux_hint_string_val_get
And below API can set the window auxiliary hint value by using string not id.
- ecore_evas_aux_hint_string_val_set
Test Plan: N/A
Reviewers: raster, cedric, seoz, Hermet
Reviewed By: Hermet
Subscribers: c, cedric
Differential Revision: https://phab.enlightenment.org/D2493