Commit graph

3334 commits

Author SHA1 Message Date
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
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
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
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
Drew DeVault
90f1a34d2c
Merge pull request #1375 from emersion/tablet-segfault
tablet-v2: fix segfault on display destroy
2018-11-25 17:30:31 -05:00
emersion
18e26cba78
Disable Clang static analysis 2018-11-25 20:09:02 +01:00
emersion
9e50e19374
Merge pull request #1391 from buffet/fix-loc-count
Fixed loc count in readme
2018-11-24 23:29:59 +01:00
buffet
443dece7d5 Fixed loc count in readme 2018-11-24 21:24:29 +01:00
emersion
88994b18d5
Merge pull request #1390 from ammen99/fix-preferred-read-format
output: add wlr_output_preferred_read_format()
2018-11-24 14:53:20 +01:00
Ilia Bozhinov
fb5691b6cc output: add wlr_output_preferred_read_format()
The read format is dependent on the output, so we first need to make it
current. This fixes a race condition in wlr-screencopy-v1 where a dmabuf
client would cause EGL_NO_SURFACE to be bound at the time when
screencopy needs to query for the preferred format, causing GL errors.
2018-11-24 10:54:25 +01:00
emersion
811a4d997b
Rename wlr_primary_selection to wlr_gtk_primary_selection 2018-11-23 11:58:56 +01:00
emersion
c70b8f64b7
Merge pull request #1385 from atomnuker/master
Fix interlaced mode rejection
2018-11-22 19:17:08 +01:00
Rostislav Pehlivanov
91513c89cd Fix interlaced mode rejection 2018-11-22 17:52:52 +00:00
emersion
42e8e3ed0a
Merge pull request #1380 from emersion/gtk-primary-selection-multiple-devices
gtk-primary-selection: support multiple devices
2018-11-21 22:29:36 +01:00
emersion
b20f4cd495
Merge pull request #1382 from atomnuker/master
Skip interlaced modes during drm mode detection
2018-11-21 20:48:56 +01:00
Rostislav Pehlivanov
dc9fdd6385 Skip interlaced modes during drm mode detection
Fixes #3167
A better solution could be made if there's a need to.
2018-11-21 19:23:48 +00:00
emersion
eaafd65a12
gtk-primary-selection: track resources 2018-11-21 11:16:31 +01:00
emersion
b9a2e4ba4c
gtk-primary-selection: support multiple devices
When a client was creating multiple data devices for the same seat, we were
only creating one resource. This is a protocol error.

Instead, create one offer per data device.

This commit also makes offers inert when their source is destroyed.

Fixes part of https://github.com/swaywm/wlroots/issues/1041
Supersedes https://github.com/swaywm/wlroots/pull/1113
2018-11-21 11:16:25 +01:00
Drew DeVault
040d62de00
Merge pull request #1366 from emersion/render-software-cursors
Render software cursors in compositor
2018-11-13 14:47:32 -05:00
emersion
1b9ebcf645
output: make wlr_egl flip the damage 2018-11-13 16:55:33 +01:00
emersion
ca770995cc
output: add wlr_output_render_software_cursors
Rendering in wlr_output_swap_buffers has unfortunate side-effects.
2018-11-13 16:55:33 +01:00
emersion
57307b7aa7
output: remove wlr_output_set_fullscreen_surface
This wasn't using direct scan-out. Direct scan-out will probably
work differently with @ascent12's work anyway.
2018-11-13 16:55:33 +01:00
emersion
df7d4a71fb
Merge pull request #1368 from ascent12/x11_backend
X11 backend improvements
2018-11-13 07:53:43 +01:00
Scott Anderson
d3ee69f76b backend/x11: Hide cursor with Xfixes 2018-11-13 10:55:03 +13:00
Scott Anderson
70ae76304e backend/x11: Remove old input functions
This also allows us to remove xcb-xkb, since Xinput will now give us the
appropriate XKB modifiers with each event.
2018-11-13 10:55:03 +13:00
Scott Anderson
d89e868cc9 backend/x11: Add new Xinput events 2018-11-13 10:42:02 +13:00
Scott Anderson
88b2d6fe25 backend/x11: Check for xinput extension 2018-11-13 10:41:37 +13:00
Scott Anderson
9c1b87f210 backend/x11: Move atom initilisation earlier
There isn't any real reason to delay this until the backend is started.
2018-11-13 10:40:52 +13:00
Scott Anderson
ab2c57984b backend/x11: Make header order consistent 2018-11-13 10:40:52 +13:00
Scott Anderson
51a283cbe4 backend/x11: Rename xcb_conn to xcb
When the Xlib connection is removed, this _conn suffix is going to be
pointless. I'm removing this preemtively for that.
2018-11-13 10:39:24 +13:00
Drew DeVault
4aff85cc8e
Merge pull request #1373 from emersion/fix-teardown-segfaults
xdg-shell: don't destroy xdg role state on role destroy
2018-11-12 16:15:36 -05:00
Drew DeVault
77dfac4fa4
Merge pull request #1372 from emersion/config10
Use #if instead of #ifdef for wlroots config data
2018-11-12 16:14:18 -05:00
Drew DeVault
d2d8372cdc
Merge pull request #1369 from ascent12/wayland_backend
Wayland backend improvements
2018-11-12 16:13:18 -05:00
emersion
89ec624f81
tablet-v2: fix segfault on display destroy 2018-11-12 20:05:13 +01:00
emersion
95dfbe2962
xdg-shell: don't destroy xdg role state on role destroy
ie. don't destroy surface->toplevel on xdg_toplevel destroy. Instead do this on
xdg_surface destroy.

This allows compositors to add toplevel listeners when the surface appears and
remove them when the surface is destroyed.
2018-11-12 19:37:22 +01:00
emersion
51bfdd620e
Use #if instead of #ifdef for wlroots config data
This prevents some annoying issues when e.g. not including wlr/config.h or
making a typo in the guard name.
2018-11-12 10:12:46 +01:00
emersion
180151ed09
backend/wayland: handle WL_EVENT_WRITABLE for Wayland socket
We need to flush when the connection is writable again. This is important in
case the write buffer becomes full. This is also what Weston does [1].

[1]: https://gitlab.freedesktop.org/wayland/weston/blob/master/libweston/compositor-wayland.c#L2593
2018-11-11 21:14:15 +01:00
Scott Anderson
aaff4b8c00 backend/wayland: Make header order consistent 2018-11-11 22:29:35 +13:00
Scott Anderson
bbce92a923 backend/wayland: Move initilisation code earlier
The renderer redesign is going to need the render fd before the backend
is fully started, so we have to move the wl registry code to when the
backend is created instead of when it is started.

We also need to stash the wl_keyboard and emit it to library users
later, once they've added their listeners and started the backend.
2018-11-11 18:11:56 +13:00