aboutsummaryrefslogtreecommitdiff
path: root/xwayland/xwm.c
AgeCommit message (Collapse)Author
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-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-25Don't use the wlr_ prefix for static functionsemersion
2018-04-21Fix segfaults in wlr_surface_is_*emersion
2018-04-13xwayland: emit new_surface when unmappedemersion
2018-04-11Always unmap before destroying surfaceemersion
2018-04-08Add wlr_xwayland_surface_pingemersion
2018-04-08xwayland: add _NET_WM_WINDOW_TYPE_MENU supportemersion
2018-04-06Emit xwayland unmap signal before unmappingemersion
This allows compositors to access the surface being unmapped. This is also more consistent with the destroy signal.
2018-04-03xwayland: refactor selection codeemersion
2018-04-03Merge branch 'master' into xwayland-dndemersion
2018-04-03xwayland: use strndup in xwm_get_atom_nameemersion
2018-04-02Missed a spotDrew DeVault
2018-04-02xwayland: support multiple wayland → xwayland selection transfersemersion
This fixes drag'n'drop support for Chromium.
2018-04-02Merge branch 'master' into xwayland-dndemersion
2018-03-31xwayland: specify xwm cursor stride in bytesemersion
2018-03-30xwayland: rename map_notify to map for consistencyemersion
2018-03-28xwayland: improve error handlingemersion
2018-03-28xwayland: make wayland → xwayland workemersion
2018-03-28xwayland: print names of unsupported properties and client messagesemersion
2018-03-28xwayland: send DND_DROPemersion
2018-03-27xwayland: create DND window, add DND atom helpersemersion
2018-03-04xwm.h: fix guard ifdef and remove wlr_ prefix from xwm_atoms_containsDominique Martinet
2018-03-03xcb errors: init errors context at startDominique Martinet
`xcb_errors_context_new` is more than just a malloc, it does a few xcb requests so we benefit from not generating a new context everytime
2018-03-03move xwm.h out of include/wlrDominique Martinet
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-03xcb error: get unhandled events namesDominique Martinet
This provides more friendly debug messages for unhandled events, for example: [xwayland/xwm.c:1033] unhandled X11 event: FocusOut (10) [xwayland/xwm.c:1033] unhandled X11 event: MappingNotify (34)
2018-03-03xcb error: always log sequenceDominique Martinet
2018-03-03xcb errors: address declare-assign styleDominique Martinet
2018-03-03xcb errors: optional dependency with improved messagesDominique Martinet
Now message can look like: [xwayland/xwm.c:991] xcb error: op ChangeProperty (no minor), code Window (no extension), value 6291465 instead of this one when the lib is not available: [xwayland/xwm.c:999] xcb error: op 18:0, code 3, sequence 103, value 6291465 The value in case of Window is the window id, so we can tell what function applied on which window which is a good start. The sequence ought to be able to tell us more precisely which invocation it was, but we never log it when calling functions so is useless in practice and no longer logged.
2018-03-03xcb errors: log raw valuesDominique Martinet
2018-03-01xwm: fix call of xcb_change_window_attributes for old gcc versionsDominique Martinet
gcc 6.3.0 (at least) complains about &values: expected ‘const uint32_t * {aka const unsigned int *}’ but argument is of type ‘uint32_t (*)[1] {aka unsigned int (*)[1]}’ Reported by thorwil on irc
2018-02-26add xwayland unmanaged tests to support dmenuMarkus Ongyerth
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-23xwayland: fix some use-after-free in xwmemersion
2018-02-19Revert "ELF Visibility"Drew DeVault
2018-02-19Explicitly export EFL symbolsScott Anderson
2018-02-13Wrap wl_resource_get_user_data into safer helper functionsemersion
This ensures we're not incorrectly casting a resource. Fixes #628
2018-02-12Reformat all #include directivesemersion
2018-02-12Make wlr_signal_emit_safe privateemersion
2018-02-12Add wlr_signal_emit_safeemersion
2018-01-21Merge remote-tracking branch 'upstream/master' into output-damageemersion
2018-01-21rootston: fix damage tracking for fullscreen xwayland viewsemersion
2018-01-21style: add else keywords in xwm.cJohannes Schramm
2018-01-21style: include brackets for if/while/for, even if it's a single statementJohannes Schramm