This fixes cycles of init/shutdown/init where ecore event types would
become invalid, since they are now stored in a dynamic array rather than
a statically stored array.
The risk here is that if a module of EFL tends to init/shutdown in a
"normal" scenario then the event type array will grow in a leaking
manner. This could be fixed by resetting those event ID's only when the
loop actually exits (EFL_EVENT_DEL on the main loop). I'm not using
EFL_EVENT_DEL in this patch as this would add too many event callbacks
to the main loop object, which may result in slightly slower event calls
to it, affecting the overall performance.
Summary: I had fixed some typos and some wrong expressions, such as capital letters, singular, and orders of groups in API reference doxygen.
Test Plan: Doxygen revision
Reviewers: stefan, cedric, raster, Jaehyun_Cho, jpeg
Subscribers: conr2d
Differential Revision: https://phab.enlightenment.org/D4658
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
Summary:
fix over writing file descriptor bug for reading.
when we paste data to entry very fast, source->fd is over wrote by latest fd.
It cause blocking of read function since the read function use invalid fd.
so I make memorizing valid fd and using it in read function.
@fix
Reviewers: Hermet, jpeg, cedric, devilhorns, ManMower, raster
Differential Revision: https://phab.enlightenment.org/D4410
Summary:
Prevent duplicated mouse up events generated from input_ungrab.
If you touch downs and ups about all of fingers,
that is sufficient condition to call ecore_wl_input_ungrab().
And then one mouse up event is generated from that function.
So if you set a callback about ECORE_EVENT_MOUSE_BUTTON_UP,
you can watch two mouse up events are occurred.
Test Plan: Touch and release. And watch mouse up events.
Reviewers: raster, zmike, devilhorns
Reviewed By: devilhorns
Subscribers: ohduna, input.hacker, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D4112
This patch deprecates the Ecore_Wayland library with a warning to not
use it. This (imo) is a better method of deprecation rather than
adding EINA_DEPRECATED to every function.
Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
these files were created containing code which was very obviously copied from
weston. when copying code, copyright headers must also be copied in order to
comply with licenses.
Summary:
To ensure initialize all fields of Ecore_Event_Mouse_XXX,
use calloc() instead of malloc().
Test Plan: N/A
Reviewers: gwanglim, cedric, raster, devilhorns, ManMower, zmike
Subscribers: jpeg, input.hacker, JHyun
Differential Revision: https://phab.enlightenment.org/D3906
Summary:
Each Ecore_Wl_Input structure has there own keymap.
This keymap is struct xkb_keymap used in libxkbcommon lib and
the client can get this keymap from server in wayland system.
So if the client want to get keymap and use some libxkbcommon APIs,
use this API to get keymap.
Test Plan: Use this api after initialize wayland system.
Reviewers: raster, zmike, ManMower, devilhorns
Reviewed By: devilhorns
Subscribers: input.hacker, ohduna, cedric, jpeg
Differential Revision: https://phab.enlightenment.org/D3819
Summary:
We don't need to work for cursor if system doesn't have pointer devices.
Since this function is called by elementary(e.g. entry) also, we move a check condition into the function.
@fix
Reviewers: raster, zmike, devilhorns, ManMower, gwanglim
Subscribers: cedric, JHyun, input.hacker, jpeg
Differential Revision: https://phab.enlightenment.org/D3566
Summary:
When user touches the screen, ecore_drm generates MOUSE_MOVE event before MOUSE_BUTTON_DOWN.
But when ecore_wayland gets touch_motion before touch_down, touch_focus window is NULL and sending MOUSE_MOVE event fails.
Also in terms of 'touch' input, touch_focus needs be set in cb_touch_down, not in cb_pointer_enter.
So this commit makes sure that ecore_wayland generates MOUSE_MOVE when touch_focus is set.
@fix
Test Plan:
when the application is launched for first time, user clicks on any area of the screen.
We can see the posion of touch event wrong.
Reviewers: raster, zmike, devilhorns, gwanglim, ManMower
Reviewed By: ManMower
Subscribers: jpeg, JHyun, cedric, input.hacker
Differential Revision: https://phab.enlightenment.org/D3555
Summary:
When user touches the screen, ecore_wayland gets touch_motion event before touch_down event.
But touch_focus would be NULL in cb_touch_motion, so doesn't send ECORE_EVENT_MOUSE_MOVE event to client.
This fix set touch_focus when gets pointer_enter same as pointer_focus.
Test Plan:
when the application is launched for first time, user clicks on any area of the screen.
We can see the posion of touch event wrong.
@fix
Reviewers: devilhorns, raster, ManMower, zmike
Subscribers: input.hacker, cedric, jpeg, JHyun
Differential Revision: https://phab.enlightenment.org/D3545
Align out extension naming with other unstable wayland protocols.
The unstable protocols from the wayland-protocols repo are prefixed
with a zwp additionally we keep a e prefix for now as we are still
developing this here. No functional change, just rename.
Pointed out by Derek that the session-recovery interface name is a
bit to generic here.
Setup a listener to receive an uid from the compositor. If we already have
one during creation, aka we are re-connecting to recover a session, we provide
it to the compositor so it can look our attributes up based on it. Again hidden
behind and env var to avoid problems with other developments, for now.
ref T2922
To avoid trouble for other wayland testing we hide the session recovery work
behind EFL_WAYLAND_SESSION_RECOVERY. Without this env var being set we do not
bind the global.
ref T2922
server mode
Summary: For E internal windows, we cannot use custom animator sources
due to Other animators using a timer-based solution. For this case,
when running in "server mode" for internal windows we will default to
a timer based animator solution.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
This patch just gets the state flags directly from the window rather
than calling "get" functions to return the same parameter.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
* sanitize bool params
* enforce window state flag setting
* correctly detect window state using window flag
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
* use safety macros for win struct param (should be the case for all fns here)
* sanitize bool params
* enforce window state flag setting
* correctly detect window state using window flag instead of type
@fix
ref T2841
having window types for fullscreen/maximize is not defined by spec and leads
to state mismatches when toggling from api vs receiving events from the compositor
@fix
This brings ecore_wl_window_maximized_get more inline with
ecore_wl_fullscreen_get function in that it will now check either the
window maximized state, or the window type, to determine if a window
is actually maximized
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
During a rework this bit got missed and made the build fail if ivi-shell was
enabled. Thanks a lot to aerodynamik for bringing this to our attention and
even pointed out the fix.
Fixes T2798
in the case where a surface is created before the compositor binds its shell(s),
a shell surface would never be created
fixes case where internal windows would not create frames in enlightenment
@fix
This reverts commit bd83d4c03a.
adding an animator (and then not managing its ticks) causes the animator
to fire constantly. in this case, it was causing 100% cpu usage and forcing a
compositor re-render for every frame regardless of damages
Summary: This moves window animators (for frame callbacks) to not use
a custom animator source but rather use a timer-based source. This
also moves animators to be per-window based (in that an animator is
created per-window).
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
function
Summary: As we call ecore_wl_window_update_size from various places
when needed, don't call it inside the resize function. This addresses
an issue where sizes for the Ecore_Wl_Window may be out of sync
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: As we do not listen for surface enter/leave events, we do not
need these functions so comment them out.
Thanks to Tom for the report :)
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: As session listener is currently disabled in Ecore_Wayland,
we don't need these functions defined so comment them out.
Thanks to Tom for the report :)
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary:
If the connection between server and client has problems, wl_display_dispatch
an return negative value. i.e. when enlightenment has been killed accidently.
In this case, app can enter into infinite loop.
Signed-off-by: Boram Park <boram1288.park@samsung.com>
Reviewers: stefan_schmidt, zmike, gwanglim, raster, devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D3077
This was missing from the initial session recovery support patches. Bind
the interface so we can actually work with it on the client side and destroy
it at the end.
@fix
Summary: This adds support for allowing a client/compositor to adjust
the keyboard repeat rate and delay via a call to
wl_keyboard_send_repeat_info.
@feature
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: If we end up cancelling the keyboard repeat timer due to no
focused surface, we should also reset the input repeat values.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: During the keyboard repeat function, if we have no keyboard
focused window to send the key to, then we should cancel the repeat
timer.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: As we delete any keyboard repeat timers when we get a
keyboard leave event, we should also reset any stored values there
(key, sym, time, etc).
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: If we get pointer or keyboard leave events, then reset the
Ecore_Wl_Input's idea of focus (eg: set input->pointer_focus and
input->keyboard_focus fields to NULL) just in case we cannot find a
window for this surface.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>