bevy/crates/bevy_winit/Cargo.toml
VitalyR 5b0f21c773
Add winit's wayland-csd-adwaita feature to Bevy's wayland feature (#8722)
# Objective

- Fix Wayland window client side decorations issue on Gnome Wayland,
fixes #3301.

## Solution

- One simple one line solution: Add winit's `wayland-csd-adwaita`
feature to Bevy's `wayland` feature.

Copied from
https://github.com/bevyengine/bevy/issues/3301#issuecomment-1569611257:
### Investigation
1. Gnome forced Wayland apps to implement CSD, whether on their own or
using some libraries like Gnome's official solution
[libdecor](https://gitlab.freedesktop.org/libdecor/libdecor). Many Linux
apps do this with libdecor, like blender, kitty... I think it's not
comfortable for Bevy to fix this problem this way.
2. Winit has support for CSD on
wayland(8bb004a1d9/Cargo.toml (L42)),
but Bevy disabled Winit's default features, thus no winit's
`wayland-csd-adwaita` feature. And Bevy's `wayland` feature doesn't
include winit's `wayland-csd-adwaita` feature so users can't get window
decorations on Wayland even with Bevy's `wayland` feature enabled.
3. Many rust UI toolkit, like iced, doesn't disable winit's
`wayland-csd-adwaita` feature.
### Conclusion and one Possible solution

Bevy disabled `winit`'s default features in order to decrease package
size. But I think it's acceptable to add `winit`'s `wayland-csd-adwaita`
feature to Bevy's `wayland` feature gate to fix this issue easily for
this only add on crate: sctk-adwaita.
2023-05-31 16:48:03 +00:00

46 lines
1.6 KiB
TOML

[package]
name = "bevy_winit"
version = "0.11.0-dev"
edition = "2021"
description = "A winit window and input backend for Bevy Engine"
homepage = "https://bevyengine.org"
repository = "https://github.com/bevyengine/bevy"
license = "MIT OR Apache-2.0"
keywords = ["bevy"]
[features]
trace = []
wayland = ["winit/wayland", "winit/wayland-csd-adwaita"]
x11 = ["winit/x11"]
accesskit_unix = ["accesskit_winit/accesskit_unix"]
[dependencies]
# bevy
bevy_a11y = { path = "../bevy_a11y", version = "0.11.0-dev" }
bevy_app = { path = "../bevy_app", version = "0.11.0-dev" }
bevy_derive = { path = "../bevy_derive", version = "0.11.0-dev" }
bevy_ecs = { path = "../bevy_ecs", version = "0.11.0-dev" }
bevy_hierarchy = { path = "../bevy_hierarchy", version = "0.11.0-dev" }
bevy_input = { path = "../bevy_input", version = "0.11.0-dev" }
bevy_math = { path = "../bevy_math", version = "0.11.0-dev" }
bevy_window = { path = "../bevy_window", version = "0.11.0-dev" }
bevy_utils = { path = "../bevy_utils", version = "0.11.0-dev" }
bevy_tasks = { path = "../bevy_tasks", version = "0.11.0-dev" }
# other
winit = { version = "0.28", default-features = false }
accesskit_winit = { version = "0.12", default-features = false }
approx = { version = "0.5", default-features = false }
raw-window-handle = "0.5"
[target.'cfg(target_os = "android")'.dependencies]
winit = { version = "0.28", default-features = false, features = ["android-native-activity"] }
once_cell = "1.11"
[target.'cfg(target_arch = "wasm32")'.dependencies]
wasm-bindgen = { version = "0.2" }
web-sys = "0.3"
crossbeam-channel = "0.5"
[package.metadata.docs.rs]
features = ["x11"]