Commit Graph

71 Commits

Author SHA1 Message Date
Mike Blumenkrantz 55e1640261 don't free x11 clipboard source immediately
ref T5738
2017-07-14 18:40:50 -04:00
Derek Foreman 27f72e76a4 Fix xwayland selection crash
When creating the data manager source, passing an id of 1 overwrites
the wl_display's id in the map, causing crashes the next time the
client tries to interact with that object.  The client in this case
is Xwayland.  Bad things happen.

Instead pass 0 which just chooses an available map slot.

Fix T5738
2017-07-14 16:56:36 -05:00
Mike Blumenkrantz 9357ecc443 don't force shm for xwayland launch and enable gl
fix T5606
2017-06-30 10:25:18 -04:00
Mike Blumenkrantz 9701588cc8 add error messages when symbols fail to resolve in xwl init
ref T5258
2017-05-24 10:10:07 -04:00
Mike Blumenkrantz e110f912e2 don't dup fds during xwl bridged selection transfer, this happens in libwayland 2017-05-12 12:08:37 -04:00
Mike Blumenkrantz 8b0eb9ad8e do not start xwayland repeatedly
ref 0534c7ae6f
2017-03-10 15:55:06 -05:00
Mike Blumenkrantz cfc538ca55 remove all unnecessary efl version checks
the version of efl required by configure is already higher than these checks
2017-02-24 14:15:38 -05:00
Mike Blumenkrantz 98ab29ea3c add event for xwayland init 2017-02-24 14:15:38 -05:00
Mike Blumenkrantz 0534c7ae6f start xwayland process 2.0s after module load
this avoids conflicts with efl internals, which will break entirely
when DISPLAY is set under wayland, and xwayland internals, which will
abort immediately when efl tries to connect to it during its init phase
2017-02-10 17:24:13 -05:00
Chris Michael 1974f5da2d Revert "send wl_touch events when we handle mouse buttons"
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.
2017-01-17 13:28:05 -05:00
Chris Michael 7906537c02 send wl_touch events when we handle mouse buttons
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>
2017-01-17 11:31:48 -05:00
Derek Foreman 22a99c5b5a NULL out xwayland fd handlers after deleting them
This fixes a valgrind error that can happen when we accidentally
free these again later because they still had non-NULL values.
2016-09-21 16:45:57 -05:00
Chris Michael adfa905e09 add missing EINA_UNUSED for function parameter
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-09-07 09:03:10 -04:00
Mike Blumenkrantz 54d446b05e add xwayland compat for efl 1.19+ 2016-08-15 10:51:57 -04:00
Marcel Hollerbach a484ee1df3 xwayland: show the dialog after ecore_wl2 is in sync
otherwise ecore_wl2 could produce crashes.
2016-08-04 16:38:51 +02:00
Mike Blumenkrantz ffbf4235dd Revert "eo_del -> eo_unref in xwayland"
This reverts commit 1eddd375d8.
2016-06-01 09:57:17 -04:00
Mike Blumenkrantz 1eddd375d8 eo_del -> eo_unref in xwayland 2016-05-18 13:26:59 -04:00
Mike Blumenkrantz 280a29cc95 Revert "add SA_NOCLDWAIT to SIGCHLD flags when xwayland module loads"
This reverts commit 66a3fcb013.

fix T3599
2016-05-11 12:49:53 -04:00
Mike Blumenkrantz 66a3fcb013 add SA_NOCLDWAIT to SIGCHLD flags when xwayland module loads
pulseaudio uses waitpid internally and will deadlock if ecore-audio
performs a deferred connect
2016-05-06 13:43:47 -04:00
Mike Blumenkrantz 3178064d30 ensure xwayland module init does not fail due to early startup
comp_type may not be set at the time of init
2016-05-06 13:42:20 -04:00
Mike Blumenkrantz 4b7141fc13 don't print xwayland path twice... 2016-04-04 15:40:21 -04:00
Mike Blumenkrantz 5046004edf print xwayland exe path in debug logs
ref T3415
2016-04-04 15:38:46 -04:00
Derek Foreman 5c5dc3d9f8 xwayland: Don't leak memory on dnd read failure 2016-03-31 15:08:50 -04:00
Mike Blumenkrantz 1fd9d8eee5 break out xwl init/shutdown into static functions for reuse internally
calling modapi functions like this causes symbol collision and randomly
calls corresponding functions for other modules
2016-03-12 11:15:42 -05:00
Mike Blumenkrantz f1bccff8e1 Revert "fix xwayland compile with 1.18 eo"
This reverts commit 2ec02258ec.
2016-03-12 10:43:13 -05:00
Mike Blumenkrantz 2ec02258ec fix xwayland compile with 1.18 eo 2016-03-09 13:13:45 -05:00
Mike Blumenkrantz a2279cf119 remove efl version check macros in xwayland dnd handlers 2016-02-04 12:58:37 -05:00
Mike Blumenkrantz 913e04bda7 declare xwayland functions prior to using them
#CompileFail
2015-11-24 15:46:10 -05:00
Mike Blumenkrantz 70c6dc30d1 use separate handler for x11 fatal errors when using xwayland
a fatal error with xwayland is not a fatal error for the compositor,
so this should not result in a dead session
2015-11-24 15:34:42 -05:00
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