Commit graph

4125 commits

Author SHA1 Message Date
Scott Anderson
efdd4d6ea2 backend/drm: Improve encoder logic
This fixes an issue that can occur with DP MST connectors not reporting
any encoders.
2018-12-09 22:48:00 +13:00
emersion
f8056a0350
backend/drm: fix disappeared output indices
This commit changes `scan_drm_connectors` to add new outputs to the end of the
list. That way, it's easier to understand what's going on with indices.

When we need to destroy outputs, we now walk the list in reverse order. This
ensures indices remain correct while iterating and removing items from the
list.

We now also make outputs without a CRTC disappear (those are in
WLR_DRM_CONN_NEEDS_MODESET state).
2018-12-09 10:12:52 +01:00
emersion
3699496256
Merge pull request #1201 from ammen99/master
Implement wlr-foreign-toplevel-management-unstable-v1
2018-12-09 00:36:00 +01:00
Ilia Bozhinov
16175751d6 examples: add wlr_foreign_toplevel_management_v1 example 2018-12-08 14:09:56 +01:00
Ilia Bozhinov
8cce2d75a9 rootston: add support for wlr_foreign_toplevel_management_v1 2018-12-08 14:09:51 +01:00
Ilia Bozhinov
f387a840d8 rootston: add title/app_id/class listeners 2018-12-08 14:09:30 +01:00
Ilia Bozhinov
5b1b9657bf types: implement wlr_foreign_toplevel_management_v1 2018-12-08 14:09:30 +01:00
Drew DeVault
e75075dfa2
Merge pull request #1422 from emersion/dmabuf-export-destroy
export-dmabuf-v1: add missing destroy request handler
2018-12-06 18:03:42 -05:00
Drew DeVault
20f5fc9e2e
Merge pull request #1413 from emersion/logind-session-logs
backend/session/logind: improve logging
2018-12-06 18:03:33 -05:00
emersion
1256314afe
export-dmabuf-v1: add missing destroy request handler
Also document lists in the header file.
2018-12-06 19:08:28 +01:00
emersion
e23fe328a6
backend/session/logind: improve logging 2018-12-06 17:01:17 +01:00
Drew DeVault
8cb4df2a30
Merge pull request #1416 from kragniz/rootston-use-box
rootston: use box for views position
2018-12-06 07:30:19 -05:00
Drew DeVault
e539a8b208
Merge pull request #1419 from emersion/ci-alpine
ci: add Alpine build
2018-12-06 07:27:19 -05:00
Louis Taylor
0f3a061f60
rootston: use box for views position 2018-12-05 19:20:50 +00:00
emersion
7a2cef1ad0
ci: add Alpine build 2018-12-05 10:42:34 +01:00
Louis Taylor
d703ae45dd
rootston: use int for width, height 2018-12-05 09:02:49 +00:00
Drew DeVault
fdb67ff63b
Merge pull request #1415 from emersion/tablet-seat-leak
tablet-v2: fix wlr_tablet_seat_v2 leak
2018-12-04 18:20:46 -05:00
Drew DeVault
bf66e29973
Merge pull request #1410 from emersion/xdg-surface-destroy
xdg-shell: emit xdg_surface destroy when role object is destroyed
2018-12-04 18:20:21 -05:00
Drew DeVault
4fadde362f
Merge pull request #1412 from emersion/drm-vla-overflow
backend/drm: fix VLA overflow
2018-12-04 18:19:55 -05:00
emersion
3ca7ca5306
tablet-v2: fix wlr_tablet_seat_v2 leak 2018-12-04 20:06:38 +01:00
emersion
491f1dbf75
backend/drm: fix VLA overflow 2018-12-04 18:56:29 +01:00
emersion
5515faa197
xdg-shell: emit xdg_surface destroy when role object is destroyed
Fixes https://github.com/swaywm/wlroots/issues/1407
2018-12-04 13:42:29 +01:00
Drew DeVault
3efc6bc363
Merge pull request #1409 from Duncaen/wlr_pointer_constraints
Install wlr_pointer_constraints_v1.h
2018-12-03 13:42:21 -05:00
Duncaen
e584857fa9 Install wlr_pointer_constraints_v1.h 2018-12-03 18:44:16 +01:00
Drew DeVault
273e110b74
Merge pull request #1403 from emersion/swap-buffers-damage-coords
output: switch swap_buffers damage to output-buffer-local coords
2018-12-02 13:17:24 -05:00
Drew DeVault
8887508fed
Merge pull request #1397 from emersion/refactor-primary-selection
gtk-primary-selection: refactor everything, untie from seat
2018-12-02 13:16:50 -05:00
emersion
3f5f4cec88
Merge pull request #1404 from saimen/bump-version-number
build: bump versino to 0.2.0
2018-12-01 11:26:29 +01:00
Simon Barth
92e39b586c build: bump versino to 0.2.0 2018-12-01 11:17:32 +01:00
emersion
6aaefad40d
output: switch swap_buffers damage to output-buffer-local coords
This is one more step towards [1]. This gives more freedom to the compositor
wrt. how it handles damage.

[1]: https://github.com/swaywm/wlroots/issues/1363
2018-12-01 10:56:35 +01:00
emersion
9f0720c03a
primary-selection: introduce wlr_primary_selection_source
This is a common interface that can be used for all primary selection
protocols, as discussed in [1]. A new function wlr_seat_set_primary_selection
is added to set the primary selection for all protocols.

The seat now owns again the source, and resets the selection to NULL when
destroyed.

[1]: https://github.com/swaywm/wlroots/issues/1367#issuecomment-442403454
2018-11-29 19:40:28 +01:00
Drew DeVault
a22311ec76
Merge pull request #1400 from emersion/xcursor-fixes
xcursor: port a few fixes
2018-11-28 07:42:44 -05:00
Drew DeVault
3033f33a1d
Merge pull request #1399 from emersion/fix-wl-backend-zero-vla
backend/wayland: fix zero-length VLA
2018-11-28 07:41:55 -05:00
Louis Taylor
b3f51e39f8 view_at: remove unused variable 2018-11-27 21:36:24 -05:00
Cosimo Cecchi
14f45c056f
xcursor: Support XDG user data dir location
Nowadays ~/.icons is not used anymore as the preferred location for custom
user icon themes; XDG_DATA_HOME/icons (aka ~/.local/share/icons) is what
toolkits like GTK prefer. Prepend that location to the default xcursor path, so
that cursor themes installed there can be used by apps and toolkits that use
libXcursor.

Port of https://cgit.freedesktop.org/xorg/lib/libXcursor/commit/src?id=2263c196cb0dcb8547b378df7b35f83b8b99c01e
2018-11-27 23:21:07 +01:00
Philipp Ludwig
e7fba556a8
xcursor: fix crash when encountering cursor themes with circular dependencies
Port of https://cgit.freedesktop.org/xorg/lib/libXcursor/commit/src?id=f64a8cc1a65dcad4294e2988b402a34175019663
2018-11-27 23:19:26 +01:00
emersion
408e2a77e9
backend/wayland: fix zero-length VLA 2018-11-27 23:18:12 +01:00
emersion
658b590567
gtk-primary-selection: fix segfault when no focus 2018-11-27 21:09:41 +01:00
emersion
bfa7f4ee0d
gtk-primary-selection: use impl pattern for sources 2018-11-27 20:16:55 +01:00
emersion
cbe42d1006
gtk-primary-selection: remove offer struct
We don't need it, we can use the device instead.
2018-11-27 19:45:39 +01:00
emersion
f001f98cef
gtk-primary-selection: refactor everything, untie from seat
This commits completely refactors wlr_gtk_primary_selection. The goal is to
remove gtk-primary-selection state from the seat and better handle inert
resources where it makes sense.

wlr_seat_client.primary_selection_devices has been removed and replaced by
wlr_gtk_primary_selection_device. This allows us to make offers inert when the
current selection is replaced.

wlr_seat_set_primary_selection has been removed because it relied on wlr_seat
instead of wlr_gtk_primary_selection_device_manager. A new function,
wlr_gtk_primary_selection_device_manager_set_selection (candidate for the
longest function name in wlroots) has been added. It doesn't take a serial
anymore as serial checking only makes sense for set_selection requests coming
from Wayland clients (serial checking is now done in the Wayland interface
implementation).

Since wlr_gtk_primary_selection_device_manager is now required to set the
selection, a new function wlr_xwayland_set_gtk_primary_selection_device_manager
(candidate number two for longest function name) has been added.

Devices are now made inert when the seat goes away.

Future work includes removing the last primary selection bits from the seat,
mainly wlr_seat.primary_selection_source and wlr_seat.events.primary_selection,
replacing those with new fields in wlr_gtk_primary_selection_device. Or maybe
we could keep those in the seat and replace them with a re-usable interface
(for future zwp_primary_selection_v1 support). We need to think how we'll sync
these three protocols (GTK, X11 and wayland-protocols).

See https://github.com/swaywm/wlroots/issues/1388
2018-11-27 18:57:26 +01:00
Louis Taylor
b1d820c492 Correct WLR_BUTTON_PRESSED to WLR_KEY_PRESSED
This worked since it was the same value, but results in compile
warnings.
2018-11-26 21:09:23 -05:00
Drew DeVault
05bb440786
Merge pull request #1387 from emersion/rename-gtk-primary-selection
Rename wlr_primary_selection to wlr_gtk_primary_selection
2018-11-26 18:36:23 -05:00
Drew DeVault
a2b8d47ff2
Merge pull request #1384 from emersion/data-multiple-devices
data-device: allow multiple devices for the same seat
2018-11-26 18:25:59 -05:00
Drew DeVault
ed1ffddba8
Merge pull request #1396 from emersion/fix-destroyed-subsurface
surface: fix destroyed subsurfaces handling
2018-11-26 18:24:23 -05:00
emersion
a5b8ea90d2
surface: fix destroyed subsurfaces handling
wlr_subsurface_from_wlr_surface can return NULL if the wl_surface is still
alive and if the wl_subsurface has been destroyed. Make sure we check for NULL.

Fixes https://github.com/swaywm/sway/issues/3195
2018-11-26 23:17:52 +01:00
emersion
4423f88fac
data-device: never cancel the source when offer is destroyed
The source could be used in another offer.
2018-11-26 12:35:49 +01:00
emersion
5d26da9d15
data-device: allow multiple devices for the same seat
This commit makes it possible for a single client to have multiple data devices
for the same seat. This fixes issues with Firefox.

This mainly removes wlr_data_source.offer. We make sure we create one data
offer per device. We now make the offer inert when the source is destroyed.

Fixes the second half of https://github.com/swaywm/wlroots/issues/1041
2018-11-26 12:35:48 +01:00
Ryan Dwyer
eaa852ed77
Merge pull request #1395 from emersion/text-input-log-newline
text-input-v3: remove newline in log message
2018-11-26 21:28:56 +10:00
emersion
27d1910bec
text-input-v3: remove newline in log message 2018-11-26 12:15:34 +01:00
Drew DeVault
b5093a940b
Merge pull request #1392 from emersion/disable-static-analysis
Disable Clang static analysis
2018-11-25 17:31:01 -05:00