Victor Berger
104774eeb0
Minor clippy fixed
2020-04-28 11:13:25 +02:00
Victor Berger
b3aae074e4
Update calloop to 0.6
2020-04-28 11:13:25 +02:00
Victor Brekenfeld
d6fa2e96cf
drm: Require all surfaces to always have a mode set
2020-04-27 00:45:58 +02:00
Victor Brekenfeld
a4203bd216
examples/anvil: add disable_connectors for device creation
2020-04-27 00:45:58 +02:00
Victor Berger
d48c04fd7b
anvil: Implement subsurface state caching
2020-04-22 12:12:57 +02:00
Victor Berger
315797ff43
anvil: bulk-send frame events after each page flip
2020-04-22 12:12:57 +02:00
Victor Berger
59f7167702
anvil: move common logic into AnvilState
2020-04-22 12:12:57 +02:00
Victor Berger
cd6e148143
anvil: restore correct dispatching of wayland clients
2020-04-22 12:12:57 +02:00
Victor Berger
548a929d1c
wayland.compositor: Correct frame callback handling
2020-04-22 12:12:57 +02:00
Victor Berger
1736db27b4
anvil: set saner values for key repeat rate
2020-04-21 23:04:23 +02:00
Victor Brekenfeld
24a51f721d
anvil: use fallback-device for atomic/legacy
2020-04-21 20:18:35 +02:00
Victor Brekenfeld
d30bd4555e
anvil: use atomic modesetting
2020-04-21 20:18:34 +02:00
Victor Brekenfeld
8ba33f2473
anvil: Report errors of failed device initializations
2020-04-21 20:18:34 +02:00
Victor Berger
61fecb44cf
anvil: disable clippy lint for glium macros
2020-04-21 15:00:00 +02:00
Victor Brekenfeld
bcb2aa3864
Fix egl_to_texture check
2020-04-18 15:03:20 +02:00
Chandler Newman
f7c05fa064
Rename WaylandEGLDisplay to EGLBufferReader
2020-04-15 21:19:20 +01:00
Chandler Newman
a684f5d8d6
Refactor EGL backend
2020-04-15 12:01:01 +01:00
Victor Berger
b54d95c15d
Fix most clippy warnings ( #185 )
...
* Add missing documentation
* Fix most clippy warnings
2020-04-15 09:28:22 +02:00
Victor Brekenfeld
b43c0db115
Update to udev 0.4
2020-04-13 17:07:08 +02:00
Victor Brekenfeld
2b5c0448eb
anvil: Fix udev build without egl
2020-04-11 13:47:01 +02:00
Victor Brekenfeld
f6b3d630ce
rustfmt
2020-04-10 19:18:58 +02:00
Victor Brekenfeld
e8e8667d89
Upgrade to the upcoming drm-rs 0.4
2020-04-10 16:58:49 +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
Victor Berger
a60e1cd7fd
Merge pull request #156 from YaLTeR/resize
...
anvil: implement the Resize request
2020-02-12 22:57:32 +01:00
Ivan Molodetskikh
e1396d2e1a
anvil.shell: add our own ResizeEdge
...
It mirrors the one in wl_shell_surface and lets us not depend on it.
2020-02-11 11:06:36 +03:00
Ivan Molodetskikh
c0d0d0d2b8
anvil.shell: respect min and max size in resize
2020-02-08 18:36:09 +03:00
Ivan Molodetskikh
e76f9f14ed
anvil.shell: store min_size and max_size
2020-02-08 13:51:12 +03:00
Ivan Molodetskikh
adbab32bd8
anvil.shell: update location on top-left resizing
2020-02-08 13:51:11 +03:00
Ivan Molodetskikh
60ca2f9c88
anvil.shell: don't send first configure to WlShell
...
It doesn't need it, and it also takes the (0, 0) size literally, which
makes everything try to be the smallest size possible initially.
2020-02-08 09:53:50 +03:00
Ivan Molodetskikh
09d7f597d4
anvil.shell: refresh toplevels on commit
...
This updates the toplevel state in the WindowMap as soon as it's
committed. It will be used to update the toplevel location on top-left
resize, but this is a better approach in general than the current
update-every-drawn-frame. I think we should update the WindowMap state
as soon as possible, and only when necessary.
2020-02-08 08:47:14 +03: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
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
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
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
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
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
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
Wesley Moore
ac0566ca88
Make winit backend exit on Super-Q
2019-08-23 16:55:51 +02:00
Victor Brekenfeld
056a86ad30
anvil: release old buffers on commit
2019-08-23 15:16:18 +02: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
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
Victor Berger
89dce178c8
Make wayland support optional
2019-02-06 09:29:56 +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 Brekenfeld
71bd64a6bf
Fix source code for 2018 edition
2018-12-16 19:31:38 +01:00
Victor Brekenfeld
90c0112cd3
Let all anvil features compile standalone
2018-12-15 20:18:38 +01:00
Victor Brekenfeld
dc97e0ad03
Add reexports module
2018-12-14 14:26:50 +01:00
Victor Berger
d1d608ab2b
anvil: draw custom cursors and dnd icons
2018-12-11 10:21:59 +01:00
Victor Berger
280decf863
data_device: support for custom DnD icons
2018-12-11 10:21:59 +01:00
Victor Berger
f3a68fb1af
seat: support for curstom cursor images
2018-12-11 10:21:59 +01:00
Victor Brekenfeld
a3acd48cc3
fmt: rust 1.31
2018-12-08 18:31:08 +01:00
Victor Brekenfeld
14d2e6e373
anvil: explain the implementation a bit more
2018-12-05 22:48:12 +01:00
Victor Brekenfeld
b160a91f8a
drm: remove mode & connector arguments of create_surface
2018-12-03 23:29:30 +01:00
Victor Brekenfeld
99f9156f64
anvil: clear window map on drop
2018-12-03 23:29:30 +01:00
Victor Brekenfeld
f8a5e8bfde
anvil: allow for non-egl builds
2018-12-03 23:29:30 +01:00
Victor Brekenfeld
f2466c5c50
drm: Fix drop order
2018-12-03 23:29:30 +01:00
Victor Brekenfeld
a745eace15
anvil: fix tty swap
2018-12-02 22:01:45 +01:00
Victor Brekenfeld
0ed69bf2da
session: Add multiplexer
2018-12-02 22:01:45 +01:00
Victor Brekenfeld
9428853ad6
anvil: fix for drm backend changes
2018-11-29 19:41:15 +01:00
Victor Brekenfeld
91e237f697
anvil: remove raw_tty backend
2018-11-29 16:13:07 +01:00
Victor Berger
ed00fb1d47
data_device: move default_action_chooser into smithay
2018-11-22 15:37:31 +01:00
Victor Berger
d41517f85b
data_device: let the compositor interact with the selection
2018-11-21 22:24:18 +01:00
Victor Berger
35645596a8
data_device: let the compositor decide the action choice strategy
2018-11-21 16:01:34 +01:00
Victor Berger
81956c8fd0
data_device: basic DnD support
2018-11-21 15:28:41 +01:00
Victor Berger
0434cbb90d
data_device: basic selection support
2018-11-20 11:56:04 +01:00
Victor Berger
5e9ad96b0f
seat: add a keyboard focus hook
2018-11-18 23:04:30 +01:00
Colin Benner
734d2ce996
Fmt, spelling and capitalisation fixes ( #113 )
...
* Rename priviledged to privileged in backend/drm/mod.rs
* Fix a number of typos in comments
* Fix typos in string literals
* Wrap identifiers with backticks in doc comments
* Spelling and capitalisation in doc comments
* Use XWayland in comments
This seems to be the standard capitalisation, even though the executable
is called `Xwayland`.
* Use Glium instead of glium in comments
* Use DRM and API in comments
* Fix remaining occurrence of 'priviledged'
* Reformat code to appease Travis' rustfmt
2018-10-30 13:56:30 +01:00
Victor Berger
8b66680097
anvil: use smithay's global SerialCounter
2018-10-08 13:55:21 +02: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
Jonas Platte
943f02b447
Refactor Seat::add_keyboard
...
With the new XkbConfig struct, it is now easier to just use xkbcommon's
default configuration, by moving the xkbcommon specific options into a
struct with according documentation.
Additionally, anvil now uses xkbcommon's defaults with all backends
(previously, the winit backend had a hardcoded french keyboard layout).
2018-10-02 23:12:35 +02:00
Victor Berger
669508046d
Fix anvil
2018-09-30 12:14:11 +02:00
Victor Berger
454f874284
cargo fmt
2018-09-25 00:32:09 +02:00
Victor Berger
605895e30f
update to wayland-rs 0.21
2018-09-25 00:31:58 +02:00
Colin Benner
73ff30b0ee
anvil: address some clippy warnings
2018-06-27 14:04:40 +02:00
Victor Berger
3b0594c88e
anvil: refacto buffer loading logic
...
Decouple it from the shell implementation and introduce specialised
shaders for various SHM buffer types.
2018-05-19 19:53:27 +02:00
Victor Berger
a9ce9a4664
anvil: fix shm buffer loading
2018-05-13 14:35:27 +02:00
Victor Berger
a137a7fa8f
anvil: factor the drawing code
2018-05-08 20:08:17 +02:00
Victor Berger
011d067ce5
anvil: add a raw DRM backend
2018-05-08 19:39:38 +02:00
Victor Berger
6ee6fd6890
anvil: factor the input backend code
2018-05-08 12:47:09 +02:00
Victor Berger
23faeae20f
move examples into our own compositor: anvil
2018-05-07 19:56:38 +02:00