Commit Graph

1254 Commits

Author SHA1 Message Date
Christian Meissl 0d88a392fa add an output_map which handles...
the positioning of outputs, tracks
the surfaces on the outputs and
sends enter/leave for the surfaces

Additionally the output_map will
handle re-location of windows if
a output mode is changed, an output is
added or removed.

The shell has been updated to use the
primary output for the initial placement.
The fullscreen/maximize requests will now
handle the shell part correctly. For real
fullscreen output the rendering has to be
changed.

The output name is considered unique
and an output can be retrieved from
the map by location, output or name.
This can be used as the base for HiDPI
handling.
2021-06-30 18:24:51 +02:00
Victor Berger 5cfb05cde8 ci: test backend_session_libseat 2021-06-30 13:52:36 +02:00
Victor Brekenfeld 616bacdff2
Merge pull request #318 from Smithay/refactor/input_backend
Rework `InputBackend` abstractions to track individual devices
2021-06-30 00:14:20 +02:00
Victor Brekenfeld 50741bc7bb Rework `InputBackend` abstractions to track individual devices
Removes the notion of Seats from `InputBackend` and replaces it with
`DeviceAdded` and `DeviceRemoved` events allowing compositors to
descriminate between single devices.

A new abstraction to model multiple seats on a single input backend
may be be added separately at a later time.
2021-06-30 00:06:59 +02:00
Victor Berger 3a0c631edd Rudimentary xdg_popup support 2021-06-29 23:59:55 +02:00
Victor Berger 47bc37c67b Disable pointer grab with dead starting surface 2021-06-29 23:27:23 +02:00
Christian Meissl 736eb11cd5 use platform specifc types for XlibWindow and gbm
this fixes compilation on 32bit targets like armv7
2021-06-29 18:46:00 +02:00
Victor Berger da5c814555 Clippy fixes 2021-06-29 18:03:44 +02:00
Victor Berger 053bc98faa Fix all CI warnings 2021-06-29 18:03:44 +02:00
Poly 3623947939 [Anvil] XDG activate support 2021-06-29 15:13:19 +02:00
Christian Meissl 453f33d5a4 add a environment variable to the direct session...
...that is used as a fallback if no explicit
tty is requested
2021-06-29 15:13:03 +02:00
Christian Meissl 3392c0c675 log the XWayland display 2021-06-29 15:12:24 +02:00
Christian Meissl 29c0620a58 test if xwayland is already shutting down on client_destroy 2021-06-29 15:12:24 +02:00
Victor Brekenfeld da937d498e
Merge pull request #309 from Smithay/fix/winit_wl_drm
Fix wl_drm on winit backend
2021-06-28 12:05:47 +02:00
Victor Brekenfeld eb5e4bcf92 Fix wl_drm on winit backend 2021-06-27 22:19:12 +02:00
Victor Berger ad55ab71c9 compositor: Introduce transaction state tracking
This changes the state handling logic of wl_surface to automatically
track subsurface pending in the form of transactions. The role enum
(and the associated type parameter) is no more, and replaced by a
general-purpose typemap-like container on surfaces.

The new logic is introduced in the files:

- `src/wayland/compositor/cache.rs`
- `src/wayland/compositor/transaction.rs`

The rest of the PR is the fallout of these changes, as well as a few
trivial clippy fixes.
2021-06-26 21:52:38 +02:00
Victor Brekenfeld 736e4e8bec
Merge pull request #303 from Smithay/feature/import_egl_buffer_reader
Move `EGLBufferReader` management into `ImportEgl`
2021-06-24 22:54:58 +02:00
Victor Brekenfeld d17cd5326d Remove EGLBufferReader from buffer_type and buffer_dimensions api 2021-06-24 22:17:08 +02:00
Victor Brekenfeld c578a9e16c Move EGLBufferReader management into ImportEgl 2021-06-24 22:12:08 +02:00
Victor Brekenfeld 268ad95767 gles2: Fixup cleanup of unused dmabuf-bindings 2021-06-23 18:36:06 +02:00
Victor Brekenfeld ce3b2d1eab Rework `DrmRenderSurface` into `GbmBufferedSurface`.
Removes the renderer from the `DrmRenderSurface` allowing anvil
to use just one renderer per backend.

Since the old `DrmRenderSurface` was dependant on gbm anyway to import
buffers, the new `GbmBufferedSurface` does now only supports gbm as an allocator,
which hugely simplifies the code and also skips some unnecessary imports/exports.
2021-06-23 18:36:06 +02:00
Christian Meissl 6bd0d71ebc do not remove the surface focus during ungrap
fixes #163
2021-06-22 13:15:30 +02:00
Christian Meissl c4f2d34647 fix clippy unknown lint 2021-06-20 12:08:04 +02:00
Christian Meissl 4cb03a1d0d track suppressed keys and...
...forward non suppressed keys on release
fixes #242
2021-06-20 12:07:47 +02:00
Poly 69543c0cfa Fix Anvil panic when resizing dead window 2021-06-18 11:39:33 +02:00
Poly f9f77288c8
libseat support (#292) 2021-06-15 23:35:16 +02:00
cmeissl e9aef7caad
rework xdg_shell (#286)
* rework xdg_shell
use distinct surface roles for xdg_toplevel and
xdg_popup using a xdg_role! macro

* fix clippy warnings in shell

* added a generic DeadResource error and...
...added a result to xdg with_pending_state
Renamed the ToplevelState to ToplevelStateSet
2021-06-15 23:32:02 +02:00
Victor Berger 41c7b22cc4 doc: fix ci upload & broken links 2021-06-11 17:46:32 +02:00
Victor Berger 9ad0edd2a3 Fix several clippy lints 2021-06-10 22:01:10 +02:00
Victor Berger c630bd9086 cargo fmt 2021-06-10 22:01:10 +02:00
Victor Berger 671e2053e9 xwayland: rework as an EventSource
Reorganize the XWayland abstraction into a calloop EventLoop.

Fixes #245
Fixes #203
2021-06-10 21:52:08 +02:00
Victor Berger 01b5c1a183 anvil: don't release SHM buffers twice 2021-06-09 21:15:27 +02:00
Victor Berger 484f2cd14f Update IRC reference 2021-06-08 22:05:40 +02:00
Stefan Schick b17b40c2bb
Use Default derive for ModifiersState and remove new() (#285) 2021-06-08 21:58:21 +02:00
Victor Berger ad444ead75 wayland.dmabuf: fix doctest 2021-06-08 21:57:35 +02:00
Victor Brekenfeld 5b70ca4206 anvil: dmabuf support 2021-06-08 21:57:35 +02:00
Victor Brekenfeld a38592bc92 dmabuf: Unify types of `wayland::dmabuf` and `allocator::dmabuf` 2021-06-08 21:57:35 +02:00
Victor Brekenfeld b6822becf6 egl: expose supported dmabuf formats 2021-06-08 21:57:35 +02:00
Victor Brekenfeld 7cdafcca34 ci: Test specific features without default set 2021-06-08 21:49:21 +02:00
Victor Brekenfeld 969cdda85c renderer: Split Renderer trait into Import sub-traits 2021-06-08 21:47:05 +02:00
Victor Brekenfeld 2661b86019 renderer: Add a way to query the buffer *type* 2021-06-08 21:47:05 +02:00
Victor Berger 327321612d anvil: remove several Rc and RefCell 2021-06-03 11:45:22 +02:00
Victor Berger 85440840c8 anvil: flatten DrmRenderer into AnvilState 2021-06-03 11:45:22 +02:00
Victor Berger 4bf6bfa08d anvil: reorganize platform-specific values 2021-06-03 11:45:22 +02:00
Victor Berger 3f01f978f8 wayland.compositor: DispatchData available in the callback 2021-06-03 11:45:22 +02:00
Victor Berger aaa6e625e9 Update to calloop 0.8, DrmDevice as an EventSource 2021-06-03 11:45:22 +02:00
Victor Brekenfeld e008360bde allocator: Let the allocator select the best modifier out of a given set.
This change fixes modifier selection by delegating this to the allocators
and thus to libgbm, which can ask the driver for an appropriate modifier
for scanout, that results in the best possible performance.

We do not have this information, the order in which modifiers are returned
by EGL has no meaning and this is far better then testing modifiers
non-deterministically at random and choosing the first one, that does
not error out...
2021-06-03 11:19:22 +02:00
Christian Meissl 4f0161658f make the frame_callback a list 2021-05-30 15:40:35 +02:00
Victor Brekenfeld 9d16e7d8bb
Merge pull request #261 from Smithay/renderer/v4
Rework backend/rendering code... again (v4)
2021-05-29 18:10:38 +02:00
Victor Brekenfeld 87d33fc42e renderer: Document `Frame` Associated Type and Trait 2021-05-29 17:57:34 +02:00