it is now possible to create a xephyr window in a drm-enlightenment session,
launch wl-x11 enlightenment in xephyr, and then launch wl-wl enlightenment
inside that enlightenment
the primary limitation on this output module is that all internal windows will
appear in the outer compositor due to the current restriction of ecore-wayland
with regard to only having a single global display server connection
#Inception
blocks execution of resizes until the surface commit arrives. reduces
the race condition between resize and render and eliminates frame drops
during slow resizes
Key state updates need to be consistent. As we update the key state on
key up regardless of client focus, then we should be doing the same in
the key_down event handler so that key state remains consistent.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
e_comp_wl_input_keyboard_state_update already makes a call to
e_comp_wl_input_keyboard_modifeirs_update so there is no need to call
it twice on key up/down events.
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: In some cases these end up uninitialized and we crash.
Reviewers: zmike
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2788
in order to maximize the amount of reused code the following details the current
process for xwayland compositing:
* get map request from window
* force reparenting
* show window
* await WL_SURFACE_ID x11 message
* move x11 client data + pixmap onto corresponding wayland client
* business as usual with wayland compositing
this is pretty similar to the method of the reference code in weston,
except that there's no x11 compositor in weston
Summary:
First of all, currently cdata->ptr.x,y contains e_client related pos.
But, cdata is owned by e_comp, not per e_client. So cdata->ptr.x,y should contain
absolute pos.
And, when a pointer resource is created, enter event should be sent to client.
Change-Id: I21cb031e293fe281e35ba89f3a96116a28a48856
Signed-off-by: Boram Park <boram1288.park@samsung.com>
Test Plan:
1. run e as wayland server
2. move cursor to around 50,50
3. run elementary_test
4. click the mouse left button on slide toggle widget.
(Don't move a cursor out of elementary_test. If you do, you can't find bug)
Reviewers: gwanglim, raster, devilhorns, ManMower, zmike
Reviewed By: zmike
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2330
Summary: We should just use e_comp->wl_comp_data everywhere we can.
Reviewers: devilhorns, zmike
Reviewed By: zmike
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2507
Summary:
If we don't set server mode we can deadlock when trying to use functions
that way for server mode to become set.
This can currently cause a startup freeze in e_scale_init().
Reviewers: zmike, devilhorns
Reviewed By: devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2520
Summary:
Currently enlightenment-wayland support pointer and keyboard events.(in input)
So I added EVAS_CALLBACK_MULTI_* event handler and hanling functions for wl_touch interface.
This code send wl_touch events to client like a pointer event.
Test Plan:
In wayland + enlightenment environment, generate multi touch events.
The enlightenment will be send wl_touch events to client.
Reviewers: raster, devilhorns, zmike
Reviewed By: devilhorns, zmike
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2482
Summary:
A parent surface can be destroyed. In this case, ec->comp_data->sub.data->parent has
a wrong address which has already destroyed. Then, it occurs segmentation fault.
To avoid segfault, ec->comp_data->sub.data->parent should be NULL when a parent surface
is destroyed.
Signed-off-by: Boram Park <boram1288.park@samsung.com>
Test Plan: Run attached test program(subsurface)
Reviewers: gwanglim, cedric, devilhorns, zmike
Reviewed By: devilhorns, zmike
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2484
at present, this value will be set to either TYPE_NONE if no valid
compositor has been created or TYPE_X if running a wl compositor inside
an x11 compositor
This "should" fix T2344 crashing, however I suppose a better question
is ... why is e_client_new returning NULL when it Does find the client
already in the hash...
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary:
We now have a subset of that functionality in e_comp_wl_input.c, so use
that function instead. The missing bits are moved into the one remaining
caller.
Reviewers: zmike, devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2207
Summary:
The only use for this was sending keyboard enter events on first commit
after a focus during app startup, and this has proven to be unreliable.
NOTE: Focus before an app requests the keyboard global is now broken and
will be fixed in a following patch.
Reviewers: zmike, devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2205
Summary:
Apparently negative values mean "pick a size", though this is
undocumented.
Reviewers: devilhorns, zmike
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2191
Summary:
e_comp_wl_output_init will fail (silently) under a couple of
conditions. Instead, make it propagate the error so it can be handled
at a higher level. For now just issue an error message.
Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewers: cedric, devilhorns, zmike
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2155
Summary:
wl_array_add() returns NULL if it can't malloc/realloc. This
is probably unlikely but check for it and issue a meaningful error if it
occurs.
Reviewers: cedric, devilhorns, zmike, raster
Reviewed By: raster
Subscribers: raster, cedric
Differential Revision: https://phab.enlightenment.org/D2054
Summary:
If we don't update the modifiers on focus in we can end up with stuck
modifiers if a modifier is held when starting a client.
Reviewers: zmike, devilhorns
Reviewed By: devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2124
Summary:
We still update the keyboard array. focus_in adds everything in the
array to xkbstate anyway, so adding it when there's no focus results
in a double update of state and potentially stuck modifiers.
Reviewers: zmike, devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2111
Summary:
We still need to remove the active keys when focus_out happens, even
if the pixmap is already gone. If we don't and a modifier was held
down during exit then the xkb state will have that modifier stuck
forever.
Reviewers: zmike, devilhorns
Subscribers: cedric
Differential Revision: https://phab.enlightenment.org/D2110
the calculated values here seem to not be sufficiently accurate to manage a calculated resize.
instead, calc relative pointer coords and send them
#barrel