Commit Graph

47 Commits

Author SHA1 Message Date
i509VCB d041e5cdf6 anvil: Derive missing `fmt::Debug` 2021-10-17 13:46:07 -05:00
Poly 524501b2e8 anvil: split `bring_nth_window_to_top` to separate fn 2021-07-31 22:36:55 +02:00
Poly f0cdb235d7 anvil: implement xdg-activation 2021-07-31 21:16:39 +02:00
Poly 115403633b anvil: Implement wlr_layer_shell 2021-07-31 13:44:04 +02:00
Victor Berger f366dfd12a wlcs: pointer input handling 2021-07-25 09:39:49 +02:00
Victor Berger 56c3f53575 anvil: make into a library+bin crate 2021-07-25 09:39:49 +02:00
Victor Berger 54ea0d3a74 Introduce Logical/Physical Point/Rectangle 2021-07-13 13:58:06 +02:00
Victor Berger e96272cae5 wayland.shell.xdg: review docs & API 2021-07-05 22:34:54 +02:00
Victor Berger 3a0c631edd Rudimentary xdg_popup support 2021-06-29 23:59:55 +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
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
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
Uli Schlachter 3504182a5e Add a new surface role for Xwayland surfaces
Signed-off-by: Uli Schlachter <psychon@znc.in>
2021-02-19 11:38:17 +01:00
Victor Berger 5421b9675c anvil: send millisecond time in frame callback
This is what the protocol requires, and apps rely on it to figure
out how long time elapsed between draws.
2020-10-26 12:52:28 +01:00
Mateus Carmo M de F Barbosa 2a351d0879 Use Serial type for all serials 2020-08-27 13:07:01 +02:00
Victor Brekenfeld 9fd8dd9cec anvil: allow draw_windows to take optional output coordinates 2020-06-28 00:05:01 +02:00
Victor Berger 315797ff43 anvil: bulk-send frame events after each page flip 2020-04-22 12:12:57 +02:00
Victor Brekenfeld f6b3d630ce rustfmt 2020-04-10 19:18:58 +02:00
Jonas Platte b8c20ebf30
Update wayland-rs to 0.25 (#171)
Update wayland-rs to 0.25 and calloop to 0.5

Co-authored-by: Victor Berger <victor.berger@m4x.org>
2020-04-05 19:01:08 +02:00
Ivan Molodetskikh ab45cdecdc
anvil.window_map: add refresh_toplevel 2020-02-08 08:47:14 +03:00
Ivan Molodetskikh 223b523f80
anvil.window_map: add WindowMap::find 2020-02-08 08:47:14 +03:00
Ivan Molodetskikh 6d36375f27
anvil.window_map: implement Clone for Kind 2020-02-08 08:47:14 +03:00
Ivan Molodetskikh 546ff48af5
anvil.window_map: add WindowMap::geometry 2020-02-03 16:54:11 +03:00
Ivan Molodetskikh ebb3a05502
anvil: make get_size and contains_point methods
This removes the need to store them as generic members, and will ease
the addition of new methods.
2020-02-03 16:54:11 +03:00
Ivan Molodetskikh 533a006bd1
anvil.window_map: fix bbox computation
It said max_y = y + w instead of y + h.
2020-02-03 16:54:11 +03:00
Ivan Molodetskikh 5814626dbe
anvil.window_map: rename input_bbox to bbox
Since this value turns out to be more useful than for just input fast
path.
2020-02-03 16:54:10 +03:00
Ivan Molodetskikh 0ea4ec9abe
anvil.window_map: add WindowMap::set_location 2020-02-02 15:37:06 +03:00
Ivan Molodetskikh a51e421c19
anvil.window_map: add WindowMap::location 2020-02-02 15:37:06 +03:00
Ivan Molodetskikh 69b1c1870e
anvil.window_map: add Kind::equals 2020-02-02 15:37:06 +03:00
Ivan Molodetskikh d30567512c
anvil.window_map: use Rectangle::default 2020-01-22 07:47:10 +03:00
Ivan Molodetskikh aa65f3608d
anvil: add a contains_point fn for Window.matching
Currently implemented to be equivalent to the previous size-based check.
This will allow implementing an input-region-aware check.
2020-01-22 07:46:26 +03:00
Ivan Molodetskikh 9bfa85efc9
anvil.window_map: add some comments 2020-01-22 06:58:41 +03:00
Ivan Molodetskikh 09908d8de8
anvil.window_map: rename surface to input_bbox
Much clearer what it does.
2020-01-22 06:57:45 +03:00
nycex 0140de89fb fix some clippy warnings (#147)
This commit removes some clippy warnings (to advance #45) by doing the following:
- replace usage of `mem::uninitialized()` with `MaybeUninit`
- replace usage of `nix::libc::{uint64_t, int32_t}` with `{u64, i32}`
- replace functions inside of `Option::ok_or` with `Option::ok_or_else`
- replace functions inside of `Result::unwrap_or` with `Result::unwrap_or_else`
- replace occurrences of pass-by-reference with pass-by-value when
  appropriate
- replace unused variables in pattern-matching with wildcards
- replace `match` expressions that have only one case with `if let`
  expressions
- replace UpperCamelCase names of consts with SCREAMING_SNAKE_CASE
- remove `clone()` on types that implement Copy
- remove redundant imports
- remove `fn main()` from doctests
- remove let binding for variables that are returned afterwards
2020-01-01 11:43:16 +01:00
Victor Berger d62fb4c8b5 wayland.shell.xdg: use UserDataMap 2019-04-27 21:38:24 +02:00
Victor Berger c604a48dce wayland.compositor: user UserDataMap to store per-surface data 2019-04-27 21:38:24 +02:00
Victor Berger 9f9e6d4329 wayland.compositor: rework the subsurface tree
Rework the subsurface tree by:

- forbidding subsurface loops
- storing the relative depth of a parent to its children,
  finally respecting the wl_subsurface specification.

closes #23
2019-04-22 17:20:46 +02:00
Jonas Platte f34cf4b068 Upgrade anvil to wayland-server 0.23 2019-02-24 08:23:51 +01:00
Victor Brekenfeld cc5d55f535 rustfmt fixes 2018-12-17 16:58:49 +01:00
Victor Brekenfeld e5f8c351c7 Check for rust_2018_idioms 2018-12-16 19:31:38 +01:00
Victor Berger 139d0f3992 wayland.seat: Pointer grabbing logic 2018-10-08 13:55:21 +02:00
Jonas Platte 850ff6983a anvil: Use nested imports 2018-10-07 22:39:18 +02:00
Victor Berger 454f874284 cargo fmt 2018-09-25 00:32:09 +02:00
Colin Benner 73ff30b0ee anvil: address some clippy warnings 2018-06-27 14:04:40 +02:00
Victor Berger 23faeae20f move examples into our own compositor: anvil 2018-05-07 19:56:38 +02:00