aboutsummaryrefslogtreecommitdiff
path: root/xwayland
AgeCommit message (Collapse)Author
2018-10-13xwayland/xwm: make hints->input default to trueWolf480pl
An X11 client can leave the hints->input WM hint unspecified, by not setting the XCB_ICCCM_WM_HINT_INPUT flag in hints->flags. In that case, we should assume a sane default. Make the hint default to true, so that clients which do not specify the hint, like mupdf, still get keyboard focus. This should fix swaywm/sway#2231
2018-09-28xwayland/xwm: Stop including xcb_image.hArkadiusz Hiler
It's not used (XCB_IMAGE_FORMAT_Z_PIXMAP comes from xproto.h) and we don't even have a pkg-config dependency on xcb-image, making the build to fail on that inclusion on systems without the package.
2018-09-24xwayland: Introduce set_decorations eventRyan Dwyer
2018-09-08Fix wlr_xwayland_destroynyorain
2018-09-03Merge pull request #1213 from arandomhuman/wlr_log_get_verbosityDrew DeVault
Add wlr_log_get_verbosity method
2018-09-03Close stdout/stderr for Xwaylandrandom human
Depending on the log verbosity, close the stdout/stderr streams.
2018-09-03xwayland: Introduce set_role eventRyan Dwyer
2018-09-02xwayland: Introduce request_activate eventRyan Dwyer
2018-09-02xwayland: Add WM_STATE modal propertyRyan Dwyer
Adds a modal property to indicate whether the surface wants to be a modal.
2018-08-24Revert "Revert "Merge pull request #1194 from ascent12/meson_feature""Scott Anderson
This reverts commit 9c886f20b97b6ab1ac85b849f1fe7f16eb199ff0.
2018-08-23Revert "Merge pull request #1194 from ascent12/meson_feature"Drew DeVault
This breaks wlroots when used as a meson subproject. This reverts commit dea311992eb4ff3e343c3cf5b0603034223d2a42, reversing changes made to 6db9c4b74667c1d917d720f5e96985a2461569fb.
2018-08-22Install headers explicitlyScott Anderson
2018-08-22Use new options for X11 backend and XwaylandScott Anderson
2018-07-29reintroduce xwayland is_unmanagedMarkus Ongyerth
153f37bdf57c61e7fb09162a6791afe8b9b4d0ef (#1145) removed the wlr_xwayland_is_unamanged function while fixing OR, because it was belieived that it's supposed to work around the broken OR handling. This was a misunderstanding. is_unmanaged is (while sort of a hack) intended to work around inherent differences between "real" X sessions and our Xwayland/wayland situation. The main reason it exists is to support applications like rofi and dzen, while not handing focus to other OR windows (which should *not* be required). Traditionally, these applications just grabbed input from X and didn't need to be focused by any logic in the WM. Which of course doesn't work in wayland compositors. So we have to give them focus in some way. Giving *every* OR window focus, breaks other applications that don't expect focus to change. A testcase that was pointed out to me where wlr_xwayland_is_unamanged was breaking things is https://github.com/swaywm/sway/issues/2128 (syncplay, gitk, gitgui) Supposedly it broke using keyboard to navigate the menus. I can't reproduce this with this patch. The popups can be navigated as long as the parent has focus.
2018-07-27Merge pull request #1127 from emersion/surface-precommitDrew DeVault
surface: add wlr_surface_role.precommit
2018-07-21Revert "Merge pull request #1153 from emersion/include-config"Drew DeVault
This reverts commit ef0a6ea4d2934ec014d791150c42348061ec4f7f, reversing changes made to 8d03bc9178d8544cbcd24293ece6ac9f1698e602.
2018-07-21Always include config.hemersion
2018-07-19Introduce set_hints event for xwaylandRyan Dwyer
2018-07-18xwayland: make xwm_surface_activate staticemersion
2018-07-18xwayland: handle override_redirect flag changesemersion
The override_redirect flag can change on configure notify and on map notify. This adds an event to know when it changes. This removes wlr_xwayland_surface_is_unmanaged which was wrongly using the window type to decide whether the view should be unmanaged. A similar patch was proposed to Weston, but has never been merged upstream [1]. [1]: https://patchwork.freedesktop.org/patch/211161/
2018-07-15surface: add wlr_surface_role.precommitemersion
This allows to emit the unmap event before the surface becomes actually unmapped for most shells.
2018-07-11Missed some old wlr_log callsDrew DeVault
2018-07-11Merge pull request #1116 from emersion/surface-roleDrew DeVault
surface: replace wlr_surface_set_role_committed with wlr_surface_role
2018-07-09util: add wlr_ prefix to log symbolsemersion
2018-07-07surface: replace wlr_surface_set_role_committed with wlr_surface_roleemersion
2018-07-03fix style issueArmin Preiml
2018-07-03fix: add stack update on focus changeArmin Preiml
Enable the stack update again for focus changes on non-focusable views.
2018-06-29fix: tabs instead of spacesArmin Preiml
2018-06-29do not send focus request to a window that doesn't allow thisArmin Preiml
2018-06-25xwm: fix use-after-free involving parents/childrenDominique Martinet
Happens when e.g. closing gimp. ==24039==ERROR: AddressSanitizer: heap-use-after-free on address 0x6150001a7a78 at pc 0x7f09b09f1bb2 bp 0x7ffcf0237bf0 sp 0x7ffcf0237be0 WRITE of size 8 at 0x6150001a7a78 thread T0 #0 0x7f09b09f1bb1 in wl_list_remove ../util/signal.c:55 #1 0x7f09b094cf03 in xwayland_surface_destroy ../xwayland/xwm.c:295 #2 0x7f09b0950245 in xwm_handle_destroy_notify ../xwayland/xwm.c:717 #3 0x7f09b095304a in x11_event_handler ../xwayland/xwm.c:1149 #4 0x7f09b0c68f01 in wl_event_loop_dispatch src/event-loop.c:641 #5 0x7f09b0c67601 in wl_display_run src/wayland-server.c:1260 #6 0x40a2f4 in main ../sway/main.c:433 #7 0x7f09b011018a in __libc_start_main (/lib64/libc.so.6+0x2318a) #8 0x40b749 in _start (/opt/wayland/bin/sway+0x40b749) 0x6150001a7a78 is located 120 bytes inside of 496-byte region [0x6150001a7a00,0x6150001a7bf0) freed by thread T0 here: #0 0x7f09b2b58880 in __interceptor_free (/lib64/libasan.so.5+0xee880) #1 0x7f09b094d1a1 in xwayland_surface_destroy ../xwayland/xwm.c:315 #2 0x7f09b0950245 in xwm_handle_destroy_notify ../xwayland/xwm.c:717 #3 0x7f09b095304a in x11_event_handler ../xwayland/xwm.c:1149 #4 0x7f09b0c68f01 in wl_event_loop_dispatch src/event-loop.c:641 #5 0x7f09b0c67601 in wl_display_run src/wayland-server.c:1260 #6 0x40a2f4 in main ../sway/main.c:433 #7 0x7f09b011018a in __libc_start_main (/lib64/libc.so.6+0x2318a) #8 0x40b749 in _start (/opt/wayland/bin/sway+0x40b749) previously allocated by thread T0 here: #0 0x7f09b2b58e50 in calloc (/lib64/libasan.so.5+0xeee50) #1 0x7f09b094b585 in xwayland_surface_create ../xwayland/xwm.c:119 #2 0x7f09b0950151 in xwm_handle_create_notify ../xwayland/xwm.c:706 #3 0x7f09b0953032 in x11_event_handler ../xwayland/xwm.c:1146 #4 0x7f09b0c68f01 in wl_event_loop_dispatch src/event-loop.c:641 #5 0x7f09b0c67601 in wl_display_run src/wayland-server.c:1260 #6 0x40a2f4 in main ../sway/main.c:433 #7 0x7f09b011018a in __libc_start_main (/lib64/libc.so.6+0x2318a) #8 0x40b749 in _start (/opt/wayland/bin/sway+0x40b749)
2018-05-26xwm: set the proper event mask in client messagesIlia Bozhinov
Fixes #927
2018-05-19Remove unused argumentScott Anderson
2018-05-10Fix Xwayland cleanupVincent Vanlaer
Fixes #964
2018-05-08Merge pull request #959 from VincentVanlaer/xwayland-lazyemersion
Add the option to start Xwayland only when a client connects
2018-05-08Make xwayland_finish* clean up wlr_xwaylandVincent Vanlaer
2018-05-07Clean up eventsVincent Vanlaer
2018-05-07Add beter handling for Xwayland failing at startupVincent Vanlaer
2018-05-06Allow xwayland to start lazilyVincent Vanlaer
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-04Use UTF-8 xwayland window title if availableemersion
2018-04-27xwayland: make utility windows unmanaged againemersion
7f70d244a9802207c258bd5da6d4ada5eb15484a made utility windows managed, because it made sense according to the spec. Turns out Firefox uses them for popups.
2018-04-27Merge pull request #918 from emersion/xwayland-unmapped-request-configureDrew DeVault
xwayland: forward configure events to compositor when unmapped
2018-04-26xwayland: fix some Chromium comboboxesemersion
Some comboboxes (e.g. in chrome://flags) are advertized as… Notifications of course! Yeah, notifications, the thing that tells you you have mail, your battery is low, or the dog has eaten your carpet. This isn't the first time we notice Chromium's X11 backend is pretty shit. Anyway, added notifications and splash screens to the list of unmanaged windows. Also removed utility windows because those should be managed, but maybe I'm wrong and I'll revert this.
2018-04-26xwayland: forward configure events to compositor when unmappedemersion
2018-04-26xwayland/selection: fix little memory leak on erroremersion
2018-04-26Merge pull request #882 from emersion/unprefix-local-symbolsDrew DeVault
Remove wlr_ prefix from local symbols
2018-04-26Use correct printf format specifiers for ssize_tGuido Guenther
This unbreaks the build on armhf that otherwise fails like ../xwayland/selection/incoming.c: In function 'xwm_data_source_write': ../include/wlr/util/log.h:34:17: error: format '%ld' expects argument of type 'long int', but argument 6 has type 'ssize_t {aka int}' [-Werror=format=] _wlr_log(verb, "[%s:%d] " fmt, wlr_strip_path(__FILE__), __LINE__, ##__VA_ARGS__) ^ ../xwayland/selection/incoming.c:34:2: note: in expansion of macro 'wlr_log' wlr_log(L_DEBUG, "wrote %zd (chunk size %ld) of %d bytes", ^~~~~~~ ../xwayland/selection/incoming.c:34:44: note: format string is defined here wlr_log(L_DEBUG, "wrote %zd (chunk size %ld) of %d bytes", ~~^ %d
2018-04-25Don't use the wlr_ prefix for static functionsemersion
2018-04-25Make sure we don't use others' prefixesemersion
2018-04-22Merge pull request #885 from emersion/remove-surface-subsurfaceDrew DeVault
Remove wlr_surface::subsurface, add wlr_subcompositor
2018-04-21xwayland: preserve the PATH variable n3rdopolis
Some systems don't have xwayland in /usr/bin, but in other paths. wlroots was unable to find Xwayland binaries outside of standard locations