Commit Graph

45 Commits

Author SHA1 Message Date
Vincent Vanlaer 80586b8f6b Clean up events 2018-05-07 00:48:02 +02:00
Vincent Vanlaer 446ea3a340 Add beter handling for Xwayland failing at startup 2018-05-07 00:43:26 +02:00
Vincent Vanlaer c80bf1591e Allow xwayland to start lazily
Makes the xwayland startup process two phased.
The first phase just initialises the X11 sockets.
The second phase starts the Xwayland server itself.
When starting xwayland lazily the second phase will be postponed until
a client has connected to the X11 socket.

Changes in behaviour:
The DISPLAY environment is now set immediately after the X11 sockets
are created.
When the Xwayland server is killed or crashes, the sockets will not be
recreated, but reused.

Fixes #849: Start up Xwayland lazily
2018-05-06 23:41:25 +02:00
emersion 625a7a48dc
Don't use the wlr_ prefix for static functions 2018-04-25 23:51:00 +01:00
n3rdopolis a470f101c1
xwayland: preserve the PATH variable
Some systems don't have xwayland in /usr/bin, but in other paths. 
wlroots was unable to find Xwayland binaries outside of standard locations
2018-04-21 19:19:25 -04:00
emersion c55ad11d96
xwayland: add _NET_WM_WINDOW_TYPE_MENU support 2018-04-08 12:02:52 -04:00
Dominique Martinet 2910972b25 xwm.h: fix guard ifdef and remove wlr_ prefix from xwm_atoms_contains 2018-03-04 11:16:18 +01:00
Dominique Martinet 7d1870c6f1 move xwm.h out of include/wlr
xwm.h was meant to be private, so move it to include/xwayland/xwm.h
We had an ifdef WLR_HAS_XCB_ICCCM in xwayland.h which was easy to move
to xwm, it is not safe to use the WLR_HAS_* in the public headers.

I checked a few of our current users and none rely on xwm.h being
public as expected (rootston, sway, hsroots)
2018-03-03 17:03:21 +01:00
Markus Ongyerth bb676013ed add xwayland unmanaged tests to support dmenu
This adds `wlr_xwayland_surface_is_unamanged`, to allow compositors more
fine grained control over XWayland focus.
A surface that is unmanaged should not receive focus, while other
windows that are just override redirect may want it (dmenu).
The way unamanged is determined is taken from wlc.
2018-02-26 12:02:49 +01:00
Drew DeVault 1d9be89e2d
Revert "ELF Visibility" 2018-02-19 18:01:27 -05:00
Scott Anderson 86269052eb Explicitly export EFL symbols 2018-02-19 14:26:40 +13:00
emersion c2e1474010
Reformat all #include directives 2018-02-12 21:29:23 +01:00
emersion 36ead80cd1
Make wlr_signal_emit_safe private 2018-02-12 19:52:47 +01:00
emersion 5e58d46cc1
Add wlr_signal_emit_safe 2018-02-12 09:12:31 +01:00
Dominique Martinet ec952931a1 wlr_xwayland: preserve end of struct on restart
This is more robust than trying to recopy a few fields.
Note: wlr_xwayland->events.ready now resets after each trigger, so one can
hook on it again and be called when restart is ready
2017-12-29 20:50:50 +01:00
Dominique Martinet e0eafa0429 xwayland: listen to wlr_seat destroy signal 2017-12-29 19:00:08 +01:00
Dominique Martinet 61b91a5721 xwayland restart: copy seat and events over
This is very ugly, there must be a better way to do that (not memset it?)
Meanwhile, this fixes rootston xwayland on restart
2017-12-29 17:33:11 +01:00
emersion 6b42bfad18
Merge branch 'master' into xwm-selection 2017-12-14 23:59:04 +01:00
emersion 75ef7860bb
Merge branch 'master' into display-destroy 2017-12-14 20:29:30 +01:00
emersion 6ef0219763
Merge branch 'master' into xwm-selection 2017-12-14 11:20:38 +01:00
Tony Crisci ea4b871e16 xwm: user custom event handler 2017-12-13 17:54:19 -05:00
emersion e30b943fbd
Destroy xwayland client when possible 2017-12-08 10:58:36 +01:00
emersion b06535718d
Do not destroy wl_client in wlr_xwayland_finish 2017-12-08 01:38:45 +01:00
emersion 18eb1eee3f
Listen to display destroy in xwayland, rename wlr_egl_free 2017-12-08 00:59:37 +01:00
Tony Crisci fc17c74516 xwayland: clean up seat setting 2017-11-22 08:23:23 -05:00
Tony Crisci b0683874e9 xwm: send selection data 2017-11-22 08:10:06 -05:00
Drew DeVault a317ecdab8 Run startup command after xwayland is ready 2017-11-12 16:01:48 -05:00
emersion 3f4ad47421
Use compositor theme for xwm cursor 2017-11-02 16:49:22 +01:00
Tony Crisci 2ff94d0036 xwm: get rid of displayable surfaces list 2017-10-24 18:57:20 -04:00
Greg V a5fe9aa736 Add FreeBSD compatibility 2017-10-11 00:07:21 +03:00
Calvin Lee dd4bdf1f56 Unset $DISPLAY until XWayland is ready 2017-10-03 22:42:10 -06:00
emersion b7927078e9
x11 -> xwayland, window -> surface, fix some calloc sizes and wrong types 2017-09-28 23:26:31 +02:00
Drew DeVault 906a816abf Fix rootston keyboard, add Xwayland 2017-09-28 08:54:57 -04:00
Dominique Martinet 871646d225 Double-fork for xwayland execution
The intermediate fork needs to wait for SIGUSR1 for when Xserver is
ready, or SIGCHLD if the exec didn't work out.

Also change the exit() to _exit() as that is apparently more appropriate
for forks (and waitpid's status was wrong without it for some reason)

Fixes #122.
2017-08-27 21:41:08 +02:00
Dominique Martinet b29c7d01b1 xwayland: relinquish wl_fd[0] after creating client
wayland WILL close this fd during wl_client_destroy, after our handler
if we close it as well this will close some of the fd we reopened
2017-08-24 07:51:24 +02:00
Dominique Martinet 4a288fdacb xwm: free x11 windows on finish 2017-08-24 07:51:24 +02:00
Dominique Martinet e3143b50b6 xwayland: fix some shutdown cases 2017-08-24 07:51:24 +02:00
Dominique Martinet fd3ad3b9e4 xwayland: fix shutdown caused by Xwayland/client stop 2017-08-24 07:51:24 +02:00
Dominique Martinet 3391e5b634 xwayland: fix style issues 2017-08-23 22:03:49 +02:00
Dominique Martinet 1458a95e65 example compositor: loop through xwayland surfaces 2017-08-23 22:03:49 +02:00
Dominique Martinet eb5b9cc6da xwayland: move & split internal header file 2017-08-23 22:03:49 +02:00
Dominique Martinet fa0e1015c6 xwm: fix minimal init, this gets us some events on window creations 2017-08-23 22:03:49 +02:00
Dominique Martinet 6eb20fb8d2 init xwm only once Xwayland server is ready 2017-08-23 22:03:49 +02:00
Dominique Martinet b2bab1af5c xwayland: split xwm structure out, initial xwm.c 2017-08-23 22:03:49 +02:00
Dominique Martinet 49a823d4c6 Xwayland: first draft, just start server for now 2017-08-23 22:03:49 +02:00