Commit Graph

3588 Commits

Author SHA1 Message Date
emersion 4cb0697e57 data-device, primary-selection: add request_set_selection
This makes compositors able to block and/or customize set_selection requests
coming from clients. For instance, it's possible for a compositor to disable
rich selection content (by removing all MIME types except text/plain). This
commit implements the design proposed in [1].

Two new events are added to wlr_seat: request_set_selection and
request_set_primary_selection. Compositors need to listen to these events and
either destroy the source or effectively set the selection.

Fixes https://github.com/swaywm/wlroots/issues/1138

[1]: https://github.com/swaywm/wlroots/issues/1367#issuecomment-442403454
2019-01-24 11:38:23 +01:00
Ian Fan c41d01306d wlr_xdg_output_v1: move where name & description are sent 2019-01-22 22:58:52 +01:00
Brian Ashworth f3ff40a0eb wlr_xdg_output_v1: only send name/description once
The xdg-output protocol states that name and description should only be
sent once per output since they do not change.
2019-01-22 21:53:33 +01:00
Brian Ashworth 88ee102992 backend/wayland: fix resizing
Before resizing the egl window, the buffers must be swapped
2019-01-22 21:19:34 +01:00
emersion 365a75139c
Merge pull request #1485 from emersion/data-device-serial
primary-selection: add a serial argument
2019-01-22 20:13:01 +01:00
Drew DeVault 62658a318d
Merge pull request #1488 from Lahvuun/relative-constraints_fixes
Relative pointer/pointer constraints fixes
2019-01-22 13:51:10 -05:00
Ilya Trukhanov c4ce3d0a49 Check if client understands wl_pointer::frame
Fixes a crash in SDL2 applications when using locked pointer.

SDL2 expects a wl_pointer v1 interface and doesn't provide a handler for
the wl_pointer::frame event. This results in a "listener function for
opcode 5 of wl_pointer is NULL" abort in wayland-client.

Tested on Xonotic v0.8.2 with libSDL2 v2.0.9. Xonotic needs to be ran
with "SDL_VIDEODRIVER=wayland xonotic-sdl" for SDL2 to use the wayland
backend.
2019-01-22 19:50:01 +02:00
emersion 06467d2e12
primary-selection: add a serial argument
The serial needs to be bumped when X11 clients set the selection, otherwise
some Wayland clients (e.g. GTK) will overwrite it when they gain focus.
2019-01-21 19:23:40 +01:00
Drew DeVault b619ab4d34
Merge pull request #1484 from emersion/fix-indent
Fix indentation in various files
2019-01-21 12:01:37 -05:00
emersion a4eb90315e
Fix indentation in various files 2019-01-21 17:56:19 +01:00
Drew DeVault f3ef1f907c
Merge pull request #1482 from Hjdskes/x11_output_set_title
Add wlr_x11_output_set_title
2019-01-20 10:35:08 -05:00
Jente Hidskes edf0e49195
Add wlr_x11_output_set_title 2019-01-20 16:21:04 +01:00
Jente Hidskes 5b07e20f2a
wlr/backend/x11.h: add documentation
Copied from wlr/backend/wayland.h and modified accordingly.
2019-01-20 16:14:43 +01:00
Drew DeVault d4de2bd708
Merge pull request #1476 from emersion/fullscreen-shell
fullscreen-shell-v1: initial protocol implementation
2019-01-20 09:30:52 -05:00
Drew DeVault 0db2a687b7
Merge pull request #1479 from emersion/lost-crtc-state
backend/drm: fix state for outputs loosing their CRTC
2019-01-20 09:02:00 -05:00
emersion f04a725925
Merge pull request #1480 from RyanDwyer/noop-header
Add noop.h to include/wlr/backend/meson.build
2019-01-19 12:55:52 +01:00
Ryan Dwyer 53b29e5443 Add noop.h to include/wlr/backend/meson.build 2019-01-19 21:31:24 +10:00
emersion d4ffa5b7a6
backend/drm: fix state for outputs loosing their CRTC
When there aren't enough CRTCs for all outputs, we try to move a CRTC from a
disabled output to an enabled one. When this happens, the old output's state
wasn't changed, so the compositor thought it was still enabled and rendering.

This commit marks the old output as WLR_DRM_CONN_NEEDS_MODESET and sets its
current mode to NULL.
2019-01-19 10:18:03 +01:00
emersion 5dde2e794d
Merge pull request #1478 from Lahvuun/relative_pointer
Fix segfault in get_relative_pointer
2019-01-18 22:52:38 +01:00
Ilya Trukhanov 268cc450b6 Fix segfault in get_relative_pointer
Occurs on subsequent calls to
relative_pointer_manager_v1_handle_get_relative_pointer()

Steps to reproduce:
- run rootston
- run examples/relative-pointer
- switch to relative pointer more than once

Note: if done fast enough it may take more than two switches to crash.
2019-01-18 22:53:32 +02:00
Drew DeVault 3e21d0bd48
Merge pull request #1474 from emersion/meson-yield
meson: yield xwayland option
2019-01-18 08:05:23 -05:00
Drew DeVault 268c7e5cb6
Merge pull request #1475 from emersion/xwayland-shutdown
rootston: document why Xwayland is disconnected before clients
2019-01-18 08:04:37 -05:00
emersion 461360aff1
rootston: document why Xwayland is disconnected before clients 2019-01-18 12:20:04 +01:00
emersion bd5516d4ec
meson: yield xwayland option 2019-01-18 09:07:22 +01:00
Drew DeVault 0e0ba65bc0
Merge pull request #1473 from RyanDwyer/noop-backend
Introduce noop backend
2019-01-17 08:02:27 -05:00
Ryan Dwyer 9b4be5a595 Introduce noop backend
The noop backend is similar to headless, but it doesn't contain a
renderer. It can be used as a place to stash views for when there's no
physical outputs connected.
2019-01-17 20:13:55 +10:00
emersion 10b1de6e71
Merge pull request #1471 from SimulaVR/tinywl-lib-order
Fix tinywl linking order (#1463)
2019-01-16 16:44:46 +01:00
David Kraeutmann 4b3414e065 Fix tinywl linking order (#1463) 2019-01-16 16:39:14 +01:00
emersion dc9c91b0a4
Merge pull request #1461 from c-edw/feature/WLRToplevelAndPopup
Remove wlr_xdg_surface_send_close.
2019-01-15 09:09:08 +01:00
Connor E b1cdd2b4b3 Use assertions instead of guard. 2019-01-14 16:05:24 +00:00
Drew DeVault 10a2c4edec
Merge pull request #1462 from alexbakker/fix-soft-cursors
Fix software cursor rendering for tinywl and some examples
2019-01-13 15:45:08 -05:00
Alexander Bakker 776b6ce395 Fix software cursor rendering for tinywl and some examples 2019-01-13 21:39:56 +01:00
Connor E e7fff4f560 Remove wlr_xdg_surface_send_close. 2019-01-13 14:22:49 +00:00
emersion 8134d5b1e0
Merge pull request #1459 from swaywm/wl-output-title
Add wlr_wl_output_set_title
2019-01-12 00:13:54 +01:00
Drew DeVault d3d1437bc4 Add wlr_wl_output_set_title 2019-01-10 21:53:32 -05:00
Drew DeVault 9921f9b28d Remove unused struct from tinywl 2019-01-10 21:18:52 -05:00
emersion f245caac9e
Merge pull request #1457 from swaywm/xdg-shell
Update Wayland backend to xdg-shell stable
2019-01-10 16:16:49 +01:00
Drew DeVault 1840c8c130
Merge pull request #1455 from emersion/codespell
Fix a few typos
2019-01-10 09:18:39 -05:00
Drew DeVault 97af2464b7 Update Wayland backend to xdg-shell stable 2019-01-10 09:17:14 -05:00
emersion 0fafab87e3
Fix a few typos 2019-01-10 09:30:14 +01:00
Drew DeVault fe187fc887
Merge pull request #1454 from jbeich/freebsd
Simplify FreeBSD build
2019-01-07 15:24:28 -05:00
Jan Beich bfd0254485 Update FreeBSD build
- Switch to packages
- Drop unused dependencies
2019-01-07 08:26:16 +00:00
Jan Beich f80d174e8b Simplify evdev includes on FreeBSD by relying on up-to-date package
As evdev-proto is installed by CI some files have been missed:

 ../examples/pointer-constraints.c:2:10: fatal error: 'linux/input-event-codes.h' file not found
 #include <linux/input-event-codes.h>
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~
 ../examples/relative-pointer-unstable-v1.c:5:10: fatal error: 'linux/input-event-codes.h' file not found
 #include <linux/input-event-codes.h>
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~
2019-01-07 08:08:47 +00:00
Drew DeVault e61ea7706b
Merge pull request #1423 from emersion/data-control
Implement data-control-unstable-v1
2019-01-06 22:41:35 -05:00
emersion e1eceddecf
Merge pull request #1451 from emersion/relative-pointer-send
relative-pointer-v1: move pointer iteration in wlroots
2019-01-06 14:39:20 +01:00
emersion f71cf15aad
relative-pointer-v1: move pointer iteration in wlroots
This makes sure we always send events to the right client.
2019-01-06 12:17:31 +01:00
emersion 86f263a0b8
fullscreen-shell-v1: initial protocol implementation 2019-01-06 12:12:06 +01:00
emersion aebd74243f
Merge pull request #1448 from myfreeweb/fix-retroarch-crash
rootston: fix crash with fullscreen surfaces
2019-01-04 16:02:33 +01:00
Greg V 57edfacba4 rootston: fix crash with fullscreen surfaces
Fixes fullscreen mode in e.g. RetroArch and ioquake3.
2019-01-04 16:13:04 +03:00
emersion 610f5bfc77
Merge pull request #1432 from ForTheReallys/relative-pointers
Relative pointers
2019-01-04 13:42:53 +01:00