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.
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>
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:
The touch screen device generates touch events.
But in some special enviroments, a first finger will be matched to a pointer event(not touch event).
And other fingers (second, third, ...) will be matched touch events.
In that case ecore_wl_input_ungrab() is called abnormally.
A first finger pressed, _ecore_wl_input_cb_pointer_button() call ecore_wl_input_grab().
A second finger pressed, _ecore_wl_input_cb_touch_down() is called but not grab.
But when a second finger is released, _ecore_wl_input_cb_touch_up() call ecore_wl_input_ungrab()
So ungrab function generate two mouse up events and a first finger is released.
In other case, first finger pressed -> second finger pressed -> first finger release.
That case when a first finger released a second finger release event is generated.
So after that application doesn't get a release event about a second finger
when a second finger is really released.
I think in a multitouch case, ungrab function will be called when a all finger are released.
So I add a grab_count variable for count currently touched fingers.
And only called a ungrab funtion all fingers are released.
Test Plan:
In a touch screen supported multitouch, press two or more fingers and release.
And watch events generation.
Reviewers: raster, devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2481
Summary: Since evas handles surface damage & surface commit roles now,
we no longer are calling ecore_wl_commit inside ecore_evas. This was
causing the surface opaque & input regions to no longer be set. We fix
that here by creating and setting opaque/input regions whenever the
appropriate ecore_wl region functions are called.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: We can make opaque and input region handling simplier if we
just use one opaque & input region per window. Previous code would
always create a new region, set it to the surface, then destroy it.
This code works much nicer in that it hammers the protocol with less
region create/destroy calls.
@fix
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary:
Added cursor_name to Ecore_Wl_Window so that we can compare with input cursor name and avoid unnecessary cursor set calls to wayland.
Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1481
Summary:
1. Added cursor_theme_name to Ecore_Wl_Input struct.
2. Made it configurable through environment variable ECORE_WL_INPUT_CURSOR_THEME_NAME.
3. Added a API ecore_wl_cursor_theme_name_set for user to set manually.
Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1458
Summary:
1. Added cursor_size to Ecore_Wl_Input struct.
2. Made it configurable through environment variable ECORE_WL_INPUT_CURSOR_SIZE.
3. Added a API ecore_wl_input_cursor_size_set for user to set manually.
Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>
Reviewers: devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D1456
Conflicts:
src/lib/ecore_wayland/ecore_wl_private.h
This commit moves the typedef struct to just above the structure, and
moves the external variable below the structure definition. No real
functional changes, just some cleanup.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
IVI-Shell is a wayland shell implementation for in-vehicle infotainment.
Summary: This is a set of patches proposed to implement IVI-Shell (https://phab.enlightenment.org/T1552).
Reviewers: ntanibata, devilhorns
Subscribers: mbachmann
Projects: #efl
Differential Revision: https://phab.enlightenment.org/D1350
@feature
Being annoyed by different types of eina critical macros - CRI, CRIT,
CRITICAL -, I concluded to unify them to one. Discussed on IRC and
finally, CRI was chosen to meet the consistency with other macros -
ERR, WRN, INF, DBG - in terms of the number of characters.
If there is any missing bits, please let me know.
The previous workaround used to send a mouse up event to the
application, using the pointer enter callback to determine when an
implicit grab has finished. This was "simulating" a mouse up event when
the surface move or resize finished.
However, this doesn't work for touch-based move. The pointer enter isn't
emitted, because the wl_touch interface doesn't have the concept of a
pointer.
Changing this code to make it more similar to what Weston's toytoolkit
does, the mouse up event is sent as soon as the move or resize grab
starts. After that, the compositor takes care of the move/resize almost
entirely.
Should fix T468.
This adds support for Windows logo, caps lock, num lock, scroll lock
and AltGr as keyboard modifiers
Signed-off-by: Chris Michael <cp.michael@samsung.com>
It's mostly only used inside ecore_wayland library anyway.
The only bit needed outside of the library is the "seat" pointer, but a
new function was added to retrieve such pointer from Ecore_Wl_Input.
This struct is only used inside ecore_wayland itself, so there's no real
reason to expose it. Apparently, hiding it doesn't break anything,
except for the ecore_imf wayland module, which was easily fixed.
If anyone notices a breakage, please let me know.
This centralizes the place where we have to wait for the init to have
finished before first using the compositor. It's also part of the later
step of hiding Ecore_Wl_* private structs.
Is there a title for the commiter with the longest revert of a revert list?
I screwed this one up. Had other local changes that sneaked in.
Resetting and doing it right now.
This reverts commit ee155b771d.
You can bet on reverting makes people speed up the process in fixing it.
Revert the revert here now that Cedric fixed it in eina.
This reverts commit 875e7cf74d.
It's implemented exactly the same way as on the X11 backend. It does
handle multiple devices, though may need some adjustments when
multi-touch is added, since there's no support for multi-touch on
EFL-wayland yet.