Commit Graph

745 Commits

Author SHA1 Message Date
Poly 8114bac8fd Remove XDG Shell V6 2021-10-16 19:33:15 +02:00
Demi Marie Obenour a9f1188fea Add missing check for dead surfaces
Previously a pointer.leave event would be sent with a NULL target,
causing the client to disconnect.
2021-10-16 13:32:03 +02:00
Victor Brekenfeld bafc378181 wayland/dmabuf: Allow global creation with a client filter 2021-09-30 18:37:54 +02:00
Victor Berger 3842b78979 wayland.compositor: fix leak of surface data
The subsurface logic holds a self-reference to the WlSurface to
track stacking orders of the children relative to the parent. This
self-reference needs be dropped during cleanup to avoid reference
cycles.

This was not the case, and caused every surface user data to be
leaked as it kept a reference to itself (and all of its children).
2021-09-28 16:30:46 +02:00
Victor Brekenfeld 55eb73cb9e wayland/seat: add return value to `KeyboardHandle::input` 2021-09-19 17:10:08 +02:00
Victor Brekenfeld 90dd28c910 wayland/seat: Add `KeysymHandle` to allow for keycode conversions.
Currently keycodes are always converted using xkbcommons
`State::key_get_one_sym` function. This may be not what the compositor
wants, e.g. if it represents keybindings with explicit modifiers.
Applying Shift in this case changes the sym, making it necessary for
the compositor to *undo* this transformation, which is hard or even
impossible and very unnecessary, when we have all the necessary
information in smithay.

Therefor this commit replaces the `Keysym` argument of the filter
closure with a `KeysymHandle`, which allows for different variants of
keysyms to be received. Modified (as previously), unmodified or even
as a raw keycode.
2021-09-17 17:12:26 +02:00
Victor Berger d0ee7d831e
Merge pull request #367 from PolyMeilex/fix-2
backend.libseat: Fix dispatch double borrow
2021-08-31 10:34:24 +02:00
i509VCB b07f1af494
Implement Coordinate for all numerical types (#372)
This allows Size, Point and Rectangle to be made with any numeric type
2021-08-30 22:02:00 +02:00
Poly 10cab4eab9 backend.libseat: Fix dispatch double borrow 2021-08-26 01:00:31 +02:00
Christian Meissl 6d3d5f7933 implement popup protocol checks 2021-08-04 23:12:22 +02:00
Christian Meissl 477f737b95 filter tiled toplevel states if not supported 2021-08-04 23:12:16 +02:00
Christian Meissl b36cfbb392 add v3 positioner fields and handle requests
add support for xdg_popup reposition
increment supported wm_base version to 3
2021-08-03 15:57:22 +02:00
Poly ea59b2f522
wayland.xdg-activation: fix `retain_requests` typo
Co-authored-by: Victor Berger <vberger@users.noreply.github.com>
2021-07-31 22:38:42 +02:00
Poly f24332f4b4 wayland.xdg-activation: Initial implementaion 2021-07-31 21:16:39 +02:00
Poly 1c6db1e7ee wayland.shell.layer: change role static to constant 2021-07-31 13:45:57 +02:00
Poly 84d3d6e609 wayland.shell: implement wlr_layer_shell 2021-07-31 13:44:04 +02:00
i509VCB 23a8af399d xdg-foreign
This is very much incomplete, but it implements the import and export of surfaces. However functions related to setting and imported surface the parent of another surface is not done.

importer destructor destroys all imports made from the same client 


Implement SetParentOf, no undoing yet


Add inner import type


Destroy child surface relationships when importing


A note


move init function upwards


use 0.29.0 crate


Move role string constants into the public


Use toplevel_like for surface checks in foreign


add methods to get the parent surface


Make sure ZXDG roles are public api


Consistent ordering of parameters on xdg_foreign impl methods


Let's update the changelog


Document how to use xdg_foreign


wl_shell_surface is likely invalid, so it cannot be imported or exported


Changelog suggestions


remove redundant inner ref cell


Remove all uses of the refcell like behavior


Allow compositor to export surfaces on server



Appease new clippy lints


then


Use string references and iterate in reverse to simplify removals


heed request for order
2021-07-31 11:40:24 +02:00
Poly df9be985ca Fix Clippy 2021-07-30 18:10:48 +02:00
Poly e3522dfb34
backend.egl: Early return on dead buffers (#352) 2021-07-28 23:31:43 +02:00
Poly c136cd5f34 wayland.data_device: Early return on protocol error 2021-07-27 09:32:34 +02:00
Poly 6856ae891f wayland.data_device: Add None as a valid DND action 2021-07-27 09:32:34 +02:00
Victor Berger 07deba4c1b Documentation fixes in preparation for release 2021-07-25 11:19:09 +02:00
i509VCB 7e4eff529e Put smithay's docs through a spell checker.
I noticed quite a few spelling errors, so I fixed a whole bunch of them.
2021-07-25 09:09:56 +02:00
Victor Berger 5524f1f6bd Deny warnings in CI 2021-07-25 09:09:12 +02:00
Victor Berger 782b21f363 Update dependencies 2021-07-25 09:09:12 +02:00
Victor Brekenfeld 3cc89dcf6e gles2: expose texture id 2021-07-25 08:30:01 +02:00
Victor Brekenfeld 3e4d93dfff egl: Fix segfault in egl logging for empty command strings 2021-07-25 08:29:41 +02:00
Poly 7e4e78151a Implement XdgOutput protocol 2021-07-24 18:51:27 +02:00
Victor Brekenfeld 6933494b6a docs: some backend clarifications 2021-07-16 00:34:00 +02:00
Victor Brekenfeld 945d7128d8 Backend documentation fixes and additions 2021-07-15 20:53:05 +02:00
Victor Brekenfeld 1cf1d4739b buffer: use Size instead of width/height 2021-07-13 23:37:28 +02:00
Victor Brekenfeld 00fb4561b7 gles2: Enable scissor test for optimization.
Skips unnecessary drawcalls outside of the viewable area.
This may happen with textures rendered over the edges of our screen.
2021-07-13 23:28:11 +02:00
Victor Brekenfeld 8bd17d71d2 renderer: Support cropping and scaling 2021-07-13 23:28:07 +02:00
Victor Brekenfeld 56f5557f8c anvil: Move import_bitmap into anvil 2021-07-13 23:21:08 +02:00
Victor Brekenfeld a938c2874f gles2: Allow usage of raw-gl calls out-of-tree 2021-07-13 23:21:08 +02:00
Christian Meissl d09de13bfc use size for transformed functions 2021-07-13 22:38:32 +02:00
Christian Meissl 72e4d910fe implement fractional HiDPI scaling
expose output from output map and return a reference
in find

change scale with keyboard shortcut

scale input coordinates and render location
according to output_scale

scale buffers during rendering

adapt window locations on output scale
change to that the location will appear
to be stable

scale udev pointer location on output scale
change to make the pointer location appear stable

Use a UserDataMap to store the udev output id

Short names for udev outputs for easier output
scale configuration
2021-07-13 22:38:32 +02:00
Victor Berger e60374a459 Fix unused imports 2021-07-13 14:23:21 +02:00
Victor Berger 0bad0a4a62 move input.rs to input/mod.rs, same for libinput.rs 2021-07-13 14:23:21 +02:00
Victor Berger 54ea0d3a74 Introduce Logical/Physical Point/Rectangle 2021-07-13 13:58:06 +02:00
Victor Brekenfeld 510c0a5400 egl: Add debug logging
Add debug logging to egl via the `EGL_KHR_debug` extension similar to our
support for `GL_KHR_debug`. Sadly unlike the GL-extensions the EGL-extension
does not let us provide any user-data for the callback, so we fall back to
using `slog-stdlog`, when available.

Since we only want to initialize this once, when libEGL gets loaded and
not per display, but we need to query the list of supported extensions
first, some initialization steps where moved around.
2021-07-10 20:07:12 +02:00
Victor Brekenfeld 3e2f2afa28 egl: Let the native surface handle attributes
The required surface attributes for egl surface creation might be very
dependent on the used egl platform. Therefor let the native surface type
handle the attributes instead of deriving them from a set of properties.
2021-07-10 20:05:08 +02:00
Victor Brekenfeld d97a9f9970 egl: Fix egl display handle visibility
Currently there is no way to get the raw handle of an `EGLDisplay`, but
this can be necessary for implementing additional egl platforms out-of-tree.
2021-07-10 19:48:00 +02:00
Poly 07743faad2 Apply suggestions from code review & Rebase 2021-07-05 23:57:28 +02:00
Poly 90a62aeae7 wayland.tablet: Add tablet manager protocol 2021-07-05 22:36:32 +02:00
Poly 1c9e3fe903 input: Add tablet events 2021-07-05 22:36:32 +02:00
Victor Berger 1cdb55aee6 backend.session: review docs 2021-07-05 22:34:54 +02:00
Victor Berger e17bbe590a backend.winit: review docs 2021-07-05 22:34:54 +02:00
Victor Berger 1c59625a06 backend.udev: review docs 2021-07-05 22:34:54 +02:00
Victor Berger 468a3bb8dc doc: expand root documentation 2021-07-05 22:34:54 +02:00