Commit Graph

636 Commits

Author SHA1 Message Date
Ivan Molodetskikh ca7e91a98c
anvil.shell: implement the Resize request
Currently doesn't move the window when resizing left or top.
2020-02-08 08:47:13 +03:00
Ivan Molodetskikh 546ff48af5
anvil.window_map: add WindowMap::geometry 2020-02-03 16:54:11 +03:00
Ivan Molodetskikh 9fd9db82ae
anvil.shell: store geometry in SurfaceData 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
Victor Berger 7fa7fe03be
Merge pull request #155 from YaLTeR/fix-dimensions
anvil: retrieve buffer dimensions on commit
2020-02-03 14:53:35 +01:00
Victor Berger 719295931b
Merge pull request #153 from YaLTeR/move
Implement the Move request
2020-02-03 14:53:06 +01:00
Ivan Molodetskikh a224f774ee
anvil: store buffer dimensions separately
Before this change, the texture size was used for the dimensions.
However, the texture is not created until the next rendered frame, which
means that frequently size was returned as zero, resulting in pointer
focus artifacts. With this change, the dimensions are retrieved
immediately on surface commit.
2020-02-03 12:56:59 +03:00
Ivan Molodetskikh 825995687a
anvil: add BufferUtils
A helper struct which currently contains only a method for retrieving
buffer dimensions. Will be used for getting the buffer dimensions early,
before rendering, to always have up-to-date size which is not zero.
2020-02-03 12:56:59 +03:00
Ivan Molodetskikh 46348367b1
backend.egl: add egl_buffer_dimensions
Allows to retrieve just the dimensions, without creating images and
whatnot.
2020-02-03 12:41:35 +03:00
Ivan Molodetskikh fab0b7a05f
seat: remove ClickGrab.pending_focus
It was unused.
2020-02-03 12:31:39 +03:00
Ivan Molodetskikh 32613f3cd6
anvil.shell: check that grab is correct in Move
Check that the grab had a focus and it was the same client as this
surface.
2020-02-03 12:31:39 +03:00
Ivan Molodetskikh d8495d81f2
anvil.shell: check that there's a grab before Move
If there's no click grab then the request is invalid.
2020-02-03 12:31:38 +03:00
Ivan Molodetskikh 03392bf7d1
seat: add GrabStartData to PointerGrab
Stores the data about the event that started the grab. Will be useful
for things like move and resize requests.
2020-02-03 12:31:38 +03:00
Ivan Molodetskikh 24af494cbf
anvil.shell: implement the Move request 2020-02-03 07:51:05 +03:00
Ivan Molodetskikh ba1396ca8c
seat: add PointerHandle::current_location 2020-02-02 15:37:06 +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
Victor Berger e07a57885b
Merge pull request #154 from YaLTeR/input-region
Store and use the committed input_region
2020-02-02 11:27:34 +01:00
Ivan Molodetskikh 13cac4f693
anvil.shell: use correct region in contains_point
The one in SurfaceAttributes has potentially not been committed yet, and
the one in SurfaceData is the most up-to-date committed one.
2020-02-02 12:45:35 +03:00
Ivan Molodetskikh fac4ca260e
anvil.shell: store input_region in SurfaceData
This is the most up-to-date committed input region.
2020-02-02 12:45:35 +03:00
Ivan Molodetskikh fd50b45e61
anvil: implement input region check 2020-01-22 08:06:15 +03:00
Ivan Molodetskikh 9cf5b415c6
compositor: add RegionAttributes::contains 2020-01-22 08:05:15 +03:00
Ivan Molodetskikh d30567512c
anvil.window_map: use Rectangle::default 2020-01-22 07:47:10 +03:00
Ivan Molodetskikh 52d86d3abf
rectangle: derive Default 2020-01-22 07:46:40 +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
Christophe Biocca 834f3d2e65 Upgrade to dbus 0.8, change imports to match. 2020-01-01 11:42:28 +01:00
Pierre Chevalier 0b2e4b42db Fix clippy warnings with cargo fix
Simply ran:
```
rustup run nightly  cargo fix --clippy -Z unstable-options
```
followed by
```
cargo fmt
```

No manual change in this commit.
2019-10-23 14:13:10 +02:00
Wesley Moore ac0566ca88 Make winit backend exit on Super-Q 2019-08-23 16:55:51 +02:00
Victor Brekenfeld f8f4f461c7
Merge pull request #144 from Smithay/pr/fix/anvil_buffer_leak
anvil: release old buffers on commit
2019-08-23 16:50:14 +02:00
Victor Brekenfeld 056a86ad30 anvil: release old buffers on commit 2019-08-23 15:16:18 +02:00
Victor Berger e4f1872a43 anvil: properly document logind support 2019-06-19 15:07:01 +02:00
Victor Berger 1627d51cf6 wayland: introduce explicit-synchronization helpers 2019-06-14 11:16:27 +02:00
Victor Berger 04dc563ea0 wayland.dmabuf: API improvements 2019-05-20 08:59:56 +02:00
Victor Berger c1f759aa00 wayland.dmabuf: module docs & some logging 2019-05-20 08:59:56 +02:00
Victor Berger e11c0278dd Wayland dmabuf handler 2019-05-20 08:59:56 +02:00
Victor Berger 78874a8363 Require wayland-commons>=0.23.3 for UserDataMap 2019-04-27 21:38:24 +02:00
Victor Berger d62fb4c8b5 wayland.shell.xdg: use UserDataMap 2019-04-27 21:38:24 +02:00
Victor Berger 19432460cd wayland.shell.legacy: remove shell surface data
It is now redundant with the wl_surface user_data mechanism.
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 0712bdefec anvil.glium_drawer: fix buffer release order 2019-04-22 17:20:46 +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
Victor Berger 5768e1fd87 Upgrade dependencies 2019-02-24 11:23:11 +01:00
Jonas Platte f34cf4b068 Upgrade anvil to wayland-server 0.23 2019-02-24 08:23:51 +01:00
Jonas Platte c238770a1b Remove unused imports 2019-02-24 08:23:51 +01:00