Armin Preiml
f93234d6f5
fix: tabs instead of spaces
7 years ago
Armin Preiml
d0b3aed584
do not send focus request to a window that doesn't allow this
7 years ago
Dominique Martinet
4a1c9a1925
xwm: fix use-after-free involving parents/children
...
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)
7 years ago
Ilia Bozhinov
5dd1a838f3
xwm: set the proper event mask in client messages
...
Fixes #927
7 years ago
emersion
cf10cbc00c
Use UTF-8 xwayland window title if available
7 years ago
emersion
001045e47a
xwayland: make utility windows unmanaged again
...
7f70d244a9
made utility windows
managed, because it made sense according to the spec. Turns out
Firefox uses them for popups.
7 years ago
Drew DeVault
04af09862a
Merge pull request #918 from emersion/xwayland-unmapped-request-configure
...
xwayland: forward configure events to compositor when unmapped
7 years ago
emersion
7f70d244a9
xwayland: fix some Chromium comboboxes
...
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.
7 years ago
emersion
af668ceb7c
xwayland: forward configure events to compositor when unmapped
7 years ago
emersion
625a7a48dc
Don't use the wlr_ prefix for static functions
7 years ago
emersion
3bce5dfc9f
Fix segfaults in wlr_surface_is_*
7 years ago
emersion
fa02e30adf
xwayland: emit new_surface when unmapped
7 years ago
emersion
8dec7036d0
Always unmap before destroying surface
7 years ago
emersion
17d0440b75
Add wlr_xwayland_surface_ping
7 years ago
emersion
c55ad11d96
xwayland: add _NET_WM_WINDOW_TYPE_MENU support
7 years ago
emersion
8b07a4d055
Emit xwayland unmap signal before unmapping
...
This allows compositors to access the surface being unmapped. This
is also more consistent with the destroy signal.
7 years ago
emersion
591ea27cf9
xwayland: refactor selection code
7 years ago
emersion
58ac05c276
Merge branch 'master' into xwayland-dnd
7 years ago
emersion
1cd7ff7d3a
xwayland: use strndup in xwm_get_atom_name
7 years ago
Drew DeVault
506acbdecd
Missed a spot
7 years ago
emersion
92b74071d0
xwayland: support multiple wayland → xwayland selection transfers
...
This fixes drag'n'drop support for Chromium.
7 years ago
emersion
8836b4f024
Merge branch 'master' into xwayland-dnd
7 years ago
emersion
692f1746cf
xwayland: specify xwm cursor stride in bytes
7 years ago
emersion
865b0aa123
xwayland: rename map_notify to map for consistency
7 years ago
emersion
6fd50947bd
xwayland: improve error handling
7 years ago
emersion
3effe153bc
xwayland: make wayland → xwayland work
7 years ago
emersion
bde859452d
xwayland: print names of unsupported properties and client messages
7 years ago
emersion
2a34b154e6
xwayland: send DND_DROP
7 years ago
emersion
b6c1760de5
xwayland: create DND window, add DND atom helpers
7 years ago
Dominique Martinet
2910972b25
xwm.h: fix guard ifdef and remove wlr_ prefix from xwm_atoms_contains
7 years ago
Dominique Martinet
d9a724c4a2
xcb errors: init errors context at start
...
`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
7 years ago
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)
7 years ago
Dominique Martinet
f481791669
xcb error: get unhandled events names
...
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)
7 years ago
Dominique Martinet
8026cd2a06
xcb error: always log sequence
7 years ago
Dominique Martinet
6f9da97565
xcb errors: address declare-assign style
7 years ago
Dominique Martinet
f8428d1063
xcb errors: optional dependency with improved messages
...
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.
7 years ago
Dominique Martinet
2a9ba5c8dc
xcb errors: log raw values
7 years ago
Dominique Martinet
5ec06dcecd
xwm: fix call of xcb_change_window_attributes for old gcc versions
...
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
7 years ago
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.
7 years ago
emersion
b1e2718dd7
xwayland: fix some use-after-free in xwm
7 years ago
Drew DeVault
1d9be89e2d
Revert "ELF Visibility"
7 years ago
Scott Anderson
86269052eb
Explicitly export EFL symbols
7 years ago
emersion
392d54a35d
Wrap wl_resource_get_user_data into safer helper functions
...
This ensures we're not incorrectly casting a resource.
Fixes #628
7 years ago
emersion
c2e1474010
Reformat all #include directives
7 years ago
emersion
36ead80cd1
Make wlr_signal_emit_safe private
7 years ago
emersion
5e58d46cc1
Add wlr_signal_emit_safe
7 years ago
emersion
59c53e8333
Merge remote-tracking branch 'upstream/master' into output-damage
7 years ago
emersion
f704c3d42b
rootston: fix damage tracking for fullscreen xwayland views
7 years ago
Johannes Schramm
47eb478c35
style: add else keywords in xwm.c
7 years ago
Johannes Schramm
dcc743047b
style: include brackets for if/while/for, even if it's a single statement
7 years ago
emersion
eeffe11337
surface: add wlr_surface new_subsurface and wlr_subsurface destroy events
7 years ago
emersion
65b28b3823
xwayland: render children window in fullscreen
7 years ago
Dominique Martinet
6ed1884c84
xwm_get_render_format: fix typo in error message
7 years ago
Dominique Martinet
a6fb4b007b
xwm_get_render_format: check NULL return value
7 years ago
Dominique Martinet
bb0d888f25
xwayland selection: further cleanup on Xwayland exit
...
This is necessary if our last primary/clipboard selection was on Xwayland,
and we try to paste to native wayland after Xwayland died
7 years ago
Dominique Martinet
f8a346380c
xwayland xwm_get_render_format: free reply
7 years ago
Dominique Martinet
dad9543c51
Xwayland: remove xwm from selection seat listeners on destroy
7 years ago
Björn Esser
ff13849624
config: Avoid clash with other config-headers
7 years ago
emersion
a79dc7df51
Merge pull request #524 from acrisci/role-committed
...
[wip] Role committed
7 years ago
Tony Crisci
5c5f0611c4
xwayland: role committed
7 years ago
Tony Crisci
e809250171
Merge pull request #519 from emersion/xwayland-primary-selection
...
Implement xwayland primary selection sync
7 years ago
Björn Esser
57a09c8ca4
config: Put all defines into config.h
7 years ago
emersion
6dffaa7bb7
Implement xwayland primary selection sync
7 years ago
emersion
5584f42c1e
Destroy xwm selection window on destroy
7 years ago
emersion
6b42bfad18
Merge branch 'master' into xwm-selection
7 years ago
emersion
75ef7860bb
Merge branch 'master' into display-destroy
7 years ago
emersion
a4094c82c7
Support selection MIME types from wayland to xwayland
7 years ago
emersion
6ef0219763
Merge branch 'master' into xwm-selection
7 years ago
Tony Crisci
ea4b871e16
xwm: user custom event handler
7 years ago
emersion
c67a5824b8
Merge branch 'master' into display-destroy
7 years ago
Tony Crisci
52cda5653b
Revert "xwm: only take clipboard if window is focused"
...
This reverts commit e3542d879d
.
7 years ago
Tony Crisci
35188834db
Merge branch 'master' into feature/xwm-selection
7 years ago
Tony Crisci
31bafc2461
xwm: use edges enum
7 years ago
emersion
b06535718d
Do not destroy wl_client in wlr_xwayland_finish
7 years ago
Tony Crisci
86df909256
xwayland: remove xwayland param from xsurface methods
7 years ago
Tony Crisci
e3542d879d
xwm: only take clipboard if window is focused
7 years ago
Tony Crisci
b0683874e9
xwm: send selection data
7 years ago
Tony Crisci
ea6f77b484
xwm: get selection data
7 years ago
emersion
dcb168914e
Merge branch 'master' into fullscreen
7 years ago
Tony Crisci
1f976a0f25
xwm: xfixes selection notify
7 years ago
Tony Crisci
e786d17f63
Merge branch 'master' into feature/xwm-selection
7 years ago
emersion
151901123f
Merge branch 'master' into refactor-wlr-list
7 years ago
emersion
bc68f26960
Fix evince fullscreen under xwayland
7 years ago
Tony Crisci
444257b6b1
xwm: selection init
7 years ago
Tony Crisci
3880fb0a53
xwm: selection stubs
7 years ago
Tony Crisci
0672d9cb52
bug: properly send WM_STATE
7 years ago
emersion
016744ef4d
Refactor wlr_list inside wlroots
7 years ago
emersion
26dadacb71
Add wl_shell support for maximized views
7 years ago
emersion
758514fe5d
Fix xwayland _NET_WM_STATE handling
7 years ago
emersion
900fb326f7
Fixes segfault when no xcb_render_pictforminfo_t is available
7 years ago
emersion
bb76f52640
Fetch xcb_render_pictformat_t at startup
7 years ago
emersion
3f4ad47421
Use compositor theme for xwm cursor
7 years ago
emersion
ddd7b7711c
Load xwm cursor from theme
7 years ago
emersion
4254c28138
Free xwm cursor in xwm_destroy
7 years ago
emersion
bdaf66a292
Set xwayland root cursor
7 years ago
Dominique Martinet
bf225a60d8
rootston: flush 'close' command on Xwayland
...
The close would otherwise wait for another xcb event to happen.
Flushing helps 'close' feel reactive.
7 years ago
Tony Crisci
ce72a687ce
xwm: cleanup send focus window logic
7 years ago
Tony Crisci
88316e7921
xwm: get rid of xcb call macro
7 years ago
Tony Crisci
942a19a069
xwm: cleanup and consistent naming
7 years ago
Tony Crisci
680f8a169d
xwm: remove duplicate calls in net wm state read
7 years ago
Tony Crisci
325def3841
xwm: create colormap and visual depth detection
7 years ago
Tony Crisci
be297d9d14
xwm: net wm state
7 years ago
Tony Crisci
6a4290b86a
xwm: moveresize events
7 years ago
Tony Crisci
4a106648c4
xwm: remove incorrect implementation of net wm state
7 years ago
Tony Crisci
32b848bd46
xwm: handle focus in
7 years ago
Tony Crisci
930ab06857
xwm: send net_wm_state
7 years ago
Tony Crisci
263279b7e0
xwm: rewrite xwm initialization
7 years ago
Tony Crisci
ff0006d0f0
xwm: refactor client message handler
7 years ago
Tony Crisci
a861b380ef
xwm: add net active window to supported
7 years ago
Tony Crisci
7914f4bda9
xwm: dont focus override redirect windows
7 years ago
Tony Crisci
d6a1e6fd79
xwm: dont flush if no events
7 years ago
Tony Crisci
b443b9a998
xwm: set net active window on xwm create
7 years ago
Tony Crisci
0d1dd84a48
xwm: improve activation and dont send focus twice
7 years ago
Tony Crisci
1be650d78a
xwm: only emit unmap notify once
7 years ago
Tony Crisci
e5ee01254b
xwm: map and unmap notify
7 years ago
Tony Crisci
22435e00c5
xwm: 80col cleanup
7 years ago
Tony Crisci
7643765e7b
xwm: unpaired surface list cleanup
7 years ago
Alexander Taylor
3277c6d994
Fix order of WM_HINTS and WM_PROTOCOLS in xwm atom_map
7 years ago
Tony Crisci
2ff94d0036
xwm: get rid of displayable surfaces list
7 years ago
Tony Crisci
79e14f65e0
xwm: fix lists
7 years ago
Tony Crisci
fa94a06fd6
xwm: handle configure notify
7 years ago
Tony Crisci
a9d70a6256
xwm: set window attributes on create
7 years ago
Tony Crisci
a3f2754668
xwm: add surface to rootston on surface commit
7 years ago
Tony Crisci
c666d34d2d
xwm: add missing atoms to list
7 years ago
Tony Crisci
79978383ba
xwm: net active window
7 years ago
Tony Crisci
03bd34e826
xwm: atom cleanup
7 years ago
Tony Crisci
2ca502b546
Merge branch 'master' into feature/xwm-rewrite
7 years ago
Tony Crisci
0f7f6b1373
xwm: refactor xwm init
7 years ago
Tony Crisci
1dbe314937
Merge branch 'master' into feature/data-device-selection
7 years ago
Drew DeVault
c5fff08f8a
Forgot to rename these
7 years ago
Tony Crisci
fb25adae36
xwayland: use xfixes extension
7 years ago
Drew DeVault
6aafc2f61a
Merge pull request #223 from versusvoid/xwayland-activate
...
Activate only active xwayland views
7 years ago
Drew DeVault
528f000a7a
Deactivate xwayland when focus leaves there
7 years ago
Versus Void
c22b02618c
Flush xwayland surface configuration
...
Fix #215
7 years ago
emersion
12b9b1a4bd
Copy xcb_icccm structs into wlroots
7 years ago
emersion
454a6a902b
Parse _MOTIF_HINTS
7 years ago
emersion
fc61e82795
Use pointers for xwayland hints and size_hints
7 years ago
emersion
267f24753f
Add support for WM_HINTS
7 years ago
emersion
ed9796ec68
xwayland: parse normal hints
7 years ago
emersion
ef5914bdb6
xwayland: add wlr_xwayland_surface->motif_hints
7 years ago
emersion
0c22ad09a7
xwayland: request hints
7 years ago
Versus Void
c5df6ca900
Fix memory leaks
7 years ago
emersion
7f5d0624d6
Add x, y, width, height arguments to wlr_xwayland_surface_configure
7 years ago
emersion
4ccb83bf33
xwayland: add wlr_xwayland_surface_close
7 years ago
emersion
5002d968f3
xwayland: add window_type support
7 years ago
emersion
b78ae54158
xwayland: add pid support
7 years ago
emersion
97346e7a1b
xwayland: add state support
7 years ago
emersion
7c9f3240f6
xwayland: add set_parent event
7 years ago
emersion
d8c86431e0
xwayland: add signals for configure, set_{class,title}
7 years ago
emersion
f2b03b2ec1
Add reply->type checks, add XCB_ATOM_WM_TRANSIENT_FOR
7 years ago