Commit graph

3673 commits

Author SHA1 Message Date
emersion
9622efd6db Fix unknown cursor in layer-shell example 2018-09-26 17:01:01 +02:00
nyorain
7b52388424 Rework session handling
Sessions can now be retrieved from a backend in a more general manner.
Multi-backend gets back its `session` field that contains the session
if one was created, removing the interfacing from multi backend with the
drm backend directly. This adds the possibility to use sessions even
without the drm backend.

It additionally fixes the bug that 2 session objects got created when
WLR_BACKENDS were set to "libinput,drm".

To allow vt switching without drm backend (and drm fd) on logind, start
listening to PropertiesChanged signals from dbus and parse the session
"Active" property when no master fd was created (this does not change
current drm backend behaviour in any way).
2018-09-24 23:35:09 +02:00
random human
84ecfb546b
wlr_surface: more consistent argument naming in surface_update_damage 2018-09-25 02:06:02 +05:30
random human
5eca5d8946
wlr_surface: remove duplicated damage calculation
The damage is already calculated and stored in surface->buffer_damage
by surface_update_damage().
2018-09-25 01:38:09 +05:30
random human
3fd5da58a0
wlr_surface: fix surface damage on resize
Instead of damaging the buffer, damage only the surface on surface (not
buffer) resize.
2018-09-25 01:25:30 +05:30
random human
971cbeaa19
wlr_surface: fix surface damage transformation
Damage tracking on transformed surfaces now work (see
"weston-simple-damage --rotation=90"), using either of buffer or surface
damage.
2018-09-24 22:03:41 +05:30
emersion
5b687b4a96
Merge pull request #1260 from RyanDwyer/xwayland-set-decorations
xwayland: Introduce set_decorations event
2018-09-24 12:48:57 +02:00
Ryan Dwyer
44613c0fa6 xwayland: Introduce set_decorations event 2018-09-24 20:14:02 +10:00
emersion
f5658c2ca2
Merge pull request #1257 from sghctoma/fix-protocol_meson
Fix partial dependency in protocol/meson.build
2018-09-22 10:12:24 +02:00
emersion
4cc2fb4bdf
Merge pull request #1256 from sghctoma/fbsd-multiseat-fixes
Apply multiseat fixes to FreeBSD direct backend
2018-09-22 02:09:53 +02:00
sghctoma
9383e1f76c Apply multiseat fixes to FreeBSD direct backend
This commit applies the multiseat fixes that are part of PR #1063 (
commits 964e0a50 and 47895d2) to the FreeBSD direct backend.
2018-09-21 15:02:32 +02:00
sghctoma
6fd1c63a69 Fix partial dependency in protocol/meson.build
External dependencies in Meson do not have include_directories,
therefore "includes: true" means nothing for the wayland-client partial
dependency. Because of this, the -I CFLAGs for wayland-client are not
used by the build command. This commit fixes this by using compile_args.
2018-09-21 14:13:44 +02:00
emersion
842368ec98
Merge pull request #1253 from RyanDwyer/multi-for-each-backend
Introduce wlr_multi_for_each_backend
2018-09-19 14:15:16 +02:00
Drew DeVault
33a3d8a555
Merge pull request #1252 from emersion/fatal-unknown-buffer
buffer: disconnect clients that commit an unknown buffer type
2018-09-19 08:02:31 -04:00
Drew DeVault
adbf21eb83
Merge pull request #1245 from emersion/capture-disable-hw-cursors
Disable hardware cursors when capturing output
2018-09-19 08:01:38 -04:00
Ryan Dwyer
691a63d66b Introduce wlr_multi_for_each_backend 2018-09-19 21:53:51 +10:00
emersion
ac28d701c0 buffer: disconnect clients that commit an unknown buffer type
If this happens, something went really wrong and we should do more
than just logging an error. See [1].

[1]: https://gitlab.freedesktop.org/wayland/weston/issues/148
2018-09-19 11:29:48 +02:00
Drew DeVault
3693fae0c4
Merge pull request #1248 from emersion/assert-all-the-things
Assert all the things!
2018-09-18 14:44:46 -04:00
Las
afa2e399aa Fix implicit conversion of floats to ints in calls to pixman_region32_contains_point
I do not think the conversion is specifically defined, but on my system and SirCmpwn's
the floats are rounded instead of floored, which is incorrect in this case, since
for a range from 0 to 256, any value greater or equal to 0 and less than 256 is valid.
I.e. [0;256[, or 0 <= x < 256, but if x is e.g. -0.1, then it will be rounded to 0, which
is invalid. The correct behavior would be to floor to -1.
2018-09-18 13:05:44 +02:00
emersion
3df602a62d export-dmabuf: disable hardware cursors if desired
Also make the frame resource inert when sending "ready".
2018-09-18 11:48:04 +02:00
emersion
928572c14d output: add wlr_output_set_hardware_cursors_enabled
And use it in screencopy.
2018-09-18 11:37:37 +02:00
emersion
139a905924 backend/drm: add assertions 2018-09-18 11:06:01 +02:00
emersion
02231554c8 backend/x11: add assertions 2018-09-18 11:06:01 +02:00
emersion
e98cb7c5ab backend/wayland: add assertions 2018-09-18 11:06:01 +02:00
emersion
07ea98dab9 backend/session: add assertions 2018-09-18 11:06:01 +02:00
emersion
6c05f17a25 backend/multi: add assertions 2018-09-18 11:06:01 +02:00
emersion
7bcf0d9599 backend/libinput: add assertions 2018-09-18 11:05:55 +02:00
emersion
bc34486c04 backend/headless: add assertions 2018-09-18 11:01:53 +02:00
emersion
9288c827aa
Merge pull request #1249 from arandomhuman/keymap_fd
Send unique keymap file descriptors
2018-09-18 10:58:38 +02:00
random human
40a43003a1
Send unique keymap file descriptors
To prevent wl_keyboard keymap being written to by clients, use a unique
file descriptor for each wl_keyboard resource.

Reference: weston, commit 76829fc4eaea329d2a525c3978271e13bd76c078
2018-09-18 13:58:36 +05:30
Las
fa2e6e7d9d Implement pointer-constraints protocol in wlroots and rootston 2018-09-18 10:14:33 +02:00
Las
437f538772 Make wlr_seat->data in rootston point to the wrapping roots_seat 2018-09-18 10:14:33 +02:00
Las
6367e0bc93 Add wlr_surface::input_region member
This is analogous to the opaque_region member.

In addition the code for setting the opaque region is cleaned up.
2018-09-18 10:14:33 +02:00
Las
57690594f4 Remove extraneous indentation and conform to coding style 2018-09-18 10:14:33 +02:00
Las
59dd1dddba Update pointer focus when cycling focus 2018-09-18 10:14:33 +02:00
Las
d446c53fe1 Make (wlr_)seat_client_from_pointer_resource public 2018-09-18 10:14:33 +02:00
Las
cf9debf82e Make roots_cursor::pointer_view available even if there is a surface
To find out whether there was a surface or not before a movement, the member
roots_cursor::wlr_surface has been added.
2018-09-18 10:14:33 +02:00
Las
252bcce2f3 Add focus change event for seats 2018-09-18 10:14:33 +02:00
Drew DeVault
50a8758313
Merge pull request #1250 from arandomhuman/wlr_session
Add support for WLR_SESSION env variable
2018-09-17 19:52:41 -04:00
random human
572dfcdba7
Add support for WLR_SESSION env variable
Valid values are "logind"/"systemd" and "direct". If WLR_SESSION is set,
only its value is potentially tried; it will not try any other option.
2018-09-18 05:06:32 +05:30
Drew DeVault
8b112730ca
Merge pull request #1246 from emersion/output-layout-no-mode
output-layout: don't expose outputs without a mode
2018-09-17 12:47:00 -04:00
emersion
9f76263404 output-layout: don't expose outputs without a mode 2018-09-17 15:22:33 +02:00
Drew DeVault
83397e6999
Merge pull request #1237 from emersion/disabled-crtc
Steal CRTCs from disabled outputs
2018-09-16 10:02:50 -04:00
emersion
f8a50e4fe7 backend/drm: steal CRTCs from disabled outputs
This commit allows outputs that need a CRTC to steal it from
user-disabled outputs. Note that in the case there are enough
CRTCs, disabled outputs don't loose it (so there's no modeset
and plane initialization needed after DPMS). CRTC allocation
still prefers to keep the old configuration, even if that means
allocating an extra CRTC to a disabled output.

CRTC reallocation now happen when enabling/disabling an output as
well as when trying to modeset. When enabling an output without a
CRTC, we realloc to try to steal a CRTC from a disabled output
(that doesn't really need the CRTC). When disabling an output, we
try to give our CRTC to an output that needs one. Modesetting is
similar to enabling.

A new DRM connector field has been added: `desired_enabled`.
Outputs without CRTCs get automatically disabled. This field keeps
track of the state desired by the user, allowing to automatically
re-enable outputs when a CRTC becomes free.

This required some changes to the allocation algorithm. Previously,
the algorithm tried to keep the previous configuration even if a
new configuration with a better score was possible (it only changed
configuration when the old one didn't work anymore). This is now
changed and the old configuration (still preferred) is only
retained without considering new possibilities when it's perfect
(all outputs have CRTCs).

User-disabled outputs now have `possible_crtcs` set to 0, meaning
they can only retain a previous CRTC (not acquire a new one). The
allocation algorithm has been updated to do not bump the score
when assigning a CRTC to a disabled output.
2018-09-15 08:37:33 +02:00
Drew DeVault
df991a55ab
Merge pull request #1241 from emersion/output-enable-error-checking
output: make wlr_output_enable return a bool
2018-09-14 21:14:18 -04:00
Drew DeVault
0210905eef
Merge pull request #1243 from emersion/layer-shell-suffix
layer-shell: add _v1 suffix
2018-09-14 20:47:42 -04:00
Drew DeVault
a088000983
Merge pull request #1244 from emersion/xdg-output-suffix
xdg-output: add _v1 suffix
2018-09-14 20:47:14 -04:00
Drew DeVault
d549dc327e
Merge pull request #1240 from emersion/no-hardware-cursors
output: introduce WLR_NO_HARDWARE_CURSORS
2018-09-14 15:58:09 -04:00
emersion
fc960e5d06 layer-shell: add _v1 suffix 2018-09-14 19:32:33 +02:00
emersion
b3cb22c003 xdg-output: add _v1 suffix 2018-09-14 19:29:08 +02:00