Ensure that DISPLAY vars are non-empty before using

It's common to disable Wayland by `WAYLAND_DISPLAY= <application>`.
This commit is contained in:
Kirill Chibisov 2023-10-19 17:03:15 +04:00 committed by GitHub
parent 880238a24f
commit b9e1e96eaa
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -752,11 +752,16 @@ impl<T: 'static> EventLoop<T> {
);
}
// NOTE: Wayland first because of X11 could be present under wayland as well.
// NOTE: Wayland first because of X11 could be present under Wayland as well. Empty
// variables are also treated as not set.
let backend = match (
attributes.forced_backend,
env::var("WAYLAND_DISPLAY").is_ok(),
env::var("DISPLAY").is_ok(),
env::var("WAYLAND_DISPLAY")
.map(|var| !var.is_empty())
.unwrap_or(false),
env::var("DISPLAY")
.map(|var| !var.is_empty())
.unwrap_or(false),
) {
// User is forcing a backend.
(Some(backend), _, _) => backend,