Simon Ser
de5347d0f2
xwayland: require xcb-icccm
...
This dependency is already required by many other widely used X11
programs, such as i3, Qt, and other XWMs. So it should be available
on most systems.
X11 support can be pretty broken without xcb-icccm, with focus issues
for instance. Let's just remove this --please-break-my-desktop footgun
option.
2021-03-29 12:24:26 +02:00
Simon Ser
8ecc557ab0
subsurface: use cached surface state
2021-03-25 19:34:47 +01:00
Simon Ser
e0258f4506
surface: introduce cached states
...
Cached states allow a surface commit to be delayed. They are useful for:
- Subsurfaces
- The upcoming transactions protocol [1]
- Explicit synchronization
[1]: https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/26
2021-03-25 19:34:47 +01:00
Simon Ser
7ac76aba8a
surface: introduce commit sequence numbers
...
Very similar to output commit sequence numbers. Can be useful to
reference a specific commit.
2021-03-25 19:34:47 +01:00
Simon Ser
52e40025c4
output: document hotspot coord space
2021-03-09 22:29:32 +01:00
Simon Ser
cf5b09ede2
Remove unnecessary wayland-server-protocol.h includes
2021-02-23 16:09:26 +01:00
Simon Ser
27fba3df43
render: use DRM formats in wlr_texture_from_pixels
2021-02-23 16:09:26 +01:00
Simon Ser
b54ef3372d
render: use DRM formats in wlr_renderer_read_pixels
2021-02-23 16:09:26 +01:00
Simon Ser
00bf6674b3
output: use DRM format in wlr_output_preferred_read_format
2021-02-23 16:09:26 +01:00
Simon Ser
ddfee63055
render: use DRM formats in wlr_renderer_get_shm_texture_formats
2021-02-23 16:09:26 +01:00
Tadeo Kondrak
78685ec6aa
text_input_v3: correct typo in enum field
2021-02-15 16:33:05 +01:00
Simon Ser
6f873078d4
build: use dictionnary for features instead of configuration_data
...
This allows us to easily iterate on all features and only deal with
bools.
2021-02-15 16:32:33 +01:00
Manuel Stoeckl
a290d7a78d
Make implementation function lists static const
...
This requires a change to the type of `struct wlr_tablet` and
`wlr_tablet_init` signature, both of which are part of the unstable API.
2021-02-05 10:04:20 +01:00
Simon Ser
45f992b27b
region: make wlr_region_create private
...
This function should only be called from the handler for
wl_compositor.create_region requests.
2021-02-02 23:42:53 +01:00
Simon Ser
3d7aa73867
render/dmabuf: make src arg const in wlr_dmabuf_attributes_copy
2021-02-02 19:53:16 +01:00
Brandon Dowdy
8aa38fe73e
render/egl: remove *config_attribs and wlr_egl->config
...
Breaking changes:
Both "EGLint *config_attribs" and "wlr_egl->config" no longer exist.
2021-01-29 10:03:24 +01:00
Brandon Dowdy
705b3da7cb
render/egl: remove wlr_egl_{create,destroy}_surface
...
Breaking changes:
wlr_egl_create_surface and wlr_egl_destroy_surface have been
removed and no longer exist.
2021-01-29 10:03:24 +01:00
Simon Ser
7c995b78b2
Revert "render: add wlr_egl_create_from_drm_fd function"
...
This reverts commit ee31be167b
.
2021-01-20 21:32:50 +01:00
Simon Ser
54e5ef39c0
Revert "render/egl: remove unused gbm_device member"
...
This reverts commit 306cf11d87
.
2021-01-20 21:32:50 +01:00
Simon Zeni
306cf11d87
render/egl: remove unused gbm_device member
2021-01-20 15:29:00 +01:00
Simon Zeni
ee31be167b
render: add wlr_egl_create_from_drm_fd function
2021-01-20 15:29:00 +01:00
BrassyPanache
d6649a8a4b
Expose ICCCM input status
...
In certain situations windows can have their input field set to false
but still expect to receive input focus by passively listening to key
presses via a parent window. The ICCCM specification outlines how focus
should be given to clients.
Further reading: https://tronche.com/gui/x/icccm/sec-4.html#s-4.1.7
Relates to #2604
2021-01-20 10:38:58 +01:00
Simon Ser
f17b0f975d
backend/drm: add wlr_drm_connector_get_id
...
This allows a compositor to get a KMS connector object ID from a
wlr_output. The compositor can then query more information about
the connector via libdrm.
This gives more freedom to compositors and allows them to read
KMS properties that wlroots doesn't know about. For instance,
they could read the EDID or the suggested_{X,Y} properties and
change their output configuration based on that.
2021-01-17 12:42:32 +01:00
Simon Ser
1fb9535e99
output-damage: stop relying on output pending state on commit
...
References: https://github.com/swaywm/wlroots/issues/2098
2021-01-16 09:06:27 +01:00
Simon Zeni
08a4c62aac
render: remove egl include from wlr_renderer
2021-01-16 08:57:42 +01:00
Simon Zeni
e128e6c08d
render: drop egl parameters from wlr_renderer_autocreate
2021-01-16 08:57:42 +01:00
Simon Ser
a53ab146fe
backend: add get_drm_fd to interface
...
This function allows backends to return the DRM FD they are using. This
will allow the allocator and the renderer to use the right device.
2021-01-16 08:57:42 +01:00
Simon Ser
cc56b4f073
output: remove scale/transform events
...
Instead, the commit event should be used.
2021-01-15 10:18:56 +01:00
Simon Ser
f6f46b4ee2
output-damage: stop listening to scale/transform events
...
Only listen to the commit event.
2021-01-15 10:18:56 +01:00
Daniel Kondor
b7dc4f2990
layer-shell: allow new values for keyboard-interactivity
...
Value is now an enum with a new value ("on-demand") that compositors can use to allow "normal" keyboard focus semantics regardless of the layer the client surface is on. An error is sent for invalid keyboard interactivity values. The old behavior is retained for clients using the previous version of the protocol.
Also adjusted the layer-shell example program to use the new keyboard interactivity options.
2021-01-12 20:13:52 +01:00
Simon Ser
3f7e0cf5f0
render/egl: remove surface and buffer age args from make_current
...
These aren't used anymore.
2021-01-12 11:31:04 +01:00
Simon Ser
1d461687d2
render/egl: replace init/finish with create/destroy
...
This ensures wlr_gles2_renderer can properly take ownership of the
wlr_egl.
Closes: https://github.com/swaywm/wlroots/issues/2612
2021-01-12 11:31:04 +01:00
Simon Ser
50b120927d
render/egl: remove wlr_egl_swap_buffers
2021-01-12 11:31:04 +01:00
Simon Ser
76ed2255ef
render/egl: remove support for EGL_NATIVE_VISUAL_ID
...
Nobody uses it anymore.
2021-01-12 11:31:04 +01:00
Isaac Freund
07111828c5
layer shell: rename popup iterator for consistency
...
This iterates over the subsurfaces of popups as well, so rename it to
match wlr_xdg_surface_for_each_popup_surface().
2021-01-12 11:26:08 +01:00
Isaac Freund
f574ca934c
xdg shell: remove wlr_xdg_surface_for_each_popup()
...
This function is inferior to wlr_xdg_surface_for_each_popup_surface()
for rendering as it does not iterate over subsurfaces. Furthermore,
no compositor is known to use this to iterate popups for any purpose
other than rendering. Therefore remove the function, which may of course
be reintroduced at a later date if a use-case is found.
2021-01-12 11:25:55 +01:00
Isaac Freund
d6890cb847
output-management: use same types as wlr_output
...
This is more correct and also makes things much nicer for languages
that don't allow implicit conversions between these types.
2021-01-10 16:28:19 +01:00
Simon Ser
64da8f0c8d
render/egl: document NULL config_attribs passed to wlr_egl_init
2021-01-09 12:02:39 +01:00
Simon Ser
41aa80d4a1
render/egl: use KHR function pointer type
...
KHR is more "core" than EXT.
2021-01-09 11:20:20 +01:00
Simon Ser
34b14d2fee
render/egl: document that config may be zero
2021-01-09 11:19:25 +01:00
Isaac Freund
4ee4a36c0c
layer shell: add wlr_layer_surface_v1_popup_surface_at()
...
This function will allow compositors to implement input handling in a
way consistent with rendering more easily.
Calling wlr_layer_surface_v1_surface_at() and checking if the result is
a wlr_xdg_popup is flawed as there may be subsurfaces in the popup tree.
2021-01-08 12:05:13 +01:00
Isaac Freund
8f63557ed7
xdg shell: add wlr_xdg_surface_popup_surface_at()
...
This function will allow compositors to implement input handling in a
way consistent with rendering more easily.
Calling wlr_xdg_surface_surface_at() and checking if the result is a
wlr_xdg_popup is flawed as there may be subsurfaces in the popup tree.
2021-01-08 12:05:13 +01:00
Isaac Freund
c5c5ab9724
xdg shell: add wlr_xdg_surface_for_each_popup_surface()
...
When rendering, it is necessary to iterate the subsurfaces as well,
so add a function that makes this easy.
2021-01-08 10:33:16 +01:00
Isaac Freund
129e02b57d
xdg shell: make unconstrain_from_box arg const
2021-01-07 21:28:55 +01:00
Simon Zeni
9192c0480a
remove unnecessary egl includes
2021-01-07 17:11:22 +01:00
Simon Zeni
b899a412e3
backend: remove wlr_egl from all backends
2021-01-07 17:11:22 +01:00
Andri Yngvason
e136a4168b
types/seat: Clear focus in wlr_seat_destroy()
...
This fixes use-after-free in surface destroy signal listeners.
2021-01-07 14:35:08 +01:00
Simon Ser
07d75c99db
render: remove EGL config and visual from wlr_renderer_autocreate
...
This isn't used anymore by any backend.
Some examples still provide an EGL config to wlr_egl_init, so we can't
drop it yet there.
2021-01-06 12:05:51 +01:00
Ilia Bozhinov
01dcfb360e
types: add wlr_xdg_foreign_v2
...
Co-authored-by: Jason Francis <cycl0ps@tuta.io>
2021-01-05 20:32:56 +01:00
Ilia Bozhinov
162f160def
types: add wlr_xdg_foreign_v1
...
Co-authored-by: Jason Francis <cycl0ps@tuta.io>
2021-01-05 20:32:56 +01:00