Summary:
Prevent wayland clients from being able to destroy the compositor's
singleton keymap by making individual copies for each client.
Reviewers: zmike, devilhorns
Reviewed By: zmike, devilhorns
Subscribers: cedric
Tags: #enlightenment-git
Differential Revision: https://phab.enlightenment.org/D6861
Turns out ecore_animator_add() can randomly pick the wrong canvas to use as
a tick source. Using EFL_EVENT_ANIMATOR_TICK on the compositor evas instead
will ensure we don't accidentally pick an internal window for a tick source.
Fix T6070
Previously we immediately kicked back the frame callback when a client
sent a surface frame without damage. This let clients that use frames
for timing proceed, but they generally just send another frame right
away and spin in this way until they reach their intended render time.
Now we use animators so the frame callbacks will be limited to the
animator tick source's frequency.
ref T5850
this allows a wayland client to request that a given action name be bound
to the requested surface using a mode to restrict activation of the binding
modes include:
* shared
- activated when any surface from the client has focus
* topmost
- activated when the requested surface has focus and is the topmost client
* exclusive
- activated when the requested surface has focus; blocks other action routes
#SamsungFeatures
Signed-off-by: Mike Blumenkrantz <zmike@osg.samsung.com>
Hardware planes are going to make E_Comp_Wl_Buffer lifetimes harder to
manage, so we need to let the E_Comp_Wl_Buffer object outlive the
resource attached to it.
We already track a busy count, so we just have to use it to prevent
deleting a busy buffer.
we're pointer playing anyway so types here are not really useful. we
have to get our ptrs right - including alignment, and these warnings
are not useful and just noise.
this is a remnant from xdg5-only code where new_client meant "first buffer". with
xdg6, this is no longer the case since a surface can receive infinite commits
without ever having a buffer attached
ref 9a82f7bcb0
Reverting this as it ends up causing multiple events being handled
(touch and pointer) inside various clients if you have both touch and
pointer enabled. Will need a different fix here....
This reverts commit 7906537c02.
Small patch to enable sending wl_touch down/up events when pointer
mouse button events are handled. This is needed in the case where we
do Not have any mouse pointer at all, but we do have touch support.
ref T5094
NB: This allows weston-simple-touch client to operate in Enlightenment
now. There is still something strange happening with EFL clients in E
wrt touch events tho...
Signed-off-by: Chris Michael <cp.michael@samsung.com>
this commit introduces the setting of the index. Setting the index here
means that the layout with the id 0..n, out of the compiled keymap file
will be used. After a new index is set the modifiers are updated, that
the client are aware of the new resulting group.
If the api is called before the compositor is inited (this can happen
in e_xkb, so the drm can use the keymap at startup) then the index is
saved in between and will be flushed once the compositor does the init.
This adds compositor handling of DMABuf buffers. DMAbuf capabilities
are advertised for the drm back-ends, and DMAbuf buffers are handled
as native surfaces.
When running as a wayland compositor connected to another wayland
compositor, we don't want to advertise dmabuf capabilities if the
parent compositor doesn't support them.
If it does, we'll want to proxy dmabuf requests to it instead of handling
them ourselves.
Expose this as new bools in e_comp_wl.
- remove (wrong) global variables which tracked client-specific resources
- start ping upon creating a shell surface
- track client-specific shell resources on a per-client basis
maximize is client-initiated and compositor-enforced in wayland, meaning that a
maximize should only be acted upon in the compositor after the client has
acknowledged that it has transitioned into the maximized state (likely removing
part of its csd region) and has resized itself to match the expected maximize
size
fix T3297