From 1f6ae49a5f6bf43a869c215dea0d3028be8d742a Mon Sep 17 00:00:00 2001 From: Arthur Brussee Date: Fri, 9 Aug 2024 08:15:14 +0100 Subject: [PATCH] Unpin & upgrade winit to 0.30.5 (#4939) This updates winit to 0.30.5. https://github.com/emilk/egui/pull/4849 Had to pin the version to 0.30.2, as a Winit patch changed the behavior of selecting a theme. Winit 0.30.5 reverts this, so we could stick with `window.theme()`, but the newly added `ActiveEventLoop::system_theme` is more like what egui wants anyway, as individual windows can have theme overrides. Also bump `smithay-clipboard` to prevent some now duplicate dependencies. --- Cargo.lock | 36 ++++++++++---------- Cargo.toml | 4 +-- crates/eframe/src/native/glow_integration.rs | 2 +- crates/eframe/src/native/wgpu_integration.rs | 4 +-- crates/egui-winit/Cargo.toml | 2 +- crates/egui_glow/examples/pure_glow.rs | 3 +- crates/egui_glow/src/winit.rs | 3 +- 7 files changed, 25 insertions(+), 29 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c4a6affbf..7c488cec3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -632,9 +632,9 @@ dependencies = [ [[package]] name = "calloop" -version = "0.12.4" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fba7adb4dd5aa98e5553510223000e7148f621165ec5f9acd7113f6ca4995298" +checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec" dependencies = [ "bitflags 2.6.0", "log", @@ -646,9 +646,9 @@ dependencies = [ [[package]] name = "calloop-wayland-source" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f0ea9b9476c7fad82841a8dbb380e2eae480c21910feba80725b46931ed8f02" +checksum = "95a66a987056935f7efce4ab5668920b5d0dac4a7c99991a67395f13702ddd20" dependencies = [ "calloop", "rustix 0.38.21", @@ -3490,9 +3490,9 @@ dependencies = [ [[package]] name = "sctk-adwaita" -version = "0.9.1" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7555fcb4f753d095d734fdefebb0ad8c98478a21db500492d87c55913d3b0086" +checksum = "b6277f0217056f77f1d8f49f2950ac6c278c0d607c45f5ee99328d792ede24ec" dependencies = [ "ab_glyph", "log", @@ -3627,9 +3627,9 @@ checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" [[package]] name = "smithay-client-toolkit" -version = "0.18.1" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "922fd3eeab3bd820d76537ce8f582b1cf951eceb5475c28500c7457d9d17f53a" +checksum = "3457dea1f0eb631b4034d61d4d8c32074caa6cd1ab2d59f2327bd8461e2c0016" dependencies = [ "bitflags 2.6.0", "calloop", @@ -3652,9 +3652,9 @@ dependencies = [ [[package]] name = "smithay-clipboard" -version = "0.7.0" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bb62b280ce5a5cba847669933a0948d00904cf83845c944eae96a4738cea1a6" +checksum = "cc8216eec463674a0e90f29e0ae41a4db573ec5b56b1c6c1c71615d249b6d846" dependencies = [ "libc", "smithay-client-toolkit", @@ -4322,9 +4322,9 @@ dependencies = [ [[package]] name = "wayland-protocols" -version = "0.31.2" +version = "0.32.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4" +checksum = "62989625a776e827cc0f15d41444a3cea5205b963c3a25be48ae1b52d6b4daaa" dependencies = [ "bitflags 2.6.0", "wayland-backend", @@ -4334,9 +4334,9 @@ dependencies = [ [[package]] name = "wayland-protocols-plasma" -version = "0.2.0" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23803551115ff9ea9bce586860c5c5a971e360825a0309264102a9495a5ff479" +checksum = "f79f2d57c7fcc6ab4d602adba364bf59a5c24de57bd194486bf9b8360e06bfc4" dependencies = [ "bitflags 2.6.0", "wayland-backend", @@ -4347,9 +4347,9 @@ dependencies = [ [[package]] name = "wayland-protocols-wlr" -version = "0.2.0" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6" +checksum = "fd993de54a40a40fbe5601d9f1fbcaef0aebcc5fda447d7dc8f6dcbaae4f8953" dependencies = [ "bitflags 2.6.0", "wayland-backend", @@ -4849,9 +4849,9 @@ checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" [[package]] name = "winit" -version = "0.30.2" +version = "0.30.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dc930d6cfbf53c4fe0b95689cdc2e17b8658c3f4214b9953298ccb5a1a15c90" +checksum = "0be9e76a1f1077e04a411f0b989cbd3c93339e1771cb41e71ac4aee95bfd2c67" dependencies = [ "ahash", "android-activity", diff --git a/Cargo.toml b/Cargo.toml index fd9690c60..731ae670b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -95,9 +95,7 @@ wgpu = { version = "22.0.0", default-features = false, features = [ # Make the renderer `Sync` even on wasm32, because it makes the code simpler: "fragile-send-sync-non-atomic-wasm", ] } - -# Currently can't upgrade above 0.30.2 due to https://github.com/rust-windowing/winit/issues/3837 -winit = { version = "=0.30.2", default-features = false } +winit = { version = "0.30.5", default-features = false } [workspace.lints.rust] unsafe_code = "deny" diff --git a/crates/eframe/src/native/glow_integration.rs b/crates/eframe/src/native/glow_integration.rs index fcec15c35..63e631532 100644 --- a/crates/eframe/src/native/glow_integration.rs +++ b/crates/eframe/src/native/glow_integration.rs @@ -1114,7 +1114,7 @@ impl GlutinWindowContext { viewport_id, event_loop, Some(window.scale_factor() as f32), - window.theme(), + event_loop.system_theme(), self.max_texture_side, ) }); diff --git a/crates/eframe/src/native/wgpu_integration.rs b/crates/eframe/src/native/wgpu_integration.rs index 2a4fae953..4228c52bb 100644 --- a/crates/eframe/src/native/wgpu_integration.rs +++ b/crates/eframe/src/native/wgpu_integration.rs @@ -241,7 +241,7 @@ impl WgpuWinitApp { ViewportId::ROOT, event_loop, Some(window.scale_factor() as f32), - window.theme(), + event_loop.system_theme(), painter.max_texture_side(), ); @@ -869,7 +869,7 @@ impl Viewport { viewport_id, event_loop, Some(window.scale_factor() as f32), - window.theme(), + event_loop.system_theme(), painter.max_texture_side(), )); diff --git a/crates/egui-winit/Cargo.toml b/crates/egui-winit/Cargo.toml index 95e8215b7..4060442f6 100644 --- a/crates/egui-winit/Cargo.toml +++ b/crates/egui-winit/Cargo.toml @@ -80,7 +80,7 @@ serde = { workspace = true, optional = true } webbrowser = { version = "1.0.0", optional = true } [target.'cfg(any(target_os="linux", target_os="dragonfly", target_os="freebsd", target_os="netbsd", target_os="openbsd"))'.dependencies] -smithay-clipboard = { version = "0.7.0", optional = true } +smithay-clipboard = { version = "0.7.2", optional = true } # The wayland-cursor normally selected doesn't properly enable all the features it uses # and thus doesn't compile as it is used in egui-winit. This is fixed upstream, so force diff --git a/crates/egui_glow/examples/pure_glow.rs b/crates/egui_glow/examples/pure_glow.rs index 9f61a1a72..4145e1d63 100644 --- a/crates/egui_glow/examples/pure_glow.rs +++ b/crates/egui_glow/examples/pure_glow.rs @@ -192,8 +192,7 @@ impl winit::application::ApplicationHandler for GlowApp { let gl = std::sync::Arc::new(gl); gl_window.window().set_visible(true); - let egui_glow = - egui_glow::EguiGlow::new(event_loop, &gl_window.window, gl.clone(), None, None, true); + let egui_glow = egui_glow::EguiGlow::new(event_loop, gl.clone(), None, None, true); let event_loop_proxy = egui::mutex::Mutex::new(self.proxy.clone()); egui_glow diff --git a/crates/egui_glow/src/winit.rs b/crates/egui_glow/src/winit.rs index e297badaf..c4569015a 100644 --- a/crates/egui_glow/src/winit.rs +++ b/crates/egui_glow/src/winit.rs @@ -24,7 +24,6 @@ impl EguiGlow { /// For automatic shader version detection set `shader_version` to `None`. pub fn new( event_loop: &winit::event_loop::ActiveEventLoop, - window: &winit::window::Window, gl: std::sync::Arc, shader_version: Option, native_pixels_per_point: Option, @@ -43,7 +42,7 @@ impl EguiGlow { ViewportId::ROOT, event_loop, native_pixels_per_point, - window.theme(), + event_loop.system_theme(), Some(painter.max_texture_side()), );