Scott Anderson
1a3921d4d4
Remove unused argument
7 years ago
Vincent Vanlaer
72a75b3a72
Fix Xwayland cleanup
...
Fixes #964
7 years ago
emersion
8e831cd416
Merge pull request #959 from VincentVanlaer/xwayland-lazy
...
Add the option to start Xwayland only when a client connects
7 years ago
Vincent Vanlaer
119a6cf35c
Make xwayland_finish* clean up wlr_xwayland
7 years ago
Vincent Vanlaer
80586b8f6b
Clean up events
7 years ago
Vincent Vanlaer
446ea3a340
Add beter handling for Xwayland failing at startup
7 years ago
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
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
c119c43b48
xwayland/selection: fix little memory leak on error
7 years ago
Drew DeVault
fac2c3e25f
Merge pull request #882 from emersion/unprefix-local-symbols
...
Remove wlr_ prefix from local symbols
7 years ago
Guido Guenther
085452f9d9
Use correct printf format specifiers for ssize_t
...
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
7 years ago
emersion
625a7a48dc
Don't use the wlr_ prefix for static functions
7 years ago
emersion
71ca45e2c0
Make sure we don't use others' prefixes
7 years ago
Drew DeVault
12bf39a715
Merge pull request #885 from emersion/remove-surface-subsurface
...
Remove wlr_surface::subsurface, add wlr_subcompositor
7 years ago
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
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
67dec2da2b
xwayland: fix incoming incr transfers
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
emersion
d7e03c7adc
xwayland: fix outgoing incr transfers
7 years ago
emersion
8f84c5b05f
xwayland: only send one target at a time
7 years ago
emersion
103e59703f
xwayland: improve xwm_selection_send_notify
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
cadfccf1fd
xwayland: use a separate window for drag'n'drop
7 years ago
emersion
79dd4a0ff9
xwayland: receive DND_FINISHED
7 years ago
emersion
ca2a73b90d
xwayland: allow drag data source transfer after drag ends
7 years ago
emersion
5dc5f446a8
xwayland: send drag'n'drop action to data source
7 years ago
emersion
6fd50947bd
xwayland: improve error handling
7 years ago
emersion
3effe153bc
xwayland: make wayland → xwayland work
7 years ago
emersion
30babb3865
xwayland: send DND_LEAVE
7 years ago
emersion
e208f8dd8c
xwayland: fixes events not flushed causing issues with GTK apps
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
73394deb76
xwayland: send DND_POSITION
7 years ago
emersion
0d7a81ccdf
xwayland: send DND_ENTER
7 years ago
emersion
b6c1760de5
xwayland: create DND window, add DND atom helpers
7 years ago
emersion
e78252adab
Fix segfault in xwm_read_data_source
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
Drew DeVault
8c1cc45c7d
Merge pull request #629 from emersion/safe-wl-resource-get-user-data
...
Wrap wl_resource_get_user_data into safer helper functions
7 years ago
Rodrigo Lourenço
168e26489a
Add missing dependencies
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
emersion
38ed3b4245
seat: rename selection_source to selection_data_source, remove unused data_device
7 years ago
Dominique Martinet
6ed1884c84
xwm_get_render_format: fix typo in error message
7 years ago
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
7 years ago
Dominique Martinet
a6fb4b007b
xwm_get_render_format: check NULL return value
7 years ago
Dominique Martinet
41649a1f9a
xwm_selection_finish: set NULL seat for xwayland
...
While they could eventually be split appart, the current approach could lead to
double wl_list_remove() calls on selections which is incorrect
7 years ago
Dominique Martinet
e0eafa0429
xwayland: listen to wlr_seat destroy signal
7 years ago
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
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
Dominique Martinet
e5dd98c7f5
xwayland/selection: handle wl_array_add failure better
...
Just abort and deregister instead of trying to throw some input out,
which would have lead to inconsistent paste
7 years ago
Dominique Martinet
3eb4fa15ee
ENOMEM checks: consistently check wl_array_add return
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
emersion
1c9b09ca92
Add logging to selection message handlers
7 years ago
emersion
b3072f81fe
Allow calling xwm_set_seat with a NULL seat
7 years ago
Björn Esser
57a09c8ca4
config: Put all defines into config.h
7 years ago
emersion
998267e291
Fix primary selection not sent to xwayland when clipboard is empty
7 years ago
emersion
4a11609b76
Fix use-after-free when destroying selection sources
7 years ago
emersion
cdc21cdcff
Properly free selection sources
7 years ago
emersion
6dffaa7bb7
Implement xwayland primary selection sync
7 years ago
emersion
810c4b119b
Fix clipboard from xwayland to wayland
7 years ago