Commit Graph

42 Commits

Author SHA1 Message Date
Mike Blumenkrantz 6eefae4822 add hacks to work around pulseaudio+xwayland integration deadlocks
enlightenment is (I think) the first wayland compositor to run with
in-process pulseaudio integration for audio playback and not just mixer
support. hooray.

this results in a fun issue: if DISPLAY is set, as it must be for x11
clients to function, pulseaudio will unconditionally attempt to use a
blocking socket connection to create a connection to the running xserver.
the only exception here is if x11 support has been compiled out of pulseaudio,
but probably no distro will do that ever.

so, what happens when the compositor thread tries to create a socket connection
to the xserver that the compositor thread has not yet started? absolutely nothing.
forever.

the easiest solution which continues to provide the key press sounds that everyone
loves is to ensure that the pulseaudio connection is created before DISPLAY is ever
set, namely in the xwayland module init.

this will now occur automatically now in the case when the mixer module detects
pulseaudio support.

TL;DR: don't disable mixer module if you use xwayland
2015-10-21 17:19:52 -04:00
Mike Blumenkrantz 3f13b6889d replace existing usage of x/wl_comp_data with corresponding globals 2015-08-13 16:05:57 -04:00
Mike Blumenkrantz 3b785403b6 reject xwl selection notify events which do not match our xwl property atom 2015-08-12 17:59:16 -04:00
Mike Blumenkrantz 466ceca59b don't toggle screensaver twice on x11 xdnd selection owner change 2015-08-12 17:45:34 -04:00
Mike Blumenkrantz ce6703e979 only delete current drag on x11 xdnd selection loss if x11 owned selection 2015-08-12 17:45:01 -04:00
Mike Blumenkrantz ecffe370d1 convert E_Comp_Wl_Data_Source->mime_types to Eina_Array
this data struct fits the usage of the data more effectively
2015-08-12 17:39:15 -04:00
Mike Blumenkrantz 442d63d8d6 track button mask for all drags, only end drag when mask has depopulated
previously, beginning a drag with the left button, then pressing and
releasing another button would result in the drag terminating without
the original button being released
2015-08-12 15:39:42 -04:00
Mike Blumenkrantz d1ed90d160 force sending of mouse button release on xwl drag end
seems to be necessary for the client to end its drag
2015-08-12 15:12:03 -04:00
Mike Blumenkrantz dcc22aa27c finish xwl dnd operation immediately if drop occurred somehow 2015-08-11 16:04:54 -04:00
Mike Blumenkrantz 8ea4b9b4e9 don't create pipe for x11->wl clipboard selections
this is never used
2015-08-11 16:04:36 -04:00
Mike Blumenkrantz 04b6514c51 add separate log domain for xwayland 2015-08-11 16:04:36 -04:00
Chris Michael ae9ef1a542 xwayland: Add missing EINA_UNUSED for unused function parameters
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-08-11 09:50:41 -04:00
Mike Blumenkrantz 335f9c4324 finish off x11<->wl clipboard support
a lot of this functionality is reused from dnd. basic selection owner
management in x11 and slapping bytes down a pipe to the wl client;
a bit laggy when pasting to wl clients sometimes, need to spend more time
debugging that...

 #Kansas
2015-08-10 18:59:03 -04:00
Mike Blumenkrantz cb363eb9b8 close xwl dnd pipe on operation end 2015-08-10 18:59:03 -04:00
Mike Blumenkrantz bf4c5452f3 track xwl clipboard owner 2015-08-10 18:59:02 -04:00
Mike Blumenkrantz 1ca8c9eb36 account for state in xwl property change handler
we only care about events where the property was deleted here
2015-08-10 18:59:02 -04:00
Mike Blumenkrantz 8e211f1950 implement wl->x11 dnd operations
seems to work fine, large selection data (ref T2330) still untested
2015-08-07 21:07:34 -04:00
Mike Blumenkrantz 004383a52e block screensaver activation during xwl dnd operations 2015-08-07 13:48:21 -04:00
Mike Blumenkrantz f9bd731087 track xwl dnd event handlers 2015-08-07 13:48:21 -04:00
Mike Blumenkrantz 5bde1a8648 implement x11->wayland dnd operations
still a little rough, but the basics are functional. works by showing
the x11 compositor selection window, which has rects to exclude geometries
of xwl clients, for getting x11 xdnd events, and then manually sending
all the related client messages in order to inform the x11 client that
enlightenment is, in fact, an extremely credible xdnd drop site and not
a rogue compositor which will mangle/destroy the dnd data.

still render crashes after the operation completes, so possibly not the
most useful thing to be using now
2015-08-06 19:31:20 -04:00
Mike Blumenkrantz 3a77e8a2e9 unset DISPLAY on xwayland module shutdown
fixes loading across restarts
2015-07-30 13:36:42 -04:00
Mike Blumenkrantz 1c0a0ab00f move xwayland socket connection to its own thread
this operation performs a synchronous socket connection inside xlib which can
block for an infinite amount of time. in order to avoid having a potentially
unlimited amount of time where the ui is frozen and polling on the socket connection,
move it to a thread where it can hang for as long as it wants and then use the
resulting display object for the ecore-x connection
2015-07-15 13:58:03 -04:00
Mike Blumenkrantz 54c6d7094e remove unnecessary E_COMP_WL #defines
this is only required for aliasing E_Client->comp_data as wayland compositor data.
if comp_data is never dereferenced, it is not necessary to declare the compositor
type
2015-07-08 17:12:42 -04:00
Mike Blumenkrantz b80f96f2fa pop an error dialog when trying to load xwayland module under x11
this is impossible and will never be possible; ecore-x can only manage
a single x11 connection at any time, and so it will never be possible to both
manage the x11 compositor canvas on one xserver and manage xwayland clients
on a separate server

invalidates T2537
2015-07-02 14:28:07 -04:00
Mike Blumenkrantz fa3c3b0e22 clean up xwayland lock/socket init code 2015-07-02 13:55:42 -04:00
Mike Blumenkrantz dd1ff970ac print xwl loading debug after checking compositor type 2015-07-01 16:02:48 -04:00
Chris Michael 7aef1fdb73 xwayland: Use proper E_API for exporting module symbols
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-07-01 12:43:05 -04:00
Mike Blumenkrantz f046c98f59 attempt to create xwayland x11 socket path before creating socket 2015-06-30 15:37:56 -04:00
Mike Blumenkrantz 972b003163 finish xwayland module implementation
note that this basically does nothing other than start an xserver and connection

bisect harder if looking for bugs
2015-06-25 20:04:31 -04:00
Mike Blumenkrantz bd313e90dd fix xwayland fd dup conditionals 2015-06-25 20:04:31 -04:00
Mike Blumenkrantz ca7087b443 update xwayland for api changes 2015-06-25 20:04:30 -04:00
Mike Blumenkrantz 829865b4f4 remove xwayland .desktop and .edj files 2015-06-25 20:04:30 -04:00
Chris Michael 5a7b3c5cf9 xwayland: Add code to cleanup xwayland on shutdown
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-25 20:04:30 -04:00
Chris Michael 8f09e55b45 xwayland: Check for sigusr1 in event handler
XWayland servers sends us SIGUSR1 when it has finished initializing,
so we should be checking the signal number when we get the event.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-25 20:04:30 -04:00
Chris Michael f49acd38b4 xwayland: Fix build breakage with recent e_comp_wl changes
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-25 20:04:30 -04:00
Chris Michael 90f2d06ee0 xwayland: Add some debugging code while trying to work out failures
with this

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-25 20:04:30 -04:00
Chris Michael eb4df84aa5 xwayland: Fix launching of XWayland server and pass proper display to
wl_client_create

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-25 20:04:30 -04:00
Chris Michael 0885237671 xwayland: Create the wl_client which represents the window manager
process.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-25 20:04:30 -04:00
Chris Michael c1b2bb0618 xwayland: Create and bind to unix & abstract sockets
NB: XWayland server needs the sockets setup prior to launching it so
we add some code to create & bind the needed sockets before starting
the XWayland binary

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-25 20:04:30 -04:00
Chris Michael 2724f92bc6 Add start of xwayand module code
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-25 20:04:30 -04:00
Chris Michael c86c57bee0 add xwayland module edj file for icon
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-25 20:04:30 -04:00
Chris Michael 576b11567d add xwayland module desktop file
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-06-25 20:04:30 -04:00