Commit Graph

3879 Commits

Author SHA1 Message Date
emersion 31cc2fa4f9 pointer-constraints: make region not a pointer, add committed bitfield 2018-09-26 23:08:52 +02:00
sghctoma aacf0c427f Adjust README to reflect change regarding b_lundef
With Meson >=0.48.0 it is no longer necessary to pass the flag
"-D b_lundef=false" on FreeBSD.
2018-09-26 19:36:48 +02:00
sghctoma 57ce896688 Add b_lundef=false Meson option on FreeBSD
The Meson option "b_lundef" need to be set to false on FreeBSD, because
the symbol "environ" is in crt1.o, which is not linked with shared
libraries. With Meson >=0.48.0 it is possible to set this option only
for FreeBSD. This patch changes meson.build to do that.
2018-09-26 18:13:28 +02:00
emersion c89cd4945b pointer-constraints: rename wl_{global,resources} 2018-09-26 17:38:41 +02:00
emersion e3736d4acc examples/pointer-constraints: style fixes 2018-09-26 17:34:09 +02:00
Drew DeVault e47b8cd629
Merge pull request #1264 from emersion/examples-unknown-cursor
Fix unknown cursor in layer-shell example
2018-09-26 10:18:54 -05:00
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